JP2005539295A - ウエブサービス装置及び方法 - Google Patents

ウエブサービス装置及び方法 Download PDF

Info

Publication number
JP2005539295A
JP2005539295A JP2004531223A JP2004531223A JP2005539295A JP 2005539295 A JP2005539295 A JP 2005539295A JP 2004531223 A JP2004531223 A JP 2004531223A JP 2004531223 A JP2004531223 A JP 2004531223A JP 2005539295 A JP2005539295 A JP 2005539295A
Authority
JP
Japan
Prior art keywords
uddi
business
directory
service
attribute
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
JP2004531223A
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 JP2005539295A publication Critical patent/JP2005539295A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/46Indexing scheme relating to G06F9/46
    • G06F2209/462Lookup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/46Indexing scheme relating to G06F9/46
    • G06F2209/463Naming

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)
  • Glass Compositions (AREA)
  • Meter Arrangements (AREA)
  • Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)
  • Communication Control (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Aiming, Guidance, Guns With A Light Source, Armor, Camouflage, And Targets (AREA)
  • Telephone Function (AREA)
  • Telephonic Communication Services (AREA)

Abstract

ウエブサービスシステムにおいて使用する方法が、データリポジトリへのアクセスを与え、且つ前記データリポジトリのサーチを行う場合に使用するシャドウ属性を与える、ことを包含している。

Description

本開示は、一般的に、UDDIレジストリ及びウエブサービスに関するものであって、更に詳細には、このようなサービスに対して実際的な効果を与える場合に使用される方法、装置及びシステムに関するものである。
UDDI(Universal Description, Discovery and Integration)は、ウエブサービスを使用するアプリケーションが迅速に、容易に且つ動的に互いに相互作用することを可能とすべく定義されている一組のスタンダードである。UDDIは、サービスを記述し、ビジネスを発見し且つオペレーショナルレジストリのみならずインターネットを使用してシステムサービスを統合するプラットフォーム独立性でオープンなフレームワークを形成することを意図している。更なる詳細についてはwww.uddi.orgのウエブサイトを参照すると良い。
UDDIレジストリは、ウエブサービスを使用して構成されるシステムに対して貴重なサポートを提供する。図1aは基本的なウエブサービス及びUDDI概念を概略的に例示している。図1bはウエブサービス環境に対する簡単化したプロトコルスタックを概略的に例示している。UDDIはウエブサービス情報に対するリポジトリを与え且つそれ自身ウエブサービスにより与えられる。
UDDIはアプリケーションがウエブ上でどのようにして相互作用することを希望するかをパブリッシュすることを可能とする。各「ウエブサービス」は、インターネット接続を介して他のアプリケーションに対し何等かのシステム機能性を提供するアプリケーション論理の自己記述型で自己完結型のモジュールユニットである。アプリケーションはユビキタスなウエブプロトコル及びデータフォーマットを介してウエブサービスへアクセスし、各ウエブサービスがどのようにして実現されるかについて心配する必要性はない。ウエブサービスは、より大きなワークフロー又はビジネストランズアクションを実行するために他のウエブサービスと混合及びマッチさせることが可能である。
UDDIスタンダードは、ウエブサービスタイプ、ビジネス組織、及びどのようにしてウエブサービスを喚起させるかについての詳細の記述を管理することが意図されている特定目的リポジトリを記述する。該スタンダードは、それがどのようにして実現されるべきであるかについて、又はその実現がデータベース、ディレクトリ又は何らかのその他の媒体を使用する格納部を包含すべきであるかについて必ずしも特定するものではない。
UDDIスタンダードに責任を有する組織により支えられているウエブサイトにおいて(http://www.uddi.org/faqs.html)、多数の頻繁に訪ねられる質問(FAQ)が存在している。これらの質問のうちの1つは「UDDIレジストリはLDAP上に構築又はそれに基づくものとすることが可能ですか?」というものである。その回答は、このウエブサイトは、UDDIとディレクトリとの間に何等フォーマルな関係は存在しないことを開示している。「UDDI仕様はレジストリ実現の詳細を支配するものではない。UDDI仕様はXMLに基づくデータモデルを定義し且つそのデータモデルへアクセスし且つそれを取り扱うための一組のSOAP APIを定義する。該SOAP APIはUDDIリポジトリが示す挙動を定義する。UDDI実現は、それが特定されている挙動に適合する限り、LDAPディレクトリ上に構築することが可能である。これまでのところ、全てのUDDI実現はリレーショナルデータベース上に構築されている。」
注意すべきことであるが、X.500及びLDAP等のディレクトリ技術は、ユーザ及びリソースを管理するために最も頻繁に使用される拡張可能で汎用のデータストア及びそれらの関連する言語である。それは非常に良く確立された技術であり、広く採用されており、且つ非常に安定で且つ信頼性があるものと考えられている。
然しながら、ディレクトリ上にUDDIスタンダード(www.uddi.orgにおいて入手可能)を実現することは、多数の問題を解決することを必要とする。UDDIスタンダードは多くの重要な問題を未対処のままとしており、例えば、
・UDDIスタンダードは多数のオブジェクトを定義しており、そのうちの幾つかは階層により関連されているが、UDDIは全てを取囲む階層を定義するものではない。例えば、ビジネスサービスオブジェクトはビジネスエンティティオブジェクトの下に来るものであり、且つバインディングテンプレートオブジェクトはビジネスサービスの下に来るものである。図2はこの階層の1例を例示している。ビジネスエンティティオブジェクトは21で示してあり、ビジネスサービスオブジェクトは22で示してあり、バインディングテンプレートオブジェクトは23で示してある。更に注意すべきことであるが、例えば24で示してあるTModelオブジェクトはこれらのオブジェクトと階層的に関連しているものではない。更に、階層的に定義されているものでない例えばパブリッシャアサーション(Publisher Assertion)等のその他の概念も存在している。
・ユーザが彼/彼女の制御下にあるオブジェクトのみを変更することが許可される条件の効率的な実現例の作成。
・UDDIレジストリを配布させることを可能とする効率的な実現例を作成すること。
・サーチ及びアップデートの管理及び性能の側面を向上させる効率的な実現例を作成すること。
・複雑なUDDIオブジェクトを比較的に効率的な態様でどのようにして表現するか。例えば、ビジネスエンティティ、ビジネスサービス、バインディングテンプレート及び/又はTModelは複合的反復要素を有している。更に、これらの反復要素は更なる反復要素を包含する場合がある。例えば、ビジネスエンティティはコンタクトを包含する場合があり且つ該コンタクトがアドレスを包含する場合がある。アドレスはアドレスラインと電話番号とを包含する場合がある。図13はビジネスエンティティにおける比較的複雑なオブジェクトのUDDI概念を概略的に例示している。ビジネスエンティティオブジェクト131は、例えば、AuthorizedName、BusinessKey、Name等の多数の属性132を包含している。Nameは1つ又はそれ以上の名前フィールド133を有しており、例えば「text」であるか、又はこれは「name」自身の中に暗示的である場合がある。又「language」も存在している。1つ又はそれ以上のこれらのフィールド133が存在している場合がある。
・反復要素の中に包含される特定の項目に対して比較的迅速なサーチをどのようにして与えるか。
・ディレクトリオブジェクトの階層においてUDDI情報及び条件をどのようにして表現するか。
・UDDIオブジェクト及び全てのそれらの関連する情報の削除を効率的な態様でどのようにして管理するか。及び、
・ディレクトリ格納媒体の制限を考慮しながらディレクトリアクセス及び反復的メモリ内動作の両方を最小とさせるようにサーチ動作期間中に中間サーチ結果収集物の構成をどのように最適化させるか。実際に、ディレクトリエントリは任意の順番で格納し且つリターンすることが可能であり、且つディレクトリ結果はソートするのに大き過ぎる場合がある。
・パブリッシャアサーションに関するデータを効率的な態様でどのようにして表現するか。
・特にfindrelatedBusiness方法の実現に関して、パブリッシャアサーションの効率的実現例をどのように作成するか。
・関係によりパブリッシャアサーションの効率的サーチをどのように実現するか。
・パブリッシャアサーションの有効性をどのように管理するか。
・ビジネスエンティティの所有者によりなされるビジネスエンティティに対して作成され且つ削除されるアサーションをどのように制限するか。
・UDDIスタンダードにおいて定義されるように属性の関連する収集物をどのように効率的に管理するか。
・サーチの性能を向上させるために属性及びオブジェクトをどのように定義するか。
種々のUDDIスキーマが提案されている。然しながら、いずれもが少なくとも上述した問題に対処するものとは考えられない。例えば、1つのスキーマは、効率的な商業的実現例を発生するために必ずしも複雑性及び最適化を考慮することなしに、ディレクトリオブジェクトに対してUDDIオブジェクトの比較的簡単なマッピングを与えている。このようなスキーマにおいて、どのようにして多数のUDDIサービス(特に、find series)を効率的に実現することが可能であるかも不明である。
例えば、図14はビジネスエンティティにおける比較的複雑なオブジェクトのノベル(Novell)表現を概略的に例示している。ビジネスエンティティオブジェクト141は、例えば、多数の属性142を包含しており、各々が「タイプ」及び「値」を有している。例示したように、値「Bill」を有するAuthorizedName、値「890.obale.890...」を有するBusinessKey、及び複数の値143,144、即ち、
en#ca
IN#CATS
を有するNameが存在している。
UDDI(図13)及びノベル(図14)例の表現はウエブサービスに対しての効率的な表現であるとは考えられない。
従って、ディレクトリに基づいてUDDIの比較的拡張性があり効率的で且つ信頼性のある実現例を提供するために上述した一般的な問題及びその他の問題に対処することの必要性が存在している。
ウエブサービスシステムにおいて使用する方法が、データリポジトリへのアクセスを与え、且つ前記データリポジトリのサーチを行う場合に使用するシャドウ属性を与える、ことを包含している。
ウエブサービスシステムにおいて使用する方法を実施するためのコンピュータにより実行可能なコードを包含するコンピュータ記録媒体が、データリポジトリへのアクセスを与えるためのコード、及び前記データリポジトリのサーチを行う場合に使用するシャドウ属性を与えるためのコードを包含している。
図面に例示した本開示の好適実施例を説明する場合に、明確性のために特定の用語を使用する。然しながら、本開示はそのように選択された特定の用語に制限されることを意図したものではなく、各特定の用語は同様の態様で動作する全ての技術的な均等物を包含するものとして理解すべきである。
図18は本開示の方法及びシステムを実現することが可能なコンピュータシステムの1例を示している。本開示のシステム及び方法は、例えば、メインフレーム、パソコン(PC)、ハンドヘルドコンピュータ、サーバー等のコンピュータシステム上で稼動するソフトウエアアプリケーションの形態で実現することが可能である。そのソフトウエアアプリケーションは、例えば、フロッピィディスク、コンパクトディスク、ハードディスク等のコンピュータシステムにより局所的にアクセス可能な記録媒体上に格納することが可能であり、又はコンピュータシステムから離れており且つ、例えば、ローカルエリアネットワーク又はインターネット等のネットワークへのハードワイヤード又は無線の接続を介してアクセス可能なものとすることが可能である。
本方法及びシステムを実現することが可能なコンピュータシステムの1例を図18に示してある。大略システム180として言及するコンピュータシステムは、中央処理装置(CPU)182、例えばランダムアクセスメモリ(RAM)等のメモリ184、プリンタインターフェース186、ディスプレイユニット188、(LAN)ローカルエリアネットワークデータ伝送制御器190、LANインターフェース192、ネットワーク制御器194、内部バス196及び例えばキーボード、マウス等の1つ又はそれ以上の入力装置198を包含することが可能である。図示したように、システム180は、例えばハードディスク等のデータ格納装置200へリンク202を介して接続することが可能である。
以下は本開示の実施例の顕著な特徴のうちの幾つか及びそれにより与えられる2,3の利点について要約するものである。
本開示の1実施例によれば、ユーザの上にリポジトリレイヤーが作成され、従って各リポジトリは異なるサーバー上に配置することが可能である。このリポジトリレイヤーは1つ又はそれ以上のディレクトリノードを包含しており、該ノードは集合的にディレクトリプレフィックスを形成する。これは、リポジトリの「ドメイン(Domain)」又は「名前(Name)」としても知られている。このことの利点は、それがドメインに関しての情報を保持する単一の場所を与えることである。このノードの名前はディレクトリプレフィックスを表わす。
UDDIアカウントを表わすデータを保持するためにユーザオブジェクトを作成することが可能である。このことの利点は、それがユーザ/アカウントに関する情報を保持するための単一の場所を与えることである。
ビジネスエンティティオブジェクトはユーザオブジェクトの下に配置させることが可能であり、ビジネスサービスオブジェクトはビジネスエンティティオブジェクトの下に、且つバインディングテンプレートオブジェクトはビジネスサービスオブジェクトの下に配置することが可能である。このことの利点は、ユーザオブジェクトレイヤーの上のリポジトリ即ち「ドメイン」レイヤーが多数のリポジトリを配置させるか又は論理的に一体的に接続させることを可能とすることである。該ドメインレイヤーは、例えば、大陸によりまとめられる異なる国AU,US,EP等の多数のレベルに配置させることが可能である。
別の利点は、この特徴はX500ディレクトリのディストリビューション特徴の使用により効果を与えることが可能であることである。例えば、これを実現するために、仮想ディレクトリツリーの頂部に「ワールド(World)」又は「コーポレイション(Corporation)」ノードを配置させ、且つ一意的に名前を付けたノードを各UDDIサブツリー(UDDI名前空間)の頂部に配置させる。ユーザには見えないが、これらの「ノード」プレフィックスはUDDIリポジトリがディレクトリディストリビューションを利用することを可能とする。
本開示の1実施例によれば、ビジネスエンティティオブジェクトはユーザオブジェクトのチャイルド即ち子とすることが可能である。ビジネスエンティティに関してユーザ/アカウントを有する場合には、ビジネスサービス及びバインディングテンプレート階層が各ユーザがそれら自身のサブツリーを有することの効果を与える。このことは、管理性およびセキュリティを向上させる。ユーザはそれら自身のサブツリーを修正及び/又は制御することに容易に制限される。このことは、又、ディレクトリサブツリーサーチ動作を利用することにより性能を向上させる。
1実施例によれば、ユーザにより定義されるTModelは、ユーザオブジェクトの子とすることが可能であり、従ってセキュリティを出現することを容易なものとさせる。このことは管理性及びセキュリティを向上させる。何故ならば、ユーザはそれら自身のサブツリーを修正及び/又は制御することが可能であるに過ぎないからである。それは、又、ディレクトリサブツリーサーチ動作を利用することにより性能を向上させる。
本開示の1実施例は、X.500/LDAPディレクトリ技術を使用してUDDI環境の「マッピング」を表わす。特に、X.500及びLDAPディレクトリ技術の階層構造はUDDI環境にとって適切なものであることが判明している。付加的な要素(ユーザオブジェクト等)の注意深い設計が該階層をUDDI環境の必要性にとって更に適切なものとさせている。
本開示を介して、ディレクトリという用語はX.500、LDAP及び同様の技術を包含すべきであり、「ユーザ」という用語は「アカウント」も包含すべく理解すべきであり且つその逆も又真であり、且つ「リポジトリ」という用語は「ディレクトリプレフィックス」、「ドメイン」及び/又は「ノード」を包含するものと理解すべきであり且つその逆も又真である。
ウエブサービスは、最初は、例えばビジネス、パートナー、顧客、サプライヤ等の組織の間のサービスであることが目論まれていた。この文脈において、UDDIはこれらの組織が提供するサービスに対する単一のリポジトリとして目論まれていた。
現在明らかなことであるが、ウエブサービス及びUDDIは組織内部のアプリケーションを統合するためにエンタプライズ即ち企業内において有用なものである。更に明らかなことであるが、ウエブサービス及びUDDIは、あるベンダーからの製品の組の中の製品を統合するために使用することが可能である。それは、又、政府の部門、大きな教育機関、及びその他の多数の非商業的エンティティのインスタンス等の分野において商業的環境以外に適用することも可能である。
以下の説明は、エンタプライスに関して説明するものであるが、任意のタイプの環境に対して等しく適用性を有しており且つ上述したタイプの環境に対して特に適用性を有している。
エンタプライズUDDIレジストリは、内部的消費のための情報及びサービスをパブリッシュするためにそのエンタプライズ内においてデプロイ即ち配備することが可能なサービスとすることが可能である。更に、エンタプライズUDDIサービスは、配布したアプリケーションに対するコンフィギュレーションディスカバリ等のその他の機能を提供するために利用することが可能である。
ウエブサービスは内部的に及びパートナーと共にビジネスプロセスを迅速且つ容易に統合するための願望により追いたてられている。ウエブサービスを効果的に使用する1つのコンポーネントはパブリックUDDIレジストリであり、それはソフトウエアコンポーネントがインターネットを横断しての適宜のサービスを動的に発見し且つ接続することを可能とさせる。ウエブサービスは、又、エンタプライズ内のビジネスプロセスを統合することを可能とする約束を提供する。この場合において、UDDIレジストリは組織のインフラストラクチャの一部となり(例えば、重要なエンタプライズアプリケーション)、従って最高レベルのセキュリティ、性能、信頼性及び管理性を提供することが可能である。ディレクトリ技術はエンタプライズUDDIレジストリの厳格な条件をサポートするための理想的な基礎を提供する。
エンタプライズUDDIレジストリはUDDIに対するスタンダード準拠サポートを提供するものとして定義することが可能であるが、デプロイメントに対する4つの分野に対処するためにそれを超えるものである。これらの分野は、アクセスを承認されたユーザのみに制限するためのセキュリティ(SECURITY)、大型のデプロイメントをサポートするためのディストリビューション(DISTRIBUTION)、真の生産システムに対する管理性(MANAGEABILITY)、及びサービスレベルアグリメント(service level agreement)を満足するためのアベーラビリティ(AVAILABILITY)即ち使用可能性を包含している。
強力なセキュリティは、あるエンタプライズデプロイメントに対して重要な条件である場合がある。パブリックUDDIレジストリは、誰かが使用可能なサービスを発見することを助ける唯一の目的のために存在している。UDDIレジストリは、正しい人がこれらのサービスを発見させる唯一の目的のために存在している。これは重要な区別である。
インターネットUDDIレジストリは、エンタプライズにおいてウエブサービスをデプロイするのには不適切であると考えられている。例えば、給与体系又は従業員福祉管理アプリケーションとインターフェースするウエブサービスの定義はインターネットUDDIレジストリに対してポストされることはない。
セキュリティ条件は、又、内部的にデプロイされたUDDIレジストリであっても強力なアクセス制御を与えることを意味する場合がある。何故ならば、UDDIレジストリは、基本的に、何を為すことができるか且つそれをどのようにして行うかに関してのチュートリアルを定義するからである。UDDIレジストリは、いずれかの使用可能なウエブサービスのビジネスレベルの記述及びこれらのサービスに対してのプログラム的なインターフェースを完全に定義するWSDLへの指示を提供する。このことは、アプリケーション開発者に対して、及びハッカーに対して高生産性のツールを提供する。
従って、資金的に機密性がある即ち秘密性(例えば、医学的記録)のシステムに対するインターフェース定義に対してのアクセスを制限することが望ましい。デプロイメント組織内においても、特定のウエブサービスに関する情報へのアクセスを承認された者へ制限することが賢明な場合がある。
エンタプライズ内において、又はエクストラネットを介して選択したビジネスパートナーとの間で安全確保されていないUDDIレジストリを使用することは極めて危険な場合がある。自由にダウンロード可能なツールのおかげで、比較的低いレベルの熟練を有する人がウエブサービスへアクセスし且つそれを使用することが可能である。どのような真のエンタプライズソリューションも、ウエブサービスに関しての情報へのアクセスをトランスペアレントに制御する能力を持ってスタンダードのUDDIサービスを実現することが可能である。
ディストリビューションに関して、多くの場合において、UDDIレジストリの初期的なデプロイメントは、小規模なものである。然しながら、ウエブサービス条件が成長するに従い、大きなデプロイメントがより一般的なものとなる。更に、レジストリの使用及びデプロイメントは、UDDIレジストリに対する新たな機能の発見と共に加速する。
より大きな実現、及び地理的に分布した組織内での使用は、単一の組織内においての複数のUDDIレジストリの実現を駆立てる。分散型レジストリへ向かっての展開は、どの個別的なレジストリもそれらの要求をサービスするために他のレジストリと動的に相互作用することが可能であることを重要なものとさせる。確立されると、レジストリ間通信は、信用されているビジネスパートナーにおけるレジストリ、又はインターネットUDDIレジストリをも包含すべくファイヤウォールを超えて拡張される場合がある。
レジストリ間通信に対する必要性に対処するために2つの基本的なアプローチが存在すると考えられる。1つのアプローチは、レプリケーション(REPLICATION)であり、その場合には複数のサーバー上で同一のエントリ名前空間が存在している。別のアプローチはディストリビューション(DISTRIBUTION)であり、その場合には、相互接続されているサーバーは異なるエントリ名前空間を有しているが、それらは1つの論理的サービスとして動作する。
これらの2つのアプローチは、しばしば、類似したものとして混乱を招く場合があるが、それらは全く異なるものである。
レプリケーションアプローチにおいては、情報は、それをルックアップすることが必要な場合のあるすべてのサーバー内において複製される。これは比較的簡単で過剰に簡単でもあるソリューションであるが、それはアップデートを同期するための条件を導入し、且つそれは、定義上、レジストリの数及びそれらの内容の量が増大すると共にネットワークの渋滞が増加する。レプリケーション技術は、サービスの数が低く、情報の量が低く且つ変化が頻繁でない場合の環境に最も良く適している。エンタプライズデプロイメントの場合には、レプリケーションは、フェイルオーバー環境におけるバックアップリポジトリを維持するのに最も有用である。地理的に又は機能的に分散しているサーバーを同期した状態に維持することはれプリケーション技術を使用する場合には非常に困難である。
ディストリビューションアプローチにおいては、情報は、各参加するサーバー上で論理的に表わされるが、単一のレジストリに格納されるに過ぎない。クエリーが、必要に応じてのみ他のレジストリへ配布される。従って、リターンされる情報は現在のものであることが保証される。このことは、単一のアップデート点を与え且つレプリケーション技術において内在する同期及び帯域幅消費の問題を取除いている。真のディストリビューションは、サーバー間のスケーラブルな接続性に対する1つの回答であると考えられる。
エンタプライズUDDIレジストリの場合には、通常ディストリビューションが使用される2つのシナリオが存在している。最初のシナリオは、各々が新たなUDDIエントリを発生し且つUDDIサービスをコンシューム(consume)即ち消費する地理的に離隔しているオフィスを有する組織に対するものである。単一の中央集権化したUDDIレジストリを稼動させることが可能であるが、帯域幅制限及び時間帯の違いが、しばしば、このことが動作可能なものとすることを困難なものとさせる。
分散型レジストリは、柔軟性がありスケーラブルなソリューションを与える。このシナリオにおいては、各参加オフィスが別個のレジストリを有しており、且つ各レジストは他のものをそれ自身の内容の論理的一部として見る。レジストリサービスは接続性詳細の全てを取り扱い、且つ顧客は地理的な点で懸念する必要はない。
エンタプライズが、その内部UDDIシステムを信用されているパートナーのもの又はパブリックインターネットレジストリへ接続することを必要とする場合に2番目のシナリオが発生する。パブリックレジストリの場合には、特に、レプリケーションが問題である。インターネットレジストリのオペレーターは、そのレジストリの一部をエンタプライズの内部レジストリへ複製することを嫌がる場合がある。この場合も、分散型アプローチが1つの回答である。現在のところ、ディストリビューションに対するUDDIスタンダードは存在せず且つレプリケーションに対する提案は複雑なものであると考えられる。1つのソリューションは、スタンダードに対する修正を必要とすることなしにUDDI分散型アプローチの利点を提供することである。
管理性に関しては、エンタプライズ内のミッションクリチカルな機能を実施するコンポーネントとして、UDDIは性能及び信頼性の条件を満足すべきである。それは、単に、開発者にとって便利なユーティリティとして存在すべきではない。クライエントによる読取アクセスは、UDDIレジストリの最も頻繁で且つ最も時間的に臨界性のある利用である。性能は最大の処理能力に対して最適化され、且つルックアップクエリーの応答時間はより複雑なサーチにより影響されるべきではない。レジストリが寸法及び複雑性の点で増加するに従い性能が影響を受けるべきではない。UDDIレジストリを支えるデータストアは産業的強さとなるべきであり且つトランズアクション及び自動的リカバリを完全にサポートすべきである。更に、UDDIサーバーは、高度のアベーラビリティ即ち使用可能性を有し且つネットワークフェイルオーバー及びホットスタンバイ等の特徴をサポートすべきである。システムアドミニストレーターは、UDDIレジストリを容易に維持し、モニタし、制御することの能力を有するべきである。これらの能力は、サービスをオフラインとすること無しに制御、規則及び設定を変化させるためのダイナミックコンフィギュレーション(DYNAMIC CONFIGURATION)、高いアベーラビリティのためのオンラインバックアップ及びチューニング(ONLINE BACKUPS AND TUNING)、レジストリの「トローリング(trawling)」を停止し且つサービス妨害攻撃を防止するためのアドミニストラティブコントロール(ADMINISTRATIVE CONTROLS)、SNMP又はその他のタイプの警告メカニズムを介してのモニタリング(MONITORING)、セキュリティ、統計、クエリー、アップデート情報に対し別々のログファイルを具備するオーディティング及びダイアグノスティックス(AUDITING AND DIAGNOSTICS)、及びレプリケーション、ディストリビューション、ルーチングをサポートするデプロイメント(DEPLOYMENT)オプションを包含している。
多くの開発者中心UDDIレジストリが導入されている。これらは、小さな開発チームに対して有用な能力を提供するが、真に生産品質のシステムではない。ウエブサービスディプロイメントは迅速に成長しており且つ現在進行中のウエブサービスデプロイメントをサポートするために迅速にスケールすることが可能なエンタプライズ品質のレジストリに対する対応する必要性が存在している。
UDDIレジストリはサービスを提供する。このサービスは多くのアプリケーションにより信頼される。オンラインビジネスの場合には、このサービスが存在することが重要な場合がある。例えば、UDDIレジストリは、99.99%のアベーラビリティのサービスレベルアグリメントを与えることが必要な場合がある。このレベルのアベーラビリティを容易なものとさせるために、UDDIレジストリは、2つ又はそれ以上のマシン及びそれらのマシンが同期されていることを維持することを確かなものとするために設けられているメカニズムにわたって複製される場合があり、且つ該マシンのうちのいずれかが使用不可能なものとなる場合には、入って来るクエリーは自動的に使用可能なマシンへ経路付けされる。
指摘したように、UDDIは実効的には電話帳サービスに類似したものと考えることが可能である。そうであるから、情報を格納のディレクトリモデルは、UDDIレジストリサービスを構築するのに完全な土台である。ディレクトリモデルは、ディレクトリに基づくサービスの特定の必要性に対して展開され且つ開発され、セキュリティ、スケーラビリティ及び信頼性がエンタプライズレベルのディプロイメントに対して必要とされる。
上述した項目の殆どは、アプリケーションアーキテクチャにおいて、データ格納レベルにおいてではなくサービスレベルにおいて実現される。リレーショナルデータベース(RDBMS)は、その上に多くの異なる種類のアプリケーションを構築することが可能な一般的なツールキットである。RDBMS実現例は、終端アプリケーションにおいて必要とされるエキストラなサービス機能ではなく安定したデータアクセス機能性を与えることに集中している。
図3に示したディレクトリサービスアーキテクチャは、他のコンポーネントからのサービスレイヤー31の分離を例示している。インターフェース機能をサービスレイヤー31内にカプセル化することは、再使用可能なサービスインフラストラクチャコンポーネントを発生させる。このことの優れた例はウエブサーバーである。ウエブサーバーは、スタンドアローンコンポーネント内に構築するのに充分に有用なサービスを一体となって作り上げる一群の機能(HTTBアクセス、CGI処理等)を提供する。同じ様に、ディレクトリサービスモデルは、特定のタイプのアプリケーションにより必要とされる機能を供給するために開発されている。ディレクトリ技術は、オーセンティケーション(authentication)即ち認証及びオーソリゼーション(authorization)即ち承認の分野における多くのミッションクリティカルなアプリケーションに対する基礎を与える。
UDDIは、別の種類のディレクトリサービスと類似するものと考えることが可能である。従って、UDDIにより定義される実現上の問題の多くはディレクトリ技術を使用することによって解消することが可能であることを理解することが可能である。例えば、ディレクトリは、UDDI電話ディレクトリ動作に対して非常に一般的な極めて効率的なファインド(find)及びサーチ動作に対して最適化される。
既に述べたように、エンタプライズ内に成功裡にデプロイされるべきためには、UDDIサービスは、強力なセキュリティ、ディストリビューション、管理性能力を提供すべきである。これらは、エンタプライズ強さディレクトリサービスソリューション内に既に組込まれているのと正に同じ属性である。
エンタプライズUDDIレジストリを構築する1つの方法は、高性能で実世界のアプリケーションにおいて試行され且つテストされた既存のディレクトリインフラストラクチャを拡張することである。
ディレクトリサービスアーキテクチャは、エンタプライズUDDIレジストリを実現するための最適な手段を提供している。この組合わせは、成功するために必要な能力をサポートする。図4に概略的に例示したように、UDDIサービスは、このインフラストラクチャに対して実現することが可能なコンポーネントを識別する。UDDI意味論的ブリッジ41は、UDDIのSOAP実現例42とディレクトリ44にサポートされているLADPインターフェース43との間を調停するサービスコンポーネントである。ディレクトリ44はサポートするセキュリティ制御、ディストリビューションメカニズム、管理能力と共に情報アクセスを送給する。RDBMS45は基礎となる物理的データ管理、トランズアクションに関する完全性及びバックアップ及びリカバリメカニズムを提供する。
UDDIレジストリ製品はRDBMS技術の上に直接的に構築することが可能である。リレーショナルデータベースは、多くの場合において非常に有用であり且つ強力なものであるが、それ自身ではディレクトリ処理にとって独特の条件を満足するものではない。
RDBMS又はその他のデータ格納システムを表面下で使用して、ディレクトリ型アプリケーションをゼロから構築することが可能である。然しながら、これは最も効率的なアプローチではない場合がある。
別のアプローチは、UDDIレジストリをデリバーするためにディレクトリサービスモデルを適用し且つこの特定のタイプのアプリケーションに対して必要とされる機能を供給することである。UDDIレジストリに対して必要とされる更なる機能は、最近の産業的強さ(industrial−strength)ディレクトリサービスにより供給することが可能である。UDDIレジストリは特別の通信及びAPIを具備するディレクトリサービスとして見ることが可能である。ディレクトリ上にUDDIサービスをデリバーすることは、利益を得るためにUDDIスタンダードを修正することの必要性なしに所要のセキュリティ、ディストリビューション、管理能力を与えることが可能である。
データ表現の注意深い設計は、UDDIリポジトリに必要な機能性及び性能を与える上で有益的である。
以下の説明は種々のUDDI概念に関するものである。これらのUDDI概念の更なる詳細な説明は、UDDI仕様を参照することにより得ることが可能である(http://www.uddi.org/specification.html)。
ディレクトリ専門用語において、スキーマはディレクトリ内に格納することが可能なデータ要素及びどのようにしてこれらの要素を共に接続することが可能であるかの記述である。これは、可能な属性(属性は一片のデータを保持する)の各々の記述、種々のオブジェクト(オブジェクトは属性の集まりである)の記述、及び可能なオブジェクト階層の使用を包含している。本明細書において使用する特定のスキーマ表記法はコンピュータアソシエイツインターナショナルインコーポレイテッドの製品であるeTrustディレクトリにより使用されるものである。「eTrust」はコンピュータアソシエイツインターナショナルインコーポレイテッドの製品名及び商標である。勿論、その他のスキーマ表記法を使用することが可能である。
本開示はデータストアとしてディレクトリを使用するUDDIリポジトリを実現するために使用されるスキーマを説明する。このスキーマに関与する多数の概念が存在している。又、UDDIインプリメンテーション即ち実現例の動作を向上させるために使用される多数の技術が存在している。以下のものはこれらの概念のうちの幾つかの簡単な説明である。これらの概念及び技術のより詳細な説明は、本開示の実施例を説明する場合に後に説明する。
本スキーマは最適化された動作を与えるべくデザインされている。属性、オブジェクトクラス、エントリ、階層の定義を包含する本スキーマデザインは、動作を向上させる態様で具体化されている。本スキーマデザインは、少なくとも、セキュリティ、性能、管理性、ディストリビューションにおいて顕著な利点を与える。
本システムの階層について説明する。X.500ディレクトリは内部的にディストリビューションをサポートし、UDDIレベルでのコーディング無しで分散型UDDIリポジトリを与える。レベルが該リポジトリの概念を分割する。このスキーマの(オプションの)ドメインレベルが、レベル、各ドメインエントリ、その下側のエントリの全てを、UDDIレベルのプログラミングに対してトランスペアレントに別個のディレクトリサーバー上に配置させることが可能であることを与える。図11は本開示のこの側面の1実施例を例示している。これについて以下更に詳細に説明する。
本開示の1実施例によれば、ユーザオブジェクトがビジネス及びTModelオブジェクトの上に配置される。ユーザオブジェクトはユーザに関する情報を格納するための場所を提供する。それは、又、ユーザによりパブリッシュされるデータの全てに対するアンカーポイントを与える。図10は本開示のこの側面の1実施例を例示している。これについて以下に更に詳細に説明する。
セキュリティはこのドメイン/ユーザ階層システムにおいて簡単化されている。UDDI実現例は、ユーザがデータオブジェクトのそれらのサブツリーにわたって制御を有することを強制することが可能である。
ユーザ制御型エントリに対するサーチが与えられる。このユーザにより制御されるデータに対するサーチは、ユーザオブジェクトの下のサブツリーサーチを使用することにより向上させることが可能である。
例えば、バインディングテンプレートにおいて発生するTModelを特定することによりビジネスを見つけることが可能である。このことは、「子の1つ(又はそれ以上)を見つけることによりxを見つけ出すこと」と等しい。換言すると、クエリーは「このTModelを参照するバインディングテンプレートを有するサービスを有する全てのビジネスを探し出す」とすることが可能である。このようなクエリーは、ビジネスエンティティのDNを発生させるために、子孫オブジェクトのDN(識別名)を見つけ出し且つ不所望のレベルを廃棄することにより行われる。又、この態様において二重削除を行うことが可能である。この見つけ出し特徴は、本開示の構造の階層的性質に起因して発生する。
サーチはオブジェクトクラスにとって一意的な属性を使用して実施することが可能である。これは2つの利点を有する最適化である。このことはサーチの書込を簡単化し且つ「弱い」節を除去することを介して優れた性能を発生する。「弱い」節はフィルタの一部であって、それは多数のエントリをリターンするか、又は多くのエントリの一部である属性を参照する。全てのName即ち名前に対し同一の属性名を使用したデザインは、名前によってビジネスエンティティに対しサーチを行う場合に2つの選択を有しており、それはサーチ又はサーチ結果のフィルタにおいてオブジェクトクラスを包含している。前者は、ビジネス名が一意的なオブジェクトクラスを有する場合に可能であるに過ぎず、且つその場合であっても、オブジェクトクラスは弱い節であり、更なるオーバーヘッドを発生する。後者は、エキストラなコードを意味しており、且つ結果リストをリターンする潜在性は所望の結果よりも一層大きい。
例えば、広範囲のウエブサービスを提供する「McKenna’sテスティングサービス」と呼ばれる会社について検討すると、そのサービスの全てはその名前において「McKenna’s」を包含しており、それらの名前において「McKenna’s」を有するビジネスエンティティに対するサーチはサービスの全てに対して中間結果をリターンする。これらの中間結果は、除去することが可能であるが、それらを取り扱うことは性能を減少させる。
サーチにおける属性名を特定し且つその属性名をして求めるオブジェクトクラスを一意的に識別させることが可能であることが望ましい。上の例を継続すると、そのサーチは、(euBusinessEntityName=McKenna’s*)を特定することが可能である場合に著しく簡単となる。
このようなデザインは強力なサーチを発生し、それらは所望の分野のみのサーチを行うので効率的である。強力なサーチは小数のエントリをリターンするサーチを包含している。ディレクトリはeuBusinessEntityName属性をインデックスし、且つそのインデックスからの結果をリターンすることが可能であり、このことは良好な性能を発生し且つ不必要な中間結果を取り扱うことを回避する。
簡単なクエリーの場合、このようなデザインは、ビジネスエンティティ名に対するサーチが、別のデザインにおいて必要となる場合のある複合的なものではなく単一の節であることを意味している。その名前属性がeuNameと呼ばれ、且つビジネスエンティティ名オブジェクトがeuBusinessEntityNameと呼ばれるものと想定する。それは、
(&(euName=McKenna’s*)(oc=euBusinessEntityName))
のようなサーチを発生する。
更により簡単なデザインがあり、その場合は、全ての名前が同一のオブジェクトクラス内に格納される。このことは、サーチが(euName=McKenna’s*)に再度還元されることを意味するが、今回は、ビジネスエンティティである親オブジェクトを有するものを探し出すことを試みながら全ての名前に対する結果を介して進むこととなり、この最後のデザインは潜在的に拙い性能でむしろより複雑なプログラミングを発生する。
シャドウ特性は大文字小文字区別性に対して使用することが可能である。単一のインデックスを使用して大文字小文字区別性と大文字小文字非区別性の両方のサーチを与えることは些細なことというにはほど遠い。1つのオプションは、大文字小文字非区別的にインデックスし、次いでその結果を大文字小文字区別的にスキャンすることである。ここでの別のソリューションは、オリジナルのデータを大文字小文字区別的にインデックスし、且つ大文字小文字非区別的にインデックスされた第二の属性(その場合に同一のデータを格納する)を付加することである。次いで、必要なことは、ファインドクワリファイヤ(fine qualifier)即ち発見修飾子に依存してサーチすべく適宜の属性を選択することだけである。
このデザインにおける全ての属性は単一値型とすることが可能である。このことは効率的なインデックス処理、より高い性能、より強いサーチとすることを可能とする。
多値型属性を使用することは不明瞭なサーチを可能とさせる。即ち、直感に反し且つ意図していないサーチ結果を得る可能性がある。「n」と呼ばれる多値型数値属性及び値2及び5と共にこの属性を包含するエントリを想定すると、このエントリはサーチ(&(n<3)(n>4))に応答してリターンされ、それは容易に予測されるようなものではない。
単一値型属性は強いサーチに対して使用される技術のうちの1つである。強いサーチは、インデックスを介して大多数の候補結果を除去することが可能なものである。強いサーチは改良された性能に対して重要である。
サービスプロジェクション(service projection)のためにエイリアスを使用することが可能である。これは、データストアとしてX.500ディレクトリを使用することの顕著な利点である。サービスプロジェクションは、X.500エイリアスを使用して巧妙に表わすことが可能である。これは、データのインテグリティ即ち完全性を保証することの主要な利点を有している。該エイリアスがオリジナルのデータへアクセスし、従ってそのオリジナルに対する何等かの変化は瞬時に該エイリアスにより反映される。ディレクトリのインプリメンテーション即ち実現がエイリアスのインテグリティをサポートする場合には、オリジナルのエントリが削除されると、エイリアスは付加的な作業なしに消滅する。
パブリッシャアサーション(Publisher Assertion)は、UDDIスタンダードにおいて最も不明確に定義されている要素のうちの1つであり、且つそれは注意深いデザインを必要とする。不適切なインプリメンテーション即ち実現は容易に拙い性能を発生する場合がある。
パブリッシャアサーションの最も一般的な使用はfind relatedBusiness APIであり、それは特定したビジネスエンティティに関連するパブリッシャアサーションの全てをサーチするものであるから、各アサーションをそれが参照するビジネスエンティティの下に配置することが良好なデザインである。
アサーションのステータスを計算し、且つそれをアサーションオブジェクト内に格納することにより、サーチを完了したパブリッシャアサーションへ制限することが可能である。このことは、リターンされる結果が除去されるべき偶発的な参照を包含することがないことを意味する。
補助的なクラスとしてリレーションシップオブジェクトをストア即ち格納することは、サーチが不所望のリレーションシップを有するアサーションを除去することを可能とさせる。リレーションシップが子オブジェクトとして格納されると、リレーションシップとアサーション完了ステータスの両方に対処する単一のサーチを書くことは不可能である。
UDDIキーは存在する場合にネーミング即ち名前付けのために使用することが可能である。UDDIは重要なオブジェクトクラスの多くに対してのキーを定義し、且つこれらのキーは一意的なものであることが保証されているものとして特定される。このことは、該キーはオブジェクトに対するネーミング属性として使用することが可能である。ネーミング属性としてUDDIキーを使用することは、ネーミングクラッシュの解決を試みることの必要性がないことを意味し、例えば、ビジネスエンティティに対するネーミング属性としてデフォルト名を使用した場合にはそのことが必要とされる。
キーは、存在しない場合にネーミングのために提供することが可能である。即ち、全てのUDDIオブジェクトが定義されたキーを有しているものではない。1つの例はパブリッシャアサーションである。これらの場合には、本システムは、UDDI定義キーに対して使用されるのと同一のアルゴリズムを使用してキーを提供する。このアイディアの再使用は、他のオブジェクトに対して書かれたコード及び構造を再使用することが可能であることを意味している。
一連のUDDIオブジェクトが別のオブジェクトの子であり、且つそれらの子の順番が重要(例えば、アドレスライン)である場合には、子オブジェクトに対して割当てられるキーは値が単調的に増加すべく配列され、従ってそれらのキーに関してのソーティングは所望の順番を発生する。このことは所望の順番を確保することのプロセスを簡単化させる。
実際的である場合には、キーがリトルエンディアン(little−endian)の態様で変化することが望ましい。即ち、そのキーの最も左側のバイトが最も迅速に変化する。何故ならば、それはデータストアとしてX.500ディレクトリを使用する場合にインデックス処理の最も良い性能を発生するからである。
UDDIスタンダードは主要なオブジェクトタイプの幾つかの中において多数のサブストラクチャ(sub−structure)を定義する。多くの場合において、これらのサブストラクチャはオプションであり、且つ反復させることが可能である(それらは0、1、又は同一のオブジェクトにおいて一回を超えて発生することが可能である)。簡単な例は、ストリング(名前)及び言語識別子を包含する名前サブストラクチャである。X.500スキーマ定義は構造型属性の使用をサポートするものではなく、従ってすぐに明らかなサブストラクチャのマッピングは存在しない。これらのサブストラクチャをX.500スキーマにおいてインプリント即ち実現することが可能な2,3の方法が存在している。
1つの方法は、サブストラクチャのコンポーネントを、種々の要素を分割するための何らかの種類のセパレーターを使用して、単一の属性へ連結させることである。このことは、最適のデザイン選択でない場合がある。何故ならば、それはコンポーネントを別個にインデックス又はサーチするための能力を失い、且つそれはデータを取り扱うことに対して処理上の複雑性を付加するからである。
本システムにおいては、サブストラクチャを表わすために使用されるデザインが、性能及び管理性を最大化させるために選択される。ここに開示するデザインは、ディレクトリにおけるサブストラクチャを表わすために多様の技術のうちの1つ又はそれ以上を使用する場合がある。これらの技術は3つのカテゴリに要約することが可能である。
1つの技術は、サブストラクチャの多くを子オブジェクトとして取り扱うことが可能であるということである。名前が良好な例であり、ビジネスエンティティの名前をビジネスエンティティの子として格納する。別の例は記述であり、その場合には、別個のビジネス記述オブジェクトがビジネスエンティティオブジェクトの子である。図15は本開示のこの側面の実施例の例示を与えており以下に更に詳細に説明する。
別の技術はフラットニング(flattening)/マージング(merging)である。別のオブジェクトに対して高々1つのリレーションシップが存在する場合には、属性を単一のオブジェクトに結合することが可能である。この場合には、階層がフラットニングされるという。何故ならば2つのオブジェクトが1つのオブジェクトに結合されるからである。新たなオブジェクトはマージされているという。何故ならば、その新たなオブジェクトはオブジェクトを結合することから属性の結合を包含しているからである。好適には、リレーションシップオブジェクトの内容は親オブジェクトへ進展される。
例えば、図16はUDDIリレーションシップ線図の表現を概略的に例示している。図17はディレクトリ階層線図を概略的に例示しており、その場合に、ディレクトリ階層はUDDIオブジェクトのフラットニングにより形成されている。
説明として、図16は、オブジェクト163に対してリレーションシップオブジェクト162を有するオブジェクト161を例示している。
本開示の1実施例によれば、1対1のリレーションシップが存在する場合には、「子」を進展させることが可能である。換言すると、その階層の部分を崩壊又はフラットニングさせ且つオブジェクトをマージさせることが可能である。その結果は図17に概略的に例示してある。親オブジェクト171はコンテント即ち内容A1,A2,Anを有しており、且つコンテントB1,B2,Bn,C1,C2,Cnを有する1つ又はそれ以上の子である子オブジェクト9nを有している。
別の技術はスプリッティング(splitting)である。例えば、1つの特定の場合(OverviewDocサブストラクチャ)において、サブストラクチャが非反復型要素と反復型要素とを包含している。非反復型要素(OverviewURL)は親の中に移動させることが可能であり、一方反復要素は子オブジェクトとすることが可能である。
本開示の別の側面はマネージメント即ち管理である。TModelを削除することは、それをfind TModelから隠すが、それをリポジトリから除去することはない。従って、TModelの正しい取り扱いを実現するために、隠しフラッグ(hidden flag)を実現することが可能である。このフラッグの存在は、TModel(ユーザオブジェクト)が隠されていることを表わす。このフラッグの非存在は、そうでないことを表わす。このことが、大多数のTModelにとって成立し、従ってこのアプローチは効率的である。隠されていないオブジェクトにおいて何等空間が占有されることはなく、且つ何等インデックス処理が使用されるものでもない。ディレクトリは隠されている属性を有するエントリのみをインデックスする。このことは、又、隠されていないTModelに対するサーチが高速であり且つ効率的であることを意味する。
データストアとして使用されるX.500ディレクトリは、空の値を格納することのないデザインを奨励する。例えば、オブジェクトに不在の(オプションの)値は該ディレクトリ内に格納されることはない。このことは、格納空間を効率的に使用し且つより強いサーチを行う。属性に関してのサーチは、その属性に対するデータを有するオブジェクトを考慮することが必要であるに過ぎない。
本システムのデータ階層は、UDDIスタンダードの意図と良くマッチしている。UDDIオブジェクトを削除するためのリクエストが到達すると、それは該ディレクトリにおけるサブツリーの削除に対して直接的にマップする。例えば、サービスを削除することは、その名前及び記述、及びそのバインディングテンプレートの全てを削除することを包含している。これらの全ては該ディレクトリにおけるサービスエントリの子である。従って、本システムは、そのサービス以下全てのサブツリーを削除する。これは容易に実現され且つ効率的である。
ドメインは階層的サブツリーのベースを表わす名前である。X.500用語においては、ドメインはコンテクストプレフィックス(context prefix)として知られている。LDAP用語においては、それはサフィックスとして知られている。UDDIリポジトリにドメイン名を与えることは、該リポジトリにおけるデータの真のディストリビューション(X.500の意味において)の使用を可能とする。UDDIスタンダードはレプリケーションをサポートするに過ぎない。ドメインノードを有することにより、本システムはアプリケーションに対してトランスペアレントにディレクトリディストリビューションファシリティを使用することが可能である。
例えば、エンタプライズが内部的にUDDIをデプロイするが、2つの開発サイトを有しているものと仮定する。このファシリティの場合には、彼らは各サイトにUDDIサーバーをデプロイすることが可能であり、ディストリビューションは各サイトが両方のレジストリ上でパブリッシュされる項目をトランスペアレントに観察することを可能とする。
このことの1つの利点は、それが「無料で」ディストリビューションを可能とするということである。例えば、UDDIサーバーは何等エキストラな作業を行うことは必要ではなく且つディレクトリシステムは実効的に情報のアイランドを一緒にリンクさせる。
UDDIスタンダードにおける何かが、どのようにしてユーザ情報が格納されるかを支配するものではない。ユーザオブジェクトを作成することにより、ユーザに関連する情報の全ては単一のオブジェクト内に格納することが可能であり、そのオブジェクトはそのユーザがパブリッシュするオブジェクトの全てを保持するサブツリーのルートとして使用することが可能である。このことは、セキュリティの定義を一層簡単なものとさせる。例えば、考慮中のオブジェクト(それがビジネスであろうと、サービスであろうと、又はTModelであろうと)がユーザのユーザオブジェクトの下にある場合には、ユーザはそれを制御する。
UDDIは反復する要素を包含するオブジェクトを定義する。性能、サーチ性、管理性等の利点のために、これらの反復する要素を子オブジェクトとして表わすことが可能である。
反復する構造型データを子オブジェクトとして格納することは、そのデータをディレクトリにおいて効率的に表現することを可能とし、各フィールドがサーチのために個別的に使用可能(且つインデックス)である。
例えば、ビジネスエンティティ名はビジネスエンティティオブジェクトの子として格納することが可能である。別の例は、ビジネスエンティティオブジェクトの下に子として格納することが可能なビジネス記述である。
このタイプのシステムの利点は、それが名前についてサーチすること(それは通常のUDDIサーチである)を可能とするということであり、且つエントリのDNがその名前が属するオブジェクトのDNを与える。
UDDIは冗長の「コンテナ」ノード(属性ではなく子サブストラクチャのみを包含するUDDI構造)を定義する。これらは、クエリーの結果から比較的低コストで構成することが可能であるので、除去することが可能である。幾つかの場合においては、属性を子ノードからその親へ進展させることが可能であり、今や冗長な子ノードをディレクトリ表現から除去する。
例えば、tModelInstanceDetailsは、それが属性を包含するものではないので、ディレクトリスキーマにおいて表現されることはない。instanceDetailsは、その属性が、その子overviewDocの属性がそうであったようにtModelInstanceInfo親内へ進展されているので、ディレクトリスキーマにおいて表現されることはない。カテゴリ及び識別子バッグはディレクトリにおいて表現されることはなく、それらのコンテントは該バッグの所有者の子とされる。
このことの利点は、それがディレクトリ内のエントリの数を減少させるということである。特に、それはDITの深さを最小とさせ、そのことは性能を改善することが可能である。
図12は本開示の1実施例に基づく階層構造を概略的に例示している。一つ又はそれ以上のドメイン又はプレフィックス121が設けられている。各ドメイン121の下に、1つ又はそれ以上のユーザ122が存在する場合がある。各ユーザ122の下に、1つ又はそれ以上のTModel123及び1つ又はそれ以上のビジネスエンティティ(BE)124が設けられている場合がある。各ビジネスエンティティ124の下に、1つ又はそれ以上のパブリッシャアサーション(PA)125、1つ又はそれ以上のビジネスサービス(BS)126及び1つ又はそれ以上のサービスプロジェクション(SP)127が設けられている場合がある。各ビジネスサービス(BS)126の下に、1つ又はそれ以上のバインディングテンプレート(BT)128が設けられている場合がある。エイリアスは特定のインプリメーションにより必要とされる場合に配置させることが可能である。例えば、サービスプロジェクションオブジェクト(図12においては三角形として示してある)はエイリアスとしてビジネスエンティティオブジェクトから派生する場合がある。
図12に示したようなこのスキーマデザインの利点は、本開示全体を読むことから明らかなものとなる。
パブリッシャアサーションはそれらが参照するビジネスエンティティの下に配置されている。何故ならば、それらはfind RelatedBusinessesコールの文脈において最も頻繁に使用されるからであり、該コールは、ビジネスキーを特定し且つパブリッシャアサーションを介してそれと関連するビジネスの全てを探し出す。本システムは特定したビジネスを探し出し、次いでその下側の(完全な)全てのパブリッシャアサーションを読取る。これは関連性のあるアサーションを探し出すのに迅速で且つ効率的な方法である。
このことの利点は、それが高速で且つ効率的なサーチを可能とすることである。それは、又、データインテグリティを容易に維持することを可能とする。例えば、ビジネスが削除されると、全てのパブリッシャアサーションも自動的に削除される。
TModelは、それらをパブリッシュしたユーザにより変化させる(即ち、リタイア/隠す)ことが可能である。それらをそのユーザを表わすエントリの下に配置させることは、セキュリティを簡単なものとさせる。例えば、TModelがユーザエントリの下側のサブツリー内に存在する場合には、それを修正することが可能である。そうでない場合には、そうすることは不可能である。
より詳細には、変化させようとするユーザのDN(識別名)がTModelのDNのプレフィックスと一致する場合には、そのエントリはそのユーザにより修正することが可能であり、そうでない場合には、不可能である。ディレクトリはこの決定を行うために使用することが可能であり(DNが存在しない場合にはネーミングの例外)、又はUDDIサーバーがそれを行うことが可能である。
オブジェクトがリポジトリから削除されると、そのオブジェクトに関連する情報も削除することが可能である。このことは、本スキーマの実施例に基づいて使用される階層的デザインにより著しく簡単化されている。オブジェクトが削除されると、それがルートであるサブツリー全体を削除することが可能であり、且つこのプロセスは全ての(且つ通常それのみの)関連する情報を削除することが可能である。サブツリーを削除することはボトムアップに実施することが可能である。各エントリは、その子の全てが削除される場合に削除することが可能であるに過ぎない。このことは、全ての子を逆のDN順にリストすることにより管理される。このことは、それらの親の前に子を削除することを保証する。
このことの利点は、ソートリスト(sorted list)方法が、より複雑なリカーション即ち回帰を使用することの代替であるということである。更に、それは比較的簡単であり且つメモリ効率的である。サブツリー内の全てのエントリがDNによりソートされ、且つ逆順に削除が実行されると、このことは、全ての子がそれらの親の前に削除されることを保証する。
例えば、ビジネスサービスが削除されると、本システムはそれと関連する全てのバインディングテンプレートを、それらのTModelインスタンス情報、及び種々の関連するカテゴリ情報を削除する。このことの全ては、そのビジネスサービスがルートであるサブツリーを削除することにより削除することが可能である。
このスキーマのデザインにおいて使用される階層に起因して、オブジェクトのDNは所有の遅延及びオブジェクトに対する制御を露呈させる。注意すべきことであるが、推論は、又、ネーミング属性の注意深い選択に依存する。
このことの利点は、それが情報を収集するために使用されるサーチ又は読取の数を減少させることが可能であるということである。例えば、子オブジェクト(例えば名前)であるサーチ結果の場合、各エントリのDNは親(例えば、ビジネスエンティティ)及びそれを所有するアカウントを露呈させる。
例えば、ビジネスサービスのDNは、それが属するビジネス、及びそれを制御するユーザを露呈させる。
ディレクトリは結果のどのような順番付けも保証するものではない。複雑な結果(それらの適宜の名前及び記述と共に、ビジネスエンティティ及びそのビジネスサービス等)を取り扱う場合には、出力の構成はサーチの結果を取り且つそれらをDNによりソーティングすることにより簡単化することが可能である。このことは、結果の構成が比較的簡単なものとなるようにそれらを編成する。各オブジェクトはその子の前に構成され、従って子をその親の下に配置することが簡単であり、従ってビジネスに対する結果はそのサービスの前に編成される。オブジェクトの全ての子は同一のタイプの次のオブジェクトの前に表われ、1つのビジネスに対するサービスの全ては次のビジネスの前に表われる。このことは、又、簡単な再帰的構造を可能とする。何故ならば、同じことが各レベルにおいて適用されるからである。
このことの利点は、UDDI構造を構成するために必要とされる生のエントリのリストを介してのパスの数を最小とさせることである。
例えば、ソーティングの後に、ビジネスAに対する結果はその最初のサービスAA、そのサービスの名前、に対する結果により追従され、次いでAの2番目のサービスAB及びその名前、次いで2番目のビジネスBにより追従される。
サーチは子に関して実施することも可能である。例えば、頻繁なサーチリクエストは「その子の1つ(又はそれ以上)を見つけ出すことによりxを見つけ出すこと」という場合がある。ビジネスをサーチにより見つけ出すことが可能な方法のうちの1つは、例えば、バインディングテンプレートにおいて発生するTModelを特定することによるものである。換言すると、そのクエリーは「このTModelを参照するバインディングテンプレートを有するサービスを有する全てのビジネスを探し出せ」である。これらのクエリーは、子孫のオブジェクトのDNを見つけ出し、且つビジネスエンティティのDNを発生するために不所望のレベルを切り捨てることにより行うことが可能である。好適には、之は、又、重複を取除く。このサーチ方法は、部分的には、本開示の実施例の階層構造に起因して起こるものである。
保証された一意的なキーの使用は物事を簡単化させる。リポジトリ全体を単一のキーについてサーチすることが可能であり、且つ一意性は、結果が存在しないか(そのキーが存在しない場合)、又は1つの結果が存在する(それが存在する場合)のいずれかであることを確保する。サーチを親の範囲内に制限することに関して注意することは必要ではない。このことは、ディレクトリから向上された性能を発生する。何故ならば、それはデータベースインデックスを最適状態に使用することが可能だからである。
このことの利点は、それが最も速いタイプのディレクトリクエリーを利用するということである。別の利点は、与えられたオブジェクトが別のものから参照される場合に保証された一意的な名前が重要な場合があるということである。
殆どのインデキシング方式のプロパティ即ち性質は、それらがデータ従属性であることである。データが「リトルエンディアン」(最も左側の部分が最も迅速に変化する)である場合には、そのデータは広がる傾向にあり、従ってインデックスは最大の性能を与えることが可能である。逆に、そのデータが反復的である場合には、インデックスは非常に効果的なものでない場合がある。UUID(Universally Unique Identifier)アルゴリズムを使用することが可能であり、それは「リトルエンディアン」の性質を示す。このことの利点は、それがディレクトリ性能を最大化させるということである。
キーは派生されたオブジェクトへ付加させることが可能である。反復するデータ要素が子オブジェクト内に入れられる場合には、ネーミング属性を付加することが必要であり、それはそのDNの最後のアーク(arc)を形成する。ディレクトリにおいて、ネーミング属性はその兄弟姉妹とは異なっている。何故ならば、同一の親の二人の子が同一の名前を有することは不可能だからである。
2つの種類のキーを使用する場合がある。順番を必要としない子オブジェクトの場合、UUIDが使用される。何故ならば、これらは一意的なものであることが保証されているからである。順番が重要である場合には、単調的に増加する特性を有するキーを使用して順番を保証する。
UDDIスタンダードにおいては、ビジネスエンティティは、それらが別のビジネスエンティティにより提供されるという事実にも拘わらず、2つの種類のサービス、即ちそれが制御するもの(子オブジェクトによりリポジトリ内において表わされる)、及びそれがそれに対してインターフェースを提供するもの、を提供することが可能である。後者はエイリアスにより開示されたUDDIリポジトリにおいて表わされる。エイリアスは正に正しい特徴を与える。例えば、オリジナルのオブジェクト(サービス)がその所有者により何等かの態様で変更される場合に(多分、別のバインディングテンプレートが付加される)、そのエイリアスを介して参照されるオブジェクトも「変化する」。更に、サービスに対するビジネスエンティティの下でのサーチは実際の及びエイリアス型の両方のサービスを発生する。
例えば、エイリアスは、サービスプロジェクションに対して使用することが可能であり、その場合には、ビジネスは別のビジネスの下で定義されているサービスに対してポイント即ち指し示すことが可能である。
このことの利点は、てこ入れ用のエイリアスは、基本的に、「代替的な名前」を自動的に供給させることが関与する機能性を可能とさせるということである。更に、ディレクトリがエイリアスのインテグリティをサポートする場合には、そのオリジナルのサービスが削除されると、全てのプロジェクションが自動的に取除かれる。
UDDIスタンダードにおいては、別のオブジェクトへの直接的な参照を有することを望むものではなく、むしろ、TModelインスタンス情報の場合には、中間的なステップ、又はパブリッシャアサーションにおいてはビジネスエンティティへの参照を有することを望む多数の場所が存在している。これらの場合には、エイリアスはコードを複雑化させることとなる。従って、その代わりに、本システムはオブジェクトに対する参照を使用する場合がある。本システムは、1実施例によれば、全てのオブジェクトが一意的なキーを有することを保証するので、そのキーは正確に参照として動作し、時折、「フォーリン」キーとして知られている。
属性のグルーピングを補助的なオブジェクトクラスを使用して実施することが可能である。パブリッシャアサーションを取り扱う場合に、パブリッシャアサーションを一意的に識別するこれら3つの属性、即ち2つのビジネスエンティティキー、及びそれらの間のリレーションシップ即ち関係を使用してパブリッシャアサーションを探し出す能力に対する必要性が存在している。然しながら、そのリレーションシップはキー型参照として特定され、それ自身は3つの異なる属性、即ちTModelキー、キー名、キー値である。1つの方法は、このリレーションシップをパブリッシャアサーションの子オブジェクトとして格納することである。然しながら、このことは特定のパブリッシャアサーションに対して最も効率的なサーチを可能とするものでない場合がある。キー型参照のリレーションシップをパブリッシャアサーションエントリに対する補助的なクラスとすることにより、単一のサーチにおいて5つの属性全てに対してサーチを行うことが可能であり、従って、必要とされるパブリッシャアサーションオブジェクトを正確に分離させることが可能である。
このスキーマの1つのデザインは、通常のオブジェクト指向型デザイン技術を使用する場合があり、且つ、例えば、同一の属性名を有する全てのキー型参照を発生する。然しながら、このデザインは、例えば、ビジネスエンティティカテゴリキー型参照を分離させ、且つそれをTModelカテゴリT型参照と混乱させることを回避することをより困難且つ高価なものとさせる場合がある。それは、又、フィルタ内にオブジェクトクラス項目を包含させることを必要とする場合があり且つこのような項目は弱いものである(リポジトリ内において高度に反復的である)。
例えば、全ての異なる種類のキー型参照に異なるオブジェクトクラス及び異なる属性名を与えることは、特定の属性名に対するサーチが必然的にそのオブジェクトクラスを暗示することを意味している。それは、又、ディレクトリサーバーが所望とされる特定の種類のエントリに対してその中にエントリを有するに過ぎないインデックスを構成することを可能とすることを意味している。このようなインデックスはより小さく、従ってより高速である。
例えば、「euBusinessEntityName=Smith*」のようなサーチはeuBusinessEntityNameに対するインデックスを検査し、従ってeuTModelNameと呼ばれる属性においてSmithを包含するエントリと混乱させることは不可能である。
UDDIスタンダードの範囲外のツールに対する要請が存在する場合がある。このようなツールはUDDIスタンダードにおいて特定されているものを超えるアクセス手段を提供することを必要とする場合がある。このようなツールを可能とするために、本開示は単一のUDDI概念を表わすオブジェクトクラスの全てをバインドする抽象的なクラスを定義している。このことは、例えば、全ての名前又は全てのキー型参照を見ることが可能なサーチを定義することを可能とする。
例えば、euBusinessEntityName及びeuTModelNameを包含する名前型オブジェクトクラスの全てのスーパークラスである抽象的なクラスeuNameが存在している。
UDDIスタンダードは、例えば、大文字小文字を区別する態様及び大文字小文字を区別しない態様の両方で名前をサーチすることが可能であることを特定する。このことは、大文字小文字を区別せずにインデックス処理し、次いでエントリを検索し且つそれらを大文字小文字を区別してチェックすることによって取り扱うことが可能であるが、このようなアプローチは性能を犠牲にする。これらの場合においては、同一のデータを包含しているが別異にインデックスされているシャドウフィールドを定義することが望ましい。同様に、シャドウ属性を言語におけるバリエーション、例えば発音区別符に対して使用することが可能である。
例えば、euBusinessEntityNameオブジェクトクラスは各名前の2つのコピーを包含している。最初のバージョンは大文字小文字を区別せずにインデックスされ、一方第二のものは大文字小文字を区別してインデックスされる。このことは、サーチフィルタを構成することを可能とし、それは、どのような動作が要求されようとも最適に動作を行う。
このリポジトリにおける全ての属性(オブジェクトクラスを除く)は単一値型とすることが可能である。このことは、ディレクトリがより効率的なインデックスを構成し且つサーチにおいてより良い性能を提供することを可能とする。
このことは、又、サーチにおいて偽陽性の結果の可能性を取除く。例えば、「Fr」で始まり且つ「nk」で終了する名前を探すサーチについて検討する。このことは、「Frank」のような名前を有する(有効な)エントリを発生するものと考えるかもしれない。然しながら、名前が多値型属性とされている場合には、「Fred」及び「Tink」のような2つの名前を有する無効なエントリを得る場合がある。何故ならば、この1つのエントリが特定された両方の基準にマッチするからである。その各々がエントリの子オブジェクトである単一値型の名前を使用することにより、「Fred」及び「Tink」のような偶発的なマッチングが除去される。
オペレーショナル属性は、UDDIアプリケーションにより管理されるがユーザには見えない特別の属性である。
UDDIデータの格納において、使用中であるTModelを「リタイア(retire)」されたものから区別する方法を有することを可能なものとすべきである。TModelが削除されると、それが多くのエントリにより未だに使用される場合があり、従ってそれは真に削除することは不可能である。その代わりに、それは隠され、そのことは、find TModelコールの結果の一部としてリターンされることはないが、それは、尚且つ、get TModelDetailコールを介してクエリーさせることが可能であることを意味している。このことはeuHiddenと呼ばれる属性の使用により実現され、それは隠されるTModelへ付加される。euHidden属性を包含するエントリを除去するサーチステップをTModelをサーチするフィルタへ付加することが有益的であり且つ効率的である場合がある。
ディレクトリのインプリメンテーション即ち実現において、支配的に1つの値である属性を有することは一般的には非常に非効率的であると考えられている。例えば、エントリの99%に対しFALSEに設定されている隠れ属性を有することは、拙い性能を発生し、そのインデックスは殆ど使用不可能である。
より効果的なものであると考えられるものは、隠れ属性無しに大多数のエントリを格納し、且つ隠されるべきエントリに対してのみ属性を付加させることである。このことは、これら全ての「FALSE」値を保持するための格納空間を必要とすることがないという付加的な利点を有している。隠されないTModelの全てを見つけるためのフィルタは「(!(euTModel=*))」となり、それは存在テストの否定であり、特にエントリの小さい割合に関してのみ属性が存在する場合には存在テストは迅速である。
ディレクトリの文脈におけるインプリメンテーション及びUDDIスタンダードの問題を解決するための本開示の1実施例について説明する。X.500スキーマに対し多数の要素が存在している。これらの要素は属性定義、オブジェクトクラス定義、名前バインディング定義を包含している。属性定義は単一データ要素を特定し、それに一意的な識別子(OID)、名前、データタイプを与える。オブジェクトクラス定義は全体として取り扱われる一群の属性を特定する。それは一意的な識別子(OID)、名前、属性のリストを与え、該属性は必要とされるもの又はオプションとすることが可能である。名前バインディングは可能な階層の一部を特定する。名前バインディングは別のものの下に格納することが可能な1つのオブジェクトクラスを特定し、且つこの文脈において子オブジェクトに名前を付ける子の属性(又は複数の属性)を特定する。
付加的なデザイン条件を課す多数の発見識別子が存在している。1つの発見識別子は、大文字小文字を区別する態様及び大文字小文字を区別しない態様の両方において効率的にテキストデータをサーチする能力を与えるために大文字小文字区別性である。本開示の1実施例によれば、大文字小文字区別性は別異にインデックスされてオブジェクト内に付加的なフィールドを与えることにより解決することが可能である。
この実施例によれば、テキストデータはタイプcaseExactStringの属性において及びタイプcaseIgnoreStringの属性において二度格納される。従って、該発見識別子は該フィールドのうちのいずれがサーチされるかを決定し、最大の性能を発生する。
例えば、ビジネスエンティティが「McKenna’s Iron Foundry Services」のような名前を有している場合には、そのストリングは二度格納され、即ち大文字小文字を区別してインデックスされるフィールドにおいて一度と大文字小文字を区別せずにインデックスされるフィールドにおいて一度であり、格納されるデータは同じであるが、基礎となるディレクトリにより発生されるインデックスは異なる。別の問題は、サービスプロジェクションを効率的にインプリメント即ち実現することに関与する。本開示の1実施例によれば、このことは、X.500エイリアスファシリティを使用して解決することが可能である。サービスプロジェクションを取り扱うことが可能な多数の方法が存在している。本開示のこの実施例は、ディレクトリエイリアスによりそれらを取り扱う。このことは、それらをインプリメントするための特に効率的な方法である。それはベースサービスとのプロジェクションの一貫性を保証する。何故ならば、ベースサービスはエイリアスを介して直接的にアクセスされるからである。それは、又、ベースサービスが削除されるや否やそのプロジェクションが消滅することを保証し、従って一貫性を確保する。
例えば、Williams Accounting Servicesと呼ばれるビジネスエンティティがGeneral Ledger Cross−Checkと呼ばれるウエブサービスをパブリッシュし、且つ同じサービスをWilliams Auditing Servicesと呼ばれる第二のビジネスエンティティの下で提供することが所望される場合に、このことは、2番目のビジネスエンティティの下にエイリアスエントリを配置させることにより達成することが可能である。Williams Auditing Servicesにより提供されているサービスを列挙する照会者は、Williams Auditing Servicesにより直接的に提供されているサービスを見つけ出す場合と同じくGeneral Ledger Cross−Checkサービスを見つけ出す。
別の問題は効率的にキーを実現することに関与する。本開示の1実施例によれば、このことは、外部キー及び順番が重要でないキーに対してUUIDを使用して解決される。順番が重要である場合にはシーケンシャルな数を使用することが可能である。キーがストリングとして表わされるが、それらは真にテキストデータではない。それらは、大文字小文字の区別無しに又は識別記号無しで比較される。
外部的に見えるキーは1組の規則に従う。UDDI仕様のバージョンに準拠するリポジトリを実現する場合に、それらはISO−11578に準拠するUUIDを保持する。UDDI仕様のバージョン3に対するリポジトリを実現する場合には、それらはその仕様のそのバージョンに規定されている規則に従うキーストリングを保持する。
注意すべきことであるが、要素を一体的にリンクするために内部的に使用されるキーは別の組の規則に従う。順番が重要でないものはUUIDを使用する。順番が重要である場合には、シーケンシャルな番号を使用する。
例えば、Williams Auditing Servicesと呼ばれるビジネスエンティティに対するカテゴリバッグの要素を表わすキー型参照は、12345678−1234−1234−1234−1234567890ab(UDDI V2)のキーを有するTModelを参照する場合がある。カテゴリバッグ内のキー型参照の順番は重要ではないが、キー型参照はオブジェクトのネーミング属性として機能するキーを必要とする。従って、87654321−4321−4321−4321−ba0123456789のようなこのオブジェクトに対するUUIDキーを発生する場合があり、且つそれをこのオブジェクトに対するディレクトリにおけるネーミング属性として使用する場合がある。
別の問題は、X.500ディストリビューションが所望される場合に、データをドメイン内に編成する場合である。このことは、各リポジトリを異なるサーバーの上に配置することが可能であるように、ユーザの上にリポジトリレイヤーを作成することにより本開示の1実施例に従って解決される。
UDDIスタンダードは、名前空間をディストリビュート即ち配布させることを許容するものではない。このことは、複数のUDDIレジスターが、レプリケーションによって、又はディストリビュートされた名前空間を管理するバックエンドデータストアをトランスペアレントに有することによって、互いに共同することが可能であることを意味している。
ディストリビュートされた名前空間は、ネーミングプレフィックスを有する各リポジトリにより容易化させることが可能である。このプレフィックスはドメインを定義する1組のノードである。これらのノードは、各UDDIレジストリの上のリポジトリレイヤーと考えることが可能である。これらのノードはユーザレベルの上に配置される。
図11は「ドメイン(Domain)」110と呼ばれるノードの例を例示している。ドメイン110はディレクトリプレフィックスであり且つルートに至るまで1個又はそれ以上のノードを包含する場合がある。ドメイン110の下に、この例は、例えば、多数のユーザ112,113,114の配置を例示している。ドメイン110の下に配置させたユーザの数は、本システムの特定のコンフィギュレーション即ち形態及び/又は使用に従って変化する場合がある。本システムの特定のコンフィギュレーション及び/又は使用に依存して配置される多数のドメインが存在する場合もある。以下の例においては、それらはリポジトリオブジェクトと呼称され、それらが別個の物理的リポジトリを表わすものであることを暗示している。勿論、このことは、本システムのコンフィギュレーション及び/又は使用に依存して、必ずしもそうでない場合がある。
このリポジトリオブジェクトはネーミング属性を必要とするが、それが全てである。
Figure 2005539295
ディストリビューションは、大型のディレクトリデプロイメントにおいて重要な概念である。というのは、それは大きな帯域幅オーバーヘッド及びレプリケーションの同期問題無しで多数のノードによりデータを共有することを可能とするからである。
1つの実施例において、「eTrust」UDDIは、その基礎となるeTtrustディレクトリサーバーの能力を使用してディストリビューションをサポートし、且つこのことが働くためには、スキーマがそれに従って構成され、ツリー階層の上部に仮想「ドメイン」ノード用の余裕を設け且つ各ノードサブツリーの上部に一意的なノード識別子又は名前を設ける(以下のUDDIスキーマ記述を参照)。
更に、eTrustUDDIサーバーは、コンフィギュレーションを介して「ディストリビューションアウェア(distribution−aware)」とすることが可能である。2つの別個のディレクトリプレフィックスを特定することが可能であり、サーチ及び読取のために1つとエントリを付加するために別の1つである。分散型サーバーをデプロイするために、その基礎となるeTrustディレクトリサーバーエージェントがeTrustディレクトリ管理ガイドのようにディストリビューションのためにコンフィギュア即ち形態が決められる。各別個のeTrustUDDIノードは一意的なノード名でコンフィギュアされる。各ノードに対するサーチ/読取プレフィックスは「World」又は「Corporation」ノード名に設定される。各ノードに対する付加プレフィックスはそのノードの一意的な名前に設定される。
このように、各ノードはそれ自身のディレクトリリポジトリに対してエントリを付加するが、X.500ディレクトリのディストリビューション特徴を介して全てのノードにわたりエントリをサーチする。
リポジトリオブジェクトの1つの例は、
euRepositoryName=Melbourne
である場合がある。
別の問題は、ユーザに関して保持されるデータを編成することに関与する。このことは、データを保持するためのユーザオブジェクトを作成することにより解決することが可能である。
UDDI仕様において特定されているユーザオブジェクトは存在しないが、このようなオブジェクトは、本開示の1実施例に従って利用することが可能である。例えば、ユーザオブジェクトは、とりわけ、ユーザクリデンシャルに対する格納点及びパブリッシング用のアンカー点とすることが可能である。
図10は「ユーザ(User)」101と呼ばれるこのような配置の1つの例を例示している。ユーザ101の下に、この例は、ビジネスエンティティオブジェクト102、ビジネスサービスオブジェクト103、バインディングテンプレートオブジェクト104のようなその他のオブジェクトの配置を例示している。ユーザ101の下に配置されるビジネスエンティティオブジェクトの数は、本システムの特定のコンフィギュレーション及び/又は使用に従って異なる場合がある。本システムの特定のコンフィギュレーション及び/又は使用に依存して配置される多数のユーザが存在する場合もある。
ユーザオブジェクトにおいて保持されるデータ要素は、ユーザキー(このユーザアカウントに対して一意的な名前を与えるために使用される)、ユーザ名、及びクリデンシャル(パスワードのように簡単な場合もあり、又はPKI証明書のように複雑な場合もある)を包含している。それは、又、承認された名前(ユーザアカウントを動作すべく承認された人又は役割を識別する)を包含する場合がある。それは、又、ユーザにより定義されたTModelを失うことなしに、ユーザアカウントの削除を取り扱う場合に使用される隠れフラッグを包含する場合がある。
Figure 2005539295
ユーザカウントオブジェクトの1つの例は、
Figure 2005539295
である場合がある(この例においては、簡単なユーザID及びパスワードシステムが実現されているものと仮定している)。
別の問題は、ビジネスエンティティ(UDDIスタンダードにおいて記述されるオブジェクトクラス)に関するデータを効率的な態様で表現することに関与する。このことは、一意的なフィールドをそのオブジェクトの属性として表わし、且つ子として要素を繰り返すことにより本開示の1実施例に従って解決される。
このビジネスエンティティオブジェクトは、UDDIスタンダードの基本的なコンポーネントである。そのコンテント即ち内容は、該スタンダードにより定義されるが、その要素の多くは反復する複合オブジェクトであり、それらはX.500スキーマによりサポートされるものではない。このような要素は階層的配置により表わされる。
ビジネスエンティティにおける唯一の必要とされる要素はビジネスキーである。オプションの要素は、承認された名前、オペレーター、ユーザキーを包含する(この最後のものは通常のユーザによりパブリッシュされるビジネスエンティティ内に存在する)。
Figure 2005539295
ビジネスエンティティの可能な子オブジェクトは、名前(名前ストリング及び言語コードを包含するオブジェクトで順番に対してキーが付けられている)、記述(記述ストリング及び言語コードを包含するオブジェクトで、順番に対してキーが付けられている)、コンタクト(複雑なオブジェクト、後に説明する)、ディスカバリーURL(URLストリングとユーザタイプとを包含するオブジェクトでキーが付けられている)、オブジェクトクラスの選択を介してカテゴリ又は識別子情報としてマークが付けられているキー型参照、及びビジネスサービス(以下に説明する)である。
ビジネスエンティティオブジェクトの1つの例は、
Figure 2005539295
である場合がある。
注意すべきであるが、ビジネスエンティティオブジェクトの見かけのコンテントの殆どは、実際には、そのビジネスエンティティオブジェクトの直接的な子であるオブジェクト内に格納されている。
図15はビジネスエンティティにおける比較的複雑なオブジェクトの表現に対する本開示の1実施例に基づくサブストラクチャ内への階層の導入の1例を例示している。図15において、多値型要素、
子152の場合
言語 en
名前 CA
子153の場合
言語 IN
名前 CATS
は、ビジネスエンティティ151の子152,153として表現されている。子は全くないか又はより多くある場合がある。
解決すべき別の問題は、ビジネスサービス(UDDIスタンダードにおいて記述されるオブジェクトクラス)に関するデータを効率的な態様で表わすことである。
このことは、そのオブジェクトの属性として一意的なフィールドを表わし且つ子として要素を繰り返すことにより本開示の1実施例に基づいて解決することが可能である。
ビジネスサービスは少なくとも2つの態様で実現することが可能である。最初のものは、ビジネスサービスが、その各々がバインディングテンプレートにより表わされる1つ又はそれ以上のアクセスルートを介して使用可能なビジネスエンティティにより提供される単一の概念的サービスを表わすものである。第二のものは、ビジネスサービスが、サービスに対するグルーピングメカニズムにあり、ここのサービスへの分解がバインディングテンプレートレベルにおいて行われるようなものである。いずれの場合においても、データフィールドはUDDI仕様において定義される。
ビジネスサービスの要素は、ビジネス及びサービスキーである。ビジネスキーはそのサービスを所有するビジネスエンティティを特定する。これは、必ずしも、その下側に発見されるビジネスエンティティではない。単一のサービスは、サービスプロジェクションにより、幾つかのビジネスエンティティの下側に見つけることが可能である。サービスキーは、UDDIリポジトリを介してのサービスの一意的な識別子である。両方のキーはストリングとして表わされる。
Figure 2005539295
ビジネスサービスオブジェクトのオプションのコンテントは存在しない。その他の全てのコンテントは、潜在的に反復的な要素から構成され、従って子オブジェクトとして表わされる。ビジネスサービスの潜在的な子オブジェクトは、バインデンィングテンプレート(Binding Template)(以下参照)、名前(Name)(名前ストリング及び順番付けのためにキーが付けられている言語コードを包含しているオブジェクト)、記述(Description)(記述ストリング及び順番付けのためにキーが付けられている言語コードを包含しているオブジェクト)、及びカテゴリ情報としてマーク付けされているキー型参照である。
例えば、ビジネスサービスオブジェクトは以下のものである場合がある。
Figure 2005539295
注意すべきことであるが、ビジネスサービスオブジェクトの見かけの内容の殆どは、実際には、ビジネスサービスオブジェクトの直接的な子であるオブジェクト内に格納されている。
図15はビジネスエンティティにおける比較的複雑なオブジェクトの表現に対しての本開示の1実施例に基づいて階層をサブストラクチャ内に導入する1例を例示しているが、ビジネスサービスにおける比較的複雑なオブジェクトの表現に対しての本開示の1実施例に基づいて階層をサブストラクチャ内に導入する一例も同じように例示するものである。図15のビジネスエンティティ151はビジネスサービスに対しても等しく適用可能であり、ビジネスサービスの多値型要素はビジネスサービス151の子152,153として表わされている。全く子が存在しないか又はより大きくの子が存在する場合がある。
更に別の問題は、バインディングテンプレート(UDDIスタンダードで記述されたオブジェクトクラス)に関するデータを効率的な態様で表わすことに関与する。このことは、一意的なフィールドをそのオブジェクトの属性として表わし、且つ要素を子として反復することにより本開示の1実施例に基づいて解決されている。
バインディングテンプレートは、特定のサービスへアクセスすることが可能な態様を表わしている。バインディングテンプレートの唯一の必要とされる要素は、そのキー及びそれが適用されるサービスのキーである。オプションとしての要素は、アクセスポイント又はホスト用リダイレクター(オブジェクトは正にこれらのうちの一つを有するべきである)を包含する場合がある。アクセスポイントが存在する場合には、アクセスポイントタイプも存在すべきである。
Figure 2005539295
バインディングテンプレートの可能な子オブジェクトは、TModelインスタンス情報(TModel Instance Info)(以下参照)、及び記述(Description)(記述ストリング及び順番付けのためにキーが付けられている言語コードを包含しているオブジェクト)である。
バインディングテンプレートの一つの例は以下のものである場合がある。
Figure 2005539295
再度、図15は、ビジネスエンティティにおける比較的複雑なオブジェクトの表現に対して本開示の1実施例に基づいて階層のサブストラクチャ内への導入の1例を例示するものであるが、それは、バインディングテンプレートにおける比較的複雑なオブジェクトの表現に対して本開示の1実施例に基づいて階層をサブストラクチャ内へ導入する1例についても等しく例示するものである。図15のビジネスエンティティ151は、等しく、バインディングテンプレートに適用可能であり、バインディングテンプレートの多値型要素はバインディングテンプレート151の子152,153として表わされる。子は全く存在しないか又はそれ以上存在する場合がある。
別の問題は、TModel(UDDIスタンダードで記述されたオブジェクトクラス)に関するデータを効率的な態様で表わすことに関与している。本開示の1実施例によれば、このことは、一意的なフィールドをそのオブジェクトの属性として表現し、且つ要素を子として表わすことにより解決することが可能である。
TModelは一つのアイディアを表わしている。そのアイディアは、例えば、妥当性検査される場合がある値の仕様を必要とするカテゴリ化システムである場合がある。又は、
それは、データ通信プロトコルの仕様である場合がある。TModelは、柔軟性があり且つ強力な概念であり、且つ実際にクエリーすることが可能な態様で複雑なデータを表わすためのUDDIの能力の中心的なものである。
TModelオブジェクトの唯一の必要とされる要素はTModelキー及び名前である。これらはストリングとして表現される。
TModelオブジェクトの最適な要素は承認された名前、オーバービューURL(オーバービューDocオブジェクトの一部)、ユーザキー、及び隠れフラッグである。
隠れフラッグは、TModelの取り扱いの要素である。隠れフラッグは、どのようにしてdeleteTModelコールを取り扱うかということである。TModelが「削除」されると、隠れフラッグがそのオブジェクトへ付加される。このことは、オブジェクトはfindTModelコールへリターンされないが、getTModelコールへアクセス可能であることを意味している。
Figure 2005539295
可能な子オブジェクトは、記述(Description)(記述ストリング及び順番付けに対してキーが付けられている言語コードを包含するオブジェクト)、カテゴリ又は識別子情報としてマーク付けされているキー型参照、及びオーバービューDoc記述(記述ストリング及び順番付けのためにキーが付けられている言語コードを包含するオブジェクト)である。
TModelの一つの例は以下のようなものである。
Figure 2005539295
再度、図15は、ビジネスエンティティにおける比較的複雑なオブジェクトの表現に対して本開示の1実施例に基づく階層のサブストラクチャへの導入の1例を例示しているが、それは、等しく、TModelにおける比較的複雑なオブジェクトの表現に対して本願の1実施例に基づく階層のサブストラクチャ内への導入の1例を例示するものである。図15のビジネスエンティティ151は、等しく、TModelに対して適用可能であり、TModelの多値型要素はTModel151の子152,153として表現されている。子は全く存在しないか又はより多くのものが存在する場合がある。
別の問題は、パブリッシャアサーション(UDDIスタンダードにおいて記述されたオブジェクトクラス)に関するデータを効率的な態様で表わすことに関与している。
本開示の1実施例によれば、このことは、一意的なフィールドをオブジェクトの属性として表現し、且つ所要の関係のキー型参照に対して補助的クラスを使用することにより解決することが可能である。
パブリッシャアサーションは、2つのビジネスエンティティの間の関係を表わすオブジェクトである。
パブリッシャアサーションの所要の要素は、そのキー、ビジネスへ及びビジネスから及びユーザキー、ステータス、リレーションシップ即ち関係である。このリレーションシップは、キー型参照として特定され、且つパブリッシャアサーションエントリに対する補助的クラスとして格納される。そのステータスはストリングとして格納されるが、その可能な値はコンプレションステータス(Completion Status)オブジェクトから引き出される。全てのキーはストリングとして表わされる。
Figure 2005539295
パブリッシャアサーションにはオプションのコンテント即ち内容は存在しておらず、且つ子オブジェクトは存在していない。
パブリッシャアサーションの一つの例は以下のような場合がある。
Figure 2005539295
注意すべきことであるが、このエントリと関連する補助的クラスが存在しており、それはオブジェクトクラスeuPublisherAssertionRelationshipKeyedReferenceであり、且つ名前が付けられた2つのビジネスエンティティの間でアサートされている関係を特定する。一つの例は以下のような場合がある。
Figure 2005539295
別の問題は、キー型参照(UDDIスタンダードにおいて記述されるオブジェクトクラス)に関するデータを効率的な態様で表わすことに関与する。このことは、キー型参照の特定の集まり、例えば、ビジネスエンティティに関するカテゴリバッグ、を効率的にサーチすることが可能であることの必要性によりより複雑なものとされる。
このことは、キー型参照を表わすために抽象的ベースクラスを作成し、且つ所望の集まりの各々に対してそれをサブクラス化することにより本開示の1実施例に基づいて解決される。該集まりは、ディレクトリにおける表現を有するものではない。例えば、それらは、同一のサブクラスのキー型参照の1つのグループとして存在するものに他ならず、同一のオブジェクトの子として存在している。例えば、ビジネスエンティティのカテゴリバッグは、特定されたビジネスエンティティの子であるクラスeuBusinessEntityCategoryKeyedReferenceのオブジェクトである。注意すべきことであるが、ビジネスエンティティオブジェクトは、子として幾つかのキー型参照オブジェクトを有することが可能であり、それらのオブジェクトクラスのみが、どれがカテゴリバッグの一部であり且つどれが識別子バッグの一部であるかを明らかなものとさせる。
キー型参照は、UDDIデータモデル内において幾つかの場所において使用される。それらは、TModelキー、キー名、キー値を包含している。キー型参照の2つの使用はカテゴリバッグ及び識別子バッグである。これらのバッグは、キー型参照の集まりであり、サーチのために重要である。これらのバッグは差別されていないキー型参照を包含するオブジェクトにより表わされる場合には、効率的なサーチを実現することは潜在的に著しく困難である。このことは、キー型参照の幾つかのサブクラスが実現されているかの理由である。ビジネスエンティティに関するカテゴリバッグは、クラスeuBusinessEntityCategoryKeyedReferenceの1つ又はそれ以上の子オブジェクトにより表わされる。このことは、それらのカテゴリバッグ内の特定したキー型参照でビジネスエンティティに対する効率的なサーチを実現することを容易なものとさせる。
以下の例は、アブストラクト(abstract)即ち抽象的クラス、及び上述したような、派生したクラスのうちの1つeuBusinessEntityCategoryKeyedReferenceを示している。注意すべきことであるが、キー型参照に対するキーはアブストラクトクラスから継承されており、一方TModelキー、キー名、キー値は全て派生されたクラスにおいて特定され、従ってそれらはサーチのために独特の名前を有する場合がある。
Figure 2005539295
コンタクトは多様な情報を表わす複雑なオブジェクトである。ビジネスエンティティと殆ど同じように、コンタクトは多様な複合反復要素を保持し、子オブジェクトクラスの使用を必要とする。
コンタクトオブジェクトの直接的な一部である唯一のデータ要素はキー、そのコンタクトが表わす人又は役割の名前である。オプションの使用タイプが存在している。
その他の可能な要素の全てはコンタクトオブジェクトの子である。これらは、アドレス(Address)(各々が、キー、使用タイプ、ソートコード、TModelキーを有する、アドレスラインオブジェクトの順番付けリストの親)、電話(Phone)(電話番号+使用タイプ)、電子メールe−mail(電子メールアドレス+使用タイプ)、記述(Description)(記述ストリング+言語コード)である。
再度、図15はビジネスエンティティにおける比較的複雑なオブジェクトの表現に対し本開示の一実施例に基づく階層のサブストラクチャ内への導入の1例を例示しているが、それは、同様に、コンタクトオブジェクトにおける比較的複雑なオブジェクトの表現に対し本開示の1実施例に基づいて階層をサブストラクチャ内へ導入する1つの例を例示するものである。図15のビジネスエンティティ151はコンタクトオブジェクトに対して適用可能であり、コンタクトオブジェクトの多値型要素はコンタクトオブジェクト151の子152,153として表わされる。子は全く存在しないか又はそれ以上存在する場合がある。
別の問題は、名前及び記述(UDDIスタンダードにおいて特定されている)を効率的な態様で表わすこと、及び特定のタイプの名前又は記述に対し迅速なサーチを可能とすることに関与する。
本開示の1実施例によれば、本システムは名前を表わすためにアブストラクトベースクラスを作成し、且つ記述を表わすために別のものを作成し、且つそれらを所望のタイプの各々に対してサブクラス化する。特定のタイプの名前(例えば、ビジネスエンティティ名)に対して探す場合にサブクラスの属性に対してサーチし、且ついずれかの名前を探す場合にアブストラクトクラスに対してサーチする。主要なオブジェクト(ビジネスエンティティ、ビジネスサービス等)の幾つかは、複数個の名前及び記述のオプションを有している。その理由は多種多様である。一つのビジネスが複数の名前で知られていることは珍しいことではなく、多分、1つが正式なもので且つ1つ又はそれ以上が日常会話的なものである。更に、1つのビジネスが異なる言語で異なる名前を使用する場合がある。例えば、一つの名前がまずく翻訳されることは珍しいことではない。例えば、コンピュータ会社Fujitsuは何年もの間英語を話す国において名前Facomを使用した。この問題は、複数個のキャラクタセットを有する言語において悪化される場合がある。日本の会社は、その名前の1つのバージョンをカタカナで有しており、且つ別のバージョンをひらがなで有している場合がある。
これらの理由及びそれ以上の理由のために、名前及び記述オブジェクトの両方は、単一オブジェクトに対して複数回発生する場合がある。各インスタンスは言語コードでタグが付けられる。UDDIバージョン3において、同一の言語コードで複数のインスタンスが存在する場合がある(このことはバージョン2においては許可されていない)。
発見修飾詞は更なる混乱を付加する。前述したように、UDDIサーチは、大文字小文字を区別するサーチと大文字小文字を区別しないサーチの両方をサポートすることが必要とされ、且つこのことは、X.500ディレクトリ内にデータを二度格納することにより最も良く取り扱われる。
以下の例は、ビジネスエンティティの名前の集まりに対して使用されるアブストラクトクラス及び派生されるクラスのうちの1つeuBusinessEntityNameを示している。
Figure 2005539295
注意すべきことであるが、euBusinessEntityNameValueは、名前の大文字小文字区別性バージョンを包含する属性であり、一方euBusinessEntityNameValueICは、「大文字小文字無視(ignore care)」としてマーク付けされたバージョンであり、従って、大文字小文字非区別性である。アブストラクトクラスから継承されたeuNameKeyフィールドは、名前の順番付けを制御するために使用され、且つ一意的なネーミング属性を与える。
名前オブジェクトの1例は以下のような場合がある。
Figure 2005539295
再度、図15は、ビジネスエンティティにおける比較的複雑なオブジェクトの表現に対する本開示の1実施例に基づく階層のサブストラクチャ内への導入の1例を例示するものであるが、それは、同様に、アブストラクトクラスにおける比較的複雑なオブジェクトの表現に対する本開示の1実施例に基づく階層のサブストラクチャ内への導入の1例の例示である。図15のビジネスエンティティ151は、同様に、アブストラクトに適用可能であり、バインディングテンプレートの多値型要素はアブストラクトクラス151の子152,153として表わされる。子は全く存在しないか又はそれ以上存在する場合がある。
別の問題は、ユーザが、彼/彼女の制御下にあるビジネスエンティティのみを変更することが許可されるという条件の効率的な実現例を作成することに関するものである。本開示の1実施例によれば、このことは、ビジネスエンティティをユーザオブジェクトのユーザの子により制御されるようにすることにより達成することが可能である。このことは、セキュリティをより容易に実現させる。
パブリッシングユーザのみが彼/彼女自身が所有する情報を変更することが許容されることを確保することが重要な場合がある。種々のデザインでこのことを行うことが可能である。然しながら、最適なデザインは、ユーザが項目をパブリッシュすることが承認されているか否かをすぐ様明らかにし、与えられたユーザにより制御されるデータの全てがそのユーザのサブツリー内に位置される。
このデザイン決定は、全体としてビジネスエンティティへのアクセスの容易性に影響を与えるものではない。何故ならば、ビジネスエンティティ内への全ての問い合わせは、一般性又は性能を失うことなしに、階層内のユーザレベルの上から行うことが可能だからである。
別の問題は、パブリッシャアサーションの効率的な実現例を作成することに関するものであり、特にfindRelatedBusiness方法のインプリメンテーションに関するものである。本開示の1実施例によれば、このことは、パブリッシャアサーションをビジネスオブジェクトのビジネス子に関連させることにより達成することが可能である。このことはその基準をサーチする必要性を取除く。
パブリッシャアサーションの1つの主要な使用は、find RelatedBusinisses問い合わせ内に存在している。この問い合わせは、特定のビジネスエンティティを特定し、且つ完成したパブリッシャアサーションによりそのエンティティに関連する全てのビジネスエンティティに関する情報を要求する。この問い合わせは、そのパブリッシャアサーションをそれが関連するビジネスエンティティの下に配置させる階層により簡単化され且つ加速される。これは一貫性を増加させるという付加した利点を有している。ビジネスエンティティが削除されると、全ての関連するパブリッシャアサーション(今や無関係)がそれと共に削除される。
別の問題は、ユーザが彼/彼女の制御下にあるTModelのみを変更することが許容されるという条件の効率的なインプリメンテーション即ち実現例を作成することに関するものである。本開示の1実施例によれば、本システムは、ユーザにより定義されるTModelをユーザオブジェクトの子とさせる。このことは、セキュリティを実現することを容易とさせる。
ビジネスエンティティをユーザエントリの下側に配置させる場合に支配したものと同様の理由により、ユーザが定義したTModelをそれらを定義するユーザのユーザエントリの下側に配置させることが賢明である。TModelを探し出すことに関する悪影響は存在しない。何故ならば、それらは単一のインデックスされたアクセスを介して探し出すことが可能であり、全てのTModelが一意的に名前が付けられているからである。
別の問題は、リレーションシップ即ち関係によりパブリッシャアサーションの効率的なサーチを実現することに関するものである。本開示の1実施例によれば、このことは、該リレーションシップをパブリッシャアサーションエントリの補助的クラスにキー型参照とさせることにより達成することが可能である。キー型参照が子(一つのインプリメンテーション)である場合には、それは等しい効率でサーチすることは不可能であり、該リレーションシップに対するサーチはステータスに関する(重要な)フィルタ(完成したアサーションのみを考慮)等のパブリッシャアサーションのコンテントに関するサーチと結合することは不可能である。
X.500スキーマシステムは、データ要素として他のオブジェクトクラスを包含するオブジェクトクラスの構成をサポートするものではない。例えば、キー型参照はパブリッシャアサーションのデータ要素とすることは不可能である。キー型参照をパブリッシャアサーションの子とすることは可能であるが、このことはキー型参照のコンテントを参照する効率的なサーチの構成を容易とするものではない。
キー型参照をパブリッシャアサーションエントリに対する補助的クラスとすることはこの問題に対する効率的な解決である。従って、あたかもそれがアサーションの一部であるからのようにキー型参照のコンテントに関してサーチを行うことが可能である。
上述したようにパブリッシャアサーションの1例は以下のような場合がある。
Figure 2005539295
補助的オブジェクトクラスはeuPublisherAssertionKeyReferenceであり、且つ上にリストした最後の3つの属性はそのクラスのデータ要素である。
本開示の1実施例によれば、コンピュータアソシエイツによるeTrust(商標)ディレクトリのようなディレクトリは、理想的なエンタプライズUDDIレジストリプラットフォームを実現するために使用することが可能である。eTrustディレクトリはLDAPv3に完全に準拠したX.500電子的ディレクトリであり、それはUDDIウエブサービスインプリメンテーションを支持するために使用することが可能である。この「eTrust」ディレクトリは、大型のビジネスで重要なディレクトリサービスアプリケーションにおいて良く立証されている高度に成熟したディレクトリソリューションを利用することを可能とする。
その上にUDDIレジストリを構築するプラットフォームとして極めて魅力的なものとさせる「eTrust」ディレクトリの多数の独特の特徴が存在している。これらのうちの幾つかは、アクセス制御ポリシー、ロール(roles)、セキュアプロキシー(secure proxy)、相互認証、分散型認証、分散型SSL証明サブジェクト検証(subject verification)及びネットワークアドレス妥当性検査を包含するセキュリティ特徴;並列分散型サーチ、負荷シェアリング、クエリーストリーミング及び最短経路ルーチングを包含するディストリビューション及びルーチング能力;リプレイを基礎にしたメカニズム(マルチ書込として知られている)の速度及び効率を状態を基礎としたリカバリー及び調停技術と結合するマルチマスターレプリケーションスキーム;データベースのホットスワップ、ネットワークフェイルオーバー及びディレクトリシステムエージョント(DSA)フェイルオーバーを包含するアベイラビリティ特徴;高速であると考えられるキャッシングデザイン;及び動的コンフィギュレーション(データタイプ、スキーマルール、セキュリティ、知識等の)、非制限型データ寸法、一般情報完全性規則、広範な管理制御及び対話型コマンドコンソールを包含するデプロイメント特徴、を包含している。
eTrustディレクトリは証明されたX.500ディレクトリソリューションを提供する。この証明された基礎の上に、完全にスタンダード準拠のUDDIレジストリを可能とさせるためにUDDI意味論的ブリッジを実現することが可能である。基礎となるディレクトリソリューションの能力のために、本明細書に開示した実施例は、既存のUDDIスタンダードに対する変化又は拡張を必要とすることなしに、柔軟性のあるセキュリティ、ディストリビューション、管理性を供給することが可能である。
本実施例の一つの問題は、ディレクトリの本質的に異なるセクション内に格納されているエンティティ間のリレーションシップ即ち関係をどのようにしてマップするかを取り扱うことである。
UDDIデータ構造は主に階層的であるが、異なるオブジェクト間の相互関係とに問題がある場合がある。
基本的に2つのカテゴリの関係、即ち代替名及び相互関係が存在している。本開示の1実施例によれば、この問題は、代替名に対処するためにエイリアスの概念を使用することによって解決される。基本的には、このことは、異質の(foreign)エンティティを主要のエンティティの仮想的な子として「取り付ける」効果を有している。
本実施例は、相互関係の問題に対処するために一意的なキーを使用する。基本的に、このことは、階層的ディレクトリシステム内のディスジョイント(disjoint)サブツリー間に存在するデータエンティティ間の関係をモデルするためにRDDMS技術におけるプライマリー/フォーリン(Primary/Foreign)キーシステムのような「リレーションシップポインター(relationship pointer)」を形成する効果を有している。
本開示の1実施例に基づくエイリアスの使用について説明する。第一のシナリオは、UDDIビジネスサービスプロジェクションのインプリメンテーションにより最も明確に示される。ビジネスサービスプロジェクションは、実効的に、ビジネスサービスに対する代替名である。ビジネスサービスプロジェクションはビジネスAに属するように見えるビジネスサービスであるが、それは、実際には、ビジネスBにより所有され且つ定義されるものである。
図5を参照すると、ビジネスサービス51、即ちビジネスAにより所有されているサービスもビジネスBに属するように見える。ビジネスAによってビジネスサービス51に対して為される変化はビジネスBの下に表われる投影されたサービスにおいて反映される。同様に、ビジネスサービス51がレジストリから削除されると、それは、最早、ビジネスA又はビジネスBのいずれの下にも表われることはない。更に、ビジネスエンティティBはビジネスサービス51を編集又は変化させるものではない。編集及びその他の全てのパブリッシング目的のために、ビジネスAのみがビジネスサービス51へのアクセスを有している。
ディレクトリエイリアスシステムはこの効果を達成するために使用することが可能である。ビジネスサービス51のエイリアスがビジネスエンティティBへ付加される。このエイリアスはディレクトリサーバー用の特別のマーカーであり、それは、実効的に、誰かがこのエイリアスを見る場合に、彼らにこの他のエントリをここに示す、ということを言うものである。
それは、オリジナルのサービスが編集する場合に、その変化がプロジェクションにおいても見えるものであることを意味する。ディレクトリシステムがエイリアスのインテグリティをサポートする場合であって、それはeTrustディレクトリの場合に言えることであるが、そのサービスが削除されると、そのプロジェクションも自動的に除去される。
更に、ディレクトリサーバーは、サーチされる場合にその投影されたビジネスサービスを二度、即ち各親の下で一度づつ、示すための構成とすることが可能である。このことは、ビジネスサービス親を解決することが必要なサーチを行う場合に有用である場合がある。
幾つかの状態は、ディレクトリ階層のディスジョイント部分におけるオブジェクトがリレーションシップを維持することを必要とする。
このことの1つの例はバインディングテンプレートとTModelとの間である。TModelは種々の目的のためにUDDIを介して使用される。それらはカテゴリ化キー、サーチ識別子、(UDDI)リレーションシップ記述、及び、このインスタンスにおいては、技術的仕様「フィンガープリント」である。バインディングテンプレートに「取り付け」られているTModelは、それに対してバインディングテンプレート(図8参照)が適合する技術的仕様を記述する。例えば、パブリッシャは、彼等のバインディングテンプレートがSOAP1.1スタンダードに準拠することを主張するTModelを取り付ける場合がある。
レジストリは、典型的に、有限組のTModelを包含しており、その多くは数百又は数千のバインディングテンプレートエントリにより参照される。幾つかの場合において、そのレジストリはバインディングテンプレートの詳細と共に「取付け」られているTModelの詳細にリターンする。
本開示の1実施例によれば、リレーショナルデータベースシステムにおいて使用されているようなプライマリー/フォーリンキーシステムを適宜修正し且つ適用することが可能である。レジストリ内に格納されている全てのTModelはそれ自身の一意的な(プライマリー)キーを有している。バインディングテンプレートは、所要のTModelの一意的なキーとマッチするローカルのフォーリン)を付加することによりTModelを参照する。図7はこのことの1つの例を例示している。次いで、サーバーは、TModelデータがバインディングテンプレートと共にリターンさせることが必要であるかの質問においてTModelをルックアップすることが可能である。
図6はバインディングテンプレートとTModelとの間のリレーションシップ即ち関係を示している。
図7はどのようにしてTModelキーが2つのエンティティの間のリレーションシップを作成するかを示している。
パブリッシャアサーションはUDDIリポジトリの重要な要素である。上述したように、それはユーザに、どのビジネスエンティティが興味のあるビジネスエンティティへ関連しているか、且つそれらがどのようにして関連しているかを発見するための能力を提供する。
パブリッシャアサーションは、関与する両方のビジネスエンティティの所有者がそのリレーションシップをアサートした場合にアサートされた関係のみが見えるようになることにより乱用に対して保護すべく設計されていた。この保護はコストを伴うものであり、即ちそれはインプリメンテーションを複雑化し、且つ拙い性能を回避するために注意深い設計を必要とする。
1つの問題はインテグリティである。パブリッシャアサーションは、その他のどのUDDI構造物(construct)よりも一層複雑なライフサイクルを有している。それは、ビジネスエンティティの所有者がそのビジネス及び別のビジネスエンティティとのその関係に関してアサーションを行う場合に発生する。他のビジネスエンティティの所有者はステータスレポートを要求し且つ彼等のビジネスについてどのようなアサーションが為されたかを発見することが可能であり、又はかれらは帯域外で通知される場合がある。いずれの場合にも、他方のビジネスエンティティの所有者は、2つのビジネスエンティティの間のリレーションシップに関しマッチするアサーションを行うべく選択することが可能である。その時に、アサーションは完了し且つfindRelatedBusinessesをコールするユーザに対してビジブルである。1つ又は両方のアサーションを修正するか又は削除することが可能であり、且つアサーションは再度不完全となり、且つ最早ビジブルではない。更に、いずれかのビジネスエンティティの削除はアサーションをすぐさま除去すべきである。
パブリッシャアサーションオブジェクトは、アサーションのインテグリティを維持するような態様で管理することが可能である。
ビジネスエンティティの所有者がその所有者により制御されるビジネスエンティティに関してアサーションを行う(及び除去する)ことが可能であることが望ましい。
本開示のこの実施例は、X.500ディレクトリに対して意図されていることであるが、UDDIリポジトリが「リードモストリィ(read−mostly)」ストアであるという仮定に基礎を置いている。この目的のために、デザインは、書込に関してより重い負担を課すことの犠牲においても、より良い読取性能に対して最適化されている。
パブリッシャアサーションと呼ばれるオブジェクトクラスは、サーチ性能を最適化することが望ましいために、UDDIスタンダードにより必要とされるものを超えてデータを保持するべくデザインされている。そのデザインは、パブリッシャアサーションステータスを定義するオペレーショナル属性を導入する。アサーションのステータスは、ディレクトリへの書込時に決定され、且つそのようにして、サーチが実施される度に決定されることは必要ではない。
本実施例は、又、ユーザキーの形態におけるポインターを使用する。パブリッシャアサーションがディレクトリへ書き込まれると、ビジネス「へ」及び「から」に対するユーザキーが決定され且つオブジェクト内に書き込まれる。このことはgetAssertionStatusReportクエリーを簡単化させる。何故ならば、このようなレポートを発生するのに必要なことは、そのレポートを発生する人のユーザキーを包含するパブリッシャアサーションに対してサーチすることに過ぎないからである。
対照的に、そのユーザの下にある全てのビジネスキーをクエリーし、次いでこれらのビジネスキーを包含するパブリッシャアサーションを探すことが必要であった場合には、レポートを発生するのにかなりの努力が必要となる。
パブリッシャアサーションの1つの一般的な使用は、与えられたビジネスに「関連する」ビジネスの発見である。そのクエリーに対して良好な性能を与えるために、ビジネスに関連するパブリッシャアサーションはそのビジネスの子ノードとして配置される。
更に、各アサーションのステータスはオペレーショナル属性としてそのアサーション内に記録される。このことは、興味のある下側に配置させた完了のステータスを有するパブリッシャアサーションをクエリーすることを可能とする。このことは、findRelatedBusinessesをサーチすることを簡単化する。何故ならば、そのサーチは完全であるアサーションのみをリコールするからである。
セキュリティを簡単化するために、ユーザ及びそれらのパブリッシャアサーションにより制御される全てのビジネスはそのユーザのアカウントエントリの下の子ノードとする場合がある。このインプリメンテーション即ち実現は、そのユーザのアカウントエントリの下にあるサブツリーに対してユーザアクセスを可能とするのみによりアクセス制御を実施する。
注意すべきことであるが、そのステータスを表現するオペレーショナル属性は、UDDIインプリメンテーションにより管理される。ユーザが別のアサートされたビジネスにより既にアサートされているアサーションをパブリッシュする場合には、UDDIインプリメンテーションは他のビジネスのユーザにより制御される別のサブツリー内にある他のアサーションのステータスをアップデートする。アクセス制御がこのことを可能とする。
関与する2つのビジネスエンティティの各々の下に1つづつ2つのパブリッシャアサーションオブジェクトを格納することの代替的1実施例として、単一のパブリッシャアサーションオブジェクトがそれ自身のサブツリー内に設けられる。例えば、パブリッシャアサーションサブツリーはリポジトリオブジェクトの下に設けることが可能である。アサーションが初期的にこの場合に格納される場合には、それは不完全なステータスが与えられる(例えば、どちら側がアサートするかに依存して、tokeyincomplete又はfromkeyincomplete)。パブリッシャアサーションが相補的なアサーションによりアサートされると、そのステータスは完全へ変化される。パブリッシャアサーションが二者のうちの一方に削除されると、そのステータスは不完全へ戻される。パブリッシャアサーションが両者により削除されると、パブリッシャアサーションオブジェクトが削除される。効果的に、このことはアサーションの単に1つのコピーとなり、メインテナンス作業の殆どはそのアサーションのステータスを保持する単一の属性の修正を行うことのみからなる。
図12は本開示の1実施例に基づく階層を概略的に例示している。この概略図は、パブリッシャアサーションオブジェクトがビジネスエンティティ及び/又はリポジトリオブジェクトの下に配置される場合の両方の代替例を例示している。
図8はパブリッシャアサーションを付加することを要求する方法を例示している。ステップS80において、その要求が有効であるか否かを判別する。有効でない場合には(No、ステップS80)、その要求は失敗する(ステップS92)。その要求が有効である場合には(Yes、ステップS80)、その要求がビジネスアワーズ(business ours)からのものであるか否かを判別する(ステップS82)。それがビジネスアワーズからのものでない場合には(No、ステップS82)、それがビジネスアワーズへのものであるか否かを判別する(ステップS84)。ビジネスアワーズへのものでない場合には(No、ステップS84)、その要求は失敗する(ステップS92)。それがビジネスアワーズへのものである場合には(Yes、ステップS84)、そのアサーションが所有者からによって為されたか否かを判別する(ステップS86)。そのアサーションが所有者からによって為されたものでない場合には(No、ステップS86)、不完全なアサーションが書き込まれる(ステップS94)。そのアサーションが所有者からによって為された場合には(Yes、ステップS86)、完全なアサーションが書き込まれる(ステップS96)。ステップS82へ戻り、その要求がビジネスアワーズからのものであると判別される場合には(Yes、ステップS82)、それがビジネスアワーズへのものであるか否かが判別される(ステップS88)。ビジネスアワーズへのものでない場合には(No、ステップS88)、そのアサーションが所有者に対してによって為されたものであるかの判別が行われる(ステップS90)。そのアサーションが所有者に対してによって為されたものでない場合には(No、ステップS90)、不完全なアサーションが書き込まれる(ステップS94)。ステップS88の結果がYesである場合には(ビジネスアワーズに対して)、又はステップS90の結果がYesである場合には(所有者に対してによって為されたアサーション)、完全なアサーションが書き込まれる(ステップS96)。
次の問題は、ディレクトリ格納媒体の制限を考慮に入れながらディレクトリアクセス及び反復的インメモリ動作の両方を最適化するようにサーチ動作期間中に中間的サーチ結果収集物の構成をどのようにして最適化するかを取り扱うことである。実際上、ディレクトリエントリは任意の順番でストアし且つリターンすることが可能であり、且つディレクトリ結果はソートするのに大き過ぎる場合がある。
本開示の1実施例によれば、識別名(Distinguished Name)により中間結果をソートする独特の結果ソーティングスキームと結合されたオブジェクト指向型インメモリデータ格納システムが提供される。これは、1つのサーチが多数の異なるタイプのオブジェクト、BusinessEntities、BusinessServices等をリターンすることを可能とし、尚且つデータをユーザへリターンするための正しいXML構造を容易にシステムが構成することを可能とする。注意すべきことであるが、ウエブサービスインタラクション即ち相互作用はXMLにおけるものである。
このようなシステムの記述について説明する。UDDIのBusinessEntity及び本開示における全ての子データ要素は以下の階層に基づくディレクトリにおいて(部分的に)表現される。
Figure 2005539295
注意すべきことであるが、ServiceName、BusinessName、BusinessDescriptionは、サブストラクチャ(Substructure)及びオブジェクトスプリッティング(Object Splitting)を取り扱う本開示の側面に関連して説明した。
BusinessEntity検索コードは、所要のBusiness Entity又はビジネスエンティティの一意的なキーに基づいてディレクトリサブツリーサーチを実施する。このサーチは見つかったエントリ及び全てのサブエントリをリターンする。ディレクトリスタンダードはリターンされたエントリに対して何等特定の順番を保証するものではなく、又サブエントリがそれらの親エントリのすぐ後に続くことでさえもそうである。
従って、検索コードは識別名によってリターンされたエントリをソートする。このことは、サブエントリがそれらの親の後の順番とされること、及び親‐子の関係を容易に区別することが可能であることを保証する。多様なソーティングアルゴリズムを使用することが可能である。使用されるソーティングアルゴリズムは、エントリが部分的にソートされる場合においては高性能の特性を示すべきである。
結果構造に対するアルゴリズムは、基本的に、「最初に深さ左から右のツリーウォーク(depth−first,left−to−right tree−walk)」で動作する。それは、グラフ理論において「帰りがけ順(postorder traversal)」として知られている。
ソートしたリストが新たなBusinessEntityオブジェクトのコンストラクター(constructor)方法へパスされる。このオブジェクトは、例えば、UDDIビジネスエンティティを表現すべくデザインされたオブジェクト指向型プログラミングコンストラクト(construct)である場合がある。BusinessEntityオブジェクトは最後にエントリ内に与えられたデータから「それ自身構築する」ためのコードを包含している。このコードは、リストを介して反復的に移動し、各エントリに関しての決定を行う。そのリストにおける最初のエントリはビジネスエンティティ自身に対する主要なエントリであることが理解され、且つそれが別のBusinessEntityを見つけ出すや否や、構築が終了したことを理解し、そのリストの順番がこのことを保証する。それがBusinessService又はその他の子エントリを見つけるや否や、適宜のタイプのオブジェクトがインスタンス化され且つ該リストは、そのリストのどこから開始するかを告げるポインターと共に、新たなオブジェクトのコンストラクターへパスされる。
各オブジェクトは、基本的に、それ自身の構築を取り扱い且つ全ての子エントリの構築を適宜の子オブジェクトへ委任するための同様の処理コードを包含している。
このようにして、単一のディレクトリサーチを実施することが必要であるに過ぎず、結果的に得られるリストは効率的な態様で処理され、全てのエントリは一度処理される。そのリストが任意の順番とされるか、又は何等かのその他の態様でソートされた場合には、そのリストは結果的に得られるエントリからUDDI階層を正しく構築するために複数回のパスで処理されねばならない。
構築及びリスト処理の階層内の異なるプログラミングオブジェクトへの委任は、処理コードを比較的小さな寸法とさせ、より効率的で且つ究極的により速いものとさせる。
図9はソートしたエントリリストの表現を包含するプログラミングコンストラクト(オブジェクト)を例示している。項目のリスト内に更なる項目が存在するか否かが判別される。付加的な項目が存在しない場合には(No、ステップS100)、その処理は終了する(ステップS118)。付加的な項目が存在する場合には(Yes、ステップS100)、そのリストにおける次の項目が検索される(ステップS102)。次いで、その項目がこのオブジェクトタイプのものであるか否かの判別が為される。その項目がこのオブジェクトタイプのものである場合には(Yes、ステップS104)、その項目に基づいてオブジェクト属性が設定され(ステップS106)且つ本プロセスはステップS100へリターンする。このオブジェクトタイプのものでない場合には(No、ステップS104)、このオブジェクトタイプの項目が未だに処理されていないかどうかの判別が為される(ステップS108)。このオブジェクトタイプの項目が未だに処理されていない場合には(No、ステップS108)、本プロセスはステップS100へリターンする。このオブジェクトタイプの項目が処理されている場合には(Yes、ステップS108)、その項目がこのオブジェクトの内在的なコンポーネントであるか否かの判別が為される(例えば、Name、Description等)。内在的コンポーネントである場合には(Yes、ステップS110)、その項目はオブジェクト属性へ付加され且つエキストラな処理が実施される場合があり(ステップS112)、且つ本プロセスはステップS100へリターンする。内在的コンポーネントでない場合には(No、ステップS110)、その項目がこのオブジェクトの子オブジェクトであるか否かの判別が為される(例えば、これがBusinessEntityである場合にはBusinessService)。それが子オブジェクトである場合には(Yes、ステップS114)、本システムは正しいタイプのオブジェクトをインスタンス化し、且つ項目のリストをコンストラクターへパスし(ステップS116)且つ本プロセスはステップS100へリターンする。子オブジェクトでない場合には(No、ステップS114)、本プロセスはステップS110へリターンする。
次の「実世界」例は、LDAPディレクトリがリターンすることが予測されることのある任意の順番の種類を示している。
Figure 2005539295
Figure 2005539295
Figure 2005539295
リスト1−太字でハイライトさせたNameエントリはそのリストの上部にあるBusinessEntityエントリのリーフ即ち葉であり、且つそれがBusinessServiceエントリ及び該BusinessEntityのその他の分岐子の前に表われることが有用である。然しながら、それはリストの終わりに表われており、そのことはBusinessEntityの全ての直接的な子が処理されていることを確保するためにリスト全体を処理コードがサーチすることを強制する。このことは最も効率的なものでない場合がある。
従って、本開示の1実施例に基づいて形成された規則に従ってソートされた同一のデータのバージョンは以下のものである。
Figure 2005539295
Figure 2005539295
リスト2−太字でハイライトしたエントリはリスト内のより論理的な位置に表われ、且つ処理コードはこのことを利用するために書くことが可能である。エントリの数が現実的なサーバーの負荷に増加されると、処理時間に関する節約はかなりのものとなる場合がある。
次のものは本開示の別の実施例である。
Figure 2005539295
Figure 2005539295
Figure 2005539295
Figure 2005539295
Figure 2005539295
Figure 2005539295
Figure 2005539295
Figure 2005539295
Figure 2005539295
Figure 2005539295
Figure 2005539295
Figure 2005539295
Figure 2005539295
Figure 2005539295
Figure 2005539295
Figure 2005539295
Figure 2005539295
Figure 2005539295
Figure 2005539295
Figure 2005539295
Figure 2005539295
Figure 2005539295
Figure 2005539295
Figure 2005539295
Figure 2005539295
Figure 2005539295
Figure 2005539295
Figure 2005539295
Figure 2005539295
Figure 2005539295
Figure 2005539295
Figure 2005539295
Figure 2005539295
Figure 2005539295
Figure 2005539295
本開示は、この開示の基本的な特性の精神から逸脱することなしに幾つかの形態で実現することが可能であるので、上述した実施例はそうでないことが特記されていない限り本開示を制限するものではなく、特許請求の範囲に定義されるように本開示の精神及び範囲内で広義に構成することが可能であることを理解すべきである。種々の修正例及び均等な構成は本開示及び特許請求の範囲内に包含されることが意図されている。
幾つかのウエブサービス及びUDDI概念を概略的に例示した概略図。 ウエブサービス環境に対する簡単化したプロトコルスタックを概略的に例示した概略図。 関連技術に基づく階層を概略的に例示した概略図。 関連技術に基づくディレクトリサービスモデルを概略的に例示した概略図。 本開示の1実施例に基づいてX.500ディレクトリ技術を使用して実現したUDDIサービスモデルに対するインフラストラクチャコンポーネントを概略的に例示した概略図。 本開示の1実施例に基づくサービスプロジェクションを概略的に例示した概略図。 本開示の1実施例に基づくバインディングテンプレートとTModelとの間のリレーションシップを概略的に例示した概略図。 本開示の1実施例に基づいてどのようにしてTModelが2つのエンティティの間のリレーションシップを作成するかを概略的に例示した概略図。 本開示の1実施例に基づいてパブリッシャアサーションを付加する要求の論理的表現を例示した概略図。 本開示の1実施例に基づいてUDDIデータオブジェクトに対するコンストラクターの論理的表現を例示した概略図。 ユーザオブジェクトの下にビジネスエンティティオブジェクトを配置させることを概略的に例示した概略図。 ユーザオブジェクトの上にドメインオブジェクトを配置させることを概略的に例示した概略図。 本開示の1実施例に基づくスキーマのアウトラインを概略的に例示した概略図。 関連技術に基づくビジネスエンティティにおいて比較的複雑なオブジェクトのUDDI概念を概略的に例示した概略図。 ビジネスエンティティにおける比較的複雑なオブジェクトのノベル表現を概略的に例示した概略図。 ビジネスエンティティにおける比較的複雑なオブジェクトの表現に対する本開示の1実施例に基づく階層の導入を概略的に例示した概略図。 本開示の1実施例に基づくバインディングテンプレート階層サブストラクチャを概略的に例示した概略図。 バイディングテンプレートサブストラクチャをフラットニング及び/又はマージした状態を概略的に例示した概略図。 本開示の種々の側面を実現することが可能なコンピュータシステムのブロック図。

Claims (12)

  1. ウエブサービスシステムにおいて使用する方法において、
    データリポジトリへのアクセスを与え、
    前記データリポジトリのサーチを行う場合に使用するシャドウ属性を与える、
    ことを包含している方法。
  2. 請求項1において、前記シャドウ属性が大文字小文字区別性無しに値を格納する方法。
  3. 請求項1において、更に、マッチング規則に従って前記シャドウ属性をサーチすることを包含している方法。
  4. 請求項1において、前記リポジトリのオペレーターを表わす属性が属性として格納されることがない方法。
  5. 請求項1において、更に、予め計算したオペレーションに基づいてオペレーショナル属性を格納することを包含している方法。
  6. 請求項5において、前記オペレーショナル属性が削除したユーザ及びサービスプロジェクションステータスのうちの少なくとも1つと関連している方法。
  7. ウエブサービスシステムにおいて使用する方法を実施するためのコンピュータにより実行可能なコードを包含しているコンピュータ記録媒体において、
    データリポジトリへのアクセスを与えるためのコード、
    前記データリポジトリのサーチを行う場合に使用するシャドウ属性を与えるためのコード、
    を有しているコンピュータ記録媒体。
  8. 請求項7において、前記シャドウ属性が大文字小文字区別性無しに値を格納するコンピュータ記録媒体。
  9. 請求項7において、更に、マッチング規則に従って前記シャドウ属性をサーチするためのコードを包含しているコンピュータ記録媒体。
  10. 請求項7において、前記リポジトリのオペレーターを表わす属性が属性として格納されることがないコンピュータ記録媒体。
  11. 請求項7において、更に、予め計算したオペレーションに基づいてオペレーショナル属性を格納するためのコードを有しているコンピュータ記録媒体。
  12. 請求項11において、前記オペレーショナル属性が削除したユーザ及びサービスプロジェクションステータスのうちの少なくとも1つと関連しているコンピュータ記録媒体。
JP2004531223A 2002-08-26 2003-08-25 ウエブサービス装置及び方法 Pending JP2005539295A (ja)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US40639902P 2002-08-26 2002-08-26
US40620402P 2002-08-26 2002-08-26
US40620502P 2002-08-26 2002-08-26
US40639102P 2002-08-26 2002-08-26
US40632802P 2002-08-26 2002-08-26
US40632502P 2002-08-26 2002-08-26
US40631902P 2002-08-26 2002-08-26
PCT/US2003/026701 WO2004019236A2 (en) 2002-08-26 2003-08-25 Web services apparatus and methods

Publications (1)

Publication Number Publication Date
JP2005539295A true JP2005539295A (ja) 2005-12-22

Family

ID=31950968

Family Applications (7)

Application Number Title Priority Date Filing Date
JP2004531165A Pending JP2006516336A (ja) 2002-08-26 2003-08-25 ウエブサービス装置及び方法
JP2004531224A Pending JP2005536808A (ja) 2002-08-26 2003-08-25 ウエブサービス装置及び方法
JP2004531164A Pending JP2006510956A (ja) 2002-08-26 2003-08-25 ウエブサービス装置及び方法
JP2004531223A Pending JP2005539295A (ja) 2002-08-26 2003-08-25 ウエブサービス装置及び方法
JP2004531162A Pending JP2005536805A (ja) 2002-08-26 2003-08-25 ウエブサービス装置及び方法
JP2004531163A Pending JP2005536806A (ja) 2002-08-26 2003-08-25 ウエブサービス装置及び方法
JP2004531233A Pending JP2006508422A (ja) 2002-08-26 2003-08-25 ウエブサービス装置及び方法

Family Applications Before (3)

Application Number Title Priority Date Filing Date
JP2004531165A Pending JP2006516336A (ja) 2002-08-26 2003-08-25 ウエブサービス装置及び方法
JP2004531224A Pending JP2005536808A (ja) 2002-08-26 2003-08-25 ウエブサービス装置及び方法
JP2004531164A Pending JP2006510956A (ja) 2002-08-26 2003-08-25 ウエブサービス装置及び方法

Family Applications After (3)

Application Number Title Priority Date Filing Date
JP2004531162A Pending JP2005536805A (ja) 2002-08-26 2003-08-25 ウエブサービス装置及び方法
JP2004531163A Pending JP2005536806A (ja) 2002-08-26 2003-08-25 ウエブサービス装置及び方法
JP2004531233A Pending JP2006508422A (ja) 2002-08-26 2003-08-25 ウエブサービス装置及び方法

Country Status (10)

Country Link
US (7) US20040205086A1 (ja)
EP (3) EP1532524A2 (ja)
JP (7) JP2006516336A (ja)
KR (7) KR20050035287A (ja)
CN (6) CN1678990A (ja)
AU (7) AU2003265649A1 (ja)
BR (7) BR0313775A (ja)
CA (7) CA2496805A1 (ja)
IL (4) IL166717A0 (ja)
WO (7) WO2004019233A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112007003166T5 (de) 2006-12-28 2009-11-26 Toyota Jidosha Kabushiki Kaisha Auslassemissionssteuerapparat für Verbrennungsmotor
JP2014146271A (ja) * 2013-01-30 2014-08-14 Ntt Comware Corp データ関連情報管理装置、データ通信システム、データ関連情報管理方法およびプログラム

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7577618B2 (en) * 2000-10-10 2009-08-18 Stamps.Com Inc. Generic value bearing item labels
IL166717A0 (en) * 2002-08-26 2006-01-15 Computer Ass Think Inc Web services apparatus and methods
US20040139082A1 (en) * 2002-12-30 2004-07-15 Knauerhase Robert C. Method for minimizing a set of UDDI change records
US7739363B1 (en) * 2003-05-09 2010-06-15 Apple Inc. Configurable offline data store
GB0314908D0 (en) * 2003-06-26 2003-07-30 Ibm User access to a registry of business entity definitions
US20050131835A1 (en) * 2003-12-12 2005-06-16 Howell James A.Jr. System for pre-trusting of applications for firewall implementations
US7822778B1 (en) * 2003-12-22 2010-10-26 Sap Ag Extended UDDI with item registry functionality
US7487513B1 (en) * 2003-12-30 2009-02-03 Sap Ag Web service archive
US8533737B2 (en) * 2004-03-18 2013-09-10 Global Infotek, Inc. System and method for interfacing distributed systems with different frameworks
US8112472B2 (en) 2004-05-21 2012-02-07 Computer Associates Think, Inc. Method and apparatus for supporting multiple versions of a web services protocol
ATE419579T1 (de) 2004-05-21 2009-01-15 Computer Ass Think Inc Verfahren und vorrichtung zur unterstützung mehrerer versionen von web-dienstestandards
US7620934B2 (en) * 2004-05-28 2009-11-17 Sap Ag System and method for a Web service definition
US7617480B2 (en) * 2004-05-28 2009-11-10 Sap Ag System and method for a Web service virtual interface
GB2416872A (en) * 2004-07-30 2006-02-08 Canon Kk System for managing tasks on a network by using a service discover, a task manager and a service publisher
US7630955B2 (en) * 2004-08-10 2009-12-08 International Business Machines Corporation Apparatus, system, and method for analyzing the association of a resource to a business process
US7661135B2 (en) * 2004-08-10 2010-02-09 International Business Machines Corporation Apparatus, system, and method for gathering trace data indicative of resource activity
US20060037081A1 (en) * 2004-08-13 2006-02-16 Pelco Method of and apparatus for controlling surveillance system resources
US7593916B2 (en) * 2004-08-19 2009-09-22 Sap Ag Managing data administration
JP4487725B2 (ja) * 2004-10-25 2010-06-23 株式会社島津製作所 分析データ処理システム及び分析装置
US7542572B2 (en) * 2004-12-01 2009-06-02 Cisco Technology, Inc. Method for securely and automatically configuring access points
ATE409998T1 (de) * 2005-01-18 2008-10-15 Nokia Siemens Networks Gmbh Wahlfreies logging
US7702661B2 (en) 2005-03-02 2010-04-20 Computer Associates Think, Inc. Managing checked out files in a source control repository
US7720904B2 (en) * 2005-05-27 2010-05-18 Microsoft Corporation Entity projection
US20070005658A1 (en) * 2005-07-02 2007-01-04 International Business Machines Corporation System, service, and method for automatically discovering universal data objects
US20070061294A1 (en) * 2005-09-09 2007-03-15 Microsoft Corporation Source code file search
US8078671B2 (en) * 2005-09-21 2011-12-13 Sap Ag System and method for dynamic web services descriptor generation using templates
US20070067384A1 (en) * 2005-09-21 2007-03-22 Angelov Dimitar V System and method for web services configuration creation and validation
US8117443B1 (en) * 2005-10-05 2012-02-14 Oracle America, Inc. Method and apparatus for generating location independent unique identifiers
US7930684B2 (en) * 2005-10-12 2011-04-19 Symantec Operating Corporation System and method for logging and replaying asynchronous events
US7533128B1 (en) * 2005-10-18 2009-05-12 Real-Time Innovations, Inc. Data distribution service and database management systems bridge
US8239226B2 (en) * 2005-11-02 2012-08-07 Sourcecode Technologies Holdings, Inc. Methods and apparatus for combining properties and methods from a plurality of different data sources
WO2007056656A2 (en) * 2005-11-02 2007-05-18 Sourcecode Technology Holding, Inc. Methods and apparatus for processing business objects, electronic forms, and workflows
US8224853B2 (en) * 2005-11-02 2012-07-17 Sourcecode Technologies Holdings, Inc. Methods and apparatus for updating a plurality of data fields in an electronic form
US20070143305A1 (en) * 2005-11-02 2007-06-21 Sourcecode Technology Holding, Inc. Methods and apparatus for storing functions associated with an electronic form
US8024425B2 (en) * 2005-12-30 2011-09-20 Sap Ag Web services deployment
US7814060B2 (en) * 2005-12-30 2010-10-12 Sap Ag Apparatus and method for web service client deployment
US8010695B2 (en) 2005-12-30 2011-08-30 Sap Ag Web services archive
US8996482B1 (en) 2006-02-10 2015-03-31 Amazon Technologies, Inc. Distributed system and method for replicated storage of structured data records
US8447829B1 (en) 2006-02-10 2013-05-21 Amazon Technologies, Inc. System and method for controlling access to web services resources
US9146789B2 (en) 2006-03-21 2015-09-29 Oracle America, Inc. Method and apparatus for generating and using location-independent distributed object references
US20070276948A1 (en) * 2006-05-24 2007-11-29 Sap Ag System and method for automated configuration and deployment of applications
US7962470B2 (en) * 2006-06-01 2011-06-14 Sap Ag System and method for searching web services
US7752193B2 (en) * 2006-09-08 2010-07-06 Guidance Software, Inc. System and method for building and retrieving a full text index
US7734662B2 (en) * 2006-11-01 2010-06-08 Red Hat, Inc. Extension of organizational chart dynamic group lists based on LDAP lookups
US7734611B2 (en) * 2006-11-01 2010-06-08 Red Hat, Inc. Dynamic views based on LDAP
US8073842B2 (en) * 2006-11-01 2011-12-06 Red Hat, Inc. Deriving cross-organizational relationships from LDAP source data
US7730084B2 (en) * 2006-11-01 2010-06-01 Red Hat, Inc. Nested queries with index
US7647307B2 (en) * 2006-11-01 2010-01-12 Red Hat, Inc. Reverse attribute pointers
US7606818B2 (en) * 2006-12-20 2009-10-20 Sap Ag Method and apparatus for aggregating change subscriptions and change notifications
WO2008094540A1 (en) * 2007-01-29 2008-08-07 Mashery, Inc. Methods for analyzing limiting, and enhancing access to an internet api, web service, and data
US20080270911A1 (en) * 2007-04-24 2008-10-30 Nehal Dantwala System and method to develop a custom application for a multi-function peripheral (mfp)
EP2145297A4 (en) * 2007-05-08 2012-05-30 Sourcecode Technology Holding Inc METHODS AND APPARATUSES FOR EXPOSING DEFINITIONS OF WORKFLOW PROCESSES AS COMMERCIAL OBJECTS
US8391487B2 (en) 2007-07-24 2013-03-05 Cisco Technology, Inc. Secure remote configuration of device capabilities
US20090099920A1 (en) * 2007-09-11 2009-04-16 Asaf Aharoni Data Mining
US8683033B2 (en) * 2007-09-17 2014-03-25 International Business Machines Corporation Apparatus, system, and method for server failover to standby server during broadcast storm or denial-of-service attack
US8302017B2 (en) * 2008-03-05 2012-10-30 Microsoft Corporation Definition for service interface
EP2200249A1 (en) * 2008-12-17 2010-06-23 Abb Research Ltd. Network analysis
US20100205014A1 (en) * 2009-02-06 2010-08-12 Cary Sholer Method and system for providing response services
KR20100090596A (ko) * 2009-02-06 2010-08-16 (주)아이콘온 애플리케이션 공유 컨텐츠 제공 시스템
US8635331B2 (en) * 2009-08-05 2014-01-21 Microsoft Corporation Distributed workflow framework
US8560556B2 (en) * 2010-01-12 2013-10-15 International Business Machines Corporation Dynamic aliasing of multi-valued binary attributes in directories
US8260782B2 (en) 2010-07-13 2012-09-04 International Business Machines Corporation Data element categorization in a service-oriented architecture
CN101916202B (zh) * 2010-08-09 2014-04-09 中兴通讯股份有限公司 一种信令展示方法及系统
US8799260B2 (en) * 2010-12-17 2014-08-05 Yahoo! Inc. Method and system for generating web pages for topics unassociated with a dominant URL
US9465836B2 (en) * 2010-12-23 2016-10-11 Sap Se Enhanced business object retrieval
US8538990B2 (en) * 2011-03-04 2013-09-17 International Business Machines Corporation Scalable mechanism for resolving cell-level access from sets of dimensional access rules
US8592847B2 (en) 2011-04-15 2013-11-26 Epistar Corporation Light-emitting device
US10127578B2 (en) 2011-05-09 2018-11-13 Capital One Services, Llc Method and system for matching purchase transaction history to real-time location information
CN102325153B (zh) * 2011-07-12 2014-08-06 北京新媒传信科技有限公司 一种服务开发方法和系统
CN102622677A (zh) * 2012-03-21 2012-08-01 深圳市全民安全生产研究院有限公司 一种企业安全生产管理方法
CN102710747A (zh) * 2012-05-01 2012-10-03 张榕芳 实现屏幕信息的系统、方法及终端设备
US9037678B2 (en) * 2012-05-14 2015-05-19 Sap Se Distribution of messages in system landscapes
RU2014153787A (ru) 2012-06-11 2016-08-10 Дзе Кливленд Клиник Фаундейшн Лечение и профилактика сердечно-сосудистого заболевания и тромбоза
US9177005B2 (en) * 2013-01-30 2015-11-03 Oracle International Corporation Resolving in-memory foreign keys in transmitted data packets from single-parent hierarchies
CN106855794A (zh) * 2015-12-08 2017-06-16 平安科技(深圳)有限公司 应用于ios操作系统的多对象间的数据共享方法及系统
CA3130844C (en) * 2016-12-22 2023-11-28 Nicira, Inc. Collecting and processing context attributes on a host
US11614925B1 (en) * 2021-09-27 2023-03-28 Sap Se Data model infrastructure as a service
SG10202110957PA (en) * 2021-10-01 2021-11-29 Oneenterprise Holdings Pte Ltd A module and method for integrating data across disparate business applications

Family Cites Families (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2315343A (en) * 1996-06-25 1998-01-28 Texas Instruments Inc Non-model-based application transitioning
US6003039A (en) * 1997-06-27 1999-12-14 Platinum Technology, Inc. Data repository with user accessible and modifiable reuse criteria
GB2329044B (en) * 1997-09-05 2002-10-09 Ibm Data retrieval system
US6272537B1 (en) * 1997-11-17 2001-08-07 Fujitsu Limited Method for building element manager for a computer network element using a visual element manager builder process
US6202066B1 (en) * 1997-11-19 2001-03-13 The United States Of America As Represented By The Secretary Of Commerce Implementation of role/group permission association using object access type
GB9725742D0 (en) * 1997-12-04 1998-02-04 Hewlett Packard Co Object gateway
US6636833B1 (en) * 1998-03-25 2003-10-21 Obis Patents Ltd. Credit card system and method
US7117227B2 (en) * 1998-03-27 2006-10-03 Call Charles G Methods and apparatus for using the internet domain name system to disseminate product information
US6085188A (en) * 1998-03-30 2000-07-04 International Business Machines Corporation Method of hierarchical LDAP searching with relational tables
US6403458B2 (en) * 1998-04-03 2002-06-11 Micron Technology, Inc. Method for fabricating local interconnect structure for integrated circuit devices, source structures
US6366954B1 (en) * 1998-05-14 2002-04-02 Sun Microsystems, Inc. Method and data format for exchanging data between a Java system database entry and an LDAP directory service
IES990749A2 (en) * 1998-09-03 2000-04-05 Kimono Ltd A data processing system and development method
US6587856B1 (en) * 1998-12-07 2003-07-01 Oracle International Corporation Method and system for representing and accessing object-oriented data in a relational database system
US6560633B1 (en) * 1999-06-10 2003-05-06 Bow Street Software, Inc. Method for creating network services by transforming an XML runtime model in response to an iterative input process
US7765124B2 (en) * 1999-06-23 2010-07-27 Signature Systems Llc Method and system for issuing, aggregating and redeeming merchant rewards with an issuing bank
US6554183B1 (en) * 1999-06-30 2003-04-29 Ge Capital Fleet Services Automated systems and methods for authorization and settlement of fleet maintenance and repair transactions
US7114154B1 (en) * 1999-07-26 2006-09-26 Mark Ira Crohn Automating time sequenced tasks
US6571232B1 (en) * 1999-11-01 2003-05-27 Sun Microsystems, Inc. System and method for browsing database schema information
WO2001042966A2 (en) * 1999-12-13 2001-06-14 Novient, Inc. Attribute and application synchronization in distributed network environment
US7072896B2 (en) * 2000-02-16 2006-07-04 Verizon Laboratories Inc. System and method for automatic loading of an XML document defined by a document-type definition into a relational database including the generation of a relational schema therefor
AU2001243597A1 (en) * 2000-03-03 2001-09-17 Radiant Logic, Inc. System and method for providing access to databases via directories and other hierarchical structures and interfaces
CA2404014A1 (en) * 2000-03-30 2001-10-11 Cygent, Inc. System and method for establishing electronic business systems for supporting communications services commerce
US6947951B1 (en) * 2000-04-07 2005-09-20 Gill Harjinder S System for modeling a business
US6993743B2 (en) * 2000-06-03 2006-01-31 Sun Microsystems, Inc. Method and apparatus for developing enterprise applications using design patterns
WO2001093655A2 (en) * 2000-06-05 2001-12-13 Shiman Associates, Inc. Method and apparatus for managing documents in a centralized document repository system
AU2000261656A1 (en) * 2000-07-04 2002-01-14 Otoobe Method for storing xml-format information objects in a relational database
US20040204958A1 (en) * 2000-08-30 2004-10-14 Microsoft Corporation Electronic registration manager for business directory information
US7200869B1 (en) * 2000-09-15 2007-04-03 Microsoft Corporation System and method for protecting domain data against unauthorized modification
US20020062259A1 (en) * 2000-09-26 2002-05-23 Katz James S. Server-side system responsive to peripherals
US6752313B1 (en) * 2000-11-14 2004-06-22 Online Data Corp. Method and system for establishing a credit card transaction processing merchant account
US20020087665A1 (en) * 2000-12-29 2002-07-04 Marshall Donald Brent Method and system for integrated resource management
US20030220880A1 (en) * 2002-01-17 2003-11-27 Contentguard Holdings, Inc. Networked services licensing system and method
US6959303B2 (en) * 2001-01-17 2005-10-25 Arcot Systems, Inc. Efficient searching techniques
US7155425B2 (en) * 2001-05-15 2006-12-26 Nokia Corporation Mobile web services
US7249100B2 (en) * 2001-05-15 2007-07-24 Nokia Corporation Service discovery access to user location
US7016893B2 (en) * 2001-05-29 2006-03-21 Sun Microsystems, Inc. Method and system for sharing entry attributes in a directory server using class of service
US7016976B2 (en) * 2001-05-31 2006-03-21 Sun Microsystems, Inc. UniqueID-based addressing in a directory server
BR0210589A (pt) * 2001-06-22 2005-04-26 Nosa Omoigui Sistema e método para a recuperação, o gerenciamento, a entrega e a apresentação do conhecimento
US7356803B2 (en) * 2001-07-02 2008-04-08 Bea Systems, Inc. Annotation based development platform for asynchronous web services
US7437710B2 (en) * 2001-07-02 2008-10-14 Bea Systems, Inc. Annotation based development platform for stateful web services
US7380271B2 (en) * 2001-07-12 2008-05-27 International Business Machines Corporation Grouped access control list actions
US7054858B2 (en) * 2001-08-01 2006-05-30 Oic Acquisition Corporation System and method for retrieval of objects from object to relational mappings
US7296061B2 (en) * 2001-11-21 2007-11-13 Blue Titan Software, Inc. Distributed web services network architecture
US7822860B2 (en) * 2001-12-11 2010-10-26 International Business Machines Corporation Method and apparatus for dynamic reconfiguration of web services infrastructure
US7035857B2 (en) * 2002-01-04 2006-04-25 Hewlett-Packard Development Company, L.P. Method and apparatus for increasing the functionality and ease of use of lights out management in a directory enabled environment
US7177929B2 (en) * 2002-03-27 2007-02-13 International Business Machines Corporation Persisting node reputations in transient network communities
US7177862B2 (en) * 2002-03-28 2007-02-13 International Business Machines Corporation Method and structure for federated web service discovery search over multiple registries with result aggregation
US7152056B2 (en) 2002-04-19 2006-12-19 Dow Jones Reuters Business Interactive, Llc Apparatus and method for generating data useful in indexing and searching
EP1499999A2 (de) * 2002-04-29 2005-01-26 Siemens Aktiengesellschaft Verzeichnisdienst in einem automatisierungssystem
FR2841072A1 (fr) * 2002-06-14 2003-12-19 France Telecom Systeme de consultation et/ou mise a jour de serveurs dns et/ou d'annuaires ldap
US6829688B2 (en) * 2002-06-20 2004-12-07 International Business Machines Corporation File system backup in a logical volume management data storage environment
US7047259B1 (en) * 2002-06-25 2006-05-16 Oracle International Corporation Rich cross object navigation in mobile applications
US7302439B2 (en) * 2002-06-28 2007-11-27 Sun Microsystems, Inc. Information model mapping with shared directory tree representations
US20050021348A1 (en) * 2002-07-19 2005-01-27 Claribel Chan Business solution management (BSM)
US20040030771A1 (en) * 2002-08-07 2004-02-12 John Strassner System and method for enabling directory-enabled networking
US6976027B2 (en) * 2002-08-21 2005-12-13 International Business Machines Corporation Implementing geographical taxonomy within network-accessible service registries using spatial extensions
IL166717A0 (en) * 2002-08-26 2006-01-15 Computer Ass Think Inc Web services apparatus and methods
US7181442B2 (en) * 2002-09-24 2007-02-20 International Business Machines Corporation Method and apparatus for discovery of dynamic network services
CA2405700C (en) * 2002-09-30 2010-05-04 Ibm Canada Limited-Ibm Canada Limitee Web service interfaces used in providing a billing service
KR100750110B1 (ko) * 2003-04-22 2007-08-17 삼성전자주식회사 4×4인트라 휘도 예측 모드 결정방법 및 장치
US7496622B2 (en) * 2004-03-17 2009-02-24 International Business Machines Corporation Alternative registry lookup of web services
US7606803B2 (en) * 2004-12-28 2009-10-20 International Business Machines Corporation Method and system for dynamic creation of service flows
US7269061B2 (en) * 2005-10-17 2007-09-11 Northern Lights Semiconductor Corp. Magnetic memory

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112007003166T5 (de) 2006-12-28 2009-11-26 Toyota Jidosha Kabushiki Kaisha Auslassemissionssteuerapparat für Verbrennungsmotor
JP2014146271A (ja) * 2013-01-30 2014-08-14 Ntt Comware Corp データ関連情報管理装置、データ通信システム、データ関連情報管理方法およびプログラム

Also Published As

Publication number Publication date
CA2495803A1 (en) 2004-03-04
WO2004019234A9 (en) 2004-05-06
CN1678991A (zh) 2005-10-05
JP2006510956A (ja) 2006-03-30
BR0313853A (pt) 2007-09-11
BR0313855A (pt) 2007-09-11
WO2004019232A8 (en) 2004-09-23
WO2004019231A2 (en) 2004-03-04
CN1679026A (zh) 2005-10-05
JP2005536806A (ja) 2005-12-02
BR0313868A (pt) 2007-09-11
BR0313775A (pt) 2007-08-14
CN1678997A (zh) 2005-10-05
KR20050033077A (ko) 2005-04-08
KR20050042168A (ko) 2005-05-04
US20040205086A1 (en) 2004-10-14
US20060020585A1 (en) 2006-01-26
WO2004019236A2 (en) 2004-03-04
WO2004019231A3 (en) 2005-02-03
IL166671A0 (en) 2006-01-15
EP1535146A2 (en) 2005-06-01
US7861251B2 (en) 2010-12-28
EP1532523A2 (en) 2005-05-25
JP2005536805A (ja) 2005-12-02
WO2004019233A8 (en) 2004-09-23
WO2004019232A9 (en) 2004-05-13
WO2004019238A8 (en) 2004-08-19
US20040205084A1 (en) 2004-10-14
KR20050032620A (ko) 2005-04-07
CN1678990A (zh) 2005-10-05
JP2006516336A (ja) 2006-06-29
WO2004019233A9 (en) 2004-05-13
IL166717A0 (en) 2006-01-15
US20040215476A1 (en) 2004-10-28
WO2004019237A2 (en) 2004-03-04
WO2004019236A8 (en) 2004-08-26
AU2003265650A1 (en) 2004-03-11
WO2004019234A2 (en) 2004-03-04
IL166602A0 (en) 2006-01-15
AU2003265652A1 (en) 2004-03-11
KR20050032618A (ko) 2005-04-07
AU2003265762A1 (en) 2004-03-11
KR20050032619A (ko) 2005-04-07
WO2004019237A8 (en) 2004-09-16
CA2495807A1 (en) 2004-03-04
AU2003265651A1 (en) 2004-03-11
WO2004019233A2 (en) 2004-03-04
US20040202330A1 (en) 2004-10-14
KR20050035287A (ko) 2005-04-15
WO2004019231A9 (en) 2004-04-29
US20040215621A1 (en) 2004-10-28
AU2003268188A1 (en) 2004-03-11
CN1678992A (zh) 2005-10-05
CN1678993A (zh) 2005-10-05
JP2005536808A (ja) 2005-12-02
CA2497956A1 (en) 2004-03-04
AU2003265649A1 (en) 2004-03-11
US20040205104A1 (en) 2004-10-14
WO2004019232A2 (en) 2004-03-04
JP2006508422A (ja) 2006-03-09
WO2004019234A8 (en) 2004-09-23
CA2495741A1 (en) 2004-03-04
CA2496805A1 (en) 2004-03-04
BR0313879A (pt) 2007-09-11
AU2003270003A1 (en) 2004-03-11
BR0313870A (pt) 2005-07-19
WO2004019238A2 (en) 2004-03-04
EP1532524A2 (en) 2005-05-25
CA2495806A1 (en) 2004-03-04
KR20050032616A (ko) 2005-04-07
IL166597A0 (en) 2006-01-15
CA2495767A1 (en) 2004-03-04
BR0313869A (pt) 2007-09-11

Similar Documents

Publication Publication Date Title
JP2005539295A (ja) ウエブサービス装置及び方法