JP2005508030A - カスタマイズ可能な製品の構築子を生成するための方法 - Google Patents
カスタマイズ可能な製品の構築子を生成するための方法 Download PDFInfo
- Publication number
- JP2005508030A JP2005508030A JP2003525416A JP2003525416A JP2005508030A JP 2005508030 A JP2005508030 A JP 2005508030A JP 2003525416 A JP2003525416 A JP 2003525416A JP 2003525416 A JP2003525416 A JP 2003525416A JP 2005508030 A JP2005508030 A JP 2005508030A
- Authority
- JP
- Japan
- Prior art keywords
- product
- component
- customizable
- customizable product
- instance
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0621—Item configuration or customization
Abstract
本出願は、カスタマイズ可能な製品の構築子を生成するための方法及び装置に関するものである。構築子は、製品又はサービス提供者によって開発されるソフトウェアツールであり、これにより、消費者は自己の固有の要求に適合するような製品を見つけることが可能になる。いくつかの場合において、構築子は、販売専門員が行うであろうように消費者を誘導するのを助ける、一連のビジネス規則と統合される。製品及びサービスの構築子の使用により、ビジネスは相談販売を取り扱うことのできる完全に一体化された処理及びシステム、込み入った構成、及び、複雑な製品の関連性及び選択を利用することができる。
Description
【技術分野】
【0001】
本発明は、電算処理分野に関するものである。もっと詳細に述べると、本発明は、カスタマイズ可能な製品の生成及び提供に関するものである。
【背景技術】
【0002】
インターネットは、大多数の企業に、大勢の消費者に対して製品を宣伝及び販売する新たな機会を提供したが、しかしながら、複雑又はカスタマイズ可能な製品を販売する企業は、依然として重大な課題に直面している。カスタマイズ可能な製品とは、他の製品又はコンポーネント製品から構成される製品である。コンポーネント製品は、典型的には、カスタマイズ可能な製品を作るとき互いに補い合い、それにより、消費者がコンポーネント製品を一群として購入する時には、割り引きされた値段を支払うことが潜在的に可能となる。
【0003】
例えば、コンピュータ会社は、ディスクドライブ及びモニター、さらには他の形式のコンピュータコンポーネントも販売することができる。これらの会社はまた、割り引かれた値段でコンピューターシステムを構成するために、コンピュータコンポーネントを一つにまとめることもできる。コンピューターシステムを購入したい消費者は、各コンポーネントについて、幾つかの選択肢から選ぶことができる。例えばデスクトップコンピュータを購入する時、会社側は、消費者に選択するための3つのモニターを提供することができる。カスタマイズ可能な製品を構成するコンポーネントの数が増えるにつれて、消費者がどのコンポーネントを選択するかを決定する意思決定の過程はより複雑になる。
【0004】
殆どのビジネスは、消費者が製品、又は製品の組み合わせを選択するのを助ける親切な販売専門員によりサポートされ、これは消費者の個別の要求を最もよく満たすものである。インターネット上での購入及び販売は、消費者が正しい製品を選択するように誘導するために専門販売員を利用できないため、より問題となる。コンポーネントがどのように相互関連するかという説明なしに、各下位コンポーネントについての製品情報へのオンラインアクセスを提供することは、充分ではない。消費者への忠誠心は、今日の大変競争の激しいオンライン環境において、非常に一過性なものとなることがあり、かつ、そこでがっかりした消費者は、競合相手のウェブサイトで容易に代替品を探すことができる。ビジネスは、相談販売を取り扱うことのできる完全に一体化された処理及びシステム、込み入った構成、及び、複雑な製品の関連性及び選択を利用するものであることが望ましい。
【0005】
これを達成するために、全ての産業における組織は、ますます製品及びサービス構築子を使用するようになっている。構築子は、製品又はサービス提供者によって開発されるソフトウェアツールであり、これにより、消費者は自己の固有の要求に適合するような製品を見つけることが可能になる。いくつかの場合において、構築子は、販売専門員が行うであろうように消費者を誘導するのを助ける、一連のビジネス規則と一体化されたものとなる。
【0006】
しかしながら今日では、構築子は単なるポイント的な製品であり、複雑な複数経路の販売環境、及びアプリケーション統合要求を有する組織の要望に完全に対処するのではない。これらの構築子は、製品の関連性及びビジネス規則を定めるためには、使用しにくく、維持するのにコストがかかり、かつ更新するのが大変なモデル化ツールをベースとする複雑な手続き型プログラミングをしばしば使用する。
【0007】
これら構築子は、本質的には、一まとまりのあらかじめ定められた「バッグ」を含む大きな買い物車として扱われ、このバッグはあらゆる可能なコンポーネント製品に対して一つ存在する。従って、サポートされる構築規則は、加えられる各コンポーネント製品の合計数に制限を与えるだけである。それゆえ、このように脆弱に構築されたフレームワークの中でうまく実行できない構築規則論を持つ、多くの構築子が存在する。
【0008】
例えば、コンピュータ及び電源供給装置から構成され、どのコンピュータも電源供給装置を持たなければならない構築子を想定する。さらに、アメリカのコンピュータは110Vの電源供給を必要とし、その一方でヨーロッパのコンピュータは220Vの電源供給を必要とすると仮定する。この場合、例えば、各場所において一つずつ、二つのコンピュータを持つという指示を、現行の構築子では正しくモデル化することが困難である。もし構築規則が、不適合なコンピュータ及び電源を互いに排除しなければならないこと意味する場合には、望まれるコンピュータシステムの双方を、同じ順序で一緒に配置することはできない。けれども、そのような構築規則が存在しない場合には、誤って互換性のない単一システムを構築することも可能となる。これは結局、製品が単に「一緒に袋詰めされる」からである。
【0009】
構築子ベースの手続き型プログラミングにおけるもう一つの問題は、構築子の変更をするときにかかる時間のずれである。構築子は通常、販売されている製品の専門家の助けを借りて、設計及びモデル化される。販売専門員又は製品管理者のような構築の専門家は、カスタマイズ可能な製品を作るときのコンポーネント製品間の関係を、ソフトウェア設計者に説明する。次にソフトウェア技術者は、製品を顧客に発表するためにソフトウェアをプログラムする。
【0010】
多くの場合、構築子の更新は、いろいろな構築の専門家から要求された構築子の変更を受け入れるソフトウェア技術者から成り立つ。次にソフトウェア技術者は、構築子のソフトウェアの手続き型プログラミング指向のソースコード中に、新たな構成要素及び/又は構築規則を書き直す。それゆえ通常、構築子ビジネスモデルに要求された変更と、ソフトウェア技術者がソフトウェアを書き直す時間との間には、大きな時間のずれが存在する。
【0011】
大きなプログラミングの時間遅れは、販売サイクルを延ばすような、手に入れにくく、かつ不正確な情報を招くことになり、不正確な見積書及び注文書の割合を増やし、より多数の返品によりコストが上がり、かつ新しい製品を市場に導入する時期を遅らせることとなる。これら能率の悪い、かつ信頼性の低い構築子は、しばしば収入を損失させ、及び顧客を失望させるという結果を招く。新しいカスタマイズ可能な製品及びコンポーネント製品の割合が増加するにつれて、これらの問題は急増する。
【0012】
(発明の詳細な説明)
カスタマイズ可能な製品の構築子を生成するための方法及び装置を説明する。以下の説明では、本発明の完全な理解を与えるために多数の具体的な詳細が示される。しかしながら、これら特定の詳細なしでも本発明を実施できることを、理解するであろう。他の例では、本発明を曖昧にしないようにするため、周知の回路、構造、及び技術は詳しく示されていない。
【0013】
図面に示される技術は、コンピュータ上で格納及び実行されるコード、及びデータを使って実践することができる。このようなコンピュータは、磁気ディスク;光ディスク;ランダムアクセスメモリ;読み出し専用メモリ;フラッシュメモリデバイス;電気、光、又はその他の形式の伝播信号(例えば、搬送波、赤外線信号、レーザー、デジタル信号等);等のような機械読み取り可能な媒体を使って、コード及び/又はデータを格納及び/又は(内部で、及びネットワーク上の他のネットワーク要素と)通信する。もちろん、本発明の一又はそれ以上の部分は、ソフトウェア、ファームウェア、及び/又はハードウェアの如何なる組み合わせを使っても実装することができる。
【0014】
一実施形態では、さらに説明するように、カスタマイズ可能な製品の構築子は、関係のあるカスタマイズ可能な、かつコンポーネントのクラスのセット(例えば、製品又はサービス)により、オブジェクト指向クラス階層から引き出される。一実施形態では、カスタマイズ可能な製品の基盤構造を定義する属性を含む。コンポーネント製品、カスタマイズ可能なクラス規則、及びカスタマイズ可能なユーザーインターフェース(UI)クラスは、カスタマイズ可能な製品クラスのサブクラスとしてモデル化されることができ、かつカスタマイズ可能な製品クラスから属性を継承することができる。消費者がカスタマイズ可能な製品のインスタンスを作る時、これらのクラスからカスタマイズ可能なオブジェクトのインスタンスを生成することができる。
【0015】
一実施形態では、構築子の処理は、モデル化セッション及び実行時セッションという2つの別個のセッションに分けられる。モデル化セッションの間、構築の専門家(例えば、販売員又は製品管理者)は構築子を設計する。図1は、本発明の一実施形態による、オブジェクト指向構築子のモデル化のブロックダイヤグラムを示している。ブロック110では、新しいカスタマイズ可能な製品が定義された属性で作成され、かつ制御はブロック120に移る。ブロック120では、新しいカスタマイズ可能な製品がクラスに割り当てられ、かつ制御はブロック130に移る。これは、カスタマイズ可能な製品のクラス階層において親クラスになる。
【0016】
ブロック130では、コンポーネント製品がカスタマイズ可能な製品クラスに加えられ、かつ制御はブロック140に移る。コンポーネント製品はサブクラスであり、かつカスタマイズ可能な製品クラスの属性を継承する。ブロック140では、カスタマイズ可能な規則が カスタマイズ可能な製品クラス構造に加えられ、かつ制御はブロック150に移る。ここで、カスタマイズ可能な規則は、構築の専門家により設計することができ、条件、及び消費者が自己の要求を満たす最適な解決法を購入することを保証するコンポーネント製品間の引金となる動作を定義する。
【0017】
ブロック150では、カスタマイズ可能なユーザーインターフェース(UI)はカスタマイズ可能な製品クラス構造にマッピングされ、それにより構築の専門家が、カスタマイズ可能な製品に合わせてコンポーネント製品のユーザーインターフェースを仕立てることが可能になる。最後に、ブロック160で、構築子が実行時セッションに開放され、消費者がカスタマイズ可能な製品を作ることが可能になる。
【0018】
認識するであろうように、クラス属性及びクラス規則の継承のようなセッションのモデル化のオブジェクト指向の性質は、構築子を構築する複雑さを少なくし、構築の専門家が構築子に必須の変更をすることを考慮し、かつモデル化から実行時までの時間のズレを減少させる。
【0019】
実行時セッションの間、消費者(例えば、カスタマイズ可能な製品を構築したい人)は、カスタマイズされた製品又はサービスを構築するため、構築の専門家によって設計された構築子にアクセスする。一実施形態では、カスタマイズ可能な製品の構築が、消費者により選択された特定のカスタマイズ可能な製品クラスのために設計されたユーザーインターフェース(UI)を通して、消費者により実行される。カスタマイズ可能な製品クラスに対して、特定のコンポーネント製品又はコンポーネント製品の集合を選択するとき、さらに説明するように、定義された規則により、他のコンポーネント製品を自動的に加える、又は限定することができる。一実施形態では、販売員はまた、消費者が自己の要求に合う適切な製品を見つけるのを助けるために、実行時構築子にアクセスすることもできる。このように、構築の専門家は、カスタマイズ可能な製品を設計するために、最新の製品及び見積りのリストを持つ。
【0020】
以下は製品(例えば、カスタマイズ可能な製品、コンポーネント製品、等)と関連して説明するが、説明するカスタマイズ可能な製品の構築子は、製品のみに限定されず、他のインスタンス(例えば、サービス)をカスタマイズするために使用することができることを理解すべきである。さらに、構築子の代替の実施形態はまた、資料及び契約書のような様々な形式の製品又はサービスをいくつでも含むことができ、かつそれは、ここで説明するそれらの例に限定されない。
【0021】
一実施形態では、カスタマイズ可能な製品の構築子は、カスタマイズ可能な製品階層に組織化されるカスタマイズ可能な製品クラス及びサブクラスから生成される。モデルセッション間に定義されたカスタマイズ可能な製品クラスは、任意の数のインタスタンス(例えば、コンピュータシステムのインスタンス、車のインスタンス)、又はインスタンスの形式(例えば、モデルXのコンピュータシステム、モデルYのコンピュータシステム)も表現することができる。一実施形態では、カスタマイズ可能な製品クラスが設計される時、カスタマイズ可能な製品のクラス名の属性は一意であり、かつそのカスタマイズ可能な製品クラス名は、利用できるカスタマイズ可能なクラスのセットに追加される。その後は、全ての関連のあるコンポーネント製品、カスタマイズ可能なクラス規則、及び設計されたカスタマイズ可能なユーザーインターフェース(UI)は、カスタマイズ可能な製品クラスのサブクラスとなる。
【0022】
図2は、一実施形態による、カスタマイズ可能な製品のための、定義された属性を持つクラス階層を示している。ここで、カスタマイズ可能な製品クラスは、キャビネット212という属性を持つパソコン(PC)210、サイズ222という属性を持つカード220、ハードディスク(HD)230、及び色242という属性を持つケーブル240としてモデル化される。
【0023】
パソコン(PC)210は、メモリ252という属性及びキャビネット254という属性を持つ高速パソコン(PC)250と定義される、コンポーネント製品サブクラスを持つ。カード220は、ビデオカード260及び音声カード270と定義される2つのコンポーネント製品サブクラスを持つ。ビデオカード260はサイズ262という属性を持ち、及び音声カード270はサラウンド272という属性及びサイズ274という属性を持つ。ハードディスク(HD)230は、定義されたRPM282という属性を持つSCSI280と定義されるコンポーネント製品サブクラスを持つ。
【0024】
典型的に、クラス階層はクラス及びサブクラスから構成される。サブクラスは、他のクラスの中で定義されるクラスである。例えば図2では、ビデオカード260及び音声カード270は、逆にそのビデオカード260及び音声カード270の親クラスとなるであろう、カード220というカスタマイズ可能な製品クラスのサブクラスである。サブクラスは、常に親クラスを持ち、かつクラスは必要な数の階層まで階層化することができる。一実施形態では、カスタマイズ可能な製品のクラス階層を設立するために使用するクラス化手法は、製品ライン、ビジネス過程、及びカスタマイズされるための市場取引及び販売に依存する。例えば、製品ラインにおける全てのディスクドライブを含むディスクドライブという名のカスタマイズ可能な製品クラスを作ることができるであろう。コンポーネント製品クラスの主要な特徴は、帰属関係が種類ベースであるということである。全てのメンバーは、同じ種類である。例えば、ハードディスク(HD)230クラスの全てのメンバーはディスクドライブである。
【0025】
一実施形態では、コンポーネント製品クラスは、カスタマイズ可能な製品クラスに関係する関連商品である。すなわち、コンポーネント製品が、カスタマイズ可能な製品をカスタマイズ可能にする。コンポーネント製品クラスは、一度に一つ、又はグループとして、カスタマイズ可能な製品クラスに付加することができる。例えば自動車は、コンポーネント製品クラスと定義される自動車用タイヤを持つ、カスタマイズ可能な製品クラスと定義することができる。自動車用タイヤは、一度に一つ付加されることができる、又は4つのタイヤの一グループを同時に付加することもできる。
【0026】
同様に、一実施形態では、コンポーネント製品クラスはまた、他のカスタマイズ可能な製品を含むこともできる。このように、カスタマイズ可能な製品とは、最終のカスタマイズ可能な製品の中にコンポーネント製品として包含される下位組み立て部品である。例えば、構成可能な電源供給装置、及び構成可能な高速機は、工業用旋盤の一部として売られると想定する。電源供給装置を構成するために一つのカスタマイズ可能な製品が作られることができ、かつ、高速機を構成するために一つのカスタマイズ可能な製品が作られる。次に、これらコンポーネントであるカスタマイズ可能な製品の双方とも、サブクラスとして、工業用旋盤のカスタマイズ可能な製品に付加することができる。
【0027】
一実施形態では、あるコンポーネント製品クラスが指定された親クラス(例えば、カスタマイズ可能な製品クラス、又は他のコンポーネント製品クラス)のサブクラスと定義されるとき、親クラスは、そのサブクラスの親クラス属性の範囲内で定義される。コンポーネント製品クラスがカスタマイズ可能な製品クラス階層に加えられる時、それは自動的に、一つ又は複数の親クラスの全ての属性を継承する。カスタマイズ可能な製品クラスでは、コンポーネント製品クラスにおいてどの属性が保持されるか定義し、それらの属性をコンポーネント製品クラスに伝搬し、かつ、それらの属性を一貫したやり方で維持しなければならない。
【0028】
各カスタマイズ可能な製品クラスは、モデル化の間に、属性の集合と対応付けられる。属性は、カスタマイズ可能な製品クラス及びサブクラス、及び、コンポーネント製品クラス及びサブクラスについての、取り込まれかつ保持されるべき、規定された形式の情報である。一実施形態では、各属性は、指定された領域又は範囲からの名前又は識別子、データ形式、及び値を持つ。
【0029】
カスタマイズ可能な製品クラス又はサブクラスにおける属性が定義される時、属性は、全てのそのメンバーコンポーネント製品クラス及び全てのメンバーサブクラスにより継承される。一実施形態では、属性は、カスタマイズ可能な製品クラスの階層で定義されるが、しかしコンポーネント製品クラスの階層では定義されない。例えば図2では、高速PCのコンポーネント製品サブクラスは、親クラスであるパソコン(PC)210の中のキャビネット212という属性から継承されるキャビネット254という属性を定義している。
【0030】
カスタマイズ可能な製品クラス又はサブクラスの階層で属性を定義することにより、複数のコンポーネントオブジェクトにおける属性の作成及び管理がより効率的となることが可能になる。また、カスタマイズ可能な製品クラスは、クラス階層の構築及び変更の間、属性をコンポーネント製品に伝搬し、かつカスタマイズ可能な製品クラス間で属性を入れ替えるための中心的な場所を提供する。
【0031】
しかしながら、属性はカスタマイズ可能な製品クラスの階層で定義されることのみを必要とするのではなく、別の実施形態では、属性はまたコンポーネントクラスの階層で定義されることもできるということを認識するであろう。一実施形態では、属性がコンポーネントクラスの階層で定義される時、属性は静的であり、かつその親クラスから継承しない。ここで例えば、図2では、サブクラスである高速パソコン(PC)250のキャビネット254という属性に格納される値は、親クラスであるパソコン(PC)210の属性212に格納される値とは異なるであろう。
【0032】
また、サブクラスである高速パソコン(PC)250においてのみ定義されるメモリ252という属性は、その親クラスではなく、サブクラスにおいてのみ定義される属性の他の例である。新しい属性がカスタマイズ可能、又はコンポーネント製品のサブクラスにおいて明示的に定義される時、継承された属性を「遮蔽する」という。
【0033】
一実施形態では、各カスタマイズ可能な製品クラスは、あらかじめ定められた属性−値のペアのセットと対応付けられる。属性の値は、コンポーネント製品クラスのオブジェクトの層で割り当てられる。あらかじめ定められた属性−値のペアのセットは、そのカスタマイズ可能な製品クラス及び他のカスタマイズ可能な製品クラスとのその関連性についての実行時セッションのデータを保持する。それゆえ、属性の値は、コンポーネント製品クラスからカスタマイズ可能な製品クラスの中のコンポーネント製品クラスまで、様々であるとすることができる。
【0034】
一実施形態では、属性のデータ形式は次のものを含む:数値、整数、浮動小数点、列挙、文字列、日付、時刻、通貨、電話番号、ブール値、等である。一実施形態では、その値が定量的なものである属性は、関連のあるデータ形式を持つ。すなわち、特定のデータ形式の数量のみが、属性の値として表される。属性の値はまた、(様々なデータ形式の)数量、又はカスタマイズ可能な製品クラスの中の一群のコンポーネント製品クラスから構成されるグループを表すものとすることもできる。さらに以下で説明するように、その値がコンポーネント製品クラスのグループである属性は、ポートと呼ばれる。
【0035】
一実施形態では、属性に対する許容値の領域を定義することができる。属性は、次の3つの形式の領域を持つことができる:単一の値、値のリスト、又は属性に対する値の範囲である。例えば、色という属性は、赤、緑、青の領域を持つことができるであろう。一実施形態では、属性のデフォルト値を定義することもできる。
【0036】
属性はさらに、様々な方法でクラス化することができる。一実施形態では、属性は、固定属性と動的属性とに分けられる。固定属性の値は、完全にモデル化セッションの中で定められるが、一方、動的属性の値は、実行時セッションの間に定められる。
【0037】
一実施形態では、コンポーネント製品クラスを、コンポーネント製品又はポートの一つのリストにまとめることができる。ポートの中に含まれる全てのコンポーネント製品クラスは、同じ形式である。ポートは、それが含んでいるコンポーネント製品の数により特徴付けられることができる。その値がコンポーネント製品クラスの集合であるポート属性は、カスタマイズ可能な製品クラスとして分類される。カスタマイズ可能な製品クラスのサブクラスであるコンポーネント製品クラスのみが、その属性における値の集合の中に現れることができる。
【0038】
図3は、本発明の一実施形態による、ポート属性を含む、模範的なクラス階層を示している。図3は、メモリ319及びキャビネット322という定義された属性を持つ私のパソコン(MyPC)305のサブクラスである、高速パソコン(PC)310というコンポーネント製品を含む。PCIスロット311及びハードディスク(HD)ベイ315という2つのポートもまた含まれる。ここで、PCIスロット311及びハードディスク(HD)ベイ315は、高速PC310が複数のPCIスロット及びハードドライブベイでカスタマイズされることができることを示している。これらのポートの属性はまた、基数(要素312及び316)、そのポートに関連し得るコンポーネント製品の形式の領域値(要素313及び317)の形式、及びデフォルトの領域値(要素314及び318)も表現する。ここで基数の値312は、PCIスロット311が、デフォルトの領域値314が全く定義されずにインストールされたカードと定義される領域値313の0から2までの値をとることができることを定義している。基数の値316は、ハードディスク(HD)ベイ315が、デフォルトの領域値318が10Gigと定義されてインストールされたSCSIハードドライブと定義される領域値317の1から4までの値をとることができることを定義している。さらに、基数の使用の説明は、下で述べる。メモリ319という属性は、デフォルトの値321が256と定義された、128及び256と定義される領域値320を持つ。キャビネット322という属性は、デフォルトの値324がMTと定義された、DT又はMTと定義される領域値323を持つ。
【0039】
図3はまた、PCIスロットにインストールすることのできるカードの形式も表す。ここで、ビデオカード342は3D340というクラスのサブクラスのカードであり、かつ音声カード352は超音声350というクラスのサブクラスである。ビデオカード342及び音声カード352の双方とも、PCIスロットにインストールすることのできるカードのポートである。ビデオカード342はまた、定義された他のポートであるケーブル343、及びサイズ347という属性も持つ。サイズ347という属性は、デフォルトの値349がショート型と定義された、ショート型又はロング型と定義される領域値348を持つ。
【0040】
音声カード352サブクラスは、定義されたサイズ353及びサラウンド356という属性を持つ。サイズ353は、デフォルト値355がショート型と定義され、ショート型又はロング型と定義される領域値354を持つ。サラウンド356(例えば、サラウンド音声)は、デフォルト値358がyesと定義され、yes又はnoと定義される領域値357を持つ。
【0041】
上述のように、ケーブル343というポートは、そのポートと関連し得るコンポーネント製品クラスの形式を表す属性を含む。ここで、基数344は、ケーブルと定義される領域値345の一つを含むように定義される。ここで、ビデオ380というポートに対し、デフォルト値346が定義される。次いで、ケーブル343というポートは、ビデオ380のサブクラスであるケーブル382と関連付けられるが、これは、デフォルト値385が赤と定義され、赤及び緑と定義される領域値384を持つ色383という属性を含む。
【0042】
ハードディスク(HD)ベイ315の説明に戻ると、ポートは、RPM363という属性が定義された10Gig360のサブクラスであるSCSI362、及びRPM373という属性が定義された20Gig370のサブクラスであるSCSI372を含む。RPM363及びRPM373の双方の属性とも、デフォルト値365及び375が7200と定義され、4500及び7200と定義される領域値364及び374を持つ。
【0043】
一実施形態では、ポートは一般的にデフォルトの近辺で包括的であるが、しかしまた排他的と定義されることもでき、これは、そのポートに現れるどのコンポーネント製品クラスも、他の如何なるコンポーネント製品クラスのオブジェクトのポートにも出現しない(しかしながら、同じコンポーネント製品クラスの他のポートには現れることができる)であろうことを意味する。
【0044】
ポート特性のペアはまた、逆数と定義することもできる。逆数のペアである属性の一つであるポートは、そのペアにおける他方の属性を所有するコンポーネント製品クラスを含むのみであろう。例えば、夫婦は逆数属性であると定義する場合、例えばもしジョンの妻がメアリーであるならば、メアリーの夫はジョン、ということになる。
【0045】
逆数の属性は、上の例のように一対一とすることができる、或いは多対一、一対多、又は多対多とすることができることを理解すべきである。たとえ幾つクラスが含まれていたとしても、各セットは他のセットの各メンバーについて対応する属性の値として現れるように、逆数のポートは基本的に、コンポーネント製品クラスのただ2つのセットを定義する。多対多の例としては、売り手と買い手が逆数と定義される場合がある。その時、各売り手は買い手の一般的なグループにアクセスするであろう、及び、各買い手は売り手の一般的なグループにアクセスするであろう。一実施形態では、逆数属性のポートは、それぞれ独立して、包括的又は排他的のいずれかに定義することができる。
【0046】
包括的なポート及び排他的なポートの双方を持つ一対多の例として、車の車輪ポートは排他的とすべきであり、その結果4つの車輪がただ一つの車に属することになるが、しかし、各車輪の車ポートは包括的であるとする必要があろう、その結果全ての車輪を同じ車に取り付けることができるであろう。
【0047】
一実施形態では、ポートは基数を有する。あるポートが定義される時、最小、最大、及びデフォルトの基数を指定することができる。基数は、実行時セッションの間に消費者がポートから選択することのできるコンポーネント製品クラスの数を指す。例えば、ハードドライブというポートが定義されると想定する。それは、20GBドライブ及び30GBドライブを含む。最小基数が2に設定される場合には、消費者はこのポートから2つの品目を選ばなければならない。消費者は、次の方法のいずれかにより、これを行うことができる。一つの20GBドライブ及び一つの30GBドライブ選択する、二つの20GBドライブを選択する、又は二つの30GBドライブを選択する、である。
【0048】
一実施形態では、基数の3つの形式が存在する。最小、最大、及びデフォルトである。図4は、本発明の一実施形態による基数設定のいくつかの組み合わせを示す。図は、構築子において消費者に最初に何が表示されるか、及び消費者が一実施形態により実行することができる動作を説明する。Nは、構築子におけるデフォルトのコンポーネント製品クラスの数である。最小基数が0より大きい全ての場合において、消費者は、デフォルトの製品の代わりに他のコンポーネント製品を代用することができる。
【0049】
最小基数は、インスタンスポートからコンポーネント製品クラスを選択することが任意であるか否か、又は必須であるか否かを支配する。最小基数が0に設定される場合には、コンポーネント製品クラスを選択することは任意である。最小基数が0より大きく設定される場合には、ポートから指定された数のコンポーネント製品クラスを選ばなければならない。
【0050】
最大基数は、実行時セッションの間にユーザーがポートから選択することのできるコンポーネント製品クラスの最大数を設定する。最小基数が0より大きく設定される場合には、最大基数は最低でもそれと同じに設定されなければならない。
【0051】
デフォルトの基数は、実行時セッションの間にどれほどの数のデフォルトコンポーネント製品クラスが初期設定に自動的に付加されるか、を指定する。一実施形態では、デフォルトの基数は、最小基数と同じ又はそれ以上でなければならず、かつ最大基数より小さい又は同じでなければならない。
【0052】
一実施形態では、コンポーネント製品クラスは、カスタマイズ可能なクラス規則と呼ばれる式の集合を含む。カスタマイズ可能なクラス規則は、コンポーネント製品上の制約を定義する。このカスタマイズ可能なクラス規則を通じて、構築の専門家は、消費者が自己の必要に対して適切な製品を選択するように誘導するのを助ける。ここで、カスタマイズ可能なクラス規則は、特定のコンポーネント製品の選択時に、一又はそれ以上のコンポーネント製品の選択を要求又は排除するように定義され、又は、カスタマイズ可能なクラスは、個々のコンポーネント製品が選択される時、勧告のメッセージの表示を引き起こすことができる。例えば、実行時セッションの間に消費者により特定の形式のモニターが選択される時、特定のモニターカードを要求するカスタマイズ可能なクラス規則が作られることができる。一実施形態では、消費者がそのモニターを選択する時、要求されるモニターカードを構築子の実行時セッションに自動的に加える。
【0053】
一実施形態では、カスタマイズ可能なクラス規則は継承されるが、しかし属性と異なり、カスタマイズ可能な規則の集合は命名されず、かつ隠蔽しない。しかしながら、いくつかの実施形態では、カスタマイズ可能なクラス規則は命名され、及び/又は隠蔽されることができることを理解すべきである。コンポーネント製品クラスが新しいカスタマイズ可能なクラス規則を付加する場合には、それらは単純にクラス階層の下方に「堆積する」。サブクラスは、そのサブクラスによって追加される任意新たなカスタマイズ可能なクラス規則に加えて、その親クラスの全てのカスタマイズ可能なクラス規則を所有する。
【0054】
上述のように、カスタマイズ可能なクラス規則は式の集合を有する。一実施形態において、式は、演算子を用いて結合される特性パス及び定数から構成されるテンプレートである。式は、実行時セッションの間、カスタマイズ可能なクラス規則の制約を実装するために評価されることができる。各評価は、いくつかの個々の状況の中で実行され、これは、式で作られるどんな自由な参照の意味も解決する。式により作られる制約の性質は、その式が評価される環境に依存する。
【0055】
一実施形態では、構築の専門家は、自然言語のテンプレートによりカスタマイズ可能なクラス規則を構築する。ここで、テンプレートは、構築の専門家が規則構築ツールを使って完成させる空欄記入式の自然言語文である。それらの目的は、ソフトウェアエンジニアによって修正する必要のあり得るカスタマイズ可能なクラス規則のアセンブリ言語から、構築の専門家を完全に保護することである。自然言語のテンプレートは、構築の専門家が実装することのできる、理解しやすく、かつ充分に国際化可能な自然言語文を使用することができる。テンプレートの式のいくつかの例は、次のようなものである。
「コンポーネント製品1は、コンポーネント製品2を必要とする。」
「コンポーネント製品の数がある数値より小さいことを確かめなさい。」
「顧客が50以上のコンポーネント製品を選択する場合には、上等な顧客ボーナスパックを無償で含めなさい。」
「一つのコンポーネント製品の数量と他のコンポーネント製品の数量を加え、次に第三のコンポーネント製品の数量からその合計を引きなさい。」
「ある数値とある数値の合計。」
「ある数値とある数値の絶対値との積。」
【0056】
構築の専門家は自然言語のテンプレートを選択することができ、次に、定義されたクラス及び属性(例えば、コンポーネントのクラス及び属性)、数式、又は他のテンプレートで空欄を埋めることができる。次に、自然言語のカスタマイズ可能なクラス規則は、下位レベルの規則アセンブリ言語に変換される。ここで、構築の専門家が最小限のキー入力で複雑な規則を作ることができるようにするために、数式構築器及び自然言語表現構築器の組み合わせを使用することができる。
【0057】
一実施形態では、一括のカスタマイズ可能なクラス規則を使用することができ、これにより、一回のステップで如何なるテンプレートの空欄も埋めるために、構築の専門家が値のリストを入力することが可能になる。一括の規則は、一つのコンポーネント製品クラスにおいて多数の規則を作成するのに、特に役立つ。また、述語ベースのカスタマイズ可能なクラス規則の設計を使用することもでき、これにより、条件と動作表現を組み合わせることにより、構築の専門家が大きなカスタマイズ可能なクラス規則の文を構築することが可能になる。例えば、「ユーザーがコンピュータXを選択し、かつ構築子が3つのソフトウェア題目を含み、かつ取引先形式==’優良顧客’である場合には、運送先という属性がテキサスの時を除いて、無償アップグレードを自動選択し、かつ宣伝用マウスパッドを自動選択しなさい。」
【0058】
様々な規則構築器が説明されているが、自然言語、又は低レベルの規則アセンブリ言語のいずれを使用するのか、本発明はどのような形式の規則構築器にも限定されないことを理解すべきである。一実施形態では、全てのテンプレート及び変換はデータベースの中で定義される。このように構築の専門家は、本発明を限定することなく、どんなテンプレートの設計者用ツールを使用しても、非所有のテンプレートに如何なる所有のテンプレートも付加することができる。
【0059】
上述のように、式は、部分的に特性パスから構成されることができる。特性パスは、実行時セッションの間に他のコンポーネント製品クラスのポート内に現れ得るコンポーネント製品クラス(かつ、それら自身がさらに他のコンポーネントサブクラスを含む場合もある等)の属性を参照する。例えば、
私のプリンター
私のプリンターの電源コード
私のプリンターの電源コードのワット数
、、、
のような構成におけるポートは、次のように書かれ得るであろう特性パスで参照されるであろう。
[私のプリンター]
[私のプリンター].[電源コード]
[私のプリンター].[電源コード].[ワット数]
、、、
【0060】
基本的にポート又は属性は、ポート又は属性の名前により(この表記で)参照されることができ、そのポート又は属性を持つ対象のクラスにアクセスするパスが前に付けられる。これらの例では、基本となるアクセスパスは、プリンターのあるグループを参照すると仮定される[私のプリンター]ポートである。
【0061】
基本となるパスは常に、ある特定の製品クラスにより規定される状況に関して、解釈されなければならない。状況がどのように定められるかについては、さらに下で説明するであろう。基本となるパスが(ポートの値、又はポートの下位集合であるサブクラスのような)製品クラスの集合にアクセスする場合には、([私のプリンター]のサブクラスであると仮定される、上記の[電源コード]のような)ポートは、ポート名をそのパスの後ろに付けることにより参照されることができる。
【0062】
パスが、それがまたポートでもある属性にアクセスする場合には、そのポートのメンバー、それらのメンバー等へのアクセスを可能にするために、付加的な機能が存在する。第一に、ポート内のコンポーネント製品クラスの属性は、パスをさらに拡張することにより([電源コード]の属性である、上記の[ワット数]を付けるように)、参照されることができる。
【0063】
第二に、一実施形態では、ポートの値は常にコンポーネント製品クラスの集合であるので、ただ単にサブクラス名を伴うポート名に資格を与えることにより、如何なるサブクラスもアクセスされることができる。
[私のプリンター]:[HPレーザージェット].[電源コード]
は、まさにHPレーザープリンターの電源コードのサブクラスを参照する。
【0064】
第三に、グループの個々のメンバーは、そのメンバーの索引を最後に付けることにより、アクセスされることができる。例えば、
[私のプリンター]#2.[電源コード]
は、グループ内の第二のプリンターに属する電源コードを参照する。
【0065】
これらのアクセスパスは、自由に組み合わされ、かつ如何なる程度までも拡張されることができる(常に、この表記の中で左から右に読み取る)。例えば、
[私のプリンター]:[HPレーザージェット]#2.[ケーブル]:[シリアル]#1
は、第二のHPプリンターに属する第一のシリアルケーブルを参照する。
【0066】
一実施形態では、属性値を参照することで終了しないどのパスも、コンポーネント製品クラスの集合を参照する。それは、空のポート、ただ一つのメンバーを持つグループ、又は複数のメンバーを持つグループを参照することができる。
【0067】
一実施形態では、ただ空のポートを参照するだけでは、ポートは如何なるコンポーネント製品クラスを持つようにも強制されないであろう。すなわち、[CPU]#1000についてのカスタマイズ可能なクラス規則は、その構成が少なくとも1000個のCPUを持つことが確認される時に、有効であるだけとすることができる。しかしながら、どの制約も1000番目のCPUが存在することを必要としなかった場合には、このパスはそれ自身により、ただ空のポート(まさに他のいずれかのポートのように、その中に全くインスタンスを持たないポート)を参照するだけであろう。逆に、参照されるコンポーネント製品クラスを存在させるためには、全グループの数を充分大きい正の値に制約しなければならないか、及び/又は索引付けされるポートの数を非零に制約しなければならないかのいずれかである。
【0068】
一実施形態では、パスの中で参照される属性及びポートは、参照されているクラス階層において実際に定義される属性又はポートでなければならない。サブクラスにおいて定義されるのみである属性又はポートを参照するために、パスを下位集合であるサブクラスにダウンキャストすることが必要である。一実施形態では、このように、そのサブクラスのオブジェクトが全く存在しない時、「ダウンキャスト」されたパスは空集合を参照するであろう。
【0069】
一実施形態では、式のテンプレートを演算子特性に代入することにより、新たな演算子を定義することができる。演算子特性の名前は、その演算子が定義される任意のクラスの式の中の演算子として使用することができる。ここで、演算子特性は、サブクラスにより継承、又は隠蔽される。一実施形態では、演算子特性は、オブジェクト指向プログラミングにおける手続き及びメソッドと似ている。例えば、MutuallyRequires(相互要求)の演算子特性は次のように定義することができる。
【0070】
この定義を用いて、その演算子を対象の任意の二式に適用することにより、MutuallyRequires(相互要求)の制約を都合よく加えることができる。
【0071】
より複雑な例は、MatchingProperty(照合特性)規則をモデル化するものであり、これにより、与えられた二つのカテゴリー内での如何なる選択も、ある所定の特性について対応する値を要求するようにされる。
【0072】
演算子特性の例は所定の構文を用いて定義されているが、演算子特性の性質を実現するために代替の構文を使用することもでき、かつ本発明は、説明する構文に限定されるものではない。
【0073】
一実施形態では、構築子を他のソフトウェアアプリケーションと接続するために、また第三者のスクリプトを使用することもできる。ここで、スクリプトは、カスタマイズ可能な製品又はコンポーネント製品のクラスと対応付けることができ、かつ、カスタマイズ可能なクラス規則がするであろうように、特定の定められたイベントが起こる時に起動するように設定することができるが、しかしながら、構築子外で動作を実行するためにスクリプトを使用することができる。一実施形態では、スクリプトは、特定のイベントが発生する時に実行される連続したプログラムである。例えば、ユーザーが特定のコンポーネント製品を選択する時、現在の買い物かご又は見積書に付加的な情報を追加する、及び/又は他の外部アプリケーションと接続するように、スクリプトを作成することができる。スクリプト及びカスタマイズ可能なクラス規則は異なるタスクを実行するように記述されるけれども、代替の実施形態では、カスタマイズ可能なクラス規則は、構築子及び他のアプリケーションの双方に制約を加え、かつその双方上で連続した動作を実行することを理解すべきである。
【0074】
一実施形態では、構築の専門家は、オブジェクト指向構築子のためのカスタマイズ可能なグラフィックのユーザーインターフェース(UI)を設計することができる。カスタマイズ可能なユーザーインターフェース(UI)はカスタマイズ可能なクラス階層に接続し、かつ構築の専門家がコンポーネント製品の表示をカスタマイズすることを可能にする。例えば、構築の専門家は特定の製品ライン又は顧客ベースについて、カスタマイズ可能なユーザーインターフェース(UI)をモデル化することができる。この場合、各構築モデルは、実行時セッションがそこから動的にユーザーインターフェース(UI)を作成することになる、特化されたUIクラスを持つ。以下はユーザーインターフェース(UI)クラスベースのHTMLを説明するが、しかしながらまた、ユーザーインターフェース(UI)を作成するために、JAVAアプレット、マイクロソフトActiveX、及び標準XMLのような他の言語を使用することもできる。
【0075】
ユーザーインターフェース(UI)宣言は、テーマ、グループ、及び制御の3つのコンポーネント形式(ユーザーインターフェースクラス)を含む。
【0076】
図5は、本発明の一実施形態によるカスタマイズ可能なユーザーインターフェース(UI)クラス階層を示す。ここでカスタマイズ可能な製品構造510は、ユーザーインターフェース(UI)テーマ515と対応付けられる。ユーザーインターフェース(UI)テーマ515は、ユーザーインターフェース(UI)内のカスタマイズ可能な製品クラスの外観を定義する。ユーザーインターフェース(UI)テーマ515の表現形式の例は、タブ形式、ウィザード形式、又はツリー形式を含む。これらのテーマユーザーインターフェース(UI)の表現形式はまた、特性を、とりわけ例えば背景色、フォント、多言語の文字データのようなそれらと対応付けることができる。一実施形態では、テーマユーザーインターフェース(UI)515の特性は、名前と値のペアとして格納される。しかしながら、一実施形態では、各カスタマイズ可能な製品構造510は、まさに一つのユーザーインターフェース(UI)テーマ515を持つ。
【0077】
カスタマイズ可能な製品構造510はまた、ユーザーインターフェース(UI)グループ520と対応付けることができる。ユーザーインターフェース(UI)グループ520は、ユーザーインターフェース(UI)制御530の集合を含む。一実施形態では、ユーザーインターフェース(UI)グループ520は、一又はそれ以上のユーザーインターフェース(UI)制御530を保有する。例えばタブ形式のテーマの場合、ユーザーインターフェース(UI)グループ520は、様々なコンポーネント製品クラスを様々な分類秩序の中で定義しかつ順序付けすることのできる、単一の特性表を表す。一実施形態では、分類秩序は、さらに下で説明するようなポート540のコンポーネント製品クラスのグループとは異なるものとすることができる。
【0078】
ユーザーインターフェース(UI)制御530は、特定のユーザーインターフェース(UI)テーマ及びカスタマイズ可能な製品構造510と対応付けることができる。ユーザーインターフェース(UI)制御530は、ドロップダウンメニュー、ラジオボタン、及びリストボックスのようなユーザーインターフェース(UI)構築ブロックである。これらユーザーインターフェース(UI)制御530はまた、フォントのようなある特定の特性で定義することができる。一実施形態において、ユーザーインターフェース(UI)制御530は、ユーザーインターフェース(UI)制御530に割り当てられた個々のコンポーネント製品クラスにおける実行時セッションの状態モデルを反映するものである。例えば、特定の条件について、ドロップダウンリスト式の制御は、その条件を満たすか否かによって変化するデータを含むことができる。
【0079】
ユーザーインターフェース(UI)グループ520は、属性535又はポート540を含むことができる。属性535は、属性制御45又は属性選択550を含むことができる。属性制御545により、ユーザーインターフェース(UI)は単純なフィールド、ドロップダウン式のボックス、ラジオボックス、及びリストボックスによって属性を表示することが可能となる。属性選択550は、例えば色というような、その属性を表示する手段をに備えたものである。
【0080】
ユーザーインターフェース(UI)グループ520はまた、一又はそれ以上のポート540を含むことができる。ここでポート540は、ポートインスタンス565で表される一又はそれ以上のコンポーネント製品を含むことができる。ポート制御570により、ユーザーインターフェース(UI)は、ドロップダウン式のボックス、ラジオボックス、及びリストボックスを用いてポートインスタンス565を表示することが可能となる。
【0081】
図6は、本発明の一実施形態による、定義されたカスタマイズ可能なクラス構造を使用するためのユーザーインターフェース(UI)作成のブロックダイヤグラムを示している。
【0082】
一実施形態では、カスタマイズ可能なクラス構造を設計した後、構築の専門家は、新たに作成される設計のための実行時ユーザーインターフェース(UI)をカスタマイズするという選択をする、又はデフォルトのユーザーインターフェース(UI)設計を適用する。この実施形態におけるデフォルトユーザーインターフェース(UI)の設計は、ツリー形式である。ユーザーインターフェース(UI)を宣言することは、以下のことを含む。
【0083】
ブロック610では、ユーザーインターフェース(UI)テーマは一組のあらかじめ定義されたテーマから選択される。次に、制御はブロック620に移る。
【0084】
ブロック620では、ユーザーインターフェース(UI)テーマの特性が設定される。次に、制御はブロック630に移る。
【0085】
ブロック630では、一又はそれ以上のユーザーインターフェース(UI)グループが新たに選択されたユーザーインターフェース(UI)テーマに加えられる。次に、制御はブロック640に移る。
【0086】
ブロック640では、ユーザーインターフェース(UI)制御は、定義されたコンポーネント製品に利用可能な制御の集合から割り当てられる。次に、ユーザーインターフェース(UI)制御はブロック650に移る。ユーザーインターフェース(UI)制御が特性の更新を要求しない場合には、このブロックは飛び越すことができる。
【0087】
ブロック650では、ユーザーインターフェース(UI)制御は特性を割り当てられる。次に、制御はブロック660に移る。
【0088】
ブロック660では、ユーザーインターフェース(UI)制御がユーザーインターフェース(UI)グループに加えられる。
【0089】
一実施形態では、定義されたカスタマイズ可能な製品クラスの構造、カスタマイズ可能なクラス規則、及びユーザーインターフェース(UI)クラスが設計されると、それらは一又はそれ以上のデータ貯蔵の中に格納することができる。図7は、本発明の実施形態による、構築子の様々なコンポーネントにおけるデータ格納を示している。この図は、カスタマイズ可能な製品クラスのデータ貯蔵710、属性のデータ貯蔵720、コンポーネント製品クラスのデータ貯蔵730、静的属性のデータ貯蔵740、ポートのデータ貯蔵750、カスタマイズ可能な規則のデータ貯蔵760、及びユーザーインターフェース(UI)のデータ貯蔵770を含む。
【0090】
一実施形態では、このデータ格納は、カスタマイズ可能な製品クラスのデータ貯蔵710の中のカスタマイズ可能な製品クラスの属性が属性のデータ貯蔵720の中の属性と一対多の関係を有するリレーショナルデータベースを表す。カスタマイズ可能な製品クラスのデータ貯蔵710はカスタマイズ可能な製品クラスを格納し、かつ属性のデータ貯蔵720はカスタマイズ可能な製品について定義される属性を格納する。上で言及するように、一実施形態では、属性はカスタマイズ可能な製品クラスの階層で定義され、その結果、図7において、属性のデータ貯蔵720はカスタマイズ可能な製品クラスのデータ貯蔵710と関係を有するが、コンポーネント製品クラスのデータ貯蔵730とは関係を持たない。
【0091】
カスタマイズ可能な製品のデータ貯蔵710はまた、コンポーネント製品クラスのデータ貯蔵730との間に一対多の関係を有する。コンポーネント製品クラスのデータ貯蔵730はコンポーネント製品クラスを格納し、かつその関係は、一又はそれ以上のコンポーネント製品がカスタマイズ可能な製品を作り上げることを表している。さらに、カスタマイズ可能な製品は一つのカスタマイズ可能な製品から構成されることができるので、カスタマイズ可能な製品のデータ貯蔵710は、自分自身と一対一の関係を有する。
【0092】
コンポーネント製品クラスのデータ貯蔵730は、静的属性のデータ貯蔵740と一対多の関係を持つ。静的属性のデータ貯蔵740は、一実施形態によるカスタマイズ可能な製品クラスには見えないコンポーネント製品クラスの静的属性を格納する。コンポーネント製品クラスのデータ貯蔵730はまた、ポートのデータ貯蔵750と多対一の関係を持つ。ポートのデータ貯蔵750はコンポーネント製品クラスのインスタンスを格納し、かつ、一実施形態では、クラス形式のように一つにまとめるために、多くのコンポーネント製品をポートのデータ貯蔵750の中に格納できることを表している。
【0093】
コンポーネント製品クラスのデータ貯蔵730は、カスタマイズ可能なクラス規則のデータ貯蔵760に格納される各カスタマイズ可能なクラス規則と一対多の関係を持つ。また、コンポーネント製品クラスのデータ貯蔵730は、定義された各コンポーネント製品について定義される様々なユーザーインターフェース(UI)の形式を格納するユーザーインターフェース(UI)のデータ貯蔵770と一対多の関係を持つ。
【0094】
様々な形式の複雑なカスタマイズ可能製品に対する複数の設計が、データ貯蔵のために設計され、かつその中に格納される。さらに、単一モデルの様々な型もまた、設計及び格納されることができる。一実施形態では、カスタマイズ可能な製品のインスタンスは、それ自身の固有の身元情報、個別の特徴、及び、他のコンポーネント製品、そのカスタマイズ可能な製品内部のカスタマイズ可能なクラス規則及びユーザーインターフェース(UI)との明確な関係を含む。
【0095】
一実施形態では、データ貯蔵は、リレーショナルデータベース管理システム、又はオブジェクト指向データベース管理システムのようなデータベース管理システムから構成されることができるが、しかしながら、当業者によく知られた代替のデータベース管理システムもまた使用することができる。
【0096】
一実施形態では、籠と呼ばれる特別なクラスの単一インスタンスが、各構成の中に暗黙に存在する。籠は、単一の特別な(無名の)「汎用ポート」を持ち、そのクラスはモデルのルートクラスである。この汎用ポートは、構成内のあらゆるクラスを含む。
【0097】
籠は、なおその上、構成のグローバル属性のような他の特性を持つことができる。一実施形態において、籠を参照する時、特性パスは$で始まる。$の後に属性名、演算子テンプレート、又はポートが続く場合には、それは構成全体のグローバル属性を参照する。例えば、
$[総電力]
は、構成に必要な電力の総計を与える資源を指すであろう。
【0098】
その代わり、$の後にクラス名が続く場合には、それは籠の「汎用ポート」内のそのクラスのコンポーネント製品の下位集合を指す。
$[プリンター]
は、プリンターの全カテゴリーの数を指し、それと同時に、
$[HPレーザージェット]
は、まさにその特定の機種の数量を指す。
【0099】
籠により、ユーザーは、構築を空の初期状態から開始させることが可能となる。例えば
1 QTY_LE $[HPレーザージェット]
というような要求を入力することは、構成の中に少なくとも一つのHPプリンターがあることを意味する。この後に
$[HPレーザージェット]#1.[Auxペーパートレイ] QTY_EQ 2
を付けると、第一のインスタンスにまさに二つの予備の用紙トレイを持たせることになる、等である。
【0100】
籠により、ユーザーはまた既存の部品を接続することも可能となる。例えば、セッションの後の方でCPUが作られる場合には、以下のような要求を発信することにより、上記のプリンターを付けることができる。
$[HPレーザージェット]#1 GRP_EQ $[CPU]#1.[プリンター]
【0101】
一実施形態では、リンクされたコンポーネント製品は、製品に加えてさらに他の形式の情報へのアクセスを提供する。リンクは、ビジネスコンポーネント内のフィールドへの規定されたリンク、ユーザーのログイン名へのリンク、又は現在のシステムの日付へのリンクであるとすることができる。例えば、外部ユーザー管理システムへのリンクは、特定のユーザーが特定の値段で製品を購入できるか否かを定めることができる。これによりユーザーは、例えば、とりわけビジネスコンポーネントのフィールド、ログイン名、又はシステムの日付を必要条件とする規則を記述することが可能となる。
【0102】
構築の専門家がカスタマイズ可能な製品をモデル化した後、消費者又は販売員は、上述のオブジェクト指向クラスからカスタマイズ可能な製品オブジェクトのインスタンスを構築することができる。ここで顧客は、その固有名で、カスタマイズ可能な製品クラスのインスタンスから新しいカスタマイズ可能な製品オブジェクトを作る。次に、カスタマイズ可能な製品オブジェクトに対して選択されたコンポーネント製品クラスに応じて、特定のカスタマイズ可能なクラス規則が起動される、又はユーザーインターフェース(UI)クラスが表示される。
【0103】
例えば消費者は、販売用の様々なコンピュータシステムのドロップダウン式リストを提供するタブ形式のユーザーインターフェース(UI)から、コンピュータシステム(例えば、カスタマイズ可能な製品のインスタンス)を選択することができる。コンピュータシステムを選択するときに、消費者は付属品を選択することができる、又はモニター、ハードドライブ、及びCD-ROMのようなコンピュータシステムにコンポーネント製品を加えることにより交換することができ、それら一つ一つはそれ自身のユーザーインターフェース(例えば、HTMLページ)の中で表示することができる。幾つかのコンポーネント製品を選択すると、カスタマイズ可能なクラス規則は、コンピュータシステムへの特定のコンポーネント製品の付加を制限することができ、経験豊かな販売専門員が行うであろうように、非常に複雑な製品関係を通して顧客を誘導することができる。
【0104】
一実施形態では、実行時セッションの間に、カスタマイズ可能な製品オブジェクトが生成され、かつメモリ内に常駐する。コンポーネント製品オブジェクトの選択時に、それをカスタマイズ可能な製品インスタンスと関連付ける各オブジェクトに、固有IDが割り当てられる。また値はコンポーネント製品オブジェクトの各属性とペアにされ、そこで、属性に対応する値の形式は、モデル化セッションの間に割り当てられた属性の定義により定められる。次に、新たなカスタマイズ可能な製品インスタンスをデータ貯蔵内に格納することができる。一実施形態では、格納されたカスタマイズ可能な製品オブジェクトをデータ貯蔵から受け取るために、関連する固有IDが各コンポーネント製品オブジェクトについて繰り返すのに使用され、コンポーネントオブジェクトに割り当てられたID、そのコンポーネントオブジェクトにおけるオブジェクトのクラス及び属性−値のペアを出力する。
【0105】
説明する実施形態は、販売専門員がカスタマイズ可能な製品の構築子を実装するのに、より大きな自由度を与えるということを認識すべきである。販売専門員は、オブジェクト指向クラス階層の使用から恩恵をうけるが、これは手続き型プログラミング言語の広範な知識なしに、そこからコンポーネント製品が定義されかつ使用される構造を提供するものである。このように、カスタマイズ可能な製品の構築子のモデル化と実行時インスタンスとの間の時間のずれを減らすことにより、販売専門員は顧客になりそうな人に高度なオンライン販売を提供することができる。さらに、クラス規則によって提供されるエキスパート論理により、あたかも消費者を誘導するための販売専門員が存在するかのように、消費者は自己特有の必要及び予算に対して最適なカスタマイズ可能な製品を購入することが可能となる。
【0106】
図8は、カスタマイズ可能な製品の構築子を生成するための処理の実施形態に役立つ、一又は複数の媒体を示している。媒体800のブロックの各々は、別々に又は他のブロックと組み合わせて実装することができ、かつ全てのブロックを実装する必要はない。ブロック810は、定義された属性を用いてカスタマイズ可能な製品を作成するのに使用することができるカスタマイズ可能な製品作成ロジックを含む。ブロック820は、カスタマイズ可能な製品をクラスに割り当てることができるカスタマイズ可能な製品割り当てロジックを含む。ブロック830は、カスタマイズ可能な製品クラスにコンポーネント製品サブクラスを付加することができるコンポーネント製品付加ロジックを含む。このように、属性はカスタマイズ可能な製品クラスから継承する。ブロック830は、カスタマイズ可能な製品クラスに規則を付加することができるカスタマイズ可能な規則付加ロジックを含み、その結果、コンポーネント製品付加ロジックに対して条件を与える。ブロック840は、カスタマイズ可能な製品クラスに対するユーザーインターフェースを構築することができるカスタマイズ可能なユーザーインターフェース(UI)マッピングロジックを含む。
【0107】
詳細説明のいくつかの部分は、アルゴリズム及びコンピュータメモリ内でのデータビット操作の記号表現によって表される。これらアルゴリズム的説明及び表現は、当業者が自己の作業の内容を他の当業者に最も効果的に伝えるために使用する手段である。ここで説明するアルゴリズムは一般的に、所望の結果を導く自己一貫した一連の行為又は操作であると考えられる。行為とは、物理量の物理的操作を要求する行為をいう。必ずしもそうではないが、通常これらの量は、格納、転送、結合、比較、及びさもなければ操作することのできる電気信号又は磁気信号の形をとる。主に一般的な使用のため、これらの信号をビット、数値、因子、記号、文字、用語、数字、データ等で参照することが時々便利であることが証明される。
【0108】
しかしながら、これらの全ては、同様な観点から適切な物理量と対応付けられ、かつ、ただ単にこれらの数量に付される便利なラベルにすぎないことに留意すべきである。特に以下の考察から明らかに述べられない限り、説明を通して、「処理」又は「演算処理」又は「計算」又は「判定」又は「表示」等のような用語を利用する考察は、コンピュータシステム、又はコンピュータシステムのレジスタ及びメモリ内の物理(電子)量として表現されるデータを操作し、かつそれをコンピュータシステムのメモリ、又はレジスタ、又は他のそのような情報蓄積の伝達装置又は表示装置内で物理量として同様に表現される他のデータに変換する同様な電子演算装置の動作及び処理を指す。この中で操作を実行するための装置により、本発明を実装することができる。この装置は、要求された目的のために特別に組み立てることができる、又はコンピュータの中に格納されるコンピュータプログラム(例えば、マシン又はプロセッサによる実行のための指令の集合のような)により選択的に起動、又は再構築される一般的用途のコンピュータのようなマシンを含むことができる。このようなコンピュータプログラムは、フロッピーディスク、光ディスク、CD-ROM、及び磁気光ディスクを含む任意の形式のディスク、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、消去可能プログラム可能な読み取り専用メモリ(EPROM)、電気的に消去可能プログラム可能な読み取り専用メモリ(EEPROM)、磁気又は光カード、或いは電子的構造物を格納するのに適しかつ各々がコンピュータシステムバスに繋がれる任意の形式の媒体等のような、コンピュータ読み取り可能な記憶媒体に格納することができる。これらの媒体の各々は、当の媒体の読み取り、及び又は書き込みに適したデバイスの使用を通じて、コンピュータシステムバスに繋ぐことができる。専門装置は、手軽に利用できる部品の集合、又は例えば一連のロジックブロックを含むアプリケーション特有の集積回路を含むことができる。図1、6、又は8のブロックは、ここで説明する方法、システム、及び装置の他の構成と同様に、ロジックブロックとしての実装に適しているものとすることができる。
【0109】
ここで提示されるアルゴリズム及び表示は元来、如何なる特定のコンピュータ、又は他の装置にも関連しない。様々な一般用途向けシステムは、ここでの教示に従ってプログラムを用いて使用することができる、又は要求された方法を実行するためにより特化された装置を構築するのに都合がよいことが判明し得る。例えば、一般用途向けプロセッサをプログラムすること、又はハードウェア及びソフトウェアの任意の組み合わせにより強固に接続された回路の中に、本発明による如何なる方法も実装するこができる。当業者の一人は、コンピュータシステムの構成を用いて本発明を実施することができることを即座に認識するであろう。説明したもの以外の構成は、携帯型デバイス、マルチプロセッサシステム、マイクロプロセッサベースの又はプログラム可能な消費者電子機器、ネットワークPC、ミニコンピュータ、汎用大型コンピュータ等を含む。本発明はまた、分散コンピューティング環境又はタスクで実施することができる、又は通信ネットワークを通して繋がれるリモートの処理装置により実行することができる。様々なこれらのシステムに必要な構成が、上の説明から明らかである。
【0110】
本発明の方法は、コンピュータソフトウェアを用いて実装することができる。実装するために設計された公認の標準の一連のマニュアルに準拠するプログラミング言語で書かれる場合、その方法は、様々なハードウェアプラットフォーム又はマシン上での実行のために、及び様々なオペレーティングシステムとのインターフェースのために、コンパイルすることができる。さらに本発明は、どれか特定のプログラミング言語を参照して説明されるものではない。ここで説明するような本発明の教義を実装するために、様々なプログラミング言語を使用することができることを認識するであろう。さらに、稼動させる又は結果をもたらすように、ソフトウェアを一つの形又は他の形(例えば、プログラム手続きアプリケーション等)で表すことは、当業者には一般的である。そのような表現は、コンピュータによるソフトウェアの実行により、そのコンピュータのプロセッサが動作を実行する又は結果を生み出すことを記述する、ただの速記の方法にすぎない。
【0111】
本発明はいくつかの実施形態の点から説明されているけれども、当業者は、本発明が説明される実施形態に限定されないことを認識するであろう。本発明の方法及び装置は、添付の特許請求の範囲の技術的範囲内の修正及び変更を伴って、実施することができる。従って、本発明を制限するものではなく、例証となるものとして本説明を認識すべきである。
【0112】
以下の説明、及び本発明の実施形態を示すのに使用される添付図面を参照することにより、本発明を最もよく理解することができる。
【図面の簡単な説明】
【0113】
【図1】一実施形態による、オブジェクト指向構築子のモデル化のブロックダイヤグラムを示している。
【図2】一実施形態による、カスタマイズ可能な製品のために定義された属性を持つクラス階層を示している。
【図3】一実施形態による、ポート属性を含む、模範的なクラス階層を示している。
【図4】一実施形態による、基数の設定におけるいくつかの組み合わせを示している。
【図5】一実施形態による、カスタマイズ可能なユーザーインターフェース(UI)クラス階層を示している。
【図6】一実施形態による、定義されたカスタマイズ可能なクラス構造を使用するためのユーザーインターフェース(UI)の作成のブロックダイヤグラムを示している。
【図7】ある実施形態による、構築子の様々なコンポーネントにおけるデータ格納を示している。
【図8】カスタマイズ可能な製品の構築子を生成するための処理の実施形態に有用な、複数又は一つの媒体を示している。
【0001】
本発明は、電算処理分野に関するものである。もっと詳細に述べると、本発明は、カスタマイズ可能な製品の生成及び提供に関するものである。
【背景技術】
【0002】
インターネットは、大多数の企業に、大勢の消費者に対して製品を宣伝及び販売する新たな機会を提供したが、しかしながら、複雑又はカスタマイズ可能な製品を販売する企業は、依然として重大な課題に直面している。カスタマイズ可能な製品とは、他の製品又はコンポーネント製品から構成される製品である。コンポーネント製品は、典型的には、カスタマイズ可能な製品を作るとき互いに補い合い、それにより、消費者がコンポーネント製品を一群として購入する時には、割り引きされた値段を支払うことが潜在的に可能となる。
【0003】
例えば、コンピュータ会社は、ディスクドライブ及びモニター、さらには他の形式のコンピュータコンポーネントも販売することができる。これらの会社はまた、割り引かれた値段でコンピューターシステムを構成するために、コンピュータコンポーネントを一つにまとめることもできる。コンピューターシステムを購入したい消費者は、各コンポーネントについて、幾つかの選択肢から選ぶことができる。例えばデスクトップコンピュータを購入する時、会社側は、消費者に選択するための3つのモニターを提供することができる。カスタマイズ可能な製品を構成するコンポーネントの数が増えるにつれて、消費者がどのコンポーネントを選択するかを決定する意思決定の過程はより複雑になる。
【0004】
殆どのビジネスは、消費者が製品、又は製品の組み合わせを選択するのを助ける親切な販売専門員によりサポートされ、これは消費者の個別の要求を最もよく満たすものである。インターネット上での購入及び販売は、消費者が正しい製品を選択するように誘導するために専門販売員を利用できないため、より問題となる。コンポーネントがどのように相互関連するかという説明なしに、各下位コンポーネントについての製品情報へのオンラインアクセスを提供することは、充分ではない。消費者への忠誠心は、今日の大変競争の激しいオンライン環境において、非常に一過性なものとなることがあり、かつ、そこでがっかりした消費者は、競合相手のウェブサイトで容易に代替品を探すことができる。ビジネスは、相談販売を取り扱うことのできる完全に一体化された処理及びシステム、込み入った構成、及び、複雑な製品の関連性及び選択を利用するものであることが望ましい。
【0005】
これを達成するために、全ての産業における組織は、ますます製品及びサービス構築子を使用するようになっている。構築子は、製品又はサービス提供者によって開発されるソフトウェアツールであり、これにより、消費者は自己の固有の要求に適合するような製品を見つけることが可能になる。いくつかの場合において、構築子は、販売専門員が行うであろうように消費者を誘導するのを助ける、一連のビジネス規則と一体化されたものとなる。
【0006】
しかしながら今日では、構築子は単なるポイント的な製品であり、複雑な複数経路の販売環境、及びアプリケーション統合要求を有する組織の要望に完全に対処するのではない。これらの構築子は、製品の関連性及びビジネス規則を定めるためには、使用しにくく、維持するのにコストがかかり、かつ更新するのが大変なモデル化ツールをベースとする複雑な手続き型プログラミングをしばしば使用する。
【0007】
これら構築子は、本質的には、一まとまりのあらかじめ定められた「バッグ」を含む大きな買い物車として扱われ、このバッグはあらゆる可能なコンポーネント製品に対して一つ存在する。従って、サポートされる構築規則は、加えられる各コンポーネント製品の合計数に制限を与えるだけである。それゆえ、このように脆弱に構築されたフレームワークの中でうまく実行できない構築規則論を持つ、多くの構築子が存在する。
【0008】
例えば、コンピュータ及び電源供給装置から構成され、どのコンピュータも電源供給装置を持たなければならない構築子を想定する。さらに、アメリカのコンピュータは110Vの電源供給を必要とし、その一方でヨーロッパのコンピュータは220Vの電源供給を必要とすると仮定する。この場合、例えば、各場所において一つずつ、二つのコンピュータを持つという指示を、現行の構築子では正しくモデル化することが困難である。もし構築規則が、不適合なコンピュータ及び電源を互いに排除しなければならないこと意味する場合には、望まれるコンピュータシステムの双方を、同じ順序で一緒に配置することはできない。けれども、そのような構築規則が存在しない場合には、誤って互換性のない単一システムを構築することも可能となる。これは結局、製品が単に「一緒に袋詰めされる」からである。
【0009】
構築子ベースの手続き型プログラミングにおけるもう一つの問題は、構築子の変更をするときにかかる時間のずれである。構築子は通常、販売されている製品の専門家の助けを借りて、設計及びモデル化される。販売専門員又は製品管理者のような構築の専門家は、カスタマイズ可能な製品を作るときのコンポーネント製品間の関係を、ソフトウェア設計者に説明する。次にソフトウェア技術者は、製品を顧客に発表するためにソフトウェアをプログラムする。
【0010】
多くの場合、構築子の更新は、いろいろな構築の専門家から要求された構築子の変更を受け入れるソフトウェア技術者から成り立つ。次にソフトウェア技術者は、構築子のソフトウェアの手続き型プログラミング指向のソースコード中に、新たな構成要素及び/又は構築規則を書き直す。それゆえ通常、構築子ビジネスモデルに要求された変更と、ソフトウェア技術者がソフトウェアを書き直す時間との間には、大きな時間のずれが存在する。
【0011】
大きなプログラミングの時間遅れは、販売サイクルを延ばすような、手に入れにくく、かつ不正確な情報を招くことになり、不正確な見積書及び注文書の割合を増やし、より多数の返品によりコストが上がり、かつ新しい製品を市場に導入する時期を遅らせることとなる。これら能率の悪い、かつ信頼性の低い構築子は、しばしば収入を損失させ、及び顧客を失望させるという結果を招く。新しいカスタマイズ可能な製品及びコンポーネント製品の割合が増加するにつれて、これらの問題は急増する。
【0012】
(発明の詳細な説明)
カスタマイズ可能な製品の構築子を生成するための方法及び装置を説明する。以下の説明では、本発明の完全な理解を与えるために多数の具体的な詳細が示される。しかしながら、これら特定の詳細なしでも本発明を実施できることを、理解するであろう。他の例では、本発明を曖昧にしないようにするため、周知の回路、構造、及び技術は詳しく示されていない。
【0013】
図面に示される技術は、コンピュータ上で格納及び実行されるコード、及びデータを使って実践することができる。このようなコンピュータは、磁気ディスク;光ディスク;ランダムアクセスメモリ;読み出し専用メモリ;フラッシュメモリデバイス;電気、光、又はその他の形式の伝播信号(例えば、搬送波、赤外線信号、レーザー、デジタル信号等);等のような機械読み取り可能な媒体を使って、コード及び/又はデータを格納及び/又は(内部で、及びネットワーク上の他のネットワーク要素と)通信する。もちろん、本発明の一又はそれ以上の部分は、ソフトウェア、ファームウェア、及び/又はハードウェアの如何なる組み合わせを使っても実装することができる。
【0014】
一実施形態では、さらに説明するように、カスタマイズ可能な製品の構築子は、関係のあるカスタマイズ可能な、かつコンポーネントのクラスのセット(例えば、製品又はサービス)により、オブジェクト指向クラス階層から引き出される。一実施形態では、カスタマイズ可能な製品の基盤構造を定義する属性を含む。コンポーネント製品、カスタマイズ可能なクラス規則、及びカスタマイズ可能なユーザーインターフェース(UI)クラスは、カスタマイズ可能な製品クラスのサブクラスとしてモデル化されることができ、かつカスタマイズ可能な製品クラスから属性を継承することができる。消費者がカスタマイズ可能な製品のインスタンスを作る時、これらのクラスからカスタマイズ可能なオブジェクトのインスタンスを生成することができる。
【0015】
一実施形態では、構築子の処理は、モデル化セッション及び実行時セッションという2つの別個のセッションに分けられる。モデル化セッションの間、構築の専門家(例えば、販売員又は製品管理者)は構築子を設計する。図1は、本発明の一実施形態による、オブジェクト指向構築子のモデル化のブロックダイヤグラムを示している。ブロック110では、新しいカスタマイズ可能な製品が定義された属性で作成され、かつ制御はブロック120に移る。ブロック120では、新しいカスタマイズ可能な製品がクラスに割り当てられ、かつ制御はブロック130に移る。これは、カスタマイズ可能な製品のクラス階層において親クラスになる。
【0016】
ブロック130では、コンポーネント製品がカスタマイズ可能な製品クラスに加えられ、かつ制御はブロック140に移る。コンポーネント製品はサブクラスであり、かつカスタマイズ可能な製品クラスの属性を継承する。ブロック140では、カスタマイズ可能な規則が カスタマイズ可能な製品クラス構造に加えられ、かつ制御はブロック150に移る。ここで、カスタマイズ可能な規則は、構築の専門家により設計することができ、条件、及び消費者が自己の要求を満たす最適な解決法を購入することを保証するコンポーネント製品間の引金となる動作を定義する。
【0017】
ブロック150では、カスタマイズ可能なユーザーインターフェース(UI)はカスタマイズ可能な製品クラス構造にマッピングされ、それにより構築の専門家が、カスタマイズ可能な製品に合わせてコンポーネント製品のユーザーインターフェースを仕立てることが可能になる。最後に、ブロック160で、構築子が実行時セッションに開放され、消費者がカスタマイズ可能な製品を作ることが可能になる。
【0018】
認識するであろうように、クラス属性及びクラス規則の継承のようなセッションのモデル化のオブジェクト指向の性質は、構築子を構築する複雑さを少なくし、構築の専門家が構築子に必須の変更をすることを考慮し、かつモデル化から実行時までの時間のズレを減少させる。
【0019】
実行時セッションの間、消費者(例えば、カスタマイズ可能な製品を構築したい人)は、カスタマイズされた製品又はサービスを構築するため、構築の専門家によって設計された構築子にアクセスする。一実施形態では、カスタマイズ可能な製品の構築が、消費者により選択された特定のカスタマイズ可能な製品クラスのために設計されたユーザーインターフェース(UI)を通して、消費者により実行される。カスタマイズ可能な製品クラスに対して、特定のコンポーネント製品又はコンポーネント製品の集合を選択するとき、さらに説明するように、定義された規則により、他のコンポーネント製品を自動的に加える、又は限定することができる。一実施形態では、販売員はまた、消費者が自己の要求に合う適切な製品を見つけるのを助けるために、実行時構築子にアクセスすることもできる。このように、構築の専門家は、カスタマイズ可能な製品を設計するために、最新の製品及び見積りのリストを持つ。
【0020】
以下は製品(例えば、カスタマイズ可能な製品、コンポーネント製品、等)と関連して説明するが、説明するカスタマイズ可能な製品の構築子は、製品のみに限定されず、他のインスタンス(例えば、サービス)をカスタマイズするために使用することができることを理解すべきである。さらに、構築子の代替の実施形態はまた、資料及び契約書のような様々な形式の製品又はサービスをいくつでも含むことができ、かつそれは、ここで説明するそれらの例に限定されない。
【0021】
一実施形態では、カスタマイズ可能な製品の構築子は、カスタマイズ可能な製品階層に組織化されるカスタマイズ可能な製品クラス及びサブクラスから生成される。モデルセッション間に定義されたカスタマイズ可能な製品クラスは、任意の数のインタスタンス(例えば、コンピュータシステムのインスタンス、車のインスタンス)、又はインスタンスの形式(例えば、モデルXのコンピュータシステム、モデルYのコンピュータシステム)も表現することができる。一実施形態では、カスタマイズ可能な製品クラスが設計される時、カスタマイズ可能な製品のクラス名の属性は一意であり、かつそのカスタマイズ可能な製品クラス名は、利用できるカスタマイズ可能なクラスのセットに追加される。その後は、全ての関連のあるコンポーネント製品、カスタマイズ可能なクラス規則、及び設計されたカスタマイズ可能なユーザーインターフェース(UI)は、カスタマイズ可能な製品クラスのサブクラスとなる。
【0022】
図2は、一実施形態による、カスタマイズ可能な製品のための、定義された属性を持つクラス階層を示している。ここで、カスタマイズ可能な製品クラスは、キャビネット212という属性を持つパソコン(PC)210、サイズ222という属性を持つカード220、ハードディスク(HD)230、及び色242という属性を持つケーブル240としてモデル化される。
【0023】
パソコン(PC)210は、メモリ252という属性及びキャビネット254という属性を持つ高速パソコン(PC)250と定義される、コンポーネント製品サブクラスを持つ。カード220は、ビデオカード260及び音声カード270と定義される2つのコンポーネント製品サブクラスを持つ。ビデオカード260はサイズ262という属性を持ち、及び音声カード270はサラウンド272という属性及びサイズ274という属性を持つ。ハードディスク(HD)230は、定義されたRPM282という属性を持つSCSI280と定義されるコンポーネント製品サブクラスを持つ。
【0024】
典型的に、クラス階層はクラス及びサブクラスから構成される。サブクラスは、他のクラスの中で定義されるクラスである。例えば図2では、ビデオカード260及び音声カード270は、逆にそのビデオカード260及び音声カード270の親クラスとなるであろう、カード220というカスタマイズ可能な製品クラスのサブクラスである。サブクラスは、常に親クラスを持ち、かつクラスは必要な数の階層まで階層化することができる。一実施形態では、カスタマイズ可能な製品のクラス階層を設立するために使用するクラス化手法は、製品ライン、ビジネス過程、及びカスタマイズされるための市場取引及び販売に依存する。例えば、製品ラインにおける全てのディスクドライブを含むディスクドライブという名のカスタマイズ可能な製品クラスを作ることができるであろう。コンポーネント製品クラスの主要な特徴は、帰属関係が種類ベースであるということである。全てのメンバーは、同じ種類である。例えば、ハードディスク(HD)230クラスの全てのメンバーはディスクドライブである。
【0025】
一実施形態では、コンポーネント製品クラスは、カスタマイズ可能な製品クラスに関係する関連商品である。すなわち、コンポーネント製品が、カスタマイズ可能な製品をカスタマイズ可能にする。コンポーネント製品クラスは、一度に一つ、又はグループとして、カスタマイズ可能な製品クラスに付加することができる。例えば自動車は、コンポーネント製品クラスと定義される自動車用タイヤを持つ、カスタマイズ可能な製品クラスと定義することができる。自動車用タイヤは、一度に一つ付加されることができる、又は4つのタイヤの一グループを同時に付加することもできる。
【0026】
同様に、一実施形態では、コンポーネント製品クラスはまた、他のカスタマイズ可能な製品を含むこともできる。このように、カスタマイズ可能な製品とは、最終のカスタマイズ可能な製品の中にコンポーネント製品として包含される下位組み立て部品である。例えば、構成可能な電源供給装置、及び構成可能な高速機は、工業用旋盤の一部として売られると想定する。電源供給装置を構成するために一つのカスタマイズ可能な製品が作られることができ、かつ、高速機を構成するために一つのカスタマイズ可能な製品が作られる。次に、これらコンポーネントであるカスタマイズ可能な製品の双方とも、サブクラスとして、工業用旋盤のカスタマイズ可能な製品に付加することができる。
【0027】
一実施形態では、あるコンポーネント製品クラスが指定された親クラス(例えば、カスタマイズ可能な製品クラス、又は他のコンポーネント製品クラス)のサブクラスと定義されるとき、親クラスは、そのサブクラスの親クラス属性の範囲内で定義される。コンポーネント製品クラスがカスタマイズ可能な製品クラス階層に加えられる時、それは自動的に、一つ又は複数の親クラスの全ての属性を継承する。カスタマイズ可能な製品クラスでは、コンポーネント製品クラスにおいてどの属性が保持されるか定義し、それらの属性をコンポーネント製品クラスに伝搬し、かつ、それらの属性を一貫したやり方で維持しなければならない。
【0028】
各カスタマイズ可能な製品クラスは、モデル化の間に、属性の集合と対応付けられる。属性は、カスタマイズ可能な製品クラス及びサブクラス、及び、コンポーネント製品クラス及びサブクラスについての、取り込まれかつ保持されるべき、規定された形式の情報である。一実施形態では、各属性は、指定された領域又は範囲からの名前又は識別子、データ形式、及び値を持つ。
【0029】
カスタマイズ可能な製品クラス又はサブクラスにおける属性が定義される時、属性は、全てのそのメンバーコンポーネント製品クラス及び全てのメンバーサブクラスにより継承される。一実施形態では、属性は、カスタマイズ可能な製品クラスの階層で定義されるが、しかしコンポーネント製品クラスの階層では定義されない。例えば図2では、高速PCのコンポーネント製品サブクラスは、親クラスであるパソコン(PC)210の中のキャビネット212という属性から継承されるキャビネット254という属性を定義している。
【0030】
カスタマイズ可能な製品クラス又はサブクラスの階層で属性を定義することにより、複数のコンポーネントオブジェクトにおける属性の作成及び管理がより効率的となることが可能になる。また、カスタマイズ可能な製品クラスは、クラス階層の構築及び変更の間、属性をコンポーネント製品に伝搬し、かつカスタマイズ可能な製品クラス間で属性を入れ替えるための中心的な場所を提供する。
【0031】
しかしながら、属性はカスタマイズ可能な製品クラスの階層で定義されることのみを必要とするのではなく、別の実施形態では、属性はまたコンポーネントクラスの階層で定義されることもできるということを認識するであろう。一実施形態では、属性がコンポーネントクラスの階層で定義される時、属性は静的であり、かつその親クラスから継承しない。ここで例えば、図2では、サブクラスである高速パソコン(PC)250のキャビネット254という属性に格納される値は、親クラスであるパソコン(PC)210の属性212に格納される値とは異なるであろう。
【0032】
また、サブクラスである高速パソコン(PC)250においてのみ定義されるメモリ252という属性は、その親クラスではなく、サブクラスにおいてのみ定義される属性の他の例である。新しい属性がカスタマイズ可能、又はコンポーネント製品のサブクラスにおいて明示的に定義される時、継承された属性を「遮蔽する」という。
【0033】
一実施形態では、各カスタマイズ可能な製品クラスは、あらかじめ定められた属性−値のペアのセットと対応付けられる。属性の値は、コンポーネント製品クラスのオブジェクトの層で割り当てられる。あらかじめ定められた属性−値のペアのセットは、そのカスタマイズ可能な製品クラス及び他のカスタマイズ可能な製品クラスとのその関連性についての実行時セッションのデータを保持する。それゆえ、属性の値は、コンポーネント製品クラスからカスタマイズ可能な製品クラスの中のコンポーネント製品クラスまで、様々であるとすることができる。
【0034】
一実施形態では、属性のデータ形式は次のものを含む:数値、整数、浮動小数点、列挙、文字列、日付、時刻、通貨、電話番号、ブール値、等である。一実施形態では、その値が定量的なものである属性は、関連のあるデータ形式を持つ。すなわち、特定のデータ形式の数量のみが、属性の値として表される。属性の値はまた、(様々なデータ形式の)数量、又はカスタマイズ可能な製品クラスの中の一群のコンポーネント製品クラスから構成されるグループを表すものとすることもできる。さらに以下で説明するように、その値がコンポーネント製品クラスのグループである属性は、ポートと呼ばれる。
【0035】
一実施形態では、属性に対する許容値の領域を定義することができる。属性は、次の3つの形式の領域を持つことができる:単一の値、値のリスト、又は属性に対する値の範囲である。例えば、色という属性は、赤、緑、青の領域を持つことができるであろう。一実施形態では、属性のデフォルト値を定義することもできる。
【0036】
属性はさらに、様々な方法でクラス化することができる。一実施形態では、属性は、固定属性と動的属性とに分けられる。固定属性の値は、完全にモデル化セッションの中で定められるが、一方、動的属性の値は、実行時セッションの間に定められる。
【0037】
一実施形態では、コンポーネント製品クラスを、コンポーネント製品又はポートの一つのリストにまとめることができる。ポートの中に含まれる全てのコンポーネント製品クラスは、同じ形式である。ポートは、それが含んでいるコンポーネント製品の数により特徴付けられることができる。その値がコンポーネント製品クラスの集合であるポート属性は、カスタマイズ可能な製品クラスとして分類される。カスタマイズ可能な製品クラスのサブクラスであるコンポーネント製品クラスのみが、その属性における値の集合の中に現れることができる。
【0038】
図3は、本発明の一実施形態による、ポート属性を含む、模範的なクラス階層を示している。図3は、メモリ319及びキャビネット322という定義された属性を持つ私のパソコン(MyPC)305のサブクラスである、高速パソコン(PC)310というコンポーネント製品を含む。PCIスロット311及びハードディスク(HD)ベイ315という2つのポートもまた含まれる。ここで、PCIスロット311及びハードディスク(HD)ベイ315は、高速PC310が複数のPCIスロット及びハードドライブベイでカスタマイズされることができることを示している。これらのポートの属性はまた、基数(要素312及び316)、そのポートに関連し得るコンポーネント製品の形式の領域値(要素313及び317)の形式、及びデフォルトの領域値(要素314及び318)も表現する。ここで基数の値312は、PCIスロット311が、デフォルトの領域値314が全く定義されずにインストールされたカードと定義される領域値313の0から2までの値をとることができることを定義している。基数の値316は、ハードディスク(HD)ベイ315が、デフォルトの領域値318が10Gigと定義されてインストールされたSCSIハードドライブと定義される領域値317の1から4までの値をとることができることを定義している。さらに、基数の使用の説明は、下で述べる。メモリ319という属性は、デフォルトの値321が256と定義された、128及び256と定義される領域値320を持つ。キャビネット322という属性は、デフォルトの値324がMTと定義された、DT又はMTと定義される領域値323を持つ。
【0039】
図3はまた、PCIスロットにインストールすることのできるカードの形式も表す。ここで、ビデオカード342は3D340というクラスのサブクラスのカードであり、かつ音声カード352は超音声350というクラスのサブクラスである。ビデオカード342及び音声カード352の双方とも、PCIスロットにインストールすることのできるカードのポートである。ビデオカード342はまた、定義された他のポートであるケーブル343、及びサイズ347という属性も持つ。サイズ347という属性は、デフォルトの値349がショート型と定義された、ショート型又はロング型と定義される領域値348を持つ。
【0040】
音声カード352サブクラスは、定義されたサイズ353及びサラウンド356という属性を持つ。サイズ353は、デフォルト値355がショート型と定義され、ショート型又はロング型と定義される領域値354を持つ。サラウンド356(例えば、サラウンド音声)は、デフォルト値358がyesと定義され、yes又はnoと定義される領域値357を持つ。
【0041】
上述のように、ケーブル343というポートは、そのポートと関連し得るコンポーネント製品クラスの形式を表す属性を含む。ここで、基数344は、ケーブルと定義される領域値345の一つを含むように定義される。ここで、ビデオ380というポートに対し、デフォルト値346が定義される。次いで、ケーブル343というポートは、ビデオ380のサブクラスであるケーブル382と関連付けられるが、これは、デフォルト値385が赤と定義され、赤及び緑と定義される領域値384を持つ色383という属性を含む。
【0042】
ハードディスク(HD)ベイ315の説明に戻ると、ポートは、RPM363という属性が定義された10Gig360のサブクラスであるSCSI362、及びRPM373という属性が定義された20Gig370のサブクラスであるSCSI372を含む。RPM363及びRPM373の双方の属性とも、デフォルト値365及び375が7200と定義され、4500及び7200と定義される領域値364及び374を持つ。
【0043】
一実施形態では、ポートは一般的にデフォルトの近辺で包括的であるが、しかしまた排他的と定義されることもでき、これは、そのポートに現れるどのコンポーネント製品クラスも、他の如何なるコンポーネント製品クラスのオブジェクトのポートにも出現しない(しかしながら、同じコンポーネント製品クラスの他のポートには現れることができる)であろうことを意味する。
【0044】
ポート特性のペアはまた、逆数と定義することもできる。逆数のペアである属性の一つであるポートは、そのペアにおける他方の属性を所有するコンポーネント製品クラスを含むのみであろう。例えば、夫婦は逆数属性であると定義する場合、例えばもしジョンの妻がメアリーであるならば、メアリーの夫はジョン、ということになる。
【0045】
逆数の属性は、上の例のように一対一とすることができる、或いは多対一、一対多、又は多対多とすることができることを理解すべきである。たとえ幾つクラスが含まれていたとしても、各セットは他のセットの各メンバーについて対応する属性の値として現れるように、逆数のポートは基本的に、コンポーネント製品クラスのただ2つのセットを定義する。多対多の例としては、売り手と買い手が逆数と定義される場合がある。その時、各売り手は買い手の一般的なグループにアクセスするであろう、及び、各買い手は売り手の一般的なグループにアクセスするであろう。一実施形態では、逆数属性のポートは、それぞれ独立して、包括的又は排他的のいずれかに定義することができる。
【0046】
包括的なポート及び排他的なポートの双方を持つ一対多の例として、車の車輪ポートは排他的とすべきであり、その結果4つの車輪がただ一つの車に属することになるが、しかし、各車輪の車ポートは包括的であるとする必要があろう、その結果全ての車輪を同じ車に取り付けることができるであろう。
【0047】
一実施形態では、ポートは基数を有する。あるポートが定義される時、最小、最大、及びデフォルトの基数を指定することができる。基数は、実行時セッションの間に消費者がポートから選択することのできるコンポーネント製品クラスの数を指す。例えば、ハードドライブというポートが定義されると想定する。それは、20GBドライブ及び30GBドライブを含む。最小基数が2に設定される場合には、消費者はこのポートから2つの品目を選ばなければならない。消費者は、次の方法のいずれかにより、これを行うことができる。一つの20GBドライブ及び一つの30GBドライブ選択する、二つの20GBドライブを選択する、又は二つの30GBドライブを選択する、である。
【0048】
一実施形態では、基数の3つの形式が存在する。最小、最大、及びデフォルトである。図4は、本発明の一実施形態による基数設定のいくつかの組み合わせを示す。図は、構築子において消費者に最初に何が表示されるか、及び消費者が一実施形態により実行することができる動作を説明する。Nは、構築子におけるデフォルトのコンポーネント製品クラスの数である。最小基数が0より大きい全ての場合において、消費者は、デフォルトの製品の代わりに他のコンポーネント製品を代用することができる。
【0049】
最小基数は、インスタンスポートからコンポーネント製品クラスを選択することが任意であるか否か、又は必須であるか否かを支配する。最小基数が0に設定される場合には、コンポーネント製品クラスを選択することは任意である。最小基数が0より大きく設定される場合には、ポートから指定された数のコンポーネント製品クラスを選ばなければならない。
【0050】
最大基数は、実行時セッションの間にユーザーがポートから選択することのできるコンポーネント製品クラスの最大数を設定する。最小基数が0より大きく設定される場合には、最大基数は最低でもそれと同じに設定されなければならない。
【0051】
デフォルトの基数は、実行時セッションの間にどれほどの数のデフォルトコンポーネント製品クラスが初期設定に自動的に付加されるか、を指定する。一実施形態では、デフォルトの基数は、最小基数と同じ又はそれ以上でなければならず、かつ最大基数より小さい又は同じでなければならない。
【0052】
一実施形態では、コンポーネント製品クラスは、カスタマイズ可能なクラス規則と呼ばれる式の集合を含む。カスタマイズ可能なクラス規則は、コンポーネント製品上の制約を定義する。このカスタマイズ可能なクラス規則を通じて、構築の専門家は、消費者が自己の必要に対して適切な製品を選択するように誘導するのを助ける。ここで、カスタマイズ可能なクラス規則は、特定のコンポーネント製品の選択時に、一又はそれ以上のコンポーネント製品の選択を要求又は排除するように定義され、又は、カスタマイズ可能なクラスは、個々のコンポーネント製品が選択される時、勧告のメッセージの表示を引き起こすことができる。例えば、実行時セッションの間に消費者により特定の形式のモニターが選択される時、特定のモニターカードを要求するカスタマイズ可能なクラス規則が作られることができる。一実施形態では、消費者がそのモニターを選択する時、要求されるモニターカードを構築子の実行時セッションに自動的に加える。
【0053】
一実施形態では、カスタマイズ可能なクラス規則は継承されるが、しかし属性と異なり、カスタマイズ可能な規則の集合は命名されず、かつ隠蔽しない。しかしながら、いくつかの実施形態では、カスタマイズ可能なクラス規則は命名され、及び/又は隠蔽されることができることを理解すべきである。コンポーネント製品クラスが新しいカスタマイズ可能なクラス規則を付加する場合には、それらは単純にクラス階層の下方に「堆積する」。サブクラスは、そのサブクラスによって追加される任意新たなカスタマイズ可能なクラス規則に加えて、その親クラスの全てのカスタマイズ可能なクラス規則を所有する。
【0054】
上述のように、カスタマイズ可能なクラス規則は式の集合を有する。一実施形態において、式は、演算子を用いて結合される特性パス及び定数から構成されるテンプレートである。式は、実行時セッションの間、カスタマイズ可能なクラス規則の制約を実装するために評価されることができる。各評価は、いくつかの個々の状況の中で実行され、これは、式で作られるどんな自由な参照の意味も解決する。式により作られる制約の性質は、その式が評価される環境に依存する。
【0055】
一実施形態では、構築の専門家は、自然言語のテンプレートによりカスタマイズ可能なクラス規則を構築する。ここで、テンプレートは、構築の専門家が規則構築ツールを使って完成させる空欄記入式の自然言語文である。それらの目的は、ソフトウェアエンジニアによって修正する必要のあり得るカスタマイズ可能なクラス規則のアセンブリ言語から、構築の専門家を完全に保護することである。自然言語のテンプレートは、構築の専門家が実装することのできる、理解しやすく、かつ充分に国際化可能な自然言語文を使用することができる。テンプレートの式のいくつかの例は、次のようなものである。
「コンポーネント製品1は、コンポーネント製品2を必要とする。」
「コンポーネント製品の数がある数値より小さいことを確かめなさい。」
「顧客が50以上のコンポーネント製品を選択する場合には、上等な顧客ボーナスパックを無償で含めなさい。」
「一つのコンポーネント製品の数量と他のコンポーネント製品の数量を加え、次に第三のコンポーネント製品の数量からその合計を引きなさい。」
「ある数値とある数値の合計。」
「ある数値とある数値の絶対値との積。」
【0056】
構築の専門家は自然言語のテンプレートを選択することができ、次に、定義されたクラス及び属性(例えば、コンポーネントのクラス及び属性)、数式、又は他のテンプレートで空欄を埋めることができる。次に、自然言語のカスタマイズ可能なクラス規則は、下位レベルの規則アセンブリ言語に変換される。ここで、構築の専門家が最小限のキー入力で複雑な規則を作ることができるようにするために、数式構築器及び自然言語表現構築器の組み合わせを使用することができる。
【0057】
一実施形態では、一括のカスタマイズ可能なクラス規則を使用することができ、これにより、一回のステップで如何なるテンプレートの空欄も埋めるために、構築の専門家が値のリストを入力することが可能になる。一括の規則は、一つのコンポーネント製品クラスにおいて多数の規則を作成するのに、特に役立つ。また、述語ベースのカスタマイズ可能なクラス規則の設計を使用することもでき、これにより、条件と動作表現を組み合わせることにより、構築の専門家が大きなカスタマイズ可能なクラス規則の文を構築することが可能になる。例えば、「ユーザーがコンピュータXを選択し、かつ構築子が3つのソフトウェア題目を含み、かつ取引先形式==’優良顧客’である場合には、運送先という属性がテキサスの時を除いて、無償アップグレードを自動選択し、かつ宣伝用マウスパッドを自動選択しなさい。」
【0058】
様々な規則構築器が説明されているが、自然言語、又は低レベルの規則アセンブリ言語のいずれを使用するのか、本発明はどのような形式の規則構築器にも限定されないことを理解すべきである。一実施形態では、全てのテンプレート及び変換はデータベースの中で定義される。このように構築の専門家は、本発明を限定することなく、どんなテンプレートの設計者用ツールを使用しても、非所有のテンプレートに如何なる所有のテンプレートも付加することができる。
【0059】
上述のように、式は、部分的に特性パスから構成されることができる。特性パスは、実行時セッションの間に他のコンポーネント製品クラスのポート内に現れ得るコンポーネント製品クラス(かつ、それら自身がさらに他のコンポーネントサブクラスを含む場合もある等)の属性を参照する。例えば、
私のプリンター
私のプリンターの電源コード
私のプリンターの電源コードのワット数
、、、
のような構成におけるポートは、次のように書かれ得るであろう特性パスで参照されるであろう。
[私のプリンター]
[私のプリンター].[電源コード]
[私のプリンター].[電源コード].[ワット数]
、、、
【0060】
基本的にポート又は属性は、ポート又は属性の名前により(この表記で)参照されることができ、そのポート又は属性を持つ対象のクラスにアクセスするパスが前に付けられる。これらの例では、基本となるアクセスパスは、プリンターのあるグループを参照すると仮定される[私のプリンター]ポートである。
【0061】
基本となるパスは常に、ある特定の製品クラスにより規定される状況に関して、解釈されなければならない。状況がどのように定められるかについては、さらに下で説明するであろう。基本となるパスが(ポートの値、又はポートの下位集合であるサブクラスのような)製品クラスの集合にアクセスする場合には、([私のプリンター]のサブクラスであると仮定される、上記の[電源コード]のような)ポートは、ポート名をそのパスの後ろに付けることにより参照されることができる。
【0062】
パスが、それがまたポートでもある属性にアクセスする場合には、そのポートのメンバー、それらのメンバー等へのアクセスを可能にするために、付加的な機能が存在する。第一に、ポート内のコンポーネント製品クラスの属性は、パスをさらに拡張することにより([電源コード]の属性である、上記の[ワット数]を付けるように)、参照されることができる。
【0063】
第二に、一実施形態では、ポートの値は常にコンポーネント製品クラスの集合であるので、ただ単にサブクラス名を伴うポート名に資格を与えることにより、如何なるサブクラスもアクセスされることができる。
[私のプリンター]:[HPレーザージェット].[電源コード]
は、まさにHPレーザープリンターの電源コードのサブクラスを参照する。
【0064】
第三に、グループの個々のメンバーは、そのメンバーの索引を最後に付けることにより、アクセスされることができる。例えば、
[私のプリンター]#2.[電源コード]
は、グループ内の第二のプリンターに属する電源コードを参照する。
【0065】
これらのアクセスパスは、自由に組み合わされ、かつ如何なる程度までも拡張されることができる(常に、この表記の中で左から右に読み取る)。例えば、
[私のプリンター]:[HPレーザージェット]#2.[ケーブル]:[シリアル]#1
は、第二のHPプリンターに属する第一のシリアルケーブルを参照する。
【0066】
一実施形態では、属性値を参照することで終了しないどのパスも、コンポーネント製品クラスの集合を参照する。それは、空のポート、ただ一つのメンバーを持つグループ、又は複数のメンバーを持つグループを参照することができる。
【0067】
一実施形態では、ただ空のポートを参照するだけでは、ポートは如何なるコンポーネント製品クラスを持つようにも強制されないであろう。すなわち、[CPU]#1000についてのカスタマイズ可能なクラス規則は、その構成が少なくとも1000個のCPUを持つことが確認される時に、有効であるだけとすることができる。しかしながら、どの制約も1000番目のCPUが存在することを必要としなかった場合には、このパスはそれ自身により、ただ空のポート(まさに他のいずれかのポートのように、その中に全くインスタンスを持たないポート)を参照するだけであろう。逆に、参照されるコンポーネント製品クラスを存在させるためには、全グループの数を充分大きい正の値に制約しなければならないか、及び/又は索引付けされるポートの数を非零に制約しなければならないかのいずれかである。
【0068】
一実施形態では、パスの中で参照される属性及びポートは、参照されているクラス階層において実際に定義される属性又はポートでなければならない。サブクラスにおいて定義されるのみである属性又はポートを参照するために、パスを下位集合であるサブクラスにダウンキャストすることが必要である。一実施形態では、このように、そのサブクラスのオブジェクトが全く存在しない時、「ダウンキャスト」されたパスは空集合を参照するであろう。
【0069】
一実施形態では、式のテンプレートを演算子特性に代入することにより、新たな演算子を定義することができる。演算子特性の名前は、その演算子が定義される任意のクラスの式の中の演算子として使用することができる。ここで、演算子特性は、サブクラスにより継承、又は隠蔽される。一実施形態では、演算子特性は、オブジェクト指向プログラミングにおける手続き及びメソッドと似ている。例えば、MutuallyRequires(相互要求)の演算子特性は次のように定義することができる。
【0070】
この定義を用いて、その演算子を対象の任意の二式に適用することにより、MutuallyRequires(相互要求)の制約を都合よく加えることができる。
【0071】
より複雑な例は、MatchingProperty(照合特性)規則をモデル化するものであり、これにより、与えられた二つのカテゴリー内での如何なる選択も、ある所定の特性について対応する値を要求するようにされる。
【0072】
演算子特性の例は所定の構文を用いて定義されているが、演算子特性の性質を実現するために代替の構文を使用することもでき、かつ本発明は、説明する構文に限定されるものではない。
【0073】
一実施形態では、構築子を他のソフトウェアアプリケーションと接続するために、また第三者のスクリプトを使用することもできる。ここで、スクリプトは、カスタマイズ可能な製品又はコンポーネント製品のクラスと対応付けることができ、かつ、カスタマイズ可能なクラス規則がするであろうように、特定の定められたイベントが起こる時に起動するように設定することができるが、しかしながら、構築子外で動作を実行するためにスクリプトを使用することができる。一実施形態では、スクリプトは、特定のイベントが発生する時に実行される連続したプログラムである。例えば、ユーザーが特定のコンポーネント製品を選択する時、現在の買い物かご又は見積書に付加的な情報を追加する、及び/又は他の外部アプリケーションと接続するように、スクリプトを作成することができる。スクリプト及びカスタマイズ可能なクラス規則は異なるタスクを実行するように記述されるけれども、代替の実施形態では、カスタマイズ可能なクラス規則は、構築子及び他のアプリケーションの双方に制約を加え、かつその双方上で連続した動作を実行することを理解すべきである。
【0074】
一実施形態では、構築の専門家は、オブジェクト指向構築子のためのカスタマイズ可能なグラフィックのユーザーインターフェース(UI)を設計することができる。カスタマイズ可能なユーザーインターフェース(UI)はカスタマイズ可能なクラス階層に接続し、かつ構築の専門家がコンポーネント製品の表示をカスタマイズすることを可能にする。例えば、構築の専門家は特定の製品ライン又は顧客ベースについて、カスタマイズ可能なユーザーインターフェース(UI)をモデル化することができる。この場合、各構築モデルは、実行時セッションがそこから動的にユーザーインターフェース(UI)を作成することになる、特化されたUIクラスを持つ。以下はユーザーインターフェース(UI)クラスベースのHTMLを説明するが、しかしながらまた、ユーザーインターフェース(UI)を作成するために、JAVAアプレット、マイクロソフトActiveX、及び標準XMLのような他の言語を使用することもできる。
【0075】
ユーザーインターフェース(UI)宣言は、テーマ、グループ、及び制御の3つのコンポーネント形式(ユーザーインターフェースクラス)を含む。
【0076】
図5は、本発明の一実施形態によるカスタマイズ可能なユーザーインターフェース(UI)クラス階層を示す。ここでカスタマイズ可能な製品構造510は、ユーザーインターフェース(UI)テーマ515と対応付けられる。ユーザーインターフェース(UI)テーマ515は、ユーザーインターフェース(UI)内のカスタマイズ可能な製品クラスの外観を定義する。ユーザーインターフェース(UI)テーマ515の表現形式の例は、タブ形式、ウィザード形式、又はツリー形式を含む。これらのテーマユーザーインターフェース(UI)の表現形式はまた、特性を、とりわけ例えば背景色、フォント、多言語の文字データのようなそれらと対応付けることができる。一実施形態では、テーマユーザーインターフェース(UI)515の特性は、名前と値のペアとして格納される。しかしながら、一実施形態では、各カスタマイズ可能な製品構造510は、まさに一つのユーザーインターフェース(UI)テーマ515を持つ。
【0077】
カスタマイズ可能な製品構造510はまた、ユーザーインターフェース(UI)グループ520と対応付けることができる。ユーザーインターフェース(UI)グループ520は、ユーザーインターフェース(UI)制御530の集合を含む。一実施形態では、ユーザーインターフェース(UI)グループ520は、一又はそれ以上のユーザーインターフェース(UI)制御530を保有する。例えばタブ形式のテーマの場合、ユーザーインターフェース(UI)グループ520は、様々なコンポーネント製品クラスを様々な分類秩序の中で定義しかつ順序付けすることのできる、単一の特性表を表す。一実施形態では、分類秩序は、さらに下で説明するようなポート540のコンポーネント製品クラスのグループとは異なるものとすることができる。
【0078】
ユーザーインターフェース(UI)制御530は、特定のユーザーインターフェース(UI)テーマ及びカスタマイズ可能な製品構造510と対応付けることができる。ユーザーインターフェース(UI)制御530は、ドロップダウンメニュー、ラジオボタン、及びリストボックスのようなユーザーインターフェース(UI)構築ブロックである。これらユーザーインターフェース(UI)制御530はまた、フォントのようなある特定の特性で定義することができる。一実施形態において、ユーザーインターフェース(UI)制御530は、ユーザーインターフェース(UI)制御530に割り当てられた個々のコンポーネント製品クラスにおける実行時セッションの状態モデルを反映するものである。例えば、特定の条件について、ドロップダウンリスト式の制御は、その条件を満たすか否かによって変化するデータを含むことができる。
【0079】
ユーザーインターフェース(UI)グループ520は、属性535又はポート540を含むことができる。属性535は、属性制御45又は属性選択550を含むことができる。属性制御545により、ユーザーインターフェース(UI)は単純なフィールド、ドロップダウン式のボックス、ラジオボックス、及びリストボックスによって属性を表示することが可能となる。属性選択550は、例えば色というような、その属性を表示する手段をに備えたものである。
【0080】
ユーザーインターフェース(UI)グループ520はまた、一又はそれ以上のポート540を含むことができる。ここでポート540は、ポートインスタンス565で表される一又はそれ以上のコンポーネント製品を含むことができる。ポート制御570により、ユーザーインターフェース(UI)は、ドロップダウン式のボックス、ラジオボックス、及びリストボックスを用いてポートインスタンス565を表示することが可能となる。
【0081】
図6は、本発明の一実施形態による、定義されたカスタマイズ可能なクラス構造を使用するためのユーザーインターフェース(UI)作成のブロックダイヤグラムを示している。
【0082】
一実施形態では、カスタマイズ可能なクラス構造を設計した後、構築の専門家は、新たに作成される設計のための実行時ユーザーインターフェース(UI)をカスタマイズするという選択をする、又はデフォルトのユーザーインターフェース(UI)設計を適用する。この実施形態におけるデフォルトユーザーインターフェース(UI)の設計は、ツリー形式である。ユーザーインターフェース(UI)を宣言することは、以下のことを含む。
【0083】
ブロック610では、ユーザーインターフェース(UI)テーマは一組のあらかじめ定義されたテーマから選択される。次に、制御はブロック620に移る。
【0084】
ブロック620では、ユーザーインターフェース(UI)テーマの特性が設定される。次に、制御はブロック630に移る。
【0085】
ブロック630では、一又はそれ以上のユーザーインターフェース(UI)グループが新たに選択されたユーザーインターフェース(UI)テーマに加えられる。次に、制御はブロック640に移る。
【0086】
ブロック640では、ユーザーインターフェース(UI)制御は、定義されたコンポーネント製品に利用可能な制御の集合から割り当てられる。次に、ユーザーインターフェース(UI)制御はブロック650に移る。ユーザーインターフェース(UI)制御が特性の更新を要求しない場合には、このブロックは飛び越すことができる。
【0087】
ブロック650では、ユーザーインターフェース(UI)制御は特性を割り当てられる。次に、制御はブロック660に移る。
【0088】
ブロック660では、ユーザーインターフェース(UI)制御がユーザーインターフェース(UI)グループに加えられる。
【0089】
一実施形態では、定義されたカスタマイズ可能な製品クラスの構造、カスタマイズ可能なクラス規則、及びユーザーインターフェース(UI)クラスが設計されると、それらは一又はそれ以上のデータ貯蔵の中に格納することができる。図7は、本発明の実施形態による、構築子の様々なコンポーネントにおけるデータ格納を示している。この図は、カスタマイズ可能な製品クラスのデータ貯蔵710、属性のデータ貯蔵720、コンポーネント製品クラスのデータ貯蔵730、静的属性のデータ貯蔵740、ポートのデータ貯蔵750、カスタマイズ可能な規則のデータ貯蔵760、及びユーザーインターフェース(UI)のデータ貯蔵770を含む。
【0090】
一実施形態では、このデータ格納は、カスタマイズ可能な製品クラスのデータ貯蔵710の中のカスタマイズ可能な製品クラスの属性が属性のデータ貯蔵720の中の属性と一対多の関係を有するリレーショナルデータベースを表す。カスタマイズ可能な製品クラスのデータ貯蔵710はカスタマイズ可能な製品クラスを格納し、かつ属性のデータ貯蔵720はカスタマイズ可能な製品について定義される属性を格納する。上で言及するように、一実施形態では、属性はカスタマイズ可能な製品クラスの階層で定義され、その結果、図7において、属性のデータ貯蔵720はカスタマイズ可能な製品クラスのデータ貯蔵710と関係を有するが、コンポーネント製品クラスのデータ貯蔵730とは関係を持たない。
【0091】
カスタマイズ可能な製品のデータ貯蔵710はまた、コンポーネント製品クラスのデータ貯蔵730との間に一対多の関係を有する。コンポーネント製品クラスのデータ貯蔵730はコンポーネント製品クラスを格納し、かつその関係は、一又はそれ以上のコンポーネント製品がカスタマイズ可能な製品を作り上げることを表している。さらに、カスタマイズ可能な製品は一つのカスタマイズ可能な製品から構成されることができるので、カスタマイズ可能な製品のデータ貯蔵710は、自分自身と一対一の関係を有する。
【0092】
コンポーネント製品クラスのデータ貯蔵730は、静的属性のデータ貯蔵740と一対多の関係を持つ。静的属性のデータ貯蔵740は、一実施形態によるカスタマイズ可能な製品クラスには見えないコンポーネント製品クラスの静的属性を格納する。コンポーネント製品クラスのデータ貯蔵730はまた、ポートのデータ貯蔵750と多対一の関係を持つ。ポートのデータ貯蔵750はコンポーネント製品クラスのインスタンスを格納し、かつ、一実施形態では、クラス形式のように一つにまとめるために、多くのコンポーネント製品をポートのデータ貯蔵750の中に格納できることを表している。
【0093】
コンポーネント製品クラスのデータ貯蔵730は、カスタマイズ可能なクラス規則のデータ貯蔵760に格納される各カスタマイズ可能なクラス規則と一対多の関係を持つ。また、コンポーネント製品クラスのデータ貯蔵730は、定義された各コンポーネント製品について定義される様々なユーザーインターフェース(UI)の形式を格納するユーザーインターフェース(UI)のデータ貯蔵770と一対多の関係を持つ。
【0094】
様々な形式の複雑なカスタマイズ可能製品に対する複数の設計が、データ貯蔵のために設計され、かつその中に格納される。さらに、単一モデルの様々な型もまた、設計及び格納されることができる。一実施形態では、カスタマイズ可能な製品のインスタンスは、それ自身の固有の身元情報、個別の特徴、及び、他のコンポーネント製品、そのカスタマイズ可能な製品内部のカスタマイズ可能なクラス規則及びユーザーインターフェース(UI)との明確な関係を含む。
【0095】
一実施形態では、データ貯蔵は、リレーショナルデータベース管理システム、又はオブジェクト指向データベース管理システムのようなデータベース管理システムから構成されることができるが、しかしながら、当業者によく知られた代替のデータベース管理システムもまた使用することができる。
【0096】
一実施形態では、籠と呼ばれる特別なクラスの単一インスタンスが、各構成の中に暗黙に存在する。籠は、単一の特別な(無名の)「汎用ポート」を持ち、そのクラスはモデルのルートクラスである。この汎用ポートは、構成内のあらゆるクラスを含む。
【0097】
籠は、なおその上、構成のグローバル属性のような他の特性を持つことができる。一実施形態において、籠を参照する時、特性パスは$で始まる。$の後に属性名、演算子テンプレート、又はポートが続く場合には、それは構成全体のグローバル属性を参照する。例えば、
$[総電力]
は、構成に必要な電力の総計を与える資源を指すであろう。
【0098】
その代わり、$の後にクラス名が続く場合には、それは籠の「汎用ポート」内のそのクラスのコンポーネント製品の下位集合を指す。
$[プリンター]
は、プリンターの全カテゴリーの数を指し、それと同時に、
$[HPレーザージェット]
は、まさにその特定の機種の数量を指す。
【0099】
籠により、ユーザーは、構築を空の初期状態から開始させることが可能となる。例えば
1 QTY_LE $[HPレーザージェット]
というような要求を入力することは、構成の中に少なくとも一つのHPプリンターがあることを意味する。この後に
$[HPレーザージェット]#1.[Auxペーパートレイ] QTY_EQ 2
を付けると、第一のインスタンスにまさに二つの予備の用紙トレイを持たせることになる、等である。
【0100】
籠により、ユーザーはまた既存の部品を接続することも可能となる。例えば、セッションの後の方でCPUが作られる場合には、以下のような要求を発信することにより、上記のプリンターを付けることができる。
$[HPレーザージェット]#1 GRP_EQ $[CPU]#1.[プリンター]
【0101】
一実施形態では、リンクされたコンポーネント製品は、製品に加えてさらに他の形式の情報へのアクセスを提供する。リンクは、ビジネスコンポーネント内のフィールドへの規定されたリンク、ユーザーのログイン名へのリンク、又は現在のシステムの日付へのリンクであるとすることができる。例えば、外部ユーザー管理システムへのリンクは、特定のユーザーが特定の値段で製品を購入できるか否かを定めることができる。これによりユーザーは、例えば、とりわけビジネスコンポーネントのフィールド、ログイン名、又はシステムの日付を必要条件とする規則を記述することが可能となる。
【0102】
構築の専門家がカスタマイズ可能な製品をモデル化した後、消費者又は販売員は、上述のオブジェクト指向クラスからカスタマイズ可能な製品オブジェクトのインスタンスを構築することができる。ここで顧客は、その固有名で、カスタマイズ可能な製品クラスのインスタンスから新しいカスタマイズ可能な製品オブジェクトを作る。次に、カスタマイズ可能な製品オブジェクトに対して選択されたコンポーネント製品クラスに応じて、特定のカスタマイズ可能なクラス規則が起動される、又はユーザーインターフェース(UI)クラスが表示される。
【0103】
例えば消費者は、販売用の様々なコンピュータシステムのドロップダウン式リストを提供するタブ形式のユーザーインターフェース(UI)から、コンピュータシステム(例えば、カスタマイズ可能な製品のインスタンス)を選択することができる。コンピュータシステムを選択するときに、消費者は付属品を選択することができる、又はモニター、ハードドライブ、及びCD-ROMのようなコンピュータシステムにコンポーネント製品を加えることにより交換することができ、それら一つ一つはそれ自身のユーザーインターフェース(例えば、HTMLページ)の中で表示することができる。幾つかのコンポーネント製品を選択すると、カスタマイズ可能なクラス規則は、コンピュータシステムへの特定のコンポーネント製品の付加を制限することができ、経験豊かな販売専門員が行うであろうように、非常に複雑な製品関係を通して顧客を誘導することができる。
【0104】
一実施形態では、実行時セッションの間に、カスタマイズ可能な製品オブジェクトが生成され、かつメモリ内に常駐する。コンポーネント製品オブジェクトの選択時に、それをカスタマイズ可能な製品インスタンスと関連付ける各オブジェクトに、固有IDが割り当てられる。また値はコンポーネント製品オブジェクトの各属性とペアにされ、そこで、属性に対応する値の形式は、モデル化セッションの間に割り当てられた属性の定義により定められる。次に、新たなカスタマイズ可能な製品インスタンスをデータ貯蔵内に格納することができる。一実施形態では、格納されたカスタマイズ可能な製品オブジェクトをデータ貯蔵から受け取るために、関連する固有IDが各コンポーネント製品オブジェクトについて繰り返すのに使用され、コンポーネントオブジェクトに割り当てられたID、そのコンポーネントオブジェクトにおけるオブジェクトのクラス及び属性−値のペアを出力する。
【0105】
説明する実施形態は、販売専門員がカスタマイズ可能な製品の構築子を実装するのに、より大きな自由度を与えるということを認識すべきである。販売専門員は、オブジェクト指向クラス階層の使用から恩恵をうけるが、これは手続き型プログラミング言語の広範な知識なしに、そこからコンポーネント製品が定義されかつ使用される構造を提供するものである。このように、カスタマイズ可能な製品の構築子のモデル化と実行時インスタンスとの間の時間のずれを減らすことにより、販売専門員は顧客になりそうな人に高度なオンライン販売を提供することができる。さらに、クラス規則によって提供されるエキスパート論理により、あたかも消費者を誘導するための販売専門員が存在するかのように、消費者は自己特有の必要及び予算に対して最適なカスタマイズ可能な製品を購入することが可能となる。
【0106】
図8は、カスタマイズ可能な製品の構築子を生成するための処理の実施形態に役立つ、一又は複数の媒体を示している。媒体800のブロックの各々は、別々に又は他のブロックと組み合わせて実装することができ、かつ全てのブロックを実装する必要はない。ブロック810は、定義された属性を用いてカスタマイズ可能な製品を作成するのに使用することができるカスタマイズ可能な製品作成ロジックを含む。ブロック820は、カスタマイズ可能な製品をクラスに割り当てることができるカスタマイズ可能な製品割り当てロジックを含む。ブロック830は、カスタマイズ可能な製品クラスにコンポーネント製品サブクラスを付加することができるコンポーネント製品付加ロジックを含む。このように、属性はカスタマイズ可能な製品クラスから継承する。ブロック830は、カスタマイズ可能な製品クラスに規則を付加することができるカスタマイズ可能な規則付加ロジックを含み、その結果、コンポーネント製品付加ロジックに対して条件を与える。ブロック840は、カスタマイズ可能な製品クラスに対するユーザーインターフェースを構築することができるカスタマイズ可能なユーザーインターフェース(UI)マッピングロジックを含む。
【0107】
詳細説明のいくつかの部分は、アルゴリズム及びコンピュータメモリ内でのデータビット操作の記号表現によって表される。これらアルゴリズム的説明及び表現は、当業者が自己の作業の内容を他の当業者に最も効果的に伝えるために使用する手段である。ここで説明するアルゴリズムは一般的に、所望の結果を導く自己一貫した一連の行為又は操作であると考えられる。行為とは、物理量の物理的操作を要求する行為をいう。必ずしもそうではないが、通常これらの量は、格納、転送、結合、比較、及びさもなければ操作することのできる電気信号又は磁気信号の形をとる。主に一般的な使用のため、これらの信号をビット、数値、因子、記号、文字、用語、数字、データ等で参照することが時々便利であることが証明される。
【0108】
しかしながら、これらの全ては、同様な観点から適切な物理量と対応付けられ、かつ、ただ単にこれらの数量に付される便利なラベルにすぎないことに留意すべきである。特に以下の考察から明らかに述べられない限り、説明を通して、「処理」又は「演算処理」又は「計算」又は「判定」又は「表示」等のような用語を利用する考察は、コンピュータシステム、又はコンピュータシステムのレジスタ及びメモリ内の物理(電子)量として表現されるデータを操作し、かつそれをコンピュータシステムのメモリ、又はレジスタ、又は他のそのような情報蓄積の伝達装置又は表示装置内で物理量として同様に表現される他のデータに変換する同様な電子演算装置の動作及び処理を指す。この中で操作を実行するための装置により、本発明を実装することができる。この装置は、要求された目的のために特別に組み立てることができる、又はコンピュータの中に格納されるコンピュータプログラム(例えば、マシン又はプロセッサによる実行のための指令の集合のような)により選択的に起動、又は再構築される一般的用途のコンピュータのようなマシンを含むことができる。このようなコンピュータプログラムは、フロッピーディスク、光ディスク、CD-ROM、及び磁気光ディスクを含む任意の形式のディスク、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、消去可能プログラム可能な読み取り専用メモリ(EPROM)、電気的に消去可能プログラム可能な読み取り専用メモリ(EEPROM)、磁気又は光カード、或いは電子的構造物を格納するのに適しかつ各々がコンピュータシステムバスに繋がれる任意の形式の媒体等のような、コンピュータ読み取り可能な記憶媒体に格納することができる。これらの媒体の各々は、当の媒体の読み取り、及び又は書き込みに適したデバイスの使用を通じて、コンピュータシステムバスに繋ぐことができる。専門装置は、手軽に利用できる部品の集合、又は例えば一連のロジックブロックを含むアプリケーション特有の集積回路を含むことができる。図1、6、又は8のブロックは、ここで説明する方法、システム、及び装置の他の構成と同様に、ロジックブロックとしての実装に適しているものとすることができる。
【0109】
ここで提示されるアルゴリズム及び表示は元来、如何なる特定のコンピュータ、又は他の装置にも関連しない。様々な一般用途向けシステムは、ここでの教示に従ってプログラムを用いて使用することができる、又は要求された方法を実行するためにより特化された装置を構築するのに都合がよいことが判明し得る。例えば、一般用途向けプロセッサをプログラムすること、又はハードウェア及びソフトウェアの任意の組み合わせにより強固に接続された回路の中に、本発明による如何なる方法も実装するこができる。当業者の一人は、コンピュータシステムの構成を用いて本発明を実施することができることを即座に認識するであろう。説明したもの以外の構成は、携帯型デバイス、マルチプロセッサシステム、マイクロプロセッサベースの又はプログラム可能な消費者電子機器、ネットワークPC、ミニコンピュータ、汎用大型コンピュータ等を含む。本発明はまた、分散コンピューティング環境又はタスクで実施することができる、又は通信ネットワークを通して繋がれるリモートの処理装置により実行することができる。様々なこれらのシステムに必要な構成が、上の説明から明らかである。
【0110】
本発明の方法は、コンピュータソフトウェアを用いて実装することができる。実装するために設計された公認の標準の一連のマニュアルに準拠するプログラミング言語で書かれる場合、その方法は、様々なハードウェアプラットフォーム又はマシン上での実行のために、及び様々なオペレーティングシステムとのインターフェースのために、コンパイルすることができる。さらに本発明は、どれか特定のプログラミング言語を参照して説明されるものではない。ここで説明するような本発明の教義を実装するために、様々なプログラミング言語を使用することができることを認識するであろう。さらに、稼動させる又は結果をもたらすように、ソフトウェアを一つの形又は他の形(例えば、プログラム手続きアプリケーション等)で表すことは、当業者には一般的である。そのような表現は、コンピュータによるソフトウェアの実行により、そのコンピュータのプロセッサが動作を実行する又は結果を生み出すことを記述する、ただの速記の方法にすぎない。
【0111】
本発明はいくつかの実施形態の点から説明されているけれども、当業者は、本発明が説明される実施形態に限定されないことを認識するであろう。本発明の方法及び装置は、添付の特許請求の範囲の技術的範囲内の修正及び変更を伴って、実施することができる。従って、本発明を制限するものではなく、例証となるものとして本説明を認識すべきである。
【0112】
以下の説明、及び本発明の実施形態を示すのに使用される添付図面を参照することにより、本発明を最もよく理解することができる。
【図面の簡単な説明】
【0113】
【図1】一実施形態による、オブジェクト指向構築子のモデル化のブロックダイヤグラムを示している。
【図2】一実施形態による、カスタマイズ可能な製品のために定義された属性を持つクラス階層を示している。
【図3】一実施形態による、ポート属性を含む、模範的なクラス階層を示している。
【図4】一実施形態による、基数の設定におけるいくつかの組み合わせを示している。
【図5】一実施形態による、カスタマイズ可能なユーザーインターフェース(UI)クラス階層を示している。
【図6】一実施形態による、定義されたカスタマイズ可能なクラス構造を使用するためのユーザーインターフェース(UI)の作成のブロックダイヤグラムを示している。
【図7】ある実施形態による、構築子の様々なコンポーネントにおけるデータ格納を示している。
【図8】カスタマイズ可能な製品の構築子を生成するための処理の実施形態に有用な、複数又は一つの媒体を示している。
Claims (39)
- 製品をカスタマイズする方法であって、
一又はそれ以上のカスタマイズ可能な製品クラスのセットを準備し、
一又はそれ以上のカスタマイズ可能な製品クラスの前記セットからカスタマイズ可能な製品をカスタマイズ可能な製品インスタンスとして指定する要求を受け取り、
一又はそれ以上のカスタマイズ可能な製品クラスの前記セットからカスタマイズ可能な製品を前記カスタマイズ可能な製品インスタンスとして指定し、
前記カスタマイズ可能な製品インスタンスに関連する、一又はそれ以上のコンポーネント製品のセットを準備し、
一又はそれ以上のコンポーネント製品の前記セットから第一のコンポーネント製品を前記カスタマイズ可能な製品インスタンスに対応付ける要求を受け取り、
一又はそれ以上のコンポーネント製品の前記セットからの前記第一のコンポーネント製品を前記カスタマイズ可能な製品インスタンスに対応付けるか否かを定める、
ステップを含むことを特徴とする方法。 - 一又はそれ以上のコンポーネント製品の前記セットからの前記第一のコンポーネント製品を前記カスタマイズ可能な製品インスタンスに対応付けないことを定めるステップをさらに含む請求項1記載の方法。
- 一又はそれ以上のコンポーネント製品の前記セットからの第一のコンポーネント製品を前記カスタマイズ可能な製品インスタンスに対応付けることを定めるステップと、
前記第一のコンポーネント製品を前記カスタマイズ可能な製品インスタンスに対応付けるステップと、
をさらに含む請求項1記載の方法。 - 前記第一のコンポーネント製品を対応付けるときに、第二のコンポーネント製品を前記カスタマイズ可能な製品インスタンスに対応付けるか否かを定めるステップと、
前記第二のコンポーネント製品を前記カスタマイズ可能な製品インスタンスに対応付けるステップと、
をさらに含む請求項3記載の方法。 - 一又はそれ以上のコンポーネント製品のセットを準備する前記ステップが、各コンポーネント製品にユーザーインターフェースを提供することを含む、
請求項1記載の方法。 - 前記ユーザーインターフェースが、テーマユーザーインターフェース(UI)、制御ユーザーインターフェース(UI)、及びグループユーザーインターフェース(UI)を含む、
請求項5記載の方法。 - 一又はそれ以上のコンポーネント製品の前記セットからの二又はそれ以上のコンポーネント製品が、前記カスタマイズ可能な製品インスタンスに対応付けられる、
請求項1記載の方法。 - 一又はそれ以上のプロセッサのセットにより実行される時、当該プロセッサのセットに製品をカスタマイズするオペレーションを実行させる指令を提供する、機械読み取り可能な媒体であって、前記オペレーションは、
一又はそれ以上のカスタマイズ可能な製品クラスのセットを準備することと、
一又はそれ以上のカスタマイズ可能な製品クラスの前記セットからカスタマイズ可能な製品をカスタマイズ可能な製品インスタンスとして指定する要求を受け取ることと、
一又はそれ以上のカスタマイズ可能な製品クラスの前記セットからカスタマイズ可能な製品クラスを前記カスタマイズ可能な製品インスタンスとして指定することと、
前記カスタマイズ可能な製品インスタンスに関連する、一又はそれ以上のコンポーネント製品のセットを準備することと、
一又はそれ以上のコンポーネント製品の前記セットから第一のコンポーネント製品を前記カスタマイズ可能な製品インスタンスに対応付ける要求を受け取ることと、
一又はそれ以上のコンポーネント製品の前記セットからの前記第一のコンポーネント製品を前記カスタマイズ可能な製品インスタンスに対応付けるか否かを定めることと、
を含むことを特徴とする媒体。 - 一又はそれ以上のコンポーネント製品の前記セットからの前記第一のコンポーネント製品を前記カスタマイズ可能な製品インスタンスに対応付けないことを定めること、
をさらに含む請求項8記載の機械読み取り可能な媒体。 - 一又はそれ以上のコンポーネント製品の前記セットからのコンポーネント製品を前記カスタマイズ可能な製品インスタンスに対応付けることを定めることと、
前記第一のコンポーネント製品を前記カスタマイズ可能な製品インスタンスに対応付けることと、
をさらに含む請求項8記載の機械読み取り可能な媒体。 - 前記第一のコンポーネント製品を対応付けるときに、第二のコンポーネント製品を前記カスタマイズ可能な製品インスタンスに対応付けるか否かを定めることと、
前記第二のコンポーネント製品を前記カスタマイズ可能な製品インスタンスに対応付けることと、
をさらに含む請求項10記載の機械読み取り可能な媒体。 - 前記一又はそれ以上のコンポーネント製品のセットを準備することが、各コンポーネント製品にユーザーインターフェースを提供することを含む、
請求項8記載の機械読み取り可能な媒体。 - 前記ユーザーインターフェースが、テーマユーザーインターフェース(UI)、制御ユーザーインターフェース(UI)、及びグループユーザーインターフェース(UI)を含む、
請求項12記載の機械読み取り可能な媒体。 - 一又はそれ以上のコンポーネント製品の前記セットからの二又はそれ以上のコンポーネント製品が前記カスタマイズ可能な製品インスタンスに対応付けられる、
請求項8記載の機械読み取り可能な媒体。 - 製品をカスタマイズする方法であって、
一又はそれ以上のカスタマイズ可能な製品クラスのセットからカスタマイズ可能な製品クラスをカスタマイズ可能な製品インスタンスとして指定するステップと、
カスタマイズ可能な製品を作るために、前記カスタマイズ可能な製品インスタンスに関連する一又はそれ以上のコンポーネント製品のセットからコンポーネント製品を選択するステップと、
を含むことを特徴とする方法。 - 前記カスタマイズ可能な製品に加えるために、代替のコンポーネント製品のセットから選択するステップをさらに含み、当該選択が前記選択された第一のコンポーネント製品により定まる、
請求項15記載の方法。 - 前記カスタマイズ可能な製品クラスに関連する二又はそれ以上のコンポーネント製品を選択するステップ、
をさらに含む請求項15記載の方法。 - カスタマイズ可能な製品を作るために、一又はそれ以上のコンポーネント製品のセットから選択するときに一又はそれ以上のコンポーネント製品が自動的に選択される、
請求項15記載の方法。 - 前記カスタマイズ可能な製品をデータ記憶装置に保存する、
請求項18記載の方法。 - 前記カスタマイズ可能な製品が価格情報を含む、
請求項18記載の方法。 - 前記カスタマイズ可能な製品が割引価格に備えたものである、
請求項18記載の方法。 - 前記カスタマイズ可能な製品が、前記カスタマイズ可能な製品の選択において消費者を誘導するためのコンポーネント製品情報を含む、
請求項18記載の方法。 - 前記コンポーネント製品が、その個々のユーザーインターフェースに表示される、
請求項18記載の方法。 - 一又はそれ以上のプロセッサのセットにより実行される時、当該プロセッサのセットに製品をカスタマイズするオペレーションを実行させる指令を提供する、機械読み取り可能な媒体であって、前記オペレーションが、
一又はそれ以上のカスタマイズ可能な製品クラスのセットからカスタマイズ可能な製品クラスをカスタマイズ可能な製品インスタンスに指定することと、
カスタマイズ可能な製品を作るために、前記カスタマイズ可能な製品クラスに関連する一又はそれ以上のコンポーネント製品のセットからコンポーネント製品を選択することと、
を含むことを特徴とする媒体。 - 前記カスタマイズ可能な製品に加えるために、代替のコンポーネント製品のセットから選択することをさらに含み、当該選択が前記選択された第一のコンポーネント製品により定まる、
請求項24記載の機械読み取り可能な媒体。 - 前記カスタマイズ可能な製品クラスに関連する二又はそれ以上のコンポーネント製品を選択すること、
をさらに含む請求項24記載の機械読み取り可能な媒体。 - カスタマイズ可能な製品を作るために、前記一又はそれ以上のコンポーネント製品のセットを選択するときに、一又はそれ以上のコンポーネント製品が自動的に選択されること、
をさらに含む請求項24記載の機械読み取り可能な媒体。 - 前記カスタマイズ可能な製品をデータ記憶装置に保存する、
請求項27記載の機械読み取り可能な媒体。 - 前記カスタマイズ可能な製品が価格情報を含む、
請求項27記載の機械読み取り可能な媒体。 - 前記カスタマイズ可能な製品が割引価格に備えたものである、
請求項27記載の機械読み取り可能な媒体。 - 前記カスタマイズ可能な製品が、前記カスタマイズ可能な製品の選択において消費者を誘導するためのコンポーネント製品情報を含む、
請求項27記載の機械読み取り可能な媒体。 - 前記コンポーネント製品がその個々のユーザーインターフェースに表示される、
請求項27記載の機械読み取り可能な媒体。 - 製品をカスタマイズするための論理ブロックから構成される装置であって、
一又はそれ以上のカスタマイズ可能な製品クラスのセットを準備するための第一の論理ブロックと、
一又はそれ以上のカスタマイズ可能な製品クラスの前記セットからカスタマイズ可能な製品をカスタマイズ可能な製品インスタンスとして指定する要求を受け取るための第二の論理ブロックと、
一又はそれ以上のカスタマイズ可能な製品クラスの前記セットからカスタマイズ可能な製品クラスを前記カスタマイズ可能な製品インスタンスとして指定するための第三の論理ブロックと、
前記カスタマイズ可能な製品インスタンスに関連する、一又はそれ以上のコンポーネント製品のセットを準備するための第四の論理ブロックと、
一又はそれ以上のコンポーネント製品の前記セットから第一のコンポーネント製品を前記カスタマイズ可能な製品インスタンスに対応付ける要求を受け取るための第五の論理ブロックと、
一又はそれ以上のコンポーネント製品の前記セットからの前記第一のコンポーネント製品を前記カスタマイズ可能な製品インスタンスに対応付けるか否かを定めるための第六の論理ブロックと、
を備えることを特徴とする装置。 - 一又はそれ以上のコンポーネント製品の前記セットからの前記第一のコンポーネント製品を前記カスタマイズ可能な製品インスタンスに対応付けないことを定めるための第七の論理ブロック、
をさらに備える請求項33記載の装置。 - 一又はそれ以上のコンポーネント製品の前記セットからの第一のコンポーネント製品を前記カスタマイズ可能な製品インスタンスに対応付けることを定めるための第八の論理ブロックと、
前記第一のコンポーネント製品を前記カスタマイズ可能な製品インスタンスに対応付けるための第九の論理ブロックと、
をさらに備える請求項33記載の装置。 - 前記第一のコンポーネント製品を対応付けるときに、第二のコンポーネント製品を前記カスタマイズ可能な製品インスタンスに対応付けるか否かを定めるための第十の論理ブロックと、
前記第二のコンポーネント製品を前記カスタマイズ可能な製品インスタンスに対応付けるための第十一の論理ブロックと、
をさらに備える請求項35記載の装置。 - 一又はそれ以上のコンポーネント製品のセットを準備するための前記第四の論理ブロックが、各コンポーネント製品についてのユーザーインターフェースを提供することを含む、
請求項33記載の装置。 - 前記ユーザーインターフェースが、テーマユーザーインターフェース(UI)、制御ユーザーインターフェース(UI)、及びグループユーザーインターフェース(UI)を含む、
請求項37記載の装置。 - 一又はそれ以上のコンポーネント製品の前記セットからの二又はそれ以上のコンポーネント製品が、前記カスタマイズ可能な製品インスタンスに対応付けられる、
請求項33記載の装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/945,441 US7580871B2 (en) | 2001-08-31 | 2001-08-31 | Method to generate a customizable product configurator |
PCT/US2002/027650 WO2003021393A2 (en) | 2001-08-31 | 2002-08-29 | Method to generate a customizable product configurator |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005508030A true JP2005508030A (ja) | 2005-03-24 |
JP2005508030A5 JP2005508030A5 (ja) | 2006-01-05 |
Family
ID=25483088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003525416A Pending JP2005508030A (ja) | 2001-08-31 | 2002-08-29 | カスタマイズ可能な製品の構築子を生成するための方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7580871B2 (ja) |
EP (1) | EP1421536A4 (ja) |
JP (1) | JP2005508030A (ja) |
AU (1) | AU2002327585A1 (ja) |
WO (1) | WO2003021393A2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012108907A (ja) * | 2010-11-18 | 2012-06-07 | Korea Electronics Telecommun | ユーザーフィードバック基盤の動的エコシステム再構成方法 |
JP2014531637A (ja) * | 2011-08-31 | 2014-11-27 | ザズル インコーポレイテッド | 製品オプションフレームワークおよびアクセサリー |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7580871B2 (en) | 2001-08-31 | 2009-08-25 | Siebel Systems, Inc. | Method to generate a customizable product configurator |
US7650296B1 (en) | 2001-08-31 | 2010-01-19 | Siebel Systems, Inc. | Configurator using structure and rules to provide a user interface |
US7640548B1 (en) | 2002-06-21 | 2009-12-29 | Siebel Systems, Inc. | Task based user interface |
US7607084B2 (en) * | 2003-10-03 | 2009-10-20 | Vistaprint Technologies Limited | Electronic product design |
ITBO20040023A1 (it) | 2004-01-23 | 2004-04-23 | Tree S Co S R L | Sistema per la configurazione di un prodotto |
US7739080B1 (en) * | 2004-04-19 | 2010-06-15 | Versata Development Group, Inc. | Consolidation of product data models |
US7665063B1 (en) | 2004-05-26 | 2010-02-16 | Pegasystems, Inc. | Integration of declarative rule-based processing with procedural programming |
US8924335B1 (en) | 2006-03-30 | 2014-12-30 | Pegasystems Inc. | Rule-based user interface conformance methods |
US8762214B1 (en) * | 2006-11-14 | 2014-06-24 | Nvidia Corporation | Configuration based hierarchical product selection and product e-commerce agent management |
US8209237B2 (en) | 2007-02-26 | 2012-06-26 | Dell Products L.P. | System and method for configuring a configurable product |
US8250525B2 (en) | 2007-03-02 | 2012-08-21 | Pegasystems Inc. | Proactive performance management for multi-user enterprise software systems |
US7992130B2 (en) * | 2007-05-07 | 2011-08-02 | Microsoft Corporation | Class-based object-oriented features in class-less script language |
US9147213B2 (en) | 2007-10-26 | 2015-09-29 | Zazzle Inc. | Visualizing a custom product in situ |
US8051029B2 (en) * | 2008-02-21 | 2011-11-01 | Xerox Corporation | Semantically validating print product definitions |
US8307338B2 (en) * | 2008-04-01 | 2012-11-06 | Xerox Corporation | Converting rules in a rule-based system to ontological information |
US8245020B1 (en) * | 2008-05-13 | 2012-08-14 | Selectica, Inc. | Creating a partial instance of component in response to user specifying a value for a dynamic attribute of a selected component |
US20120102421A1 (en) * | 2010-10-22 | 2012-04-26 | Bigmachines, Inc. | Methods and apparatus for specifying and applying business rules in a product configurator |
US8578265B2 (en) | 2008-10-07 | 2013-11-05 | Bigmachines, Inc. | Methods and apparatus for generating a dynamic document |
US9524506B2 (en) | 2011-10-21 | 2016-12-20 | Bigmachines, Inc. | Methods and apparatus for maintaining business rules in a configuration system |
US8843435B1 (en) | 2009-03-12 | 2014-09-23 | Pegasystems Inc. | Techniques for dynamic data processing |
US8468492B1 (en) | 2009-03-30 | 2013-06-18 | Pegasystems, Inc. | System and method for creation and modification of software applications |
US20100281429A1 (en) * | 2009-04-30 | 2010-11-04 | Bigmachines, Inc. | Methods and apparatus for configuring a product using an array of configuration sets |
US8538832B2 (en) * | 2009-05-13 | 2013-09-17 | Peter R. Brownell | Method and system for customization by sale of component parts and accessories |
US20110029911A1 (en) * | 2009-07-31 | 2011-02-03 | Pacific Bearing Company | Method for Configuring an Actuation System |
FR2953048A1 (fr) * | 2009-11-23 | 2011-05-27 | Access Commerce | Dispositif et procede d'elaboration d'un modele numerique de produit manufacture |
US9032314B2 (en) * | 2010-12-01 | 2015-05-12 | Microsoft Technology Licensing, Llc | Proposing visual display components for processing data |
US8880487B1 (en) | 2011-02-18 | 2014-11-04 | Pegasystems Inc. | Systems and methods for distributed rules processing |
US20130018850A1 (en) * | 2011-07-12 | 2013-01-17 | Kevin Houlihan | System And Method For Product Customization Synchronization |
US20130061146A1 (en) * | 2011-09-07 | 2013-03-07 | Cisco Technology, Inc. | System and method for developing architectural designs |
US9195936B1 (en) | 2011-12-30 | 2015-11-24 | Pegasystems Inc. | System and method for updating or modifying an application without manual coding |
US20130218725A1 (en) * | 2012-02-22 | 2013-08-22 | Quixby, Llc | Multi-component selection system and method |
US8965831B2 (en) | 2012-07-27 | 2015-02-24 | Selectica, Inc. | System, method, and software program product for enabling users to create and use rule patterns to generate custom product-configuration rules |
US10410266B2 (en) | 2012-08-08 | 2019-09-10 | Lowe's Companies, Inc. | Systems and methods for recording transaction and product customization information |
WO2014051560A1 (en) * | 2012-09-26 | 2014-04-03 | Siemens Aktiengesellschaft | Providing a customized programmable logic controller to a customer |
EP2881899B1 (de) | 2013-12-09 | 2018-09-12 | Deutsche Telekom AG | System und Verfahren zur automatisierten Aggregation von Beschreibungen individueller Objektvarianten |
US10469396B2 (en) | 2014-10-10 | 2019-11-05 | Pegasystems, Inc. | Event processing with enhanced throughput |
WO2016100046A1 (en) * | 2014-12-15 | 2016-06-23 | Luminex Corporation | Detailed assay protocol specification |
US10197990B2 (en) | 2015-08-01 | 2019-02-05 | Michael Weinig, Inc. | System for optimizing the execution of parametric joinery for solid wood products |
US10318702B2 (en) | 2016-01-19 | 2019-06-11 | Ford Motor Company | Multi-valued decision diagram reversible restriction |
US10117478B2 (en) * | 2016-02-26 | 2018-11-06 | Nike, Inc. | Method of customizing heel cushioning in articles of footwear |
US10290048B2 (en) * | 2016-05-18 | 2019-05-14 | Bitspower International Co., Ltd. | Virtual reality operation platform structure |
US10698599B2 (en) | 2016-06-03 | 2020-06-30 | Pegasystems, Inc. | Connecting graphical shapes using gestures |
US10698647B2 (en) | 2016-07-11 | 2020-06-30 | Pegasystems Inc. | Selective sharing for collaborative application usage |
US20190102811A1 (en) * | 2017-09-29 | 2019-04-04 | Oracle International Corporation | Flexible cross-component configurations in cpq platforms |
US11048488B2 (en) | 2018-08-14 | 2021-06-29 | Pegasystems, Inc. | Software code optimizer and method |
US11567945B1 (en) | 2020-08-27 | 2023-01-31 | Pegasystems Inc. | Customized digital content generation systems and methods |
IL291147A (en) * | 2022-03-06 | 2023-10-01 | Spitch Tech Ltd | A system and method for managing communication interactions |
Family Cites Families (64)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4884217A (en) * | 1987-09-30 | 1989-11-28 | E. I. Du Pont De Nemours And Company | Expert system with three classes of rules |
US5339392A (en) | 1989-07-27 | 1994-08-16 | Risberg Jeffrey S | Apparatus and method for creation of a user definable video displayed document showing changes in real time data |
US5311422A (en) | 1990-06-28 | 1994-05-10 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | General purpose architecture for intelligent computer-aided training |
US5481667A (en) | 1992-02-13 | 1996-01-02 | Microsoft Corporation | Method and system for instructing a user of a computer system how to perform application program tasks |
FR2692058B1 (fr) | 1992-06-09 | 1994-07-29 | Bull Sa | Systeme de traitement transactionnel entre un serveur informatique et une pluralite de stations de travail. |
EP0686282A4 (en) | 1993-02-08 | 1997-07-02 | Action Tech Inc | BUSINESS PROCESS MANAGEMENT PROCESS AND APPARATUS |
US5434791A (en) | 1993-06-29 | 1995-07-18 | Electronic Data Systems Corporation | Product structure management |
US5550971A (en) | 1993-06-30 | 1996-08-27 | U S West Technologies, Inc. | Method and system for generating a user interface adaptable to various database management systems |
EP1083473A3 (en) | 1994-03-24 | 2006-02-01 | Ncr International Inc. | Resource management in computer networks |
US6026403A (en) | 1994-03-24 | 2000-02-15 | Ncr Corporation | Computer system for management of resources |
US5500802A (en) | 1994-05-31 | 1996-03-19 | Morris; James M. | System and method for creating configurators using templates |
US5617514A (en) * | 1994-07-13 | 1997-04-01 | Unisys Corporation | Generalized configurator using multiple interacting packers and declaratively defined constraint expressions |
US5630025A (en) | 1994-07-13 | 1997-05-13 | Unisys Corporation | Generalized configurator using a declaratively constructed two-level bi-partite graph as a knowledge representation |
US5675752A (en) | 1994-09-15 | 1997-10-07 | Sony Corporation | Interactive applications generator for an interactive presentation environment |
US5980096A (en) * | 1995-01-17 | 1999-11-09 | Intertech Ventures, Ltd. | Computer-based system, methods and graphical interface for information storage, modeling and stimulation of complex systems |
US5788504A (en) | 1995-10-16 | 1998-08-04 | Brookhaven Science Associates Llc | Computerized training management system |
US5867709A (en) | 1995-10-18 | 1999-02-02 | Kapre Software, Inc. | Method and system for reusing customizations to a software product |
US6014137A (en) | 1996-02-27 | 2000-01-11 | Multimedia Adventures | Electronic kiosk authoring system |
US5999972A (en) | 1996-07-01 | 1999-12-07 | Sun Microsystems, Inc. | System, method and article of manufacture for a distributed computer system framework |
WO1998001807A1 (en) | 1996-07-03 | 1998-01-15 | Polydoc N.V. | Document producing support system |
US5844554A (en) | 1996-09-17 | 1998-12-01 | Bt Squared Technologies, Inc. | Methods and systems for user interfaces and constraint handling configurations software |
US6721817B1 (en) | 1997-01-21 | 2004-04-13 | Dell Usa, L.P. | Original equipment manufacturer identification for configurable electronic hardware |
US6052669A (en) | 1997-06-06 | 2000-04-18 | Haworth, Inc. | Graphical user interface supporting method and system for remote order generation of furniture products |
US6513152B1 (en) | 1997-07-23 | 2003-01-28 | International Business Machines Corporation | Object oriented framework mechanism for customization of object oriented frameworks |
US6035305A (en) * | 1997-08-29 | 2000-03-07 | The Boeing Company | Computer-based method of structuring product configuration information and configuring a product |
US6064982A (en) | 1997-11-12 | 2000-05-16 | Netscape Communication Corporation | Smart configurator |
JPH11306244A (ja) | 1998-04-16 | 1999-11-05 | Hitachi Ltd | ワーク管理システム |
US6167383A (en) * | 1998-09-22 | 2000-12-26 | Dell Usa, Lp | Method and apparatus for providing customer configured machines at an internet site |
US6678714B1 (en) | 1998-11-16 | 2004-01-13 | Taskserver.Com, Inc. | Computer-implemented task management system |
WO2000036544A1 (en) | 1998-12-18 | 2000-06-22 | Frog Design, Inc. | System and method for configuring a product |
US5987443A (en) | 1998-12-22 | 1999-11-16 | Ac Properties B. V. | System, method and article of manufacture for a goal based educational system |
US6269355B1 (en) | 1999-04-15 | 2001-07-31 | Kadiri, Inc. | Automated process guidance system and method using knowledge management system |
US6754885B1 (en) | 1999-05-17 | 2004-06-22 | Invensys Systems, Inc. | Methods and apparatus for controlling object appearance in a process control configuration system |
US6718535B1 (en) | 1999-07-30 | 2004-04-06 | Accenture Llp | System, method and article of manufacture for an activity framework design in an e-commerce based environment |
US6880126B1 (en) | 1999-08-03 | 2005-04-12 | International Business Machines Corporation | Controlling presentation of a GUI, using view controllers created by an application mediator, by identifying a destination to access a target to retrieve data |
US6289382B1 (en) | 1999-08-31 | 2001-09-11 | Andersen Consulting, Llp | System, method and article of manufacture for a globally addressable interface in a communication services patterns environment |
US20020078435A1 (en) | 1999-10-15 | 2002-06-20 | Pamela P. Liu | Table driven configurator on internet |
US6920607B1 (en) | 1999-12-15 | 2005-07-19 | Microsoft Corp. | Methods and systems for dynamically creating user interfaces |
JP4516649B2 (ja) | 1999-12-27 | 2010-08-04 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ワークフロー制御方法、システム、記憶媒体及びサーバ装置 |
US7254553B2 (en) | 2000-01-14 | 2007-08-07 | Fogelson Bruce A | Builders on-line assistant |
US6985876B1 (en) | 2000-02-07 | 2006-01-10 | National Instruments Corporation | System and method for enabling a user of an E-commerce system to visually view and/or configure a product for purchase |
EP1266334A4 (en) | 2000-03-22 | 2005-11-30 | Webmethods Inc | METHOD AND SYSTEM FOR BUSINESS PROCESS DEFINITION AND PERFORMANCE IN THE TOP-DOWN PROCESS |
US6681383B1 (en) | 2000-04-04 | 2004-01-20 | Sosy, Inc. | Automatic software production system |
US6886135B2 (en) | 2000-04-07 | 2005-04-26 | Microsoft Corp. | Extensible schema for defining the visual appearance of computer system components |
US6701345B1 (en) | 2000-04-13 | 2004-03-02 | Accenture Llp | Providing a notification when a plurality of users are altering similar data in a health care solution environment |
US20020049705A1 (en) | 2000-04-19 | 2002-04-25 | E-Base Ltd. | Method for creating content oriented databases and content files |
AU2000250024A1 (en) | 2000-05-11 | 2001-11-20 | Michelin Recherche Et Technique S.A. | Method for customizing and purchasing a tire |
AU2001264954A1 (en) | 2000-05-25 | 2001-12-03 | Realitybuy, Inc. | A real time, three-dimensional, configurable, interactive product display systemand method |
AU2001268365A1 (en) | 2000-06-14 | 2001-12-24 | Verticore Technologies | Device and method for organizing and presenting worker tasks in a network-based portal environment |
US20020042755A1 (en) | 2000-10-05 | 2002-04-11 | I2 Technologies, Us, Inc. | Collaborative fulfillment in a distributed supply chain environment |
US20020052799A1 (en) | 2000-10-26 | 2002-05-02 | Vasiliy Starikov | Customized customer design, development and ordering system |
US6571192B1 (en) | 2000-11-28 | 2003-05-27 | W. Eric Hinshaw | Automatic mattress selection system |
US7039875B2 (en) | 2000-11-30 | 2006-05-02 | Lucent Technologies Inc. | Computer user interfaces that are generated as needed |
US20030009742A1 (en) | 2000-12-06 | 2003-01-09 | Bass Michael D. | Automated job training and performance tool |
US20020143653A1 (en) * | 2000-12-28 | 2002-10-03 | Dilena Ettore | Configuration system and methods |
US20020099679A1 (en) | 2001-01-19 | 2002-07-25 | Usitalo Scott Kenneth | Virtual interactive expert solution system |
US6853978B2 (en) * | 2001-02-23 | 2005-02-08 | Power Measurement Ltd. | System and method for manufacturing and configuring intelligent electronic devices to order |
US20030167184A1 (en) | 2001-02-26 | 2003-09-04 | Kole Mark Hamilton | Software based method for tracking rejected medicare and other insurance claims |
US20030041313A1 (en) | 2001-08-27 | 2003-02-27 | Mark Harmon | User interface tool adapted to facilitate complete configuring of software objects |
US7580871B2 (en) | 2001-08-31 | 2009-08-25 | Siebel Systems, Inc. | Method to generate a customizable product configurator |
US7650296B1 (en) | 2001-08-31 | 2010-01-19 | Siebel Systems, Inc. | Configurator using structure and rules to provide a user interface |
US7386832B2 (en) | 2001-08-31 | 2008-06-10 | Siebel Systems, Inc. | Configurator using structure to provide a user interface |
US8271882B2 (en) | 2002-04-24 | 2012-09-18 | Sap Ag | Processing life and work events |
US7640548B1 (en) | 2002-06-21 | 2009-12-29 | Siebel Systems, Inc. | Task based user interface |
-
2001
- 2001-08-31 US US09/945,441 patent/US7580871B2/en not_active Expired - Lifetime
-
2002
- 2002-08-29 WO PCT/US2002/027650 patent/WO2003021393A2/en not_active Application Discontinuation
- 2002-08-29 AU AU2002327585A patent/AU2002327585A1/en not_active Abandoned
- 2002-08-29 JP JP2003525416A patent/JP2005508030A/ja active Pending
- 2002-08-29 EP EP02763583A patent/EP1421536A4/en not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012108907A (ja) * | 2010-11-18 | 2012-06-07 | Korea Electronics Telecommun | ユーザーフィードバック基盤の動的エコシステム再構成方法 |
JP2014531637A (ja) * | 2011-08-31 | 2014-11-27 | ザズル インコーポレイテッド | 製品オプションフレームワークおよびアクセサリー |
Also Published As
Publication number | Publication date |
---|---|
EP1421536A2 (en) | 2004-05-26 |
AU2002327585A1 (en) | 2003-03-18 |
EP1421536A4 (en) | 2005-08-31 |
WO2003021393A2 (en) | 2003-03-13 |
US20090089174A1 (en) | 2009-04-02 |
WO2003021393A3 (en) | 2003-11-06 |
US7580871B2 (en) | 2009-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2005508030A (ja) | カスタマイズ可能な製品の構築子を生成するための方法 | |
US7650296B1 (en) | Configurator using structure and rules to provide a user interface | |
US7386832B2 (en) | Configurator using structure to provide a user interface | |
EP2378415B1 (en) | Service integration modeling and execution framework | |
US7103434B2 (en) | PLM-supportive CAD-CAM tool for interoperative electrical and mechanical design for hardware electrical systems | |
JP4464665B2 (ja) | 高速チップ管理システム | |
US7043407B2 (en) | Method and apparatus for configuring systems | |
US6002854A (en) | Method and apparatus for configuring systems | |
US7676755B2 (en) | Apparatus and method for linking objects created in a rapid application development environment | |
US8965831B2 (en) | System, method, and software program product for enabling users to create and use rule patterns to generate custom product-configuration rules | |
WO2006026326A2 (en) | Methods and systems for managing hierarchically organized objects in a pricing adjustment system | |
CN109766075B (zh) | 一种基于微服务的企业级软件构建方法及系统 | |
EP1836565A1 (en) | Dynamic generation of formatted user interfaces in software environments | |
JP2005346722A (ja) | フォームタイプを使用してフォームを生成する方法および装置 | |
WO2015196785A1 (zh) | 一种构造软件模型的可视软件建模编辑器 | |
JP6851856B2 (ja) | 協調設計支援装置、協調設計支援方法、及びプログラム | |
US20080281724A1 (en) | Method and system for referencing trading agreements | |
JP2007265249A (ja) | データ検索表示装置、データ検索表示システム、検索表示処理プログラムおよびデータ検索表示方法 | |
US20170011471A1 (en) | Methods and systems of a commission-plan document design application | |
US20050080669A1 (en) | Cross-selling in standalone sales systems | |
US11526895B2 (en) | Method and system for implementing a CRM quote and order capture context service | |
US9524506B2 (en) | Methods and apparatus for maintaining business rules in a configuration system | |
EP1804174B1 (en) | Data-generation supporting system, data-generation supporting apparatus, and computer program product | |
AU715256B2 (en) | Method and apparatus for configuring systems | |
JP4918278B2 (ja) | 顧客向けlsiデータ提供システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050824 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050824 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080428 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20081020 |