(57)【要約】プラットフォーム所有者によって所有されるプラットフォームを使用する装置のエンドユーザがサービスの論理ステップとして機能する定義済みビルディングブロック（２２０）を構成しリンクすることによってその装置のためのサービス（２３８）を作成することができるオンライン・サービス作成のためのシステムと方法である。本システムは、整合性検査機構（２４６）を含んでおり、それ故にプラットフォーム所有者は、サービスの作成（２３８）、起動、あるいは実行の処理（２４０）にかかわる必要がなくなる。本システムはまた、ユーザが例えばプラットフォーム所有者を含む他のユーザによって作成されたサービスを修正すること、コピーすること、そうでなければ操作することを可能にする。
2004507818.tif 000002
【特許請求の範囲】
【請求項１】
プラットフォーム所有者によって所有されるプラットフォームを使用する装置のためのサービスをそのサービスのエンドユーザが作成するための方法であって、
第１の定義済みビルディングブロックにリンクすべき第２の定義済みビルディングブロックを指示するリンク情報をエンドユーザから受信するステップと、
前記第１および第２の定義済みビルディングブロックをリンクして構成することによってサービスを作成するステップと、
前記サービスをテストすることなく直ちに前記プラットフォーム上で前記サービスを実行するステップとを含むことを特徴とする、方法。
【請求項２】
前記第１のビルディングブロックを構成するための構成情報を前記エンドユーザから受信するステップを更に含むことを特徴とする、請求項１に記載の方法。
【請求項３】
受信した構成情報とリンク情報とに基づいて前記サービスを作成するステップを更に含むことを特徴とする、請求項１に記載の方法。
【請求項４】
作成されたサービスの整合性を決定するステップを更に含むことを特徴とする、請求項３に記載の方法。
【請求項５】
前記サービスを修正するための情報の指示を前記エンドユーザから受信するステップを更に含むことを特徴とする、請求項１に記載の方法。
【請求項６】
前記サービスを削除するための情報の指示を前記エンドユーザから受信するステップを更に含むことを特徴とする、請求項１に記載の方法。
【請求項７】
前記サービスを起動するための情報の指示を前記エンドユーザから受信するステップを更に含むことを特徴とする、請求項１に記載の方法。
【請求項８】
前記第１または第２のビルディングブロックの変数にある値を割り当てるステップを更に含むことを特徴とする、請求項１に記載の方法。
【請求項９】
前記サービスを実行するステップを更に含むことを特徴とする、請求項１に記載の方法。
【請求項１０】
サービスを作成するためにプラットフォームを使用する装置に関するサービスのエンドユーザのためのシステムであって、
サーバと、
第１の定義済みビルディングブロックを第２の定義済みビルディングブロックにリンクすることによって、如何なるテストも必要とせずに実行されるサービスをエンドユーザが作成することを可能にするサービス作成インタフェースを有する、前記サーバ上に常駐するプラットフォームと、
前記サービス作成インタフェースと対話するためのインタフェースを含むクライアントとを含むことを特徴とする、システム。
【請求項１１】
前記クライアントはプロキシサーバ・プロトコルを介して前記プラットフォームと対話することを特徴とする、請求項１０に記載のシステム。
【請求項１２】
前記第１および第２の定義済みビルディングブロックを格納するディレクトリ装置を更に含むことを特徴とする、請求項１０に記載のシステム。
【請求項１３】
前記サービスを格納するディレクトリ装置を更に含むことを特徴とする、請求項１０に記載のシステム。
【請求項１４】
前記サービス作成インタフェースは無権限のユーザが前記サービスシステムにアクセスすることを防止することを特徴とする、請求項１０に記載のシステム。
【請求項１５】
前記装置はインターネット機器を含むことを特徴とする、請求項１０に記載のシステム。
【請求項１６】
前記クライアントのインタフェースは専用のクライアント・アプリケーションを含むことを特徴とする、請求項１０に記載のシステム。
【請求項１７】
前記第１または第２のビルディングブロックはエンドユーザが値を割り当てる変数を含むことを特徴とする、請求項１０に記載のシステム。
【請求項１８】
前記第１および第２のビルディングブロックは前記ビルディングブロックを構成するための処理を通してエンドユーザをガイドするビルディングブロック構成インタフェースを含むことを特徴とする、請求項１０に記載のシステム。
【請求項１９】
前記クライアントのインタフェースはウェブ・ブラウザを含むことを特徴とする、請求項１０に記載のシステム。
【請求項２０】
前記クライアントのインタフェースはインテリジェント・スキンを有するウェブ・ブラウザを含むことを特徴とする、請求項１０に記載のシステム。
【請求項２１】
前記装置は移動体装置であることを特徴とする、請求項１０に記載のシステム。
【請求項２２】
作成されたサービスは無線プロトコルを介して前記装置に配布されることを特徴とする、請求項１０に記載のシステム。
【請求項２３】
前記プラットフォームは作成されたサービスの整合性を検査するためのルールを含むことを特徴とする、請求項１０に記載のシステム。
【請求項２４】
前記プラットフォームはユーザが前記第１または第２のビルディングブロックを構成することを可能にすることを特徴とする、請求項１０に記載のシステム。
【請求項２５】
プラットフォームを使用する装置のためのサービスをそのサービスのエンドユーザが作成するための方法であって、
第１の定義済みビルディングブロックにリンクすべき第２のビルディングブロックを指示するリンク情報をサーバに送信するステップと、
前記リンク情報に基づいて前記サービスを作成するステップと、
前記サービスをテストすることなく前記プラットフォーム上で前記サービスを実行するステップとを含むことを特徴とする、方法。
【請求項２６】
前記第１の定義済みビルディングブロックを構成するための構成情報の指示を前記サーバに送信するステップを更に含むことを特徴とする、請求項２５に記載の方法。
【請求項２７】
構成情報とリンク情報とにしたがって前記サービスを作成するステップを更に含むことを特徴とする、請求項２５に記載の方法。
【請求項２８】
前記構成情報の指示を送信するステップは前記第１の定義済みビルディングブロックに含まれる構成インタフェースにアクセスするステップを含むことを特徴とする、請求項２５に記載の方法。
【請求項２９】
前記サービスを削除する情報の指示を前記サーバに送信するステップを更に含むことを特徴とする、請求項２５に記載の方法。
【請求項３０】
前記サービスを修正する情報の指示を前記サーバに送信するステップを更に含むことを特徴とする、請求項２５に記載の方法。
【請求項３１】
前記サービスを起動する情報の指示を前記サーバに送信するステップを更に含むことを特徴とする、請求項２５に記載の方法。
【請求項３２】
プラットフォーム所有者によって所有されるプラットフォームを使用する装置のエンドユーザがその装置のためのサービスを作成するための命令を有するコンピュータ読取り可能な媒体であって、
第１の定義済みビルディングブロックを構成するための構成情報の指示をエンドユーザから受信する第１のユニットと、
前記第１の定義済みビルディングブロックにリンクすべき第２の定義済みビルディングブロックを指示するリンク情報の指示をエンドユーザから受信する第２のユニットと、
前記第１および第２のユニットから受信した情報に基づいてサービスを作成する第３のユニットと、を含んでおり、
前記サービスはテストされる前に実行され得ることを特徴とする、コンピュータ読取り可能な媒体。
【請求項３３】
プラットフォーム所有者によって所有されるプラットフォームを使用する装置のエンドユーザがその装置のためのサービスを作成するための命令を有するコンピュータ読取り可能な媒体であって、
第１の定義済みビルディングブロックを構成するための構成情報をエンドユーザからサーバに送信する第１のユニットと、
前記第１の定義済みビルディングブロックにリンクすべき第２のビルディングブロックを指示するリンク情報をエンドユーザからサーバに送信する第２のユニットと、
前記構成情報とリンク情報とに基づいて前記サービスを作成する第３のユニットとを含むことを特徴とする、前記コンピュータ読取り可能な媒体。
【発明の詳細な説明】
【０００１】
（発明の分野）
本発明は、一般的には、装置にサービスを提供するためのプラットフォームに関し、より具体的には、装置のためのサービスのユーザがそのサービスを作成し、起動し、実行することを可能にするプラットフォームに関する。
【０００２】
（発明の背景）
ここで使用されるように、「サービス」という用語は一般に、プラットフォームを使用する装置のための機能を実行するアプリケーションを指している。サービスは例えば、指定されたデータを表示すること、あるいはデータを装置に送信することを含む。国際電気通信連合（ＩＴＵ）仕様Ｉ．３１２は、（１）サービスを設計するステップと、（２）サービスを開発、実現、文書化するステップと、（３）サービスを厳格にテストするステップと、（４）サービスを起動して使用するステップといった数ステップを含む、インテリジェント・ネットワークにおけるサービス作成プロセスを記述している。このサービス作成プロセスは典型的には、オフラインで実行される。それはまた、複雑で時間のかかるものである。電気通信情報ネットワーキング・アーキテクチャ（ＴＩＮＡ）は、類似のサービス作成プロセスを記述している。ＴＩＮＡサービス作成プロセスについての更なる詳細に関しては、「ＴＩＮＡの全体的コンセプトと原理」（Ｏｖｅｒａｌｌ　ｃｏｎｃｅｐｔｓ　ａｎｄ　ｐｒｉｎｃｉｐｌｅｓ　ｏｆ　ＴＩＮＡ）バージョン１．０、１９９５年２月１７日発行、または「ＴＩＮＡ−Ｃ用語集」（ＴＩＮＡ−Ｃ　Ｇｌｏｓｓａｒｙ　ｏｆ　Ｔｅｒｍｓ）バージョン２．０（１９９７年１月）を参照されたい。これらの両者はここで引用することによって本明細書中に組み入れられる。
【０００３】
サービスは一般に、サービスのユーザによるよりもむしろ、サービスを受ける装置が動作するプラットフォームの所有者によって作成される。例えば電話事業者は、顧客が呼出しグループを定義することを可能にするサービスを提供することができる。顧客すなわちサービスのユーザは、誰が呼出しグループの一部であるかを定義すること、あるいはサービスを構成することはできるが、顧客はこのアクセスを可能にするサービスを定義することは許されていない。すなわち、顧客は呼出しグループ・サービス自体を定義することは許されていない。そうではなく、長距離通信事業者あるいは移動体電話サービス提供業者すなわちプラットフォーム所有者がサービスを作成する。同様に、もし証券が所定の価格に達したときに投資家がその証券を売りたいと思えば、投資家は証券が所定の価格に達したときに自動的に、販売取引を開始するサービスを実施することができる仲買業者に所望のサービス要求を伝達する。このサービスの受益者である投資家は、サービス作成者ではない。
【０００４】
このようにしてサービスのエンドユーザは一般に、サービスの作成能力とは区別されるサービスの構成能力を備えているだけである。サービスの構成は、定義済みサービスに関する値を指定するステップを含んでおり、また、通常のサービス作成プロセスとは異なり、オンラインで実行することができる。例えばＰｏｉｎｔｃａｓｔ（登録商標）またはＹａｈｏｏ！（登録商標）といったインターネット・ポータルは、インターネット・ユーザが自分の加入するサービスを構成することを可能にする。もし、Ｐｏｉｎｔｃａｓｔ（登録商標）ユーザが毎日のニュースと証券値付け情報とを自動的に送信するサービスに加入していれば、そのユーザはどんなニュース主題領域と証券とが毎日の配信に含まれるべきかを指示することによってサービスを構成することができる。同様に、Ｙａｈｏｏ！の移動体インターネット・ポータル（ｍｏｂｉｌｅ．ｙａｈｏｏ．ｃｏｍ）は、ユーザが移動体電話あるいはパーソナル・ディジタル・アシスタント（ＰＤＡ）装置といった移動体装置上でＥメール、ニュース、財務情報などを受信するためのサービスに加入することを可能にしている。ユーザは、どんな情報を受信したいかを指示することによってサービスを構成することができる。
【０００５】
従来のサービス作成プロセスは複雑で時間がかかるので、これらのプロセスは、新しいカスタマイズされたサービスの迅速な作成をサポートしていない。カスタマイズされたサービスは、あるいはサービスのエンドユーザの希望に合わせたサービスは、ユーザのニーズを満足させるように適合するであろうから、エンドユーザにとって確かにより魅力的である。大抵のエンドユーザは、サービスを設計し、開発し、テストし、実現するために必要とされる知識も時間も持たない。更に、大抵のエンドユーザは、プラットフォームにサービスを導入するために必要なプラットフォーム・アクセスを持っていない。
【０００６】
したがって、装置のエンドユーザがプラットフォーム所有者からの介入なしにその装置用のサービスを作成することを可能にする方法の必要性が存在している。
【０００７】
（発明の概要）
本発明は、プラットフォームを使用する装置のエンドユーザが、サービスをこの装置に配布するための一般的なアプリケーションを作成することを可能にするオンライン・プラットフォームを提供する。サービスはまた、プラットフォーム所有者の介入なしに、例えばコンテンツ供給業者やコンテンツ集成業者によって作成されることもあり得る。例えばシステムユーザは、もし株の価格がある一定のレベルに達した場合にその株の売り注文を自動的に出すサービスを作成することもできる。ユーザは、このようなサービスを作成するためにプラットフォーム所有者と連絡を取る必要はない。このようにして装置の所有者すなわちサービスのエンドユーザは、必要に応じてまたサービスが必要とされるときに、この装置のためのサービスを作成することができる。エンドユーザはまた、前に作成した、あるいは定義済みのサービスを修正することもできる。本発明は、プラットフォームへの有線接続または無線接続のいずれも可能な種々のネットワーク装置のためにこれらのサービス作成能力を提供する。有線接続は、電話だけでなくインターネットのようなネットワークを介した接続も含んでいる。無線接続は、片方向または双方向の無線の音声とデータのネットワークを含む。間接ネットワーク接続は、少なくとも部分的に片方向または双方向の無線音声またはデータ・ネットワークによって与えられる接続を指している。このシステムは、サービス作成のプロセスを通して各ユーザをガイドする。
【０００８】
本発明の一実施の形態によれば、プラットフォーム所有者によって所有されるプラットフォームを使用する装置のためのサービスのエンドユーザがそのサービスを作成するためのシステムが提供される。このシステムは、第１の定義済みビルディングブロックにリンクすべき第２のビルディングブロックを指示するリンク情報をエンドユーザから受信する。それから、このシステムは、受信したリンク情報に基づいてサービスを作成する。
【０００９】
本発明の一態様によれば、このシステムは更に、第１および第２の定義済みビルディングブロックを構成するための構成情報を受信することができる。
【００１０】
本発明の他の実施の形態によれば、プラットフォーム所有者によって所有されるプラットフォームを使用する装置のためのサービスのエンドユーザがそのサービスを作成するための方法が提供される。この装置のエンドユーザは、第１の定義済みビルディングブロックを第２の定義済みビルディングブロックにリンクする情報をサーバに送信する。このサービスは、受信されたリンク情報に基づいて作成される。
【００１１】
本発明の一態様によれば、エンドユーザは、第１および第２の定義済みビルディングブロックを構成するための情報をサーバに送信する。
【００１２】
本発明の更なる実施の形態によれば、プラットフォーム所有者によって所有されるプラットフォームを使用する装置のためのサービスのエンドユーザがそのサービスを作成するためのシステムが提供される。このシステムは、エンドユーザが第１の定義済みビルディングブロックを第２の定義済みビルディングブロックにリンクすることによってサービスを作成することを可能にするサービス作成インタフェースを有するプラットフォームを含むサーバと、このプラットフォームと対話するためのインタフェースを含むクライアントとを含んでいる。このシステムは更に、エンドユーザが第１および第２の定義済みビルディングブロックを構成することを可能にする。
【００１３】
プラットフォームは、システムユーザによって作成されたサービスを格納しており、またなお更に迅速なサービス作成をサポートして、他の定義済みサービスを提供することもできる。定義済みサービスは、そのサービスに、また特定のユーザに割り当てられたアクセス権に依存して、システムユーザによる閲覧とコピーとが可能である。したがってシステムユーザは、自分自身のサービスを作成する必要がなく、その代わりに他のシステムユーザによって作成されたサービス、あるいは他の定義済みサービスを使うことができる。定義済みサービスに加入することによってユーザは更に付け加えて、プラットフォームとそれを用いて作成できるサービスのタイプとについて多くを知ることができる。このシステムはまた、ユーザに定義済みサービスのビルディングブロック・レベルの閲覧へのアクセス権を与え、システムがどのように動作するか、またシステムはサービスを作成するためにどのように使えばよいかを理解させるようにして、システムに対するより深い洞察力をユーザに与えることができる。
【００１４】
本発明の一態様によれば、定義済みサービスのコピーまたはその一部は、要求に応じて、あるいはその定義済みサービスに加入したときに自動的にユーザに与えられる。後者の場合にユーザは、定義済みサービスの個人的なコピーに加入する。このコピーは、別のカスタマイズされたサービスのための基礎として使用することができる。例えばユーザは、ビルディングブロック間のリンクを変更することによって、またはビルディングブロックの構成を変更することによって、またはサービスにビルディングブロックを追加または削除することによってサービスを修正することができる。
【００１５】
本発明の他の態様によれば、サービス作成インタフェースは、フロントエンドを含んでおり、また更にフロントエンドを介してアクセス可能なインテリジェント・スキンを含むこともある。
【００１６】
本発明のこれらの態様および他の態様は、添付の図面と添付の特許請求の範囲と共に読まれる本発明の下記の説明から、この技術の通常の知識を有する人々にとって容易に明らかになるであろう。
【００１７】
（発明の詳細な説明）
本発明は、サービスのエンドユーザがサービスを一人以上のエンドユーザに配布するアプリケーションを作成することを可能にするシステムと方法を提供する。本明細書を通して「アプリケーション」は、「サービス」と呼ぶこともできる。このシステムと方法は、新しいサービスをオンラインで作成するためのプログラム作成スキルもサービス作成経験もないエンドユーザのためにユーザ・フレンドリーな方法を提供する。このプラットフォーム上に作成されたサービスはまた、オンラインで起動して実行することができる。ここで使用される用語「装置」は、例えば携帯電話、ハンドヘルド・コンピュータ、インターネット機器を含む、直接的あるいは間接的にネットワークを介してアクセスすることができる如何なる機構をも指している。用語「インターネット機器」は、埋め込み型コンピュータを含む、特定用途型あるいは特定機能型の装置を指しており、インターネットのようなネットワークに接続可能である。インターネット機器は、例えばインターネットで操作可能な冷蔵庫、電子レンジ、ＶＣＲ（ビデオカセットレコーダ）、画面付き電話、ビデオカメラを含むこともできる。このシステムと方法はまた、装置のためのサービスを起動、実行、修正、削除するために使うことができる。
【００１８】
図１は、システムユーザがサービスを作成、起動、実行、修正、削除することを可能にするプラットフォームが動作できる例示的なアーキテクチャを示す。インターネットとプラットフォーム所有者のネットワーク（例えば移動体電話ネットワーク）との両者へのアクセスは、冗長性のあるファイアウォール・ロード・バランス・システムを介して行われる。このようなシステムは、例えばＣｉｓｃｏ（登録商標）から入手可能な装置を使用して実現可能である。このロード・バランス・システムは、すべての到来するＨＴＴＰ要求がアクティブなノードに送信されることを保証している。各ノードは、本発明のソフトウエアを含んでいる。ノードは例えば、Ｓｏｌａｒｉｓオペレーティングシステムを実行するＳｕｎ（登録商標）サーバであってもよい。
【００１９】
ファイアウォール・ロード・バランス・システムからインターネットまたはプラットフォーム所有者のネットワークへの接続は、専用線、イーサーネット接続、非同期伝送モード（ＡＴＭ）といった種々の技術によって実現可能である。ファイアウォール・ロード・バランス・システムから個別ノードへの接続は、例えば１００メガビットあるいは１ギガビットの冗長性イーサーネット接続を介して行われる。これらのノードは、冗長性の光ファイバケーブルに接続される。ファイバ・チャネル・スイッチは、耐故障性記憶装置アレイとデータベース・ノードとに接続される。これらのノードは、ファイバ・チャネル・スイッチを介して各データベース・ノードと記憶装置アレイとに到達できる。
【００２０】
データベース・ノードは、Ｏｒａｃｌｅといった市販のデータベース・サーバを実行する一つ以上のマシン（例えばＳｏｌａｒｉｓ（登録商標）オペレーティングシステムを実行するＳｕｎ（登録商標）サーバ）を含むこともできる。本発明のソフトウエアは、データベース・ノードのソフトウエアと構成とから独立した抽象層を利用する。耐故障性記憶装置アレイは、ＲＡＩＤ５（耐故障性）サポートを有する一連のＳＣＳＩディスク・アレイから、例えばＥＭＣ２が販売している大型の記憶領域ネットワーク（ＳＡＮ）システムの範囲に亘ることができる。したがって、このような技術に精通する人であれば、種々の記憶装置ソリューションが使用可能であることを認めるであろう。
【００２１】
図２は、システムユーザがサービスを作成、起動、実行、修正、削除することを可能にするプラットフォーム２００のコンポーネントの論理図を示す。サービスは、一つ以上の定義済みビルディングブロック２２０を適当にリンクして構成することによって作成される。一つのビルディングブロックは、あるサービスの一つの論理機能的ステップを与える。各ビルディングブロック２２０は、ビルディングブロックの実現と許可とを指示し、そうでなければビルディングブロックの動作を制御するような一セットのルールを含むソフトウエアプログラムを含んでいる。各ビルディングブロックは、サービスを作成するために使用できる固有の機能を実現している。ビルディングブロックはまた、ユーザがある値を割り当てる変数を含むこともある。各ビルディングブロックは、サービス作成者がビルディングブロックを構成することを可能にし、また、そのビルディングブロックが他のどのビルディングブロックあるいはどのタイプのビルディングブロックにリンクできるかを示すことを可能にする構成インタフェースを含んでいる。この構成インタフェースは、ビルディングブロック２２０が完全に構成されるまで構成問合せを一ステップずつユーザに提示することによってビルディングブロック２２０を構成するプロセスを通してユーザをガイドする。構成インタフェースは更に、例えばある特定のビルディングブロックがどのビルディングブロックにリンクできるかを指示することによってサービス作成プロセスを単純化することができる。この指示は、クリックされた場合にビルディングブロックを他のビルディングブロックにリンクして、そのリンクされたビルディングブロックの構成インタフェースにユーザを直ちに接続するハイパーリンクの形式になっていてもよい。任意選択のパラメータだけを持っているか、如何なるパラメータも持たないビルディングブロックは、構成処理を必要としない。
【００２２】
図３Ａは、ビルディングブロック２２０の構成時に行われる処理を示す。構成処理時に各ビルディングブロックは、それがリンクできるビルディングブロックを示す情報を提供することができる。ユーザは、これらの指定されたビルディングブロックの一つを選択して、このビルディングブロックの、構成されるビルディングブロックへの瞬時のリンクを実施することができる。いったんこの選択が行われると、現在のビルディングブロックの構成情報は保存され、新しいビルディングブロックがリンクされてユーザがその新しいビルディングブロックを構成するために新しいビルディングブロックの構成ダイアログが開かれる。サービス作成者がビルディングブロック構成インタフェースのこの機能を使ってリンクすべきビルディングブロックを選択すると、このビルディングブロックは、その構成インタフェースからそれがどのビルディングブロックに、またはビルディングブロック・タイプにリンクされるべきかを指示するコードを返す。この特定の戻りコードを受信すると、プラットフォーム２００は、このリンクを行うようにユーザに指示する。各ビルディングブロックは、画面上にグラフ的に表示される。サービス作成者は、既存のビルディングブロックを選択し、続いてそれにリンクすべきあるビルディングブロックを選択することによってビルディングブロック同士をリンクすることができる。この選択が行われた後に、サービス作成環境は両ブロックがリンクされたことを表示する。このシステムは、リンクされる各ビルディングブロックのタイプとリンク制限とを検査することによってそのリンクが適切であることを確認する。ビルディングブロックは、スタートとストップとその他という３タイプに分類することができる。スタート・ブロックは他のブロックの後ろにリンクすることはできない。ストップ・ブロックの後ろには、如何なるブロックもリンクすることはできない。他のブロックはスタート・ブロックまたは他のブロックの後にリンクしなくてはならない。リンク制限は、二つの入力ブロックをリンクすることは許されない、またループ・ブロック（例えばｆｏｒ、ｗｈｉｌｅなど）をそれ自身とリンクすることは許されないといったことを含むことができる。いったん新しいビルディングブロックがリンクされると（あるいはスタート・ブロックとして受け入れられると）、システムは、このビルディングブロックに関してビルディングブロック構成処理を開始することができる。リンク処理と構成処理のときには、ビルディングブロック間での情報交換は行われない。作成されるサービスのためのビルディングブロックのリンクと構成とに関する情報、すなわちビルディングブロック構成データは、ＯｐｅｎＳＣＥによって管理され、格納される。
【００２３】
図３Ｂは、ビルディングブロックを構成することによってどのようにサービスが作成されるかを更に詳細に示す。一旦あるサービスのビルディングブロックのすべてが構成されると、サービス作成処理は完了してそのサービスはサービス・ディレクトリに追加される。
【００２４】
ビルディングブロックは、サードパーティ、例えばＰｕｒｅＭａｔｒｉｘ（登録商標）によって開発され、ビルディングブロックが動作するプラットフォームの所有者によってインストールされる。プラットフォームに利用可能になる前にビルディングブロックは、例えばプラットフォーム・クラッシュやデータ汚染を含む、プラットフォームの整合性や関連サービスに悪影響を及ぼす可能性を減らすために厳しくテストされる。テストの実施時にはビルディングブロックが意図どおりに機能することを保証するためにビルディングブロックの種々の使用パターンが分析される。
【００２５】
このテストは、プラットフォーム内に構築される整合性検査の多くのレベルの一つを表す。オープン・サービス作成環境２２８（ＯｐｅｎＳＣＥ）は、プラットフォーム２００上にサービスを作成するためのグラフィカル・ユーザ・インタフェースを提供する。ＯｐｅｎＳＣＥ２２８を介してユーザは、ビルディングブロックを選択し、リンクして機能サービス内に構成することができる。いったんＯｐｅｎＳＣＥを使ってサービスが作成されると、そのサービスはデータベース２３２に格納される。このデータベース２３２は、例えばロギングデータや統計データ、セッション・データを含むユーザ情報も格納している。ＯｐｅｎＳＣＥ２２８は、例えばＰＣとＷｅｂＴＶとを含むＨＴＭＬ動作可能装置からのみ利用可能である。
【００２６】
ディレクトリ・サービス２３６は、ユーザが使用できるサービスをそのユーザに表示する。それは、システムユーザが作成したサービスと、プラットフォーム所有者によって作成されたサービスといった定義済みアプリケーションとを含む。ディレクトリ・サービス２３６は、システムユーザがある特定のサービスを容易に見つけ出してアクセスできるようにサービスがインデックス付けされて分類され得るように構成することができる。例えばサービスは、スポーツ関連サービスがスポーツ・ディレクトリに含まれるように主題別にディレクトリ内に構成される。エンドユーザは、例えば頻繁に使われるサービスをディレクトリのトップに移動させることによって各ディレクトリをユーザのニーズに合わせてカスタマイズすることができる。
【００２７】
例えばウェブインタフェースを介して与えられるサービスリンクをクリックすることによって、あるサービスの実行を開始するユーザに応答して、サービス実行環境２４０（ＳＥＥ）は、サービスに関連するデータをデータベース２３２からロードしてそれを実行する。ＳＥＥ２４０は、プログラムの流れ全体とセキュリティとプライバシーとそのサービスの変数とを制御する一方、各ビルディングブロック２２０は、その内部論理の実行を処理する。ＳＥＥ２４０に関する更なる詳細は、図６の説明と共にＳＥＥ４４４に関連して説明される。
【００２８】
サービスの作成と実行のときにそのサービスは、外部データと対話することができる。データ処理システム２４６（ＤＰＳ）は、外部の種々のデータ・ソースと対話し、出入りするデータをフィルタリングし、プラットフォーム２００に送られるデータをバッファに入れる論理を含んでいる。外部データに対するインタフェースは、データがプラットフォーム２００に到着する際のフォーマットでそのデータを読み取り、格納し、分析するプログラムである。これらのデータは、例えばＡＳＣＩＩ、ＸＭＬ、あるいはストリーミングオーディオなどの形をとることができる。サービスが外部データを用いて、あるいは外部データから実行すべき動作を指定すると、ＤＰＳ２４６は、その外部データを吟味し、格納された情報の許容される使用を示すその情報を使用して、使用されないデータをフィルタ除去し、使用されるデータからのイベント（適当であれば）を格納、更新、あるいはトリガーする。
【００２９】
ミドルウエア層２５０は、バック・オフィスやライブラリなどへの接続といった、高い有用性のあるサポート機能をアプリケーションに提供する。例えば異なる販売業者からのデータベースとの対話、データ・ロギングの処理、プラットフォームでの障害の管理などといった能動的機能と、一般機能を有するライブラリの形をした受動的機能との両者を備えたＭａｔｒｉｘＣＯＲＥ（登録商標）は、ミドルウエア層２５０として使用することができる。アプリケーションは、例えばソフトウエアライブラリとアプリケーション・プログラム・インタフェース（ＡＰＩ）とを介してミドルウエア層２５０にインタフェース接続する。これらのアプリケーションは、ソフトウエアライブラリにプログラム的にリンクされて、これらのライブラリによって与えられるＡＰＩを使ってミドルウエア層２５０によって与えられる機能にアクセスする。
【００３０】
バック・オフィス２５４は、プラットフォーム２００を管理し、請求業務データベース、ユーザ・データベースなどといったレガシーシステムとの対話を処理する。レガシーシステムは、すでに存在していてプラットフォーム２００とデータ交換を行うシステムである。バック・オフィス２５４は、プラットフォーム所有者のレガシーシステムにうまく統合するために必要なインタフェースを用意し、プラットフォーム２００を商業的に管理するために必要なツール（ユーザへの提供ツール、マーケッティング・ツール、統計、広告、ハードウエア・ソフトウエア管理、ロギングなど）を提供する。バック・オフィス２５４は、レガシーシステムとインタフェース接続するための、バック・オフィス２５４によって呼び出されるソフトウエアライブラリ内に実現された一セットの柔軟なＡＰＩをサポートする。このシステムは更に、ＡＰＩをサポートしてレガシーシステムにもインタフェース接続するソフトウエアライブラリを含んでいる。このソフトウエアライブラリは、レガシーシステムにインタフェース接続する各モジュールがバック・オフィス２５４の実現に影響を与えることなく除去、交換できるという点でモジュール化されている。
【００３１】
プラットフォーム２００は、無線アプリケーション・プロトコル（ＷＡＰ）といった標準的なプロトコルを使用することによって、装置が理解できるフォーマットでユーザ作成サービスをその目標装置に配布する。
【００３２】
図４は更に、ディレクトリ・サービス４３６とＯｐｅｎＳＣＥ４２８とに関する詳細を示す。無線アプリケーション・プロトコル（ＷＡＰ）・携帯電話、ＰＤＡ、Ｉモード・携帯電話、およびＰＣ、ＷｅｂＴＶ、インターネット機器といったＨＴＭＬ動作可能装置を含む多くの装置は、マーク付け言語とＨＴＴＰとを使用するプラットフォーム２００にアクセスする。これらの装置すべては、プラットフォーム２００のウェブ・フロントエンド（ＷｅｂＦＥ）に接続される。ＷｅｂＦＥは、認証と、セッション管理と、プラットフォームに対して一意のユーザ・インタフェース、概観、感じを与える固有の「スキン」の選択とを処理する。一般にスキンは、基本となるインタフェースの既存の機能を拡張せずに使用する。しかしながらスキンを使って、異なる顧客（例えばＳｐｒｉｎｔＰＣＳ、ＡＴ＆Ｔ　Ｗｉｒｅｌｅｓｓなど）のために、また異なるエンドユーザ・グループ（例えばティーンエージャー、スタートレック（Ｓｔａｒ　Ｔｒｅｋ）のファン、会社の従業員など）のためにプラットフォーム２００のユーザ・インタフェースをカスタマイズすることができる。プラットフォームによって使用されるスキンは、基本となるインタフェースの既存の機能を拡張、修正できる「インテリジェント・スキン」である。「デベロッパ・スキン」は、ＯｐｅｎＳＣＥにユーザ・インタフェースを提供する。エンドユーザは、サービスを使用するときにはスタートレックのスキンを選択できるが、新しいサービスを作成するときにはアドバンスト・ジェネレーション・Ｙ・デベロッパ・スキン（Ａｄｖａｎｃｅｄ　Ｇｅｎｅｒａｔｉｏｎ　Ｙ　Ｄｅｖｅｌｏｐｅｒ　Ｓｋｉｎ）を使用することができる。
【００３３】
ビルディングブロック・インスタンスは、ある特定のサービスで動作するように特別に構成されたビルディングブロックのコピーを指す。ＯｐｅｎＳＣＥはまた、各ビルディングブロック・インスタンスの作成と、１個のビルディングブロックまたは一グループのビルディングブロックのインスタンスのリンク、削除、移動などを取り扱う。ＯｐｅｎＳＣＥ４２８は、サービスの流れデータとコンテキスト・データとを格納するためにディレクトリ・サービス４３６と直接インタフェース接続し、サービスで使用される各ビルディングブロックに関するインスタンス・データを格納するためにビルディングブロックを介して間接的にインタフェース接続する。サービスの流れデータは、サービスを構成するビルディングブロックを含むサービスの論理的流れと、サービスの実行論理を定義するビルディングブロック間のリンクとを反映する。コンテキスト・データは、サービスが誰にとってどのように利用可能にされるかを定義する。
【００３４】
サービスが作成された後にシステムユーザは、そのサービスの作成者によってサービスに割り当てられたアクセス権に依存して、ユーザのサービス・ディレクトリ内でそのサービスを閲覧することができる。ユーザがサービスのディレクトリを検索するためにディレクトリ・サービス４３６にリクエストを入れると、ディレクトリ・サービス４３６は、データベースから対応するディレクトリをロードし、ディレクトリに含まれるエントリーをフィルタリングし、エンドユーザがアクセス権を持たないサービスをすべて除去する。それからディレクトリ・サービス４３６は、例えばエンドユーザのユーザ・プロファイルの設定値にしたがってディレクトリを分類し、例えば頻繁に使用するエントリーをトップに移動するといったエンドユーザが指示した変更を反映するようにディレクトリを修正する。それから広告システム４３８は、例えば広告されるサービスをリストのトップに移動させるようにディレクトリを修正する。ディレクトリ・サービス４３６は、ディレクトリを要求したスキンにそのディレクトリを返す。ディレクトリを要求したスキンは、エンドユーザにそのディレクトリを表示する責任がある。図５は、例示的なディレクトリ・リストの一画面を示す。
【００３５】
ユーザがディレクトリ内に表示されたサービスを選択すると、サービス実行エンジン（ＳＥＥ）４４４は、そのサービスを記述したデータをデータベース２３２からロードして、前述のように、対応するノード内でそのサービスを実行する。サービスの実行に先立ってＳＥＥ４４４は、広告システム４３８に広告を表示するように要求することもある。広告システム４３８は、図７に関連して下記に更に説明するように、広告を実際に表示すべきか、またどの広告を表示すべきかを決定する。
【００３６】
（サービス実行エンジン）
図６は、サービス実行エンジン（ＳＥＥ）４４４の更なる詳細を示す。ＳＥＥ４４４は、実行すべきサービスのための「サービス・コンテキスト」をデータベースからロードする。このサービス・コンテキストは、例えばそのサービスが誰にとって利用可能であるか、どこで利用可能であるかなど、サービスについての一般データを含んでいる。もし、例えばサービスの実行を要求する特定のユーザがサービス実行を許されていないことを示す情報をこのサービス・コンテキストが含んでいれば、ＳＥＥ４４４は、エラーメッセージを返す。もし、それとは反対にユーザがサービスの実行を許されていれば、ＳＥＥ４４４は、そのサービスのビルディングブロックがどのようにリンクされるかを示すデータ・マップをロードする。この「マップ」に基づいてビルディングブロックは、指定された順序にしたがって実行される。この実行順序は、例えばサービスのどの部分が実行されるべきかを条件付きイベントが決定するときに、ビルディングブロックによって影響を受けるようにしてもよい。
【００３７】
各ビルディングブロックの実行は、次のいくつかのステップ、すなわち（１）ビルディングブロックがメモリ内にロードされて初期化されるステップと、（２）ビルディングブロックがそのインスタンスをデータベースからロードする、すなわちそのビルディングブロックに関して構成された変数をロードするステップと、（３）ビルディングブロックが利用可能なインスタンス・データを使って実行されるステップと、（４）ビルディングブロックが、ビルディングブロックの実行時にそのデータ上に置かれた如何なるロックあるいは保護をも除去することによってインスタンス・データを解放するステップと、（５）ビルディングブロックをメモリから解放するステップとを含む。ビルディングブロックがメモリから解放されると、そのビルディングブロックによって使われたメモリ資源は解放されて、他の計算処理が使用するために利用可能となる。これらのステップは、システムが更に種々の最適化アルゴリズムを利用して実行速度を向上させるので、一つのビルディングブロックが実行される度に実行される必要はない。例えば、ビルディングブロックは単に、所定時間のあいだアイドル状態であった後にメモリから解放され、一つのサービス内で二度使われるビルディングブロックがそのサービスの実行が完了するまでメモリ内に留まるようにしてもよい。
【００３８】
サービスの実行はまた、サービスの実行状態をデータベース内に保存することによって中断することができる。この実行状態は、サービスによる使用中の変数の値と、サービスが中断された場合のサービスの実行論理内の位置とを含む。サービスの実行状態がデータベース内に格納された後、サービスの実行は終了する。サービスの実行が再開されるときには、データが検索され、変数と実行状態とが中断前の状態に復元され、サービスはその中断点から再始動する。サービスの中断は、例えばユーザが用紙に記入しなければならないときに使用される。用紙がユーザに送られた後にサービスの実行が中断されてもよい。ユーザが記入の完了した用紙を提出すると、実行は再開される。サービスが実行を完了した後に、そのサービスに関連したデータは廃棄される。
【００３９】
いったんサービスが実行されると、このサービスは、装置から独立したコンテンツ・データの形式で出力を目標装置に供給することができる。プラットフォームは更に、サービスの装置から独立した出力データを例えば無線アプリケーション・プロトコル（ＷＡＰ）規格を使って、目標装置に適したフォーマットに変換する配布用バックエンドを含んでいる。プラットフォーム２００は更に、コンテンツを内部装置から独立したフォーマットから最終出力フォーマットに変換するコンテンツ変換４５０を含んでいる。
【００４０】
（ウィンドウズ・アプリケーションとＪａｖａアプリケーション）
サービスの作成と使用とをスピードアップするためにそれぞれ専用のウィンドウズ・アプリケーション４６０またはＪａｖａアプリケーション４６４を使ってプラットフォーム２００にアクセスすることができる。このようなアプリケーションは、セキュリティと、アプリケーション・プロトコルからサービス作成をサポートする既存の機能、例えばディレクトリ・サービスとＯｐｅｎＳＣＥへの変換とを取り扱う専用のフロントエンドを介してシステムに接続される。
【００４１】
（サービスの起動）
サービスの起動は、一人以上のエンドユーザによる実行のために新しいサービスを利用可能にする処理である。サービス起動処理が成功すると、新しいサービスは、ディレクトリ・サービス４３６に含まれるサービス・ディレクトリを介して利用可能になる。この処理は、プラットフォームの構成、サービス作成者のアクセス権などに依存して、種々のステップを含む可能性がある。下記は、例示的なサービス起動処理である。
【００４２】
１．サービス作成者は、ＯｐｅｎＳＣＥユーザ・インタフェースから「サービスを利用可能にする」オプションを選択することによってサービスの起動を要求する。
【００４３】
２．ＯｐｅｎＳＣＥは、サービスについて下記のステップを含む整合性検査を実施する。
ａ．ビルディングブロックの各々が正しく／完全に構成されているかどうかを決定するステップ。各ビルディングブロックは、ビルディングブロックによって要求されるすべての構成可能な値が初期化されていて有効な値を持っていることを保証することによってこのことを示す。
ｂ．少なくとも二つのビルディングブロックがサービスに含まれているかどうかを決定するステップ。
ｃ．サービスの各ブランチが有効な終了ブロックを持っているかどうかを決定するステップ。
ｄ．サービスのエンドレス・ループが、または過度にＣＰＵ集中の態様が、存在するかどうかを決定するステップ。
ｅ．サービスが大量のデータをサードパーティに送信するかどうかを決定するステップ。
ｆ．サービスが成人向けコンテンツを含んでいるかどうか、もし含んでいればそれが成人向けサービスとしてリストに記載されているかどうかを決定するステップ。
【００４４】
３．サービス作成者が作成したサービスを起動することがそのサービス作成者に許されていることを検証し、もし許されていなければ起動要求Ｅメールをプラットフォーム管理者に送信する。
【００４５】
４．サービス作成者がこのサービスに関して支払いを必要とするかどうかを決定し、もし必要とするのであればサービスに関する請求を処理する。請求が失敗した場合はサービスの起動は中止される。
【００４６】
５．実行時にサービスの誤動作が検出できるようにサービス追跡データをリセットする。
【００４７】
６．各ビルディングブロック（インスタンス）にそのサービスが起動されたことを通知する。これは、各ビルディングブロックが正しく機能することを必要とする外部データを初期化することを可能にする。
【００４８】
７．サービスが実行され得るようにサービス・ディレクトリ内にサービス起動状態を格納する。
【００４９】
ユーザが上述のようにサービスの実行を開始するとき、このサービスは「プル」サービスと呼ばれる。図７は、「プッシュ」サービスの論理コンポーネントを示す。プッシュ・サービスは、例えばエンドユーザが要求しないのにエンドユーザに送られる広告や、ユーザが前に起動したことを思い出させることや、新しい株式相場や、友人からの「誕生日おめでとう」メッセージなどであり得る。「トリガー」は、プッシュ・サービスの実行を開始するイベントである。このトリガーは、例えばタイマー、到来データ、あるいは実行中の他のサービスを含む種々のソースから来る可能性がある。トリガーは、プッシュ・サービス・マネージャ７１２に送られ、このプッシュ・サービス・マネージャ７１２は、そのサービスを実行して出力を適当なエンドユーザに送達するＳＥＥ４４４にトリガーを送信する。どのＳＥＥ４４４が使われるかは、ＨＴＴＰベースの負荷バランスシステムによって決定される。対話型サービスに関しては中間的な情報要求がユーザにプッシュされる。プッシュされた情報に回答することによってユーザは、「プル」を開始し、前述の（図４に関連した）処理が適用される。
【００５０】
ＳＥＥ４４４は、ユーザに送られるデータの処理前か処理中に広告を表示するために広告システム４３８と対話することができる。広告システム４３８は、利用可能な広告をディレクトリ・サービス４３６から要求する。広告システム４３８は、例えば広告とユーザ・プロファイル情報との整合性に基づいて特定の広告を選択することも、ディレクトリ内に含まれる広告をランダムに選択することもできる。広告の選択は、広告管理ソフトウエア・ツールを使用する、製品を用意している製品所有者（製品オーナー）によって管理される。このツールは、製品所有者が製品における広告活動を選択、構成、追跡することを可能にする。
【００５１】
図８は、出力システム８１０を示す。プル・モードで使用されるとき、スキン８２０は、出力データすなわちサービスから出力されるデータを出力システム８１０に渡し、出力システムはこのデータをユーザに適したフォーマットに変換し、変換されたデータをウェブ・サーバ８３０経由でユーザに渡す。プッシュ・モードではプッシュ・サービス・マネージャ８３８は、下記のようにデータを処理する出力システム８１０にサービスの出力を渡す。すなわち、（１）出力システムは、ユーザ・プロファイルから好適な目標装置を検索する（ユーザは多数の無線装置を持っている可能性がある）。（２）出力システムは、目標装置に依存してコンテンツ変換を行う。（３）結果として得られる（装置依存の）データは、これも通常、装置依存の適当な配布システム（ＳＭＳ、Ｅｍａｉｌ、ＷＡＰ　Ｐｕｓｈなど）に渡される。（４）もしエンドユーザに連絡できなければ、例えばもしユーザが所定時間内にメッセージの配布を辞退したならば、そのメッセージは後日の配布のためにメッセージ・ストア８４０内に格納される。
【００５２】
図９は、サービス実行エンジン４４４について更に詳細を示している。サービス実行エンジン４４４は、スキン９２０から、またはプッシュ・サービス・マネージャ７１２から起動することができる。サービス実行エンジン４４４は、サービス・データベースすなわちディレクトリ・サービス４３６からサービス・コンテンツ・データとビルディングブロック・リンク・データとを含むサービスに関するデータを検索する。サービスを実行するとき、サービス実行エンジン４４４は、サービス内で定義された変数を格納する変数管理機構９２４（ＶＭ）と対話する。この図には示されていないが、ビルディングブロック２２０はまた、ＶＭ９２４とも対話することができる。
【００５３】
ＶＭ９２４は更に、整合性検査機構を含んでいる。ＶＭ９２４が管理する各変数に関してＶＭ９２４は、誰が変数に含まれるデータに対するアクセス権を持っているかを追跡する。既存の変数からのデータを使って新しい変数が作成されると、この新しい変数には、少なくともその既存の変数と同じプライバシー設定が割り当てられる。ＶＭ９２４はまた、出力データがサービスのエンドユーザに配布されるのに先立ってその出力データが適切な形式になっていることを検証する。ＶＭ９２４は、変数に関して許容可能なデータタイプを示す各ビルディングブロックによって与えられる情報に基づいてこの決定を行う。
【００５４】
ＶＭ９２４はまた、変数を格納し、サービスによって使用された変数の値とサービスが中断されたサービスの実行論理内の位置の指示とを含むセッション・データを格納する一時データベース９２８から変数を検索する。サービスは、例えばユーザがサービスの実行中に用紙の記入を完了しなくてはならないときに中断して、それから再開することができる。サービスは、ユーザが用紙の記入を完了させているあいだ中断して、ユーザが完了した用紙を提出した後に再開することができる。
【００５５】
プッシュ・サービス・マネージャ７１２は、データが時間決めサービス・マネージャ９３０とデータ処理システム（ＤＰＳ）２４６とからエンドユーザに送られる必要があることを示すトリガーを受信する可能性がある。時間決めサービス・マネージャ９３０は、プラットフォーム２００上に実現された時間決めサービスを追跡し、トリガーを送ってこれらのサービスの各々を起動する。各時間決めサービスは、タイマー・ビルディングブロックを含んでいる。時間決めサービスが起動されると、タイマー・ビルディングブロックは、時間決めサービス・マネージャ９３０と連絡を取って、この場合にはタイマーイベントとしても知られるサービス実行トリガーを作成するために必要とされる指定の日時、曜日などを反映するデータをこの時間決めサービス・マネージャ９３０に渡す。
【００５６】
図１０は、ＤＰＳ２４６について更に詳細を示す。ＤＰＳ２４６は、プラットフォーム２００上に構築されたサービス内で使用することができる外部のデータ源とインタフェース接続する。これは、例えばＯｒａｃｌｅデータベース、ＰｅｏｐｌｅＳｏｆｔといったレガシーシステムとインタフェース接続し、それによってこれらのシステムは、プラットフォーム２００上に作成されたサービス内から使用可能になる。これはまた、種々の外部情報源からサービス内に供給される種々のデータを変換して格納する。ＤＰＳ２４６は、例えばＲｅｕｔｅｒｓ（登録商標）ニュース配信、Ｂｌｏｏｍｂｅｒｇ（登録商標）スポーツ配信、ＮＡＳＤＡＱ（登録商標）証券取引所データ配信、メール・リスト、Ｗｅｂページ、ワープロ・ファイル、ＭＰ３ストリーミング・オーディオ・ビデオなどを含む、例えばＸＭＬベース、ＡＳＣＩＩベースのデータ配信を処理することができる。
【００５７】
すべてのデータ配信（片方向、双方向のいずれでも）は、一つ以上のビルディングブロック、ＤＰＳビルディングブロック１０７０（ＤＰＳＢＢ）からアクセスおよび／または制御することができる。ＤＰＳＢＢ１０７０は、プラットフォームからどのデータが出てくるか、レガシーシステム例えばＯｒａｃｌｅデータベース上でどんなトランザクションが実行されるかを管理する。これらはまた、到来データのためのトリガーを作成して到来データの一部をＤＰＳデータベース１０３８に格納するリアルタイム・フィルタ１０３０の動作を制御する。一般に、サービスで実際に使用されるデータだけがＤＰＳデータベース１０３８に格納される。リアルタイム・フィルタ１０３０は更に、それがＤＰＳＢＢ１０７０から受信するフィルタリング・ルールを格納してリアルタイム動作を可能にするそれ自身の高速度の内部データベースを含んでいる。
【００５８】
ＤＰＳマネージャ１０４４は、外部配信データとＤＰＳＢＢとＤＰＳデータベースとの間の対話を制御する。これは、どの外部データ配信がプラットフォーム２００に接続されることを許可されているか、これらのデータ配信は、どのように処理されるべきか、どの情報がＤＰＳＢＢ１０７０に利用可能とされるべきか、どの情報がＤＰＳデータベース１０３８内に格納可能であるかを決定する。
【００５９】
前述のようにプラットフォーム２００は、それを用いて作成されるサービスの整合性を確認するステップをとる。もしシステムに障害が起きれば、「自動回復」システムは、その障害を検出し、それをサービス作成に使用できなくしてサービスの一部としてもはや実行できないようにデータベースからそれを除去することによって適当なビルディングブロックを不活性化するであろう。プラットフォームは、例えば無効ビルディングブロックの順序付けを有するサービスが活性化され得ないことを保証することによって、ビルディングブロックがリンクされる順序を制限する。更にプラットフォームは、プラットフォーム所有者の明示的な許可がない場合にはウェブ・フロントエンド以外の、または専用アプリケーションのためのプロトコル以外のインタフェースを介してではアクセスされない可能性がある。個々のビルディングブロックは更に、システムがサービスの起動に先立って吟味するエラーチェックパラメータを持つこともできる。したがってプラットフォーム所有者は、そのプラットフォームで作成されたサービスをテストする必要がない。
【００６０】
本発明の方法とシステムは特定の実施の形態を参照して説明されたが、当業者は本発明の精神と範囲とから逸脱することなく、実施できる形式と細部とにおける種々の変更について知るであろう。したがって本発明の範囲は、添付の特許請求の範囲とそれらの同等事項の全範囲とによってのみ定義される。
【図面の簡単な説明】
【図１】
本発明が動作できる例示的なアーキテクチャを示す図。
【図２】
本発明の論理図。
【図３】
ビルディングブロックの構成時に行われる処理の流れ図と、ビルディングブロックのサービスの作成時に行われる処理の流れ図。
【図４】
図２に示すディレクトリ・サービスとＯｐｅｎＳＣＥ（オープン・サービス作成環境）とを更に詳細に示す図。
【図５】
例示的なディレクトリ・リストの一画面を示す図。
【図６】
ＳＥＥ（サービス実行環境）の更に細部を示す図。
【図７】
「プッシュ」サービスに関して実行される処理の例を示す図。
【図８】
図２に示す出力システムを更に詳細に示す図。
【図９】
図２に示すサービス実行環境を更に詳細に示す図。
【図１０】
図２に示すデータ処理システムを更に詳細に示す図。
【図１】
2004507818.tif 000003
【図２】
2004507818.tif 000004
【図３】
2004507818.tif 000005
【図４】
2004507818.tif 000006
【図５】
2004507818.tif 000007
【図６】
2004507818.tif 000008
【図７】
2004507818.tif 000009
【図８】
2004507818.tif 000010
【図９】
2004507818.tif 000011
【図１０】
2004507818.tif 000012
【国際公開パンフレット】
2004507818.tif 000013
2004507818.tif 000014
2004507818.tif 000015
2004507818.tif 000016
2004507818.tif 000017
2004507818.tif 000018
2004507818.tif 000019
2004507818.tif 000020
2004507818.tif 000021
2004507818.tif 000022
2004507818.tif 000023
2004507818.tif 000024
2004507818.tif 000025
2004507818.tif 000026
2004507818.tif 000027
2004507818.tif 000028
2004507818.tif 000029
2004507818.tif 000030
2004507818.tif 000031
2004507818.tif 000032
2004507818.tif 000033
2004507818.tif 000034
2004507818.tif 000035
2004507818.tif 000036
2004507818.tif 000037
2004507818.tif 000038
2004507818.tif 000039
2004507818.tif 000040
2004507818.tif 000041
2004507818.tif 000042
2004507818.tif 000043
2004507818.tif 000044
【国際調査報告】
2004507818.tif 000045