JP2009508190A - 顧客関係管理システム及び方法 - Google Patents

顧客関係管理システム及び方法 Download PDF

Info

Publication number
JP2009508190A
JP2009508190A JP2008526295A JP2008526295A JP2009508190A JP 2009508190 A JP2009508190 A JP 2009508190A JP 2008526295 A JP2008526295 A JP 2008526295A JP 2008526295 A JP2008526295 A JP 2008526295A JP 2009508190 A JP2009508190 A JP 2009508190A
Authority
JP
Japan
Prior art keywords
software application
database
source code
version
user interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008526295A
Other languages
English (en)
Inventor
ジェイコブ テイラー
ジョン ロバーツ
クリントン オラム
ロン クーツ
アンディー ドリーシュ
アジェイ グプタ
アンドリュー スー
ラム ヒュン
マジェッド イタニ
ジュリアン オストロー
ジョーイ パーソンズ
ロバート ランゲル
ボブ シュウォーツマン
リリヤ ベデロフ
Original Assignee
シュガーシーアールエム インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by シュガーシーアールエム インコーポレイテッド filed Critical シュガーシーアールエム インコーポレイテッド
Publication of JP2009508190A publication Critical patent/JP2009508190A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising

Abstract

ソフトウェアベースの顧客関係管理システム及び方法。
【選択図】図1

Description

(関連出願/優先権請求)
本出願は、2005年8月12日に出願された名称「Customer Relationship Management System and Method(顧客関係管理システム及び方法)」の米国暫定出願シリアル番号60/707,820に対し米国特許法第119(e)に基づく優先権を主張し、その全体は引用により本明細書に組み込まれる。
(技術分野)
本発明は、一般に、顧客関係管理システム及び方法に関し、詳細には、顧客関係管理を可能にするためのソフトウェアベースのシステム及び方法に関する。
顧客関係管理(CRM)システム及びソリューションは公知である。例えば、既知の典型的なCRMシステムには、Microsoft(登録商標)CRM、e−Synergy、SalesForce.comにより提供されるCRM製品、Netsuite CRM、及びSAP Business One CRMが挙げられる。しかしながら、従来のCRMシステムは、融通性の欠如、高コスト、及び従来の製品に組み込まれているクローズソース構造を含む重大な制限がある。これらの制限は、従来のCRM実装に対して70%を越える不成功率をもたらしてきた。従って、一般的なCRMシステムのこれらの制限を克服する顧客関係管理システム及び方法を提供することが望ましく、本発明はこの目的を達成することを対象とする。
顧客関係管理システムは、テンプレート及びテーマの1つ又はそれ以上の組合せを有し、該テンプレート及びテーマは、顧客関係管理システムのユーザインターフェーススキンであり、テンプレートはデータのレイアウトを調整し、テーマは顧客関係管理システムの表示のユーザインターフェースを調整する。テンプレート/テーマの一部は、幾つかの特徴がある対話型ユーザインターフェースとすることができる。
本システムはまた、複数の製品に対して1つのコードベースを使用するためにソースコードをタグ付けするためのメカニズムを有することができる。タグ/コメントは、アプリケーションのファイル、コード、又はディレクトリに付加される。ディレクトリレベルタグを用いて、特定のビルドからディレクトリを取り除くか、或いはディレクトリを特定のビルドに単に含めることができる。例えば、モジュールがプロフェッショナル及びエンタープライズビルドにだけあり、オープンソース製品にはない場合、CRMシステムのプロフェッショナル又はエンタープライズビルドを行っていなければ、ビルドプロセスに全フォルダを取り除くように通知するファイルをそのフォルダに入れることができる。ファイルレベルタグを用いて、特定のビルドから全ファイルを取り除くか、或いは全ファイルを特定のビルドに含めることができる。コードレベルタグは、ラインナンバーが一致するか又は特定のビルドにこれらを単に含めるように、コード固有のビルドのセクションを取り除き、これらをブランクラインと置換することができる。本発明によれば、タグは、コードの構築されたバージョンから取り除かれる。
本発明は、オープンソース顧客関係管理(CRM)ソフトウェアシステムに特に適用可能であり、この関連において本発明を説明することにする。しかしながら、本明細書で開示されるこれらのモジュール及び本発明の態様は他の非オープンソースCRMシステム、並びに他のビジネスソフトウェアアプリケーションシステム、更に他のデータベースソフトウェアシステムに一様に適用できるので、本発明によるアルゴリズム、データ構造、プロセス、及びモジュールが極めて有用であることは理解されるであろう。例証の目的のために、説明されるシステムは、CRM及びグループウェアシステムにおける実装であるが、本発明の方法は、複数のシステムにわたって適用される。実施例において、CRM及びグループウェアシステムは、SugarCRM Inc.のSugar Professional 3.5である。これは、高速応答時間を要求するデータベース主導のアプリケーションである。
このシステムは、SugarBeanとして知られるベースクラス、及びデータ検索APIを使用して好ましい実施形態で実装することができる。ベースクラスは、リストクエリーを構築し、セーブし、更に個々の項目を検索するための方法を有する。データの各特定のタイプは、このベースクラスのサブクラスを作成する。本発明の好ましい実施形態では、ベースクラスはSugarBeanと呼ばれる。各モジュールに対してSugarBeanの少なくとも1つのサブクラスがある。SugarBeanは、データベーステーブルの作成、データベーステーブルのクリア、レコードのロード、リストのロード、レコードのセーブ、及び関係の維持のために使用される。SugarBeanサブクラスの1つの実施例がコンタクト(Contact)である。コンタクトは、SugarBeanの幾つかのメンバー変数を埋める単純なオブジェクトであり、その論理の大部分がSugarBeanを活用する。例えばセキュリティは、コンタクトに対して自動的に作成される。SugarBeanサブクラスの別の実施例は、セキュリティに関連し、行レベルセキュリティを適用させる必要のないモジュールであるユーザ(User)である。この理由で、これらのモジュールは、セキュリティを検証するためのライトジョイン(right join)の追加をスキップするよう設定されたバイパスフラグを有する。SugarCRM Sugar Professionalシステムは、多くの同時ユーザを持つウェブベースのシステムである。このプログラムは、ユーザへのクリティカルデータを含むので、ユーザがシステム及びそのデータへのクイックアクセスができることは必須である。SFAアプリケーションにおける最も頻度が多いアクティビティは、既存のデータを見ることである。
図1は、本発明による顧客関係管理(CRM)システム100を示す図である。好ましい実施形態では、本発明によるシステム100は、好ましくはオープンソースコードを使用できるソフトウェアシステムとして実装される。従って、好ましい実施形態では、図1に示される要素は、サーバーコンピュータなどのコンピュータシステムのプロセッサによって実行することができるコンピュータコードの複数のラインとして実装され、このコンピュータコードの種々のラインは、コンピュータシステム及びデータベース110とのシステムインターフェースに関連したメモリ内に記憶される。このシステムは、一般的なコンピューティングデバイス上で実行されるブラウザアプリケーション(ブラウザクライアントセッション)などの1つ又はそれ以上のクライアント102を有することができ、インターネットなどのコンピュータネットワーク103を通じてシステムにアクセスする。クライアント102の対話は、1つ又はそれ以上のコントローラのセット104を経由する。コントローラは、システムへのエントリーポイントであり、セッショントラッキング、セッションセキュリティ及びエンドユーザ認証などの事柄を処理する。コントローラはまた、コンテンツに対するスクリーン又はラッパーを準備し、ユーザがアクセスしようとするアプリケーションのモジュールがいずれであるかを判定し、要求されたモジュールに該要求を処理させる作業を処理する。従って、このシステムは、アプリケーション機能の構成要素であり且つ一定の機能を提供する1つ又はそれ以上のモジュール106を有する。CRMシステムのモジュール106は、一例として、ポータルモジュール、カレンダーモジュール、アクティビティモジュール、コンタクトモジュール、アカウントモジュール、リードモジュール、オポチュニティモジュール、クォートモジュール、製品モジュール、ケースモジュール、バグトラッカーモジュール、文書モジュール、電子メールモジュール、キャンペーンモジュール、プロジェクトモジュール、RSSモジュール、予想モジュール、レポートモジュール、及びダッシュボードモジュールを含むことができる。これらのモジュールの各々は、種々の機能をシステムに提供し、例えば、カレンダーモジュールは、システムに対してインスタンス化されるカレンダー機能をCRMシステムに提供する。このシステムはまた、システムの一般的な管理用機能を扱うアドミニストレーションモジュールを含むことができる。各モジュールは、SugarBeanベースオブジェクト108のサブクラスを含み、各モジュールは、表示に必要とされるデータをデータベース110から検索するためにSugarBeanを参照する。
図2は、図1のシステムのユーザインターフェース120の実施例を示す図である。ユーザインターフェースは、ケース(Case)、オポチュニティ(Oppotunity)、アポイントメント(Appointment)、リード(Lead)、タスク(Task)、カレンダー(Calender)、チームノーティス(Team Notice)、及びパイプライン(Pipeline)の一般的概要を提供するホームタブ121(図2で選択される)を含むことができる。ホームタブはまた、ほとんどの種類のデータを入力するためのショートカット、及び新しいコンタクトに対するクイックフォームを含む。ホームタブはまた、どの顧客タスク及びアクティビティに現在注目する必要があるかに関するクイック概要を提供する。ポータルモジュール(マイポータルタブ122を使用して選択される)は、電子メール、フォーラム、又はいずれかの他のウェブベースアプリケーションを含むことができ、システムを複数のアプリケーションに対する単一ユーザインターフェースにすることが可能な、選択されるいずれかのウェブサイトにリンクできる一連のショートカットを含む。カレンダーモジュールは、カレンダータブ124により選択することができ、これによってユーザは、ミーティング、タスク、及び呼出しなどのスケジュールされたアクティビティ(日毎、週毎、月毎、又は年毎)をビューすることが可能となる。また、このシステムによって、ユーザは、自分のカレンダーを同僚と共有することができ、これは毎日のアクティビティを調整するための強力なツールである。アクティビティモジュールは、アクティビティタブ126を使用して選択され、これによってユーザは、スケジュールされたアクティビティを作成又は更新するか、或いは既存のアクティビティをサーチすることが可能となる。アカウント、コンタクト、リード、オポチュニティ、又はケースのコンテキスト内のアクティビティを管理することで、本システムにより、ジョブを完了させるために追跡する必要のある無数の呼出し、ミーティング、ノート、電子メール、及びタスクをユーザが管理することが可能になる。タスクは、期日までに終了するよう管理する必要のあるあらゆる動作を追跡することを目的とし、ノートは、ユーザがノート情報を取り込むと同時にファイル添付をアップロードすることを可能にし、呼出しは、ユーザが、呼出しのようなリード及び顧客、ミーティングに対する電話呼出しを追跡することを可能にするが、同様にユーザが、ミーティングのロケーションを追跡することを可能にし、電子メールは、ユーザが、送信又は受信された電子メールメッセージをアーカイブすることを可能にする。
コンタクトモジュールは、コンタクトタブ128によってアクセスされ、これによってユーザは、ページが作成されたコンタクトリストをビューし、或いはコンタクトをサーチすることができるようになる。ユーザは、特定のコンタクトをクリックして、詳細なコンタクトレコードにズームインすることができ、ユーザは、特定のコンタクトレコードから関係するアカウント又はリード、オポチュニティ、ケース、或いは直接レポート(関係のコンタクト)にリンクすることができる。本システムにおいて、コンタクトは組織がビジネスを行う人物である。アカウントと同様に、システムによってユーザは、タイトル、電子メールアドレス、及び他のデータなどの多様なコンタクト情報を追跡することが可能となる。コンタクトは通常、アカウントにリンクされているが、これは必ずしも必要ではない。アカウントモジュールは、アカウントタブ130を使用してアクセスすることができ、ユーザは、ページが作成されたアカウントリストをビューし、或いはアカウントをサーチすることができる。ユーザは、特定のアカウントをクリックして詳細なアカウントレコードにズームインでき、更にユーザは、特定のアカウントレコードから関連のコンタクト、アクティビティ、リード、オポチュニティ、ケース、又はメンバー組織にリンクすることができる。アカウントは、組織がビジネスを行う会社であり、システムによってユーザは、ウェブサイト、メインアドレス、従業員の数、及び他のデータを含むアカウントについての多様な情報を追跡することが可能になる。企業の子会社は、アカウント間の関係を示すために親企業にリンクさせることができる。
リードモジュールは、リードタブ132によってアクセスされ、ユーザが、リードのページ作成されたリストをビューし、或いは特定のリードをサーチすることができるようにする。ユーザは、個々のリードをクリックしてリード情報レコードにズームインでき、ユーザは、その詳細なリードレコードから全ての関連のアクティビティにリンクし、更にリードについてのアクティビティ履歴を見ることができる。リードは、組織が将来ビジネスを行う可能性のある人又は会社である。潜在的顧客との対話の最初のポイントを追跡するように設計されると、リードは通常、マーケティング部門と販売部門の間でのハンドオフである。コンタクト又はアカウントと混同されないために、リードは多くの場合不完全又は不正確な情報を含む可能性があるのに対して、Sugar Professionalに記憶されているコンタクト及びアカウントは、正確なデータを必要とする多くのビジネスプロセスの基本となるものである。リードは通常、ウェブサイト、トレードショーリスト、又は他の方法から自動的にSugar Professionalシステムに送り込まれる。しかしながら、ユーザはまた、全リードをSugar Professionalにマニュアルで直接入力することができる。
オポチュニティモジュールは、オポチュニティタブ134によってアクセスされ、ユーザがオポチュニティのページ作成されたリストをビューし、又は特定のオポチュニティを検索サーチすることができるようにする。ユーザは、個々のオポチュニティをクリックしてオポチュニティ情報レコードにズームインでき、ユーザは、その詳細なオポチュニティレコードから全ての関連するアクティビティにリンクし、オポチュニティについてのアクティビティ履歴を見て、関連するリード及びコンタクトにリンクすることができる。オポチュニティは、潜在的顧客に対する商品又はサービスの販売のプロセスを追跡する。販売プロセスがリードで始まると、リードは、コンタクト及び場合によってはアカウントに変換する必要がある。オポチュニティは、販売段階、クローズの可能性、取引額、及び他の情報などの属性を追跡することによって、ユーザが販売プロセスを管理するのを助ける。クォートモジュールは、クォートタブ136によってアクセスされ、ユーザが顧客クォートのページ作成されたリストをビューするか、或いは特定のクォートをサーチすることを可能にすることができる。ユーザは、個々のクォートをクリックして、詳細なクォート情報にズームインすることができる。クォートは、作成できる製品のカタログから製品を参照し価格設定することによって形成される。クォートのプレゼンテーションクオリティ・ポータブルドキュメントフォーマット(PDF)表示を作成し、クライアントにファックス又は電子メールすることができる。クォートは、アカウント、コンタクト、又はオポチュニティに関連付けることができる。
製品モジュールは、製品タブ138によってアクセスされ、ユーザが製品のページ作成されたリストをビューし、又は特定の製品をサーチできるようにする。ユーザは、個々の製品をクリックし、詳細な製品情報にズームインすることができる。製品は、顧客クォートをアセンブルするときに使用される。ケースモジュールは、ケースタブ140を使用してアクセスすることができ、ユーザがケースのページ作成されたリストをビューするか、或いは特定のケースをサーチできるようにする。ユーザは、個々のケースをクリックし、ケース情報レコードにズームインすることができ、ユーザは、その詳細なケースレコードから全ての関連のアクティビティにリンクし、ケースについてのアクティビティ履歴を見て、関連のコンタクトにリンクすることができる。ケースは、販売部門と顧客サポート部門との間のハンドオフであり、顧客サポート代理人が、状態及びプライオリティ、割り当てられたユーザ、並びに全ての関連のオープン及び終了したアクティビティの全形跡など、各ケースに対する情報を追跡することによって完了までのサポート問題又は照会を管理するのを助ける。バグトラッカーモジュールは、バグトラッカータブ142を使用してアクセスされ、ユーザがレポートされたソフトウェアバグのページ作成されたリストをビュー可能にすることができる。ユーザは、個々のバグをクリックして詳細なバグレポートにズームインでき、その詳細なバグレポートからユーザは、全ての関連のアクティビティにリンクし、バグのアクティビティ履歴を見て、更に関連のコンタクト、アカウント、及びケースにリンクすることができる。トラッキングソフトウェアバグは、顧客サポート部門の重要な機能である。バグトラッカーモジュールは、顧客サポート代理人が、状態及びプライオリティ、決定事項、割り当てられたユーザ、包含されるソフトウェアのリリース、そのタイプ(欠陥又は特徴)並びに全ての関連のオープン及び終了アクティビティの全形跡など、各バグについての情報を追跡することによって終了までのソフトウェア関連のサポート問題又は照会を管理するのを助ける。
文書モジュールは、ユーザがダウンロード可能な文書のリストをユーザに示すことができる。ユーザはまた、文書をアップロードし、公開日及び有効期限を割り当て、更にどのユーザが文書にアクセスできるかを指定することができる。電子メールモジュールによってユーザは、電子メールを書いて送信し、更に電子メールベースのマーケティングキャンペーンで使用できる電子メールテンプレートを作成することが可能となる。ユーザはまた、下書きをセーブし、電子メールをアーカイブすることができる。キャンペーンモジュールは、ユーザがマーケティングキャンペーンを実施し且つ追跡するのを助け、ここでキャンペーンは、テレマーケティング、メール、又は電子メールベースとすることができる。各キャンペーンに対して、ユーザは、コンタクト又はリードから、或いはファイルソースの外から予想リストを作成することができる。プロジェクトモジュールは、ユーザが特定のプロジェクトに関するタスクを管理するのを助ける。タスクは、種々のユーザに割り当てられ、推定される労力の時間が割り当てられ、タスクが進行し終了すると、ユーザは、各タスクについての情報を更新することができる。RSSモジュールは、ユーザがお気に入りのRDFサイトサマリー(RSS)フィードによって提供される最新のヘッドラインをビューすることを可能にする。これらのフィードは、この方式でコンテンツを公開するウェブサイトによって配信又は同時公開されるニュース又は他のウェブコンテンツを提供する。このシステムは、供給される利用可能な数百のRSSフィードを有し、その他を容易に追加することができる。
予想モジュールは、ユーザに自分のコミットされた予想履歴及び現在のオポチュニティを示す。マネージャーにおいて、ユーザは、チームのロールアップ予想をビューすることができる。レポートモジュールは、セーブされたが未公開のカスタムレポートのリスト、並びに公開済みレポートのリストをユーザに示す。セーブされたレポートは、ビュー、削除、又は公開され、公開済みのレポートは、ビュー、削除、又は非公開にすることができる。レポート名をクリックすると、そのレポートに付いてのレポート基準の詳細定義(表示フィールド、及びフィルタ設定)にズームし、ユーザが基準を変更し、レポートクエリーを再提示することが可能になる。最後に、ダッシュボードモジュールは、販売段階毎のユーザのオポチュニティパイプライン、リードソース毎結果毎のオポチュニティ、月毎結果毎のパイプライン、及びリードソース毎のオポチュニティのグラフィカルダッシュボードを表示する。
図1を参照すると、本システムはまた、システムのデータを含むデータベース110と、データベース110内のデータへのアクセスを制御するためのセキュリティ方法を実施するセキュリティモジュール112とを含む。システムはまた、データベース110とSugarBeanオブジェクト108の間のインターフェースによる目的で、データベース110とSugarBeanオブジェクト108間に結合されたデータベース抽象化レイヤ114を含むことができる。Sugar Beanオブジェクト108は、データベースから情報を検索しこれを利用可能にするのに必要なベース論理を提供し、各モジュールは、モジュール固有の詳細を提供するためにSugarBeanのサブクラスを作成する。データベースからデータを検索するプロセスの間、SugarBean108は、データを検索するSQLに行レベルセキュリティ情報を読み込む呼出しを行う。
データが、SugarBeanオブジェクト108から検索されると、モジュールは、テンプレートメカニズム118及びテーマ116を使用して、ユーザ用に要求された表示を生成する。テンプレートメカニズムは、データベース110からのデータを特定の形式に再フォーマットし、テーマは、ユーザの好みに応じてユーザインターフェースを調整する。例えば、ユーザが、指定されたコンタクトに対するコンタクトモジュールの詳細ビューのHTML表示を要求する場合には発生フローが存在する。ユーザは、コントローラ指定インデックス.phpをヒットする。これは、メインアプリケーションに対する論理の大部分を処理する。インデックスコントローラは、現在のユーザをロードし、認証及びセッション情報を検証し、ユーザの言語をロードし、更にUIシェルの幾つかを生成する。次いで、インデックスコントローラは、コンタクトモジュールを呼び出し、指定されたコンタクトの詳細ビューを要求する。コンタクトモジュールは、要求されたコンタクトに対してSugarBeanを検索する。SugarBeanは、このポイントで行レベルセキュリティを検証する。レコードが正常に検索されなかった場合、プロセスが異常終了し、ユーザは、そのレコードについてのデータをビューすることができない。検索が成功した場合、コンタクトモジュールは、Xテンプレートメカニズム及び現在のユーザのテーマに対するコードを使用し、表示のためのUIを作成する。結果として得られたUIは、要求したクライアントに戻される。
図3は、本発明によるクエリーカウンタを備えた顧客関係管理システム100を示す図である。図のように、クエリーカウンタモジュール150は、コントローラ104及びデータベース抽象化レイヤ114に結合されている。クエリーカウンタモジュールは、サーバーコンピュータ上に常駐し、サーバーコンピュータのプロセッサによって実行されるコンピュータコードの複数のラインを有するソフトウェアコードの一部として実装することができるのが好ましく、開発中のアプリケーションの各ページのデータベースクエリーの数、及び性能問題を実証及び診断しようとする生産システム上で使用可能にされる時点を決定する。より詳細には、モジュールは、画面上の各ページに対して、画面の1つのセクション当たり及び画面全体に対するクエリーカウントを決定する。モジュールはまた、ポピュレートするためにクエリーが実行された画面の部分の隣にクエリーの全てを示す機能をユーザに提供し、これにより、開発者がクエリーのソースを迅速に分離することが可能になり、更に、開発者に開発中の変更を判断するためのクイック数値を与える。
図4は、本発明によるモジュールローダモジュールを組み入れた、本発明によるアドミニストレーションモジュールのユーザインターフェース160の実施例である。このアドミニストレーションモジュールによって、システムのアドミニストレータは、システムの構成を含む種々の管理機能を実行することができる。アドミニストレータモジュールは、モジュールローダタブ162によって選択することができるモジュールローダモジュールを含むことができる。ローダモジュールは、アプリケーションからの構成要素の追加及び除去の簡単なエンドユーザ管理を可能にする。システム上で実行されるアプリケーションから追加/除去することができるこれらの構成要素は、言語パック、アップグレード、新しいモジュール、及びテーマを含むことができる。モジュールは基本的に、必要とされるSugarコードベースに対しあらゆる変更を加えるのに使用することができる。図のように、管理ユーザインターフェースには、新しいモジュールをアップロードするための画面がある。モジュールがアップロードされると、モジュール及びこれについての詳細がインストールに利用可能なものとしてリストされる。インストールをクリックした場合、モジュールがインストールされ、インストールされたモジュールリストに移され、アンインストールに利用できるようになる。モジュールは、ファイル管理、メタデータ変更、SQLの全てを内部的に処理し、任意のPHPコードの実行が可能になる。
本発明によれば、モジュールローディングは、マニフェストファイル170を使用して実装することができ、その実施例が図5A及び5Bに示される。マニフェストファイルフォーマットは、モジュール、パッチ、テーマ、及び言語パックをSugarサーバー/システムにロード可能にするのに用いられる。図5A及び5Bに示される実施例において、固有のSugarローダブルモジュールを作成するための実施例である「Song」モジュールのzipファイルが提供される。マニフェストファイルフォーマットは、以下でより詳細に説明されるモジュールローダ並びにアップグレードウィザードに使用される。
マニフェストファイルフォーマットは、実施例としてサンプルモジュール「Song」に示されており、どのようにファイルをフォーマットすべきか及びどのようにローディングメカニズム及びマニフェストファイルが働くかを調べる。マニフェストファイルは、このモジュールをロードするために提示されなくてはならないSugarサーバーのバージョンを含む「Acceptable_sugar_versions」変数を含むことができる。バージョン従属チェックのフォーマットは、完全一致として、或いは正規表現比較として提供することができる。マニフェストファイルはまた、現在ではOpen Source、Professional、及びEnterprise Flavorsを含む、Sugarサーバーのフレーバーを指定する「Acceptable_sugar_flavors」変数を含むことができる。特定のフレーバーの機能に関する要素又は従属性が存在する場合、このパラメータは、要求されるものを指定するために使用しなくてはならない。制約又は制限がない場合、変数は、サポートされるSugarフレーバーの全てを指定することができる。
マニフェストファイルはまた、モジュールに対するユーザ読取り可能な名前を含む「Name」変数を含むことができ、この名前は、モジュールをロードしインストールしたときにSugarアドミニストレーションインターフェースに表示される。マニフェストファイルはまた、Sugarアドミニストレーションインターフェースに表示されるモジュールの説明を含む「Description」変数、モジュールを作成した人又は会社の名前を含む「Author」変数、モジュールが公開又は最後に改訂された日付を含む「Published Date」変数、並びにモジュールのバージョンを含む「Version」モジュールを含むことができる。マニフェストファイルはまた、zipファイルに含まれるパッケージのタイプを含む「Type」変数を含むことができる。現在では、モジュールローダは、「Module」だけをサポートし、アップグレードウィザードが、言語パック、テーマ、パッチ、及びフルアップグレードのサポートを提供する。マニフェストファイルはまた、Sugarローダを用いてこのモジュールのためのSugarアドミニストレーションインターフェースに表示する必要があるzipファイルでのアイコンファイルの相対パス及び名前を含む「Icon」変数を含むことができる。システムは、これが左ブランクである場合には、デフォルトアイコンを使用することになる。最後に、マニフェストファイルはまた、フォルダ及びファイルに対してFrom&Toソース及び宛先を指定するファイルコピー命令のアレイである「Copy_files」変数を含むことができる。処理は、指定されたようにファイルを移動させるこのツリーをウォークスルーし、フォルダは再帰的にコピーされる。
本発明によるシステムはまた、タブ164から実施される新規のアップグレードプロセスを有し、図4に示されたアドミニストレータユーザインターフェースからアップグレードウィザードモジュールを起動する。アップグレードウィザードモジュールは、以下に説明されるような変更検出及びシステム検証を含むアップグレードプロセスを行うサーバー上で実行されるソフトウェアモジュールであるのが好ましい。
図6は、本発明によるアップグレードプロセス180を示すフローチャートである。本発明によるアップグレード/更新の間、前のバージョンのコードの変化をアップグレードバージョンと比較する変化検出が行われる。典型的なオープンソースプログラムでは、プログラムは、ユーザに現在のインストールに対するアップグレードを解凍させ、これによってユーザは、オープンソース製品に行うことのできるあらゆるカスタマイズを解放する可能性がある。従って、ステップ182では、アップグレードプロセスは、ファイルをステージングフォルダに入れることから開始する。次にステップ184で、アップグレードプロセスを始める前に、アップグレードファイルに幾つかのチェックを行うアップグレードスクリプトが呼び出される。ステップ186で、アップグレードスクリプトは、アップグレード中のシステムがアップグレードできる既知のシステムの1つであることを保証する。システムが既知であれば、1つのアップグレードパッケージが複数の前のバージョンをサポートすることができ、各バージョンは、わずかに異なる一連のアップグレードステップを有することができるので、ステップ188で、アップグレードスクリプトは、システム上で特定のインストールされたバージョンが必要とするアップグレードステップを決定する。これは、ユーザが順次各バージョンをステップスルーすることを要求するのに比べて、アップグレードプロセスを遙かに迅速で且つ簡単にする。
ここで、ステップ190において、アップグレードは、チェックが行われたときにインストールの準備ができている。ステップ192で、アップグレードプロセスは、比較する必要のあるアップグレードにおけるファイルが更にあるかどうかを判断する。このループは、アップグレードに含まれるファイル全てが比較され適切に処理されることを保証する。従って、インストールプロセス中、アップグレードシステムは、アップグレードされているシステム上のファイルの全てを調べる。ステップ194で、システムは、アップグレードのファイルに対して、好ましくはMD5検査合計とすることができる検査合計を計算する。MD5検査合計は、ラインフィード、ソースコード制御システムタグ、及び/又はソースコードおけるホワイトスペースへの変更とは無関係とすることができる。ステップ196で、システムは、検査合計値が前のビルドからの既知の値の1つ(Unix又はDosラインフィードで)であるか、或いはシップドバージョンに一致するかどうかを判断する。合計が既知である場合、カスタマイズが置換中に失われることにはならないので、当該ファイルは安全に置換できると考えられ、よって本方法はステップ192に戻り、次のファイルの検査合計を比較する。検査合計が既知でない場合、ステップ198で、当該ファイルは、ユーザによってチェックされるファイルのリストに追加される。本方法が終了すると、当該リストの一部でないあらゆるファイルは自動的に置換される。次いで、本方法はステップ192に戻り、次のファイルの検査合計を比較する。アップグレードにおけるファイルの全てがチェックされると、本方法はステップ200に進み、ここで検査合計の既知でないファイルのリストがユーザに提示され、これによってユーザは、アップグレード中に置換されるファイルをリストから選択することができるようになる。ステップ202で、オリジナルファイルのアップグレードのファイルへの置換が行われる。このステップでは、検査合計が既知であるファイル並びにリストからユーザによって選択されたファイルが置換される。次にステップ204で、別のスクリプトが実行され、アップグレードの何らかの更なる処理を行う。このようにして、アプリケーションのアップグレードは、ユーザによって行われるどのようなカスタマイズも失うことなく処理される。
図7は、図1に示されたシステムのオフラインクライアントを構成するためのユーザインターフェース210の実施例である。このユーザインターフェースによって、システムは、モバイルクライアントに対する接続を提供するようシステム及びサーバーを構成することが可能になる。これが実施されると、モバイルクライアントは、アプリケーションの小型バージョンとなり、指定されたユーザ名/パスワードが有する全てのデータを自動的に同期させ、アプリケーション変更も同様に同期させることになる。アプリケーションコードの変更は、ファイル単位ベースで同期され、クライアントとサーバーとの間で同じでないファイルだけが同期され、全てのコード同期は、サーバーからクライアントにのみ向かう一方向である。あらゆるメタデータ及びスキーム変更も同じ方向で同期される。サーバー上のコード、メタデータ、構成、スキームに対するあらゆる変更は、自動的にクライアントに同期される。これらの変更はまた差分として同期され、初回以降は全同期ではない。
アプリケーションデータ変更は双方向で同期され、クライアント及びサーバーでの変更はマージされる。この双方向同期は、他の機械からの最新の変更に対してクライアント及びサーバーの両方を更新し、競合解消を処理する。同期中、ユーザは、同期プロセスの進行をユーザに示すユーザインターフェースを取得する。
モバイルクライアント同期はまた、セキュリティ機能を含むことができる。詳細には、システムソフトウェアはPHPで開発されており、ほとんどのPHPプログラムがプレーンテキストであるので、コードは多少盗まれやすい。そうした行為を阻止するために、モバイルクライアントにソースをコピーする前に、ソースの符号化/暗号化バージョンを作成することができる。コード暗号化によるモバイル同期のプロセスは、サーバーから現在のコードを取得し、これをバイナリ実行可能形式に完全暗号化し、次いで、暗号化されたアプリケーションをモバイルクライアントに送り出すことができる。これは、モバイルクライアント機能、サーバー上での変更及び管理を容易にすることを可能にし(サーバー上では未だ暗号化されていないので)、モバイルクライアントユーザは、アプリケーションのソースコードを修正又は盗用するのが極めて困難になる。これは、グローバルスケールでシステムの完全性を向上させる。
本発明によるモバイルクライアントは、サーバー上で利用可能なモジュールの全数のサブセットをサポートすることができる。現在のところ、Home(ホーム)、Calender(カレンダー)、Accounts(アカウント)、Contacts(コンタクト)、Leads(リード)、Opportunities(オポチュニティ)、Quotes(クォート)、Products(製品)、Forecasts(予測)、及びDocuments(文書)がサポートされる。Documentを除き、ユーザがアクセスできる(すなわち見ることのできる)全てのデータが、そのクライアントに同期される。Documentモジュールは常に、ユーザがアクセスする文書のリスト(すなわちタイトル)を同期するが、実際のファイルは同期しない。特定のファイルをクライアントに同期させるために、ユーザは、そのクライアントで最新に維持したい個々のファイルを選択する必要がある。これは、切断時に文書のリストにアクセスし、自分のクライアントに同期させたい各文書にフラグを設定することによって行われる。フラグが文書に対して設定されると、文書の新しいバージョン(実際のファイル)が将来の同期オペレーションで自動的にクライアントに同期される。これは、全文書の同期が場合によっては極めて長い時間を必要とする可能性があるときに行われる。モバイルクライアントは、電子メールを送信せず、監査オペレーションのログを記録することもない。これらのオペレーションは保留され、レコードが同期されたときにサーバーによって実行される。
オフライン/モバイルクライアントであるためには、モバイルクライアントを操作するシステムは、Sugar Enterpriseソフトウェアをインストールする前に、WAMP/LAMPスタックをインストールする必要がある。インストールされるときにはSugar Enterpriseソフトウェアの1つのバージョンだけが存在し、オフラインクライアントとして動作するよう構成するセットアップステップがある。これによりアプリケーションワークが確実になり、ユーザがオフラインクライアントを介してサーバーに接続又は切断された場合にこのアプリケーションワークを確認する。サーバー/システム側では、アドミニストレータは、モバイルクライアント用にサーバーに対する有効なログイン及びパスワードを作成しなくてはならない。ここで、モバイルクライアントのインスールを説明する。ステップは以下を含む。
1.Sugarサーバーに対して通常行うように、WAMP/LAMPスタックをインストールする。
2.SugarのProfessional又はEnterpriseバージョンをインストールし、ユーザ及びデータベースを作成するが、シードデータは読み込まない。
3.アドミニストレータとしてクライアントシステムにログオンする。
4.Admin画面に進み、「Repair(修復)」セクションを選択し、次いで、「Convert to Offline Client(オフラインクライアントに変換)」を選択する。図7の画面。
5.Sugar Servers URLを指定する。例えば、http://localhost/sugar35。
6.サーバーに接続されたときに、このクライアントのユーザが通常使用するログインユーザ名及びパスワードを指定する(例えば、will、will)。
7.実行ボタンを押すと、確認画面が現れ、続けるにはOKボタンを押すか、或いは変換ステップを出るにはキャンセルを押す。変換は通常、1分又は2分を要する。
a.同期処理は最初に、Sugarサーバー上で修正又はカスタマイズされた全てのアプリケーションファイルに対し検証及びコピーを行う。これは、サーバーに行われたあらゆる修正をクライアントシステムが自動的に受け取ることを保証する。
b.同期プロセス中、ユーザは、進行に関する頻繁な更新、同期終了の割合、及びプロセスの現在のステップを受け取ることができる。
c.アプリケーションファイルが同期されると、ユーザにアクセス可能なレコードが同期される。
8.画面が戻り、変換されたことをオフラインクライアントに通知しなくてはならない。
9.この時点で、クライアントインストール(未だアドミニストレータである)からログアウトし、クライアントを有するユーザとしてログインする。
10.全てが適切に行われていることを保証し、ユーザに対する初期同期を行う。同期リンクは、ログアウトリンクの近くに配置されている。「StartSync(同期開始)」を選択する。同期ポップアップが現れ、同期モードを選択することができる。「Prompt(プロンプト)」を選択すると、同期オペレーションが始まる。同期処理が始まると、プログレスバーは、現在のプロセスがどの程度であるかを示す。初期同期は、サーバーからクライアントに移動させるデータがより多いので、通常の平常同期オペレーションよりも長くかかる。
11.同期プロセスが終了すると、これをポップアップで表示する。
a.同期プロセス中においてエラーが生じた場合、エラーは、クライアントルートディレクトリの同期ログファイルにログが記録される。例えば、C:/Program Files/Apache/htdocs/sugar35c/sync.logである。
b.ログは、「details(詳細)」リンクを選択することによって同期ポップアップを介してビューすることができる。
図1に示されるように、CRMシステムは、ソースコードベース(ソースコードレポジトリを形成し、レポジトリは、1つ又はそれ以上のディレクトリ及び1つ又はそれ以上のソースコードファイルを有する)から構成され、ビルド環境は、複数の製品に対する1つのコードベースを使用するために、ソースコードを処理するメカニズムを含むビルドプロセスを含むことができ、ここではアプリケーションのファイル、コード、又はディレクトリにコメントが追加される。ソースコードベースは、データベース110内に記憶することができる。タグは、製品に使用される種々の言語でのコメントである。(例えば、phpの「//」でのラインの終わり又はhtmlコメント)。このように、製品のバージョンでチェックされたデフォルトは、完全に機能的であり、ビルドを必要としない。これは開発を大幅に迅速化する。
図1に示されたシステムの一部であるビルドプロセスは、ソースコードベースで1つ又はそれ以上のタグ(以下で詳細に説明されるようなディレクトリレベルタグ、ファイルレベルタグ、及びコードレベルタグ)を検出するコンピュータコードの複数のラインを有する。ビルドプロセスはまた、製品の1つのバージョンを構築する場合に製品の各バージョンにおけるソースコードベースの一定の部分(ソースコードの特定の部分、ソースコードベースの特定のディレクトリ及び/又はソースコードベースの特定のファイル)を包含又は除外するコンピュータコードの複数のラインを有し、このソースコードベースの部分の包含又は除外は、タグによって制御される。より一般的には、ソースコード再使用システムは、ソースコードレポジトリを有するシステムにおけるビルドプロセスを有することができ、ここでビルドプロセスは、ソースコードシステムで同じステップで行うことができる。
ソフトウェアアプリケーション/製品バージョンのビルドを行っているときには、ビルドプロセスは、特定の製品バージョンに対してのソースコードレポジトリからソースコードのタグを検出し、そのバージョンに含まれるソースコードの部分がソースコードのタグに依存する製品/ソフトウェアアプリケーションを構築する。
ディレクトリレベルタグを用いて、特定のビルドからディレクトリを取り除くか、或いは単にディレクトリを特定のビルドに含めることができる。例えば、自分のプロフェッショナル及びエンタープライズビルドにだけあって、自分のオープンソース製品にはないモジュールが存在する場合、システムは、ビルドプロセスがプロフェッショナル又はエンタープライズビルドを行っていなければ、ビルドプロセスに全フォルダを取り除くように通知するファイルをそのモジュールのフォルダに入れることができる。ファイルレベルタグを用いて、特定のビルドから全ファイルを取り除くか、或いは全ファイルを特定のファイルに対して使用された以外の上記のディレクトリレベルタグの実施例に類似した特定のビルドに単に含めることができる。
コードレベルタグを用いて、コード固有のビルドのセクションを取り除くか、或いはコードの一部に対して使用された以外の上記のディレクトリレベルタグの実施例に類似した特定のビルドに該コード固有のビルドのセクションを単に含めることができる。コードレベルタグでは、開始タグは、除外したいコードの前に配置することができ、終了タグは、コードの後に配置することができる。ビルドプロセスがコードレベルタグになると、当該コードが現在のビルドに対して適切でない場合には、タグ及びコードはソースコードから除去される。タグ及びコードがビルドから除去されると、ブランクラインが所定位置に戻され、アプリケーションの全てのバージョン間のライン照合を行う。これは、ほとんどのエラーメッセージがラインナンバーに言及するので、デバッグにおいて重要なことである。問題のデバッグ時、開発者は通常、特定のビルドを有する必要はない。当該コードがその特定のビルドにある限り、ラインナンバーは正確である。
システムはまた、本発明によるPHPセッションセキュリティ拡張(セキュリティソースコードを使用する)を含むことができる。PHPは、良く知られたサーバー側スクリプト言語である。PHPセッションセキュリティを拡張するために、システムは、アプリケーションGUID及びIPアドレストラッキングを使用することができる。PHPセッションは、特定のサーバー又は特定のサーバークラスタに連係されているが、これらは、そのサーバー上の特定のアプリケーション又はウェブフォルダに対してどのような制約もない。これは、サーバー上の1つのPHPアプリケーションにおけるセッションを作成できるユーザが、そのセッションを同じサーバー上の別のPHPアプリケーションにホップすることができることを意味する。従って、システムは、アプリケーションIDを使用する。アプリケーションIDは、インストール中(又はインストール中に指定されたエンドユーザ)にランダムに生成されたGUIDであり、これを用いて、ユーザがそのアプリケーションで使用しようとしているセッションはこの特定のアプリケーションに対しての有効なセッションであることを検証する。このIDが無いと、システム及びそのコンテンツの全ては、サーバー上にインストールされていた最小セキュアPHPアプリケーションと同じ程度にしか安全ではない。
他のセキュリティ変更は、ユーザがセッション中からアプリケーションを使用しているIPアドレスのトラッキングである。別のユーザが全く違うIPアドレスからアプリケーションを使用しようとする場合には、これが検出され、ユーザは拒否され、セキュリティが侵害されていると考えられるのでセッションは破棄される。デフォルト動作は、IPアドレスの最初の3オクテットが同じである全IPアドレス(例えば、192.168.1.xxx、ここでxxxは任意の番号とすることができる)を同じIPとすることである。これは、セキュリティメカニズムを遮断することなくアウトバウンドトラフィックの負荷バランシングを可能にする。しかしながら、本システムはまた、より厳密に構成することもできる。セキュリティソースコードは、アプリケーションの全エントリーポイントを宣言しなくてはならないときに、エンドユーザがモジュールファイルの1つに直接アクセスできないようにする。更に、セキュリティにおけるいずれかの侵害又はセキュリティにおいて認識された侵害により、当該セッションがシステム攻撃を阻止するために破棄されることになる。
本システムはまた、システムとOutlookとの間のカレンダー同期を提供する。従って、本システムは、Outlookとのインターフェース及びAPIを有し、これによってアウトルックカレンダーのフリー/ビジー表示をシステム内に記憶されたミーティングにマージすることができるようになる。詳細には、本システムは、Outlookフリー/ビジーAPI呼出しを受け付けてこれに応答する。ユーザが、Outlookフリー/ビジーサーバーを構成する場合、システムは、次の2カ月間にユーザがミーティング中としてスケジュールされている時間の全てをサーバーに通知する。ユーザが同じフリー/ビジーサーバーを使用してミーティングをスケジュールしている場合、システムは、他の人がいつ利用可能であるかを確認する。予約されるユーザのフリー/ビジー情報を記憶し繰り返すことに加えて、本システムでは若干深く関与する。詳細には、ユーザのフリー/ビジー情報が要求された場合、そのユーザからのOutlookデータ(利用可能な場合)とシステムに記録されたミーティングの両方から時間のビジーブロックの全ての単一のリストを生成する。これは、人がミーティングをスケジュールしようとしたときには、ビジー時間の単一の組み合わされたリストをOutlookに提供する。更に、システムのカレンダーを調べる場合、自分のシステムミーティングと自分がOutlookにスケジュールしていたミーティングとのビジーブロックの組み合わせリストを確認することができる。他の人とのミーティングをスケジュールする場合、各招待ユーザについての本システム及びOutlookミーティングを得ることになる。カレンダー同期はまた、Lotus(登録商標)Domino、Google(登録商標)Calender、Oracle(登録商標)Calender、SAP(登録商標)Calender、Zimbra(登録商標)Calender、Scalix(登録商標)Calender、又はNovel(登録商標)Groupwiseなどの他の外部カレンダープログラムに提供することができる。
本システムは、ビジネスカードから項目を作成するためのクイックエントリ形式をシステムのユーザに提供するビジネスカード画面を更に含むことができる。ビジネスカード画面によってユーザは、共通のビジネスカードで含まれる情報を即座に入力し、同時にフォローアップ項目及び付加的な注記を作成することもできる。この単一の画面は、サーバーへの1往復で全コンタクト、アカウント、オポチュニティ、ノート、タスク、呼出し、ミーティングなどのクイックエントリを可能にする。これは、情報がユーザにとって使いやすいフォーマットであることを提示するだけでなく、ユーザの多くの時間が節約される。
図8A−Cは、顧客関係管理システムの対話型テンプレート及びテーマの幾つかの実施例を示す。図8Aは、ユーザインターフェースの上部301にオーシャン302を含み、ユーザインターフェースの中央のアイランド304を備えたパラダイステンプレート及びテーマ300を示す。このテンプレート/テーマでは、ユーザインターフェースがアイドル時間中にユーザに示されている間、ボート306がスクリーンセーバとしてユーザインターフェースの上部301全体を移動し、テーマ/テンプレートは対話型となる。図8Bは、山脈の背景とスキーヤー312を有するユーザインターフェースの上部301を備えた細長テンプレート及びテーマ310を示しており、ユーザがアイドル期間中にユーザインターフェースをビューする間、1つ又はそれ以上のスノーフレーク314が、スクリーンセーバとしてユーザインターフェースを舞い降りる。図8Cは、80年代テンプレート及びテーマ320を示しており、ユーザがアイドル期間中にユーザインターフェースをビューしている間エーリアンキャラクター322がスクリーンセーバとしてユーザインターフェースを降りていく。これらのライブ動作テンプレート/テーマに加えて、対話型テンプレート及びテーマは、ゲーム又は他の非表示又は対話型コンテンツをユーザインターフェースに組み込むことができる。図8A−8Cに示されたテンプレート及びテーマ、これらのユーザインターフェースは、種々の他のビジネス・ソフトウエア・アプリケーション及び他のシステムと共に使用することができる。
図9A−Mは、顧客関係管理システムのテンプレート及びテーマの幾つかの実施例を示す。これらのテンプレートは、対話型であってもよく、又は対話型でなくてもよいが、システムのユーザインターフェースのルック及びフィールを変更する。例えば図9Aは、Awesome80’のテーマ及びテンプレートを示し、図9Bは、Final Frontierのテーマ及びテンプレートを示し、図9Cは、Golden Gateのテーマ及びテンプレートを示し、図9Dは、Linksのテーマ及びテンプレートを示し、図9Eは、Loveのテーマ及びテンプレートを示し、図9Fは、Pipelineのテーマ及びテンプレートを示し、図9Gは、Retroのテーマ及びテンプレートを示し、図9Hは、Ripcurlのテーマ及びテンプレートを示し、図9Iは、Sugarのテーマ及びテンプレートを示し、図9Jは、Sugar Classicのテーマ及びテンプレートを示し、図9Kは、Sugar Liteのテーマ及びテンプレートを示し、図9Lは、Sunsetのテーマ及びテンプレートを示し、図9Mは、White Sandsのテーマ及びテンプレートを示す。図9A−9Mに示されたテンプレート及びテーマ、これらのユーザインターフェースは、種々の他のビジネスソフトウェアアプリケーション及び他のシステムと共に使用できる。
以上、本発明の特定の実施形態に関して参照してきたが、この実施形態における変更は、本発明の原理及び精神から逸脱することなく行うことができ、本発明の範囲は添付の請求項によって定義されることは当業者には理解されるであろう。
本発明の種々の特徴を組み入れた本発明による顧客関係管理システムを示す図である。 図1のシステムのユーザインターフェースの実施例を示す図である。 本発明によるクエリーカウンタを備えた顧客関係管理システムを示す図である。 本発明によるモジュールローダモジュールを組み入れた本発明によるアドミニストレーションモジュールのユーザインターフェースの実施例を示す図である。 モジュールローダモジュールを使用してシステムにロードすることができるモジュール用マニフェストコードの実施例を示す図である。 モジュールローダモジュールを使用してシステムにロードすることができるモジュール用マニフェストコードの実施例を示す図である。 本発明によるアップグレードプロセスを示すフローチャートである。 図1に示されたシステムのオフラインクライアントを構成するためのユーザインターフェースの実施例を示す図である。 顧客関係管理システムの対話型テンプレート及びテーマの幾つかの実施例を示す図である。 顧客関係管理システムの対話型テンプレート及びテーマの幾つかの実施例を示す図である。 顧客関係管理システムの対話型テンプレート及びテーマの幾つかの実施例を示す図である。 顧客関係管理システムのテンプレート及びテーマの幾つかの実施例を示す図である。 顧客関係管理システムのテンプレート及びテーマの幾つかの実施例を示す図である。 顧客関係管理システムのテンプレート及びテーマの幾つかの実施例を示す図である。 顧客関係管理システムのテンプレート及びテーマの幾つかの実施例を示す図である。 顧客関係管理システムのテンプレート及びテーマの幾つかの実施例を示す図である。 顧客関係管理システムのテンプレート及びテーマの幾つかの実施例を示す図である。 顧客関係管理システムのテンプレート及びテーマの幾つかの実施例を示す図である。 顧客関係管理システムのテンプレート及びテーマの幾つかの実施例を示す図である。 顧客関係管理システムのテンプレート及びテーマの幾つかの実施例を示す図である。 顧客関係管理システムのテンプレート及びテーマの幾つかの実施例を示す図である。 顧客関係管理システムのテンプレート及びテーマの幾つかの実施例を示す図である。 顧客関係管理システムのテンプレート及びテーマの幾つかの実施例を示す図である。 顧客関係管理システムのテンプレート及びテーマの幾つかの実施例を示す図である。
符号の説明
102 クライアント
104 コントローラ
106 モジュール
108 Sugarビーン
110 データベース
112 行レベルセキュリティ
114 データベース抽象化レイヤ
116 テーマ
118 テンプレート

Claims (66)

  1. 顧客関係管理システムであって、
    クライアントと、
    情報の複数の一部分を含むデータベースと、
    前記クライアントからの要求に基づいて前記データベースから情報の一部分を引き出すために前記データベースにアクセスし、前記要求された情報を含むユーザインターフェースを前記ユーザに表示する1つ又はそれ以上のモジュールと、
    前記クライアントによる前記1つ又はそれ以上のモジュール及び前記データベースへのアクセスを制御する1つ又はそれ以上のコントローラと、
    前記データベースと前記1つ又はそれ以上のコントローラの間に接続されたクエリーカウンタと、
    を備え、
    前記クエリーカウンタが、前記ユーザインターフェースのデータベースに対するクエリーの数を決定付けるコードの1つ又はそれ以上のラインを有する、
    ことを特徴とする顧客関係管理システム。
  2. 前記クエリーカウンタは、前記ユーザインターフェースの各ページに対して、前記ユーザインターフェースのデータベース及び前記ユーザインターフェースの1つ又はそれ以上の部分に対するクエリーの数を決定付けるコードの1つ又はそれ以上のラインを更に含む、
    ことを特徴とする請求項1に記載のシステム。
  3. 前記クエリーカウンタは、前記データベースクエリーを生成した前記ユーザインターフェースの部分に隣接してクエリーの数を表示するコードの1つ又はそれ以上のラインを更に含む、
    ことを特徴とする請求項1に記載のシステム。
  4. 前記クエリーカウンタは、前記データベースクエリーを生成した前記ユーザインターフェースの部分に隣接して前記データベースクエリーのコンテンツを表示するコードの1つ又はそれ以上のラインを更に含む、
    ことを特徴とする請求項1に記載のシステム。
  5. 前記データベースの抽象化レイヤは、スロークエリーをログに記録することができるコードの1つ又はそれ以上のラインを更に含む、
    ことを特徴とする請求項1に記載のシステム。
  6. 前記データベース抽象化レイヤは、前記クエリーを実行するよう要求された実際の時間に設定されるスレショルドに基づいてどのクエリーのログを記録するかを更に制御することができる、
    ことを特徴とする請求項5に記載のシステム。
  7. クライアントと、情報の複数の一部分を含むデータベースと、前記クライアントからの要求に基づいて前記データベースから情報の一部分を引き出すために前記データベースにアクセスし、前記要求された情報を含むユーザインターフェースを前記ユーザに表示する1つ又はそれ以上のモジュールと、前記クライアントによる前記1つ又はそれ以上のモジュール及び前記データベースへのアクセスを制御する1つ又はそれ以上のコントローラとを有する顧客関係管理システムのための顧客関係管理方法であって、該方法が、
    前記ユーザインターフェースの表示中に1つ又はそれ以上のデータベースクエリーを実行する段階と、
    前記データベースと前記1つ又はそれ以上のコントローラとの間に結合されたクエリーカウンタを使用して、前記ユーザインターフェースによる前記データベースのクエリーの数をカウントする段階と、
    を含む方法。
  8. クエリーの数をカウントする段階が、前記ユーザインターフェースの各ページに対して、前記ユーザインターフェースのデータベース及び前記ユーザインターフェースの1つ又はそれ以上の部分に対するクエリーの数を決定付ける段階を更に含む、
    ことを特徴とする請求項7に記載の方法。
  9. 前記クエリーの数をカウントする段階が、前記データベースクエリーを生成した前記ユーザインターフェースの部分に隣接してクエリーの数を表示する段階を更に含む、
    ことを特徴とする請求項7に記載の方法。
  10. 前記クエリーカウンタは、前記データベースクエリーを生成した前記ユーザインターフェースの部分に隣接して前記データベースクエリーのコンテンツを表示するコードの1つ又はそれ以上のラインを更に含む、
    ことを特徴とする請求項7に記載のシステム。
  11. 前記データベース抽象化レイヤは、スロークエリーをログに記録することができるコードの1つ又はそれ以上のラインを更に含む、
    ことを特徴とする請求項7に記載のシステム。
  12. 前記データベース抽象化レイヤは、前記クエリーを実行するよう要求された実際の時間に設定されるスレショルドに基づいてどのクエリーのログを記録するかを更に制御することができる、
    ことを特徴とする請求項11に記載のシステム。
  13. 顧客関係管理システムであって、
    クライアントと、
    情報の複数の一部分を含むデータベースと、
    前記クライアントからの要求に基づいて前記データベースから情報の一部分を引き出すために前記データベースにアクセスし、前記要求された情報を含むユーザインターフェースを前記ユーザに表示する1つ又はそれ以上のモジュールと、
    前記クライアントによる前記1つ又はそれ以上のモジュール及び前記データベースへのアクセスを制御する1つ又はそれ以上のコントローラと、
    ユーザ命令に基づいて、前記1つ又はそれ以上のモジュールによって実装されたソフトウェアアプリケーションに使用される前記モジュールを変更するコードの1つ又はそれ以上のラインを有するモジュールローダと、
    を備える、
    ことを特徴とする顧客関係管理システム。
  14. 前記モジュールローダが、新しいモジュールを前記ソフトウェアアプリケーションに追加するコードの1つ又はそれ以上のラインと、前記ソフトウェアアプリケーションからモジュールを取り除くコードの1つ又はそれ以上のラインとを更に含む、
    ことを特徴とする請求項13に記載のシステム。
  15. 前記モジュールローダが、構成要素をロードするのに使用されるマニフェストファイルを更に含み、前記構成要素は、モジュール、ユーザインターフェーステーマ、言語パッケージ、及び前記ソフトウェアアプリケーションへのパッチのうちの少なくとも1つである、
    ことを特徴とする請求項13に記載のシステム。
  16. 前記マニフェストファイルが、前記構成要素をロードするために前記ソフトウェアアプリケーションのバージョンを示すバージョン変数と、前記構成要素をロードするために前記ソフトウェアアプリケーションのフレーバーを示すフレーバー変数とを更に含み、前記フレーバーが、オープンソースフレーバー、プロフェッショナルフレーバー、又はエンタープライズフレーバーの1つ又はそれ以上である、
    ことを特徴とする請求項15に記載のシステム。
  17. 前記マニフェストファイルが、前記構成要素のユーザ可読名を含む名前変数と、前記構成要素の説明を含む説明変数と、前記構成要素の作成者を含む作成者変数と、前記構成要素が公開された日付を含む公開日付変数と、前記構成要素のバージョンを示すバージョン変数と、前記構成要素のタイプを示すタイプ変数とを更に含む、
    ことを特徴とする請求項16に記載のシステム。
  18. 前記マニフェストファイルが、前記構成要素をコピーするためのファイルコピー命令のセットを含むコピーファイル変数を更に含む、
    ことを特徴とする請求項17に記載のシステム。
  19. クライアントと、情報の複数の一部分を含むデータベースと、前記クライアントからの要求に基づいて前記データベースから情報の一部分を引き出すために前記データベースにアクセスし、前記要求された情報を含むユーザインターフェースを前記ユーザに表示する1つ又はそれ以上のモジュールと、
    前記クライアントによる前記1つ又はそれ以上のモジュール及び前記データベースへのアクセスを制御する1つ又はそれ以上のコントローラとを備える顧客関係管理システムの一部分であるソフトウェアアプリケーションを再構成するための方法であって、該方法が、モジュールローダを使用して、前記ソフトウェアアプリケーションの構成要素をマニフェストファイルに基づいて変更する段階を含み、前記構成要素が、モジュール、ユーザインターフェーステーマ、言語パッケージ、及びパッチのうちの1つである、
    ことを特徴とする方法。
  20. 前記ソフトウェアアプリケーションの構成要素を変更する段階が、前記ソフトウェアアプリケーションに構成要素を追加する段階、又は前記ソフトウェアアプリケーションから構成要素を取り除く段階を更に含む、
    ことを特徴とする請求項19に記載の方法。
  21. 前記マニフェストファイルが、前記構成要素をロードするために前記ソフトウェアアプリケーションのバージョンを示すバージョン変数と、前記構成要素をロードするために前記ソフトウェアアプリケーションのフレーバーを示すフレーバー変数とを更に含み、前記フレーバーが、オープンソースフレーバー、プロフェッショナルフレーバー、又はエンタープライズフレーバーの1つ又はそれ以上である、
    ことを特徴とする請求項19に記載の方法。
  22. 前記マニフェストファイルが、前記構成要素のユーザ可読名を含む名前変数と、前記構成要素の説明を含む説明変数と、前記構成要素の作成者を含む作成者変数と、前記構成要素が公開された日付を含む公開日付変数と、前記構成要素のバージョンを示すバージョン変数と、前記構成要素のタイプを示すタイプ変数とを更に含む、
    ことを特徴とする請求項21に記載の方法。
  23. 前記マニフェストファイルが、前記構成要素をコピーするためのファイルコピー命令のセットを含むコピーファイル変数を更に含む、
    ことを特徴とする請求項22に記載の方法。
  24. オープンソースソフトウェアアプリケーションのアップグレード方法であって、
    既存のオープンソースソフトウェアアプリケーションをアップグレードするためにアップグレードパッケージを受け取る段階と、
    前記アップグレードパッケージにおける各ファイルについて、カスタマイズされていた既存の前記オープンソースソフトウェアアプリケーションにおけるファイルを示すために、前記ファイルが前記ファイルの前のバージョンとマッチしないかどうかを識別する段階と、
    カスタマイズされているとして識別されなかった前記アップグレードパッケージ内の前記ファイルを自動的にアップグレードする段階と、
    前記既存のオープンソースソフトウェアアプリケーションからのカスタマイズが前記アップグレードプロセス中に失われないように、ユーザ命令及びデフォルト論理のうちの1つに基づいて、カスタマイズされているとして識別された前記ファイルを選択的にアップグレードする段階と、
    を含む方法。
  25. 前記カスタマイズされたファイルを識別する段階が、前記アップグレードパッケージにおける各ファイルについて検査合計を計算する段階と、前記計算された検査合計を
    前記ソフトウェアアプリケーションの前回インストールされたバージョンからの前記ファイルについての既知の検査合計値と前記計算された検査合計とを比較する段階を更に含む、
    ことを特徴とする請求項24に記載の方法。
  26. 前記検査合計を計算する段階が、MD5検査合計を計算する段階を更に含む、
    ことを特徴とする請求項25に記載の方法。
  27. 前記検査合計を計算する段階が、ラインフィード、ソースコード制御システムタグ、及び/又は前記ソースコードのホワイトスペースに対する変更とは無関係のMD5検査合計を計算する段階を更に含む、
    ことを特徴とする請求項25に記載の方法。
  28. 顧客関係管理システムであって、
    クライアントと、
    情報の複数の一部分を含むデータベースと、
    前記クライアントからの要求に基づいて前記データベースから情報の一部分を引き出すために前記データベースにアクセスし、前記要求された情報を含むユーザインターフェースを前記ユーザに表示する1つ又はそれ以上のモジュールと、
    前記クライアントによる前記1つ又はそれ以上のモジュール及び前記データベースへのアクセスを制御する1つ又はそれ以上のコントローラと、
    前記サーバー、前記1つ又はそれ以上のモジュール、及び前記1つ又はそれ以上のコントローラに対する定期的な接続性を有するモバイルクライアントと、
    を備え、
    前記モバイルクライアントが、前記サーバー上の前記データベース及びモジュールの1つに変化が生じたとき或いは前記モバイルクライアント上の前記データに変化が生じたときに双方向に同期される、
    ことを特徴とする顧客関係管理システム。
  29. 前記モバイルクライアントが、前記モバイルクライアントのセキュリティを向上させるために前記モジュールの暗号化形式を更に含む、
    ことを特徴とする請求項28に記載のシステム。
  30. 前記モバイルクライアントが、同期中に前記ユーザへの同期進行フィードバックを更に提供する、
    ことを特徴とする請求項28に記載のシステム。
  31. 顧客関係管理システムであって、
    クライアントと、
    情報の複数の一部分を含むデータベースと、
    前記クライアントからの要求に基づいて前記データベースから情報の一部分を引き出すために前記データベースにアクセスし、前記要求された情報を含むユーザインターフェースを前記ユーザに表示する1つ又はそれ以上のモジュールと、
    前記クライアントによる前記1つ又はそれ以上のモジュール及び前記データベースへのアクセスを制御する1つ又はそれ以上のコントローラと、
    前記モジュールのオペレーション中にPHPセッションセキュリティを保護するためのセキュリティソースコードと、
    を備える顧客関係管理システム。
  32. 前記セキュリティソースコードは、インストール中に前記サーバーに対するアプリケーションIDを生成し、各セッションに対して前記アプリケーションID及びIPアドレスを追跡し、前記アプリケーションIDの1つがユーザに対して割り当てられたアプリケーションIDと一致していない場合、或いは前記IPアドレスが前記ユーザに対して割り当てられたIPアドレスと一致していない場合には、前記ユーザは顧客関係管理システムとのPHPセッションへのアクセスが拒否される、
    ことを特徴とする請求項31に記載のシステム。
  33. 前記セキュリティソースコードは、前記アプリケーションの全てのエントリーポイントを宣言する必要があるときに、エンドユーザが前記モジュールファイルの1つに直接アクセスできないようにする、
    ことを特徴とする請求項31に記載のシステム。
  34. セキュリティにおけるあらゆる侵害又はセキュリティにおける認識された侵害により、システム攻撃を阻止するためにPHPセッションが破棄される結果となる、
    ことを特徴とする請求項31に記載のシステム。
  35. 顧客関係管理システムであって、
    クライアントと、
    情報の複数の一部分を含むデータベースと、
    前記クライアントからの要求に基づいて前記データベースから情報の一部分を引き出すために前記データベースにアクセスし、前記要求された情報を含むユーザインターフェースを前記ユーザに表示する1つ又はそれ以上のモジュールと、
    前記クライアントによる前記1つ又はそれ以上のモジュール及び前記データベースへのアクセスを制御する1つ又はそれ以上のコントローラと、
    を備え、
    前記1つ又はそれ以上のモジュールがカレンダーモジュールを更に含み、前記カレンダーモジュールが、外部カレンダープログラムと同期される、
    ことを特徴とする顧客関係管理システム。
  36. 前記外部カレンダープログラムは、Microsoft Outlookである、
    ことを特徴とする請求項35に記載のシステム。
  37. 前記外部カレンダープログラムは、Lotus Domino、Google Calender、Oracle Calender、SAP Calender、Zimbra Calender、Scalix Calender、及びNovel Groupwiseのうちの1つを更に含む、
    ことを特徴とする請求項35に記載のシステム。
  38. 処理ユニットベースシステムであって、
    前記処理ユニットベースシステム上で、ユーザインターフェースが関連付けられたビジネスソフトウェアアプリケーションを実行させる処理ユニットベースシステムと、
    前記ビジネスソフトウェアアプリケーションのユーザインターフェースと関連付けられた1つ又はそれ以上のテーマと、
    を備え、
    前記各テーマが、前記ビジネスソフトウェアアプリケーションを使用してユーザによって選択された前記ビジネスソフトウェアアプリケーションの特定のユーザインターフェースを生成する、
    ことを特徴とする処理ユニットベースシステム。
  39. 前記1つ又はそれ以上のテーマが、前記ユーザインターフェースの移動部分を有する対話型テーマを更に含む、
    ことを特徴とする請求項38に記載のシステム。
  40. 前記対話型テーマの移動部分が、動いているボート、落ちてゆくスノーフレーク、及び動いているエーリアンの1つを更に含む、
    ことを特徴とする請求項39に記載のシステム。
  41. 前記対話型テーマは、前記ユーザインターフェースをビューしている間に前記ユーザによってプレー可能なゲームを更に含む、
    ことを特徴とする請求項39に記載のシステム。
  42. 前記対話型テーマは、アイドル期間中に移動コンテンツを表示するスクリーンセーバを更に含む、
    ことを特徴とする請求項39に記載のシステム。
  43. 前記処理ユニットベースシステムが、顧客関係管理ソフトウェアアプリケーションを有する顧客関係管理システムを更に備える、
    ことを特徴とする請求項38に記載のシステム。
  44. ビジネスソフトウェアアプリケーションのユーザインターフェースを生成するための方法であって、
    ビジネスソフトウェアアプリケーションの特定のユーザインターフェースを生成するテーマを選択する段階と、
    前記ビジネスソフトウェアアプリケーションのユーザインターフェースを生成する段階と、
    を含む方法。
  45. 前記1つ又はそれ以上のテーマが、前記ユーザインターフェースの移動部分を有する対話型テーマを更に含む、
    ことを特徴とする請求項44に記載の方法。
  46. 前記対話型テーマの移動部分が、動いているボート、落ちてゆくスノーフレーク、及び動いているエーリアンの1つを更に含む、
    ことを特徴とする請求項45に記載の方法。
  47. 前記対話型テーマは、前記ユーザインターフェースをビューしている間に前記ユーザによってプレー可能なゲームを更に含む、
    ことを特徴とする請求項45に記載の方法。
  48. 前記対話型テーマは、アイドル期間中に移動コンテンツを表示するスクリーンセーバを更に含む、
    ことを特徴とする請求項45に記載の方法。
  49. 前記処理ユニットベースシステムが、顧客関係管理ソフトウェアアプリケーションを有する顧客関係管理システムを更に備える、
    ことを特徴とする請求項44に記載の方法。
  50. ソフトウェアを配布するためのシステムであって、
    ソースコードベースレポジトリと、
    ビルドプロセスを有するコンピュータベースシステムと、
    を備え、
    前記ビルドプロセスが、前記ソースコードベースレポジトリのタグを検出し、前記タグは、前記ソースコードベースの特定の部分がソフトウェアアプリケーションの1つ又はそれ以上のバージョンに含まれているかどうかを示し、前記ソフトウェアアプリケーションの構築されるバージョンが前記検出されたタグに基づいて前記ソースコードベースの特定の部分を含むように前記ソフトウェアアプリケーションのバージョンを構築し、これによって前記ソフトウェアアプリケーションの各バージョンに含まれる前記ソースコードベースの部分が前記タグによって制御されるようにする、
    ことを特徴とするシステム。
  51. 前記ビルドプロセスが、前記検出されたタグに基づいて前記ソースコードベースの特定の部分を取り除く、
    ことを特徴とする請求項50に記載のシステム。
  52. 前記ビルドプロセスは、前記ソースコードベースの特定の部分が前記ソフトウェアアプリケーションのバージョンから取り除かれたときに、前記ソフトウェアアプリケーションのバージョンから取り除かれたソースコードベースの特定の部分のラインに対応する幾つかのブランクラインを前記ソフトウェアアプリケーションのバージョンに挿入し、前記ソフトウェアアプリケーションのバージョンの前記ラインナンバーを維持する、
    ことを特徴とする請求項51に記載のシステム。
  53. 前記ソースコードベースが、ソースコードの一部分を更に含み、前記タグは、ソースコードの一部分の特定の部分がソフトウェアアプリケーションの1つ又はそれ以上のバージョンに含まれるかどうかを示すコードレベルタグを更に含む、
    ことを特徴とする請求項50に記載のシステム。
  54. 前記ソースコードベースが、ソースコードディレクトリを更に含み、前記タグは、特定のソースコードディレクトリがソフトウェアアプリケーションの1つ又はそれ以上のバージョンに含まれるかどうかを示すディレクトリレベルタグを更に含む、
    ことを特徴とする請求項50に記載のシステム。
  55. 前記ソースコードベースは、ソースコードファイルを更に含み、前記タグは、特定のソースコードファイルがソフトウェアアプリケーションの1つ又はそれ以上のバージョンに含まれるかどうかを示すファイルレベルタグを更に含む、
    ことを特徴とする請求項50に記載のシステム。
  56. 前記バージョンは、オープンソースバージョン、エンタープライズバージョン、及びプロフェッショナルバージョンの1つを更に含む、
    ことを特徴とする請求項50に記載のシステム。
  57. 前記コンピュータベースのシステムは、データの複数の一部分を含むデータベース、前記データベース内のデータの一部分に特定の機能を実行する1つ又はそれ以上の機能モジュール、及び前記1つ又はそれ以上の機能モジュールに結合され前記データベースと前記機能モジュールとの間をインターフェース接続するクラスオブジェクトを有する顧客関係管理システムを更に備える、
    ことを特徴とする請求項50に記載のシステム。
  58. ソフトウェアを配布するためのシステムであって、
    ソースコードベースレポジトリと、
    ビルドプロセスを有するコンピュータベースシステムと、
    を備え、
    前記ビルドプロセスが、前記ソースコードベースレポジトリのタグを検出し、前記タグは、前記ソースコードベースの特定の部分がソフトウェアアプリケーションの1つ又はそれ以上のバージョンに含まれているかどうかを示し、前記ソフトウェアアプリケーションの構築されるバージョンが前記検出されたタグに基づいて前記ソースコードベースの特定の部分を含まないように前記ソフトウェアアプリケーションのバージョンを構築し、これによって前記ソフトウェアアプリケーションの各バージョンに含まれる前記ソースコードベースの部分が前記タグによって制御されるようにする、
    ことを特徴とするシステム。
  59. 1つ又はそれ以上のタグを含むソースコードベースを有するソフトウェアを配布するための方法であって、
    前記ソースコードレベルの特定の部分がソフトウェアアプリケーションの1つ又はそれ以上のバージョンに含まれるかどうかを示すタグを前記ソースコードベースにおいて検出する段階と、
    前記ソフトウェアアプリケーションの構築されるバージョンが前記検出されたタグに基づいて前記ソースコードベースの特定の部分を含むように前記ソフトウェアアプリケーションのバージョンを構築し、これによって、前記ソフトウェアアプリケーションの各バージョンに含まれる前記ソースコードベースの部分が前記タグによって制御されるようにする段階と、
    を含む方法。
  60. 前記ソフトウェアアプリケーションのバージョンを構築する段階が、前記検出されたタグに基づいて前記ソースコードベースの特定の部分を取り除く段階を更に含む、
    ことを特徴とする請求項59に記載の方法。
  61. 前記ソフトウェアアプリケーションのバージョンを構築する段階が、前記ソースコードベースの特定の部分が前記ソフトウェアアプリケーションのバージョンから取り除かれたときに、前記ソフトウェアアプリケーションのバージョンから取り除かれた前記ソースコードベースの特定の部分のラインに対応する幾つかのブランクラインを前記ソフトウェアアプリケーションのバージョンに挿入し、前記ソフトウェアアプリケーションのバージョンのラインナンバーを維持する段階を含む、
    ことを特徴とする請求項59に記載の方法。
  62. 前記ソースコードベースが、ソースコードの一部分を更に含み、前記タグは、ソースコードの一部分の特定の部分がソフトウェアアプリケーションの1つ又はそれ以上のバージョンに含まれるかどうかを示すコードレベルタグを更に含む、
    ことを特徴とする請求項59に記載の方法。
  63. 前記ソースコードベースが、ソースコードディレクトリを更に含み、前記タグは、特定のソースコードディレクトリがソフトウェアアプリケーションの1つ又はそれ以上のバージョンに含まれるかどうかを示すディレクトリレベルタグを更に含む、
    ことを特徴とする請求項59に記載の方法。
  64. 前記ソースコードベースは、ソースコードファイルを更に含み、前記タグは、特定のソースコードファイルがソフトウェアアプリケーションの1つ又はそれ以上のバージョンに含まれるかどうかを示すファイルレベルタグを更に含む、
    ことを特徴とする請求項59に記載の方法。
  65. 前記バージョンは、オープンソースバージョン、エンタープライズバージョン、及びプロフェッショナルバージョンの1つを更に含む、
    ことを特徴とする請求項59に記載の方法。
  66. 1つ又はそれ以上のタグを含むソースコードベースを有するソフトウェアを配布するための方法であって、
    前記ソースコードレベルの特定の部分がソフトウェアアプリケーションの1つ又はそれ以上のバージョンに含まれるかどうかを示すタグを前記ソースコードベースにおいて検出する段階と、
    前記ソフトウェアアプリケーションの構築されるバージョンが前記検出されたタグに基づいて前記ソースコードベースの特定の部分を含まないように前記ソフトウェアアプリケーションのバージョンを構築し、これによって、前記ソフトウェアアプリケーションの各バージョンに含まれる前記ソースコードベースの部分が前記タグによって制御されるようにする段階と、
    を含む方法。
JP2008526295A 2005-08-12 2006-08-14 顧客関係管理システム及び方法 Pending JP2009508190A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US70782005P 2005-08-12 2005-08-12
PCT/US2006/031749 WO2007064374A2 (en) 2005-08-12 2006-08-14 Customer relationship management system and method

Publications (1)

Publication Number Publication Date
JP2009508190A true JP2009508190A (ja) 2009-02-26

Family

ID=38092683

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008526295A Pending JP2009508190A (ja) 2005-08-12 2006-08-14 顧客関係管理システム及び方法

Country Status (4)

Country Link
US (5) US20070143165A1 (ja)
EP (1) EP1924226A2 (ja)
JP (1) JP2009508190A (ja)
WO (1) WO2007064374A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101819508B1 (ko) 2011-07-25 2018-03-02 삼성전자주식회사 휴대용 단말기에서 어플리케이션의 테마를 변경하기 위한 장치 및 방법

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8200775B2 (en) 2005-02-01 2012-06-12 Newsilike Media Group, Inc Enhanced syndication
US20080195483A1 (en) * 2005-02-01 2008-08-14 Moore James F Widget management systems and advertising systems related thereto
US8140482B2 (en) 2007-09-19 2012-03-20 Moore James F Using RSS archives
US8700738B2 (en) * 2005-02-01 2014-04-15 Newsilike Media Group, Inc. Dynamic feed generation
US8200700B2 (en) 2005-02-01 2012-06-12 Newsilike Media Group, Inc Systems and methods for use of structured and unstructured distributed data
US9202084B2 (en) 2006-02-01 2015-12-01 Newsilike Media Group, Inc. Security facility for maintaining health care data pools
US20070050446A1 (en) 2005-02-01 2007-03-01 Moore James F Managing network-accessible resources
US8347088B2 (en) 2005-02-01 2013-01-01 Newsilike Media Group, Inc Security systems and methods for use with structured and unstructured data
US9129038B2 (en) 2005-07-05 2015-09-08 Andrew Begel Discovering and exploiting relationships in software repositories
US8954511B2 (en) * 2005-11-01 2015-02-10 Blackberry Limited System and method for collecting and presenting records in a journal on an electronic device
US20080046369A1 (en) * 2006-07-27 2008-02-21 Wood Charles B Password Management for RSS Interfaces
US8522240B1 (en) * 2006-10-19 2013-08-27 United Services Automobile Association (Usaa) Systems and methods for collaborative task management
US20090070744A1 (en) * 2007-08-28 2009-03-12 Sugarcrm Inc. CRM SYSTEM AND METHOD HAVING DRILLDOWNS, ACLs, SHARED FOLDERS, A TRACKER AND A MODULE BUILDER
US20080276190A1 (en) * 2007-04-03 2008-11-06 Sugarcrm Inc. Customer Relationship Management System with Quicknotes
US8612538B2 (en) * 2007-08-21 2013-12-17 Honeywell International Inc. System and method for upgrading telemonitor unit firmware
US8122040B2 (en) 2007-08-29 2012-02-21 Richard Banister Method of integrating remote databases by automated client scoping of update requests over a communications network
US7730005B2 (en) * 2007-12-28 2010-06-01 International Business Machines Corporation Issue tracking system using a criteria rating matrix and workflow notification
US8515727B2 (en) * 2008-03-19 2013-08-20 International Business Machines Corporation Automatic logic model build process with autonomous quality checking
US9141934B2 (en) 2008-04-07 2015-09-22 Blackberry Limited Techniques for deploying virtual software applications on desktop computers
EP2289030A4 (en) * 2008-04-29 2011-08-10 Sugarcrm Inc COMMERCIAL SOFTWARE APPLICATION SYSTEM AND METHOD
US8352445B2 (en) * 2008-05-23 2013-01-08 Microsoft Corporation Development environment integration with version history tools
CA2990628A1 (en) * 2008-12-11 2010-06-17 Sugarcrm Inc. Business software application system and method
US20100162205A1 (en) * 2008-12-23 2010-06-24 Cisco Technology, Inc. Apparatus and method for automatically generating capability statements for management interfaces
CA2708911C (en) 2009-07-09 2016-06-28 Accenture Global Services Gmbh Marketing model determination system
JP5471883B2 (ja) * 2009-07-17 2014-04-16 株式会社リコー 情報処理装置、情報処理方法、情報処理プログラム
US8825561B2 (en) * 2009-08-10 2014-09-02 International Business Machines Corporation Method and system of determining a prioritized list of users related to a given goal
CA2712569C (en) 2009-08-31 2016-04-26 Accenture Global Services Gmbh Adaptive analytics multidimensional processing system
US8825509B2 (en) * 2009-10-23 2014-09-02 Salesforce.Com, Inc. System, method and computer program product for leveraging a customer relationship management system to send meeting invitations
KR20110080448A (ko) * 2010-01-06 2011-07-13 삼성전자주식회사 애플리케이션 구축 시스템 및 그 방법
US8195741B2 (en) * 2010-05-28 2012-06-05 Microsoft Corporation Cached and server views with automatic caching and smooth scrolling
US9110686B2 (en) * 2010-06-08 2015-08-18 Microsoft Technology Licensing, Llc Web client command infrastructure integration into a rich client application
US9411855B2 (en) * 2010-10-25 2016-08-09 Salesforce.Com, Inc. Triggering actions in an information feed system
US9218179B2 (en) * 2011-07-15 2015-12-22 Integware, Inc. Software automated data and data model upgrade system
TW201344488A (zh) * 2012-04-20 2013-11-01 Hon Hai Prec Ind Co Ltd Php程式保護方法及系統
US8775682B1 (en) * 2012-05-08 2014-07-08 Google Inc. Data synchronization with eventual consistency
US9773216B2 (en) * 2013-02-21 2017-09-26 Atlassian Pty Ltd Workflow sharing
US9197643B2 (en) 2013-07-22 2015-11-24 Bank Of America Corporation Application and permission integration
US10339113B2 (en) 2013-09-21 2019-07-02 Oracle International Corporation Method and system for effecting incremental changes to a repository
US9626239B2 (en) * 2014-01-06 2017-04-18 Red Hat, Inc. Bug reporting and communication
US10140667B2 (en) * 2014-05-16 2018-11-27 International Business Machines Corporation Social customer relationship management opportunity templating
US10101974B2 (en) * 2014-07-31 2018-10-16 Angel.Com Incorporated Contact center application creating using reusable program modules
US10628800B2 (en) * 2014-10-28 2020-04-21 Sugarcrm Inc. Meeting launcher
US9639350B2 (en) * 2014-12-15 2017-05-02 Red Hat, Inc. Tagging non-upstream source code
US10002119B2 (en) 2015-01-06 2018-06-19 Northrop Grumman Systems Corporation Aggregation and tracked changes of information from multiple databases using unique identification method
US20160307202A1 (en) * 2015-04-14 2016-10-20 Sugarcrm Inc. Optimal sales opportunity visualization
CN104965687B (zh) * 2015-06-04 2017-12-08 北京东方国信科技股份有限公司 基于指令集生成的大数据处理方法及装置
US10120661B2 (en) * 2015-07-16 2018-11-06 Sugarcrm Inc. Multi-flavored software execution from a singular code base
CN105159718B (zh) * 2015-09-06 2018-11-16 杭州华为数字技术有限公司 固件升级方法及装置
CN115997008A (zh) 2020-04-22 2023-04-21 艾欧凡斯生物治疗公司 协调用于患者特异性免疫疗法的细胞的制造的系统和方法
US11507730B1 (en) 2021-09-30 2022-11-22 Atlassian Pty Ltd. User interface with command-line link creation for generating graphical objects linked to third-party content

Family Cites Families (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3857813A (en) * 1971-11-05 1974-12-31 Dow Chemical Co Incorporation of reinforcing fibers into olefin polymers
US3779592A (en) * 1972-06-01 1973-12-18 Rockwell International Corp High strength vehicle bumper
US4460205A (en) * 1981-12-21 1984-07-17 Concept Anaylsis Corporation Energy absorbing vehicle bumper assembly
US4622192A (en) * 1984-01-10 1986-11-11 Phillips Petroleum Company Stampable sheets of glass/carbon fiber mat reinforced polymers of olefin and method of preparation
US5132172A (en) * 1986-06-11 1992-07-21 Minnesota Mining And Manufacturing Company Primed polyolefin surfaces for epoxy adhesives
US4880704A (en) * 1988-03-28 1989-11-14 Allied-Signal Inc. Organic reinforcing fibers with bundle separation during fiber cutting and storage
GB9006675D0 (en) * 1990-03-26 1990-05-23 British Telecomm Optical apparatus
JP2858160B2 (ja) * 1990-05-11 1999-02-17 本田技研工業株式会社 Al合金製プレス成形板の接着構造
US5106928A (en) * 1991-04-29 1992-04-21 National Starch And Chemical Investment Holding Corporation Acrylic adhesive composition and organoboron initiator system
US5154462A (en) * 1991-12-23 1992-10-13 Ford Motor Company Method for making a bonded vehicular cross member bumper beam from two materials
US5269574A (en) * 1992-02-10 1993-12-14 Exxon Chemical Patents Inc. High performance vehicle bumper
US5456957A (en) * 1992-03-06 1995-10-10 The Standard Products Company Body side molding and method
US5576558A (en) * 1992-05-21 1996-11-19 The Yokohama Rubber Co., Ltd. Primer composition containing polyisocyanate and phosphate for bonding to a hard-to-bond material
CH683683A5 (de) * 1992-05-22 1994-04-29 Alusuisse Lonza Services Ag Kunststoffolienverbunde und Verpackungen.
DE59410387D1 (de) * 1993-01-29 2004-10-21 Ticona Gmbh Faserverstärktes Cycloolefincopolymer-Material, Verfahren zu seiner Herstellung und Formkörper aus dem Material
US5364159A (en) * 1993-06-15 1994-11-15 Davidson Textron Inc. Structural instrument panel carrier assembly
AUPM345994A0 (en) * 1994-01-21 1994-02-10 Commonwealth Scientific And Industrial Research Organisation Surface treatment of polymers
EP0746573B1 (en) * 1994-02-22 2001-06-06 Minnesota Mining And Manufacturing Company Polymerizable compositions made with polymerization initiator systems based on organoborane amine complexes
US5575526A (en) * 1994-05-19 1996-11-19 Novamax Technologies, Inc. Composite laminate beam for radiator support
US6168226B1 (en) * 1994-05-19 2001-01-02 Henkel Corporation Composite laminate automotive structures
DE4432271A1 (de) * 1994-09-09 1996-03-14 Teroson Gmbh Verfahren zum Verbinden von Kunststoff-Formteilen
US5690780A (en) * 1995-02-22 1997-11-25 Minnesota Mining And Manufacturing Company Polymerizable compositions made with polymerization initiator systems based on organoborane amine complexes
US5616796A (en) * 1995-04-14 1997-04-01 Minnesota Mining And Manufacturing Company Organoborane polyamine complexes and adhesive composition made therewith
US5621143A (en) * 1995-04-14 1997-04-15 Minnesota Mining And Manufacturing Company Organoborane polyoxyalkylenepolyamine complexes and adhesive compositions made therewith
US5686544A (en) * 1995-08-11 1997-11-11 Minnesota Mining And Manufacturing Company Organoborane polyamine complex initiator systems and polymerizable compositions made therewith
DE19536961A1 (de) * 1995-10-04 1997-04-10 Henkel Kgaa Polyolefin-basierte Formteile und Folien mit permanent verbesserten Oberflächeneigenschaften
AU7250596A (en) * 1995-11-07 1997-05-29 Minnesota Mining And Manufacturing Company Initiator system and adhesive composition made therewith
US5863642A (en) * 1996-07-26 1999-01-26 Fabrene, Inc. Water resistant and vapor phase corrosion inhibitor composite material
US5905492A (en) * 1996-12-06 1999-05-18 Microsoft Corporation Dynamically updating themes for an operating system shell
US5853857A (en) * 1997-02-20 1998-12-29 The Budd Company Windshield frame
US6082792A (en) * 1998-05-07 2000-07-04 General Electric Company Vehicle bumper
DE69823562T2 (de) 1998-06-12 2005-04-21 Minnesota Mining & Mfg Initiatorsystem sowie damit hergestellte polymerisierbare zusammensetzungen
US6109586A (en) * 1998-06-15 2000-08-29 Donnelly Corporation Filled polyolefin mirror support
US6275223B1 (en) * 1998-07-08 2001-08-14 Nortel Networks Limited Interactive on line code inspection process and tool
JP4662637B2 (ja) * 1998-12-05 2011-03-30 クローダ インターナショナル パブリック リミティド カンパニー 乳化システム及び乳剤
US7080322B2 (en) * 1998-12-18 2006-07-18 Tangis Corporation Thematic response to a computer user's context, such as by a wearable personal computer
US6634702B1 (en) * 1999-06-23 2003-10-21 Dynamit Nobel Kunstsoff Gmbh Front-end module for a motor vehicle
US6587847B1 (en) * 1999-08-24 2003-07-01 Stream International, Inc. Method and system for monitoring knowledge use
US6421979B1 (en) * 1999-09-16 2002-07-23 Basf Aktiengesellschaft Composite constructional element
FR2801026B1 (fr) * 1999-11-15 2002-02-15 Plastic Omnium Cie Face avant technique automobile, sans radiateur
US6624099B1 (en) * 1999-12-17 2003-09-23 Basell Poliolefine Italia S.P.A. Glass-reinforced multi-layer sheets from olefin polymer materials
US6806330B1 (en) * 1999-12-17 2004-10-19 Dow Global Technologies Inc. Amine organoborane complex polymerization initiators and polymerizable compositions
DE10015984A1 (de) * 2000-03-31 2001-10-18 Ticona Gmbh Langfaserverstärkte Polyolefin-Kunststoff Struktur und daraus hergestellte Formkörper
US7137066B2 (en) * 2000-04-06 2006-11-14 Microsoft Corporation Binary cache file format for themeing the visual appearance of a computer system
EP1195675A1 (en) * 2000-07-14 2002-04-10 Sun Microsystems, Inc. Comment driven processing
US7752214B2 (en) * 2000-09-01 2010-07-06 Op40, Inc. Extended environment data structure for distributed digital assets over a multi-tier computer network
US6895438B1 (en) * 2000-09-06 2005-05-17 Paul C. Ulrich Telecommunication-based time-management system and method
GB0114684D0 (en) * 2001-06-15 2001-08-08 Dow Chemical Co Automobile assembly
JP4762444B2 (ja) * 2001-06-15 2011-08-31 富士重工業株式会社 車両のフロントエンド構造
EP1410258A4 (en) * 2001-06-22 2007-07-11 Inc Nervana SYSTEM AND METHOD FOR RECALLING, MANAGING, DELIVERING AND PRESENTING KNOWLEDGE
US7188143B2 (en) * 2001-07-06 2007-03-06 Yahoo! Inc. Messenger-controlled applications in an instant messaging environment
US20030044553A1 (en) * 2001-08-23 2003-03-06 Ravi Ramanathan Fuel tanks
US6712426B2 (en) * 2001-10-17 2004-03-30 Textron Automotive Company, Inc. Motor vehicle front end structure
US7219140B2 (en) * 2001-12-05 2007-05-15 Dennis Craig Marl Configuration and management systems for mobile and embedded devices
DE60228486D1 (de) * 2001-12-17 2008-10-02 Decoma Int Inc Vordermodulstruktur mit komponententrägerplatte
CN100363388C (zh) * 2001-12-27 2008-01-23 玻璃纤维日本株式会社 玻璃纤维用上浆组合物,烯烃树脂增强用玻璃纤维,纤维增强模制品用烯烃树脂组合物制法
US20040003383A1 (en) * 2002-06-28 2004-01-01 Microsoft Corporation Stripping of unnecessary information from source code
US7160944B2 (en) * 2003-06-17 2007-01-09 Crompton Corporation Process for the preparation of a polyolefin emulsion and hybrid polyolefin-polyurethane dispersion derived therefrom
US20050066324A1 (en) * 2003-09-22 2005-03-24 Microsoft Corporation Method and system for distributing and installing software
US20050216486A1 (en) * 2004-03-26 2005-09-29 Lucent Technologies Inc. Methods and systems for software release management
GB2416046A (en) * 2004-05-20 2006-01-11 Symbian Software Ltd Automated software update
US20070271552A1 (en) * 2006-05-19 2007-11-22 Pulley Robert A System and method for packaging software
US20090210245A1 (en) * 2007-12-28 2009-08-20 Edwin Leonard Wold Drawing and data collection systems
US20090271768A1 (en) * 2008-04-24 2009-10-29 International Business Machines Corporation Discriminating program code updates after merging for live review
WO2009132261A1 (en) * 2008-04-25 2009-10-29 Vmware, Inc. Updating a file using differences and file format therefor
US8291403B2 (en) * 2008-06-30 2012-10-16 Symantec Operating Corporation Install-unit upgrade using dynamic configuration data manipulation and merging

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101819508B1 (ko) 2011-07-25 2018-03-02 삼성전자주식회사 휴대용 단말기에서 어플리케이션의 테마를 변경하기 위한 장치 및 방법

Also Published As

Publication number Publication date
US9342292B2 (en) 2016-05-17
US8489543B2 (en) 2013-07-16
US20070150482A1 (en) 2007-06-28
EP1924226A2 (en) 2008-05-28
WO2007064374A3 (en) 2009-04-16
WO2007064374A9 (en) 2007-08-23
US20130298114A1 (en) 2013-11-07
US20070143747A1 (en) 2007-06-21
US7941798B2 (en) 2011-05-10
US20090070755A1 (en) 2009-03-12
US20070143165A1 (en) 2007-06-21
WO2007064374A2 (en) 2007-06-07

Similar Documents

Publication Publication Date Title
US9342292B2 (en) Customer relationship management system and method
US20230289162A1 (en) Systems and methods for exporting, publishing, browsing and installing on-demand applications in a multi-tenant database environment
US20110145805A1 (en) Customer relationship management system and method
US8655738B2 (en) Contextual computing system
US20080148248A1 (en) Automatic software maintenance with change requests
US20080028021A1 (en) Customer relationship management system and method
WO2010068930A1 (en) Business software application system and method
Pavić Redmine Cookbook
Callahan Mastering Windows SharePoint Services 3.0
Swinbank Publishing to ADF
Kurtz et al. Pro Drupal as an Enterprise Development Platform
Mosby et al. Mastering system center configuration manager 2007 R2
Decock et al. Consolidating student services with Liferay
Bryce et al. Code Distribution Process-Definition of Evaluation Metrics
Matthews et al. Installing, Upgrading and Maintaining Oracle Applications 11i (Or, When Old Dogs Herd Cats-Release 11i Care and Feeding)
Swinbank Azure Data Factory by Example