(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-19
(45)【発行日】2024-07-29
(54)【発明の名称】ウェブサービスと非ウェブサービスとの間でメッセージを通信するためのシステムおよび方法
(51)【国際特許分類】
G06F 9/54 20060101AFI20240722BHJP
【FI】
G06F9/54 Z
(21)【出願番号】P 2023538859
(86)(22)【出願日】2021-11-16
(86)【国際出願番号】 US2021059467
(87)【国際公開番号】W WO2022146568
(87)【国際公開日】2022-07-07
【審査請求日】2023-06-22
(32)【優先日】2021-01-04
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520128820
【氏名又は名称】ノースロップ グラマン システムズ コーポレーション
(74)【代理人】
【識別番号】100105957
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】ルーカー、マシュー アール.
(72)【発明者】
【氏名】ベルモア、マーク エイ.
(72)【発明者】
【氏名】ビーティー、クリストファー
(72)【発明者】
【氏名】イオディーチェ、デイビッド エム.
(72)【発明者】
【氏名】ブランド、フォレスト
【審査官】坂東 博司
(56)【参考文献】
【文献】米国特許出願公開第2004/0006653(US,A1)
【文献】米国特許出願公開第2005/0027886(US,A1)
【文献】米国特許出願公開第2002/0116454(US,A1)
【文献】米国特許第10693885(US,B2)
【文献】米国特許出願公開第2013/0205023(US,A1)
【文献】特開2019-012553(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/54
(57)【特許請求の範囲】
【請求項1】
システムであって、
機械可読命令を保存するためのメモリと、
前記機械可読命令を実行するための1つまたは複数のプロセッサと、を備え、前記機械可読命令は、前記1つまたは複数のプロセッサを、
リーダデータおよび/またはライタデータを生成するように構成された非ウェブサービスと、
前記非ウェブサービスと通信して、
前記非ウェブサービスから前記リーダデータおよび/またはライタデータを受信するように構成されたウェブサービスインタフェース(以下、WSIとする)であって、前記リーダデータ
によって、前記非ウェブサービスによって提供されるデータを取得する許可が与えられた1つまたは複数のサービス
が特定
され、前記ライタデータ
によって、前記非ウェブサービスにデータを提供する許可が与えられた1つまたは複数のサービス
が特定
される、前記WSIと、
前記リーダデータおよび/または前記ライタデータを受信したこと応答して、前記非ウェブサービスに関する非ウェブサービスサブスクライバデータおよび/または非ウェブサービスパブリッシャデータを前記WSIに提供するように構成されたサービスディレクトリであって、前記非ウェブサービスサブスクライバデータ
によって、前記非ウェブサービスによって提供されるデータのサブスクライバとして
の外部システム上で実行されるウェブサービス
が特定
され、前記非ウェブサービスパブリッシャデータ
によって、前記非ウェブサービスがデータを取得することを可能にするデータのパブリッシャとして
の前記ウェブサービス
が特定
される、前記サービスディレクトリ
として機能させ、前記WSIは、ウェブサービスサブスクライバデータおよび/またはウェブサービスパブリッシャデータを前記非ウェブサービスに提供して、前記非ウェブサービスが前記ウェブサービスと通信することを可能にするように構成される、システム。
【請求項2】
前記WSIは、クリティカルアブストラクト層に配置され、前記システムは、オープンミッションシステム規格に従って構成される、請求項1に記載のシステム。
【請求項3】
前記WSIは、ハイパーテキスト転送プロトコル(以下、HTTPとする)メソッドを含み、前記非ウェブサービスは、前記HTTPメソッドを呼び出して、前記リーダデータおよび/またはライタデータを1つまたは複数のメッセージとして前記サービスディレクトリに伝達するように構成される、請求項2に記載のシステム。
【請求項4】
前記サービスディレクトリは、サービスメッセージインタフェース(以下、SMIとする)およびパブリッシャ-サブスクライバデータベースを含み、前記SMIは、前記1つまたは複数のメッセージから前記リーダデータおよび/または前記ライタデータを抽出し、抽出された前記リーダデータおよび/または前記ライタデータを前記パブリッシャ-サブスクライバデータベースに保存するように構成される、請求項3に記載のシステム。
【請求項5】
前記SMIは、前記非ウェブサービスによって提供されるデータのサブスクライバおよび/または前記非ウェブサービスがデータを取得することを可能にするデータのパブリッシャに関して前記パブリッシャ-サブスクライバデータベースに問い合わせるように構成され、前記パブリッシャ-サブスクライバデータベースは、前記パブリッシャ-サブスクライバデータベースへの問い合わせに応答して、前記非ウェブサービスサブスクライバデータおよび/または前記非ウェブサービスパブリッシャデータを提供するようにプログラムされる、請求項4に記載のシステム。
【請求項6】
前記1つまたは複数のメッセージは1つまたは複数の第1のメッセージであり、前記HTTPメソッドは第1のHTTPメソッドであり、前記サービスディレクトリは第2のHTTPメソッドを含み、前記SMIは、前記第2のHTTPメソッドを呼び出して、前記非ウェブサービスサブスクライバデータおよび/または前記非ウェブサービスパブリッシャデータを1つまたは複数の第2のメッセージとして前記WSIに伝達するように構成される、請求項5に記載のシステム。
【請求項7】
前記WSIは抽出器を含み、前記抽出器は、前記1つまたは複数の第2のメッセージから前記非ウェブサービスサブスクライバデータおよび/または前記非ウェブサービスパブリッシャデータを抽出し、前記非ウェブサービスが前記ウェブサービスと通信することを可能にするために、抽出された前記非ウェブサービスサブスクライバデータおよび/または抽出された前記非ウェブサービスパブリッシャデータを前記非ウェブサービスに提供するように構成される、請求項6に記載のシステム。
【請求項8】
前記SMIは
、前記ウェブサービスがデータを取得することを可能にするデータの
サブスクライバに関する
、前記ウェブサービスによって提供される1つまたは複数のウェブサービス要求を受信するようにさらに構成される、請求項7に記載のシステム。
【請求項9】
前記SMIは、前記1つまたは複数のウェブサービス要求に基づいて、前記ウェブサービスによって提供されるデータの前記サブスクライバおよび/または前記ウェブサービスがデータを取得することを可能にするデータの前記パブリッシャに関して前記パブリッシャ-サブスクライバデータベースに問い合わせるように構成され、前記パブリッシャ-サブスクライバデータベースは、前記パブリッシャ-サブスクライバデータベースへの問い合わせに応答して、ウェブサービスサブスクライバデータおよび/またはウェブサービスパブリッシャデータを提供するようにプログラムされる、請求項8に記載のシステム。
【請求項10】
前記ウェブサービスサブスクライバデータ
によって、前記ウェブサービスによって提供されるデータのサブスクライバとして
の前記非ウェブサービス
が特定
され、前記ウェブサービスパブリッシャデータ
によって、前記ウェブサービスがデータを取得することを可能にするデータのパブリッシャとして
の前記非ウェブサービス
が特定
される、請求項9に記載のシステム。
【請求項11】
前記WSIは、前記非ウェブサービスがオンラインであることを示すステータスデータを含むメッセージを前記サービスディレクトリに定期的に伝達するように構成され、前記ステータスデータは、前記非ウェブサービスによって提供される、請求項10に記載のシステム。
【請求項12】
前記SMIは、定義された期間内に前記ステータスデータを含む個々のメッセージを受信しないことに応答して、データの前記パブリッシャおよび/またはデータの前記サブスクライバとしての前記非ウェブサービスを前記パブリッシャ-サブスクライバデータベースから除去するように構成される、請求項11に記載のシステム。
【請求項13】
前記WSIは、前記非ウェブサービスに応答して、データの前記パブリッシャおよび/またはデータの前記サブスクライバとしての前記非ウェブサービスを前記パブリッシャ-サブスクライバデータベースから除去するための削除要求を含むメッセージを生成するように構成される、請求項12に記載のシステム。
【請求項14】
方法であって、
コンピュータ上で実行されるウェブサービスインタフェース(以下、WSIとする)が、
前記コンピュータ上で実行される非ウェブサービスによって生成されたリーダデータおよび/またはライタデータを受信するステップであって、前記WSIは、前記非ウェブサービスを含むオープンミッションシステム(OMS)規格に従って構成されたシステムのクリティカルアブストラクト層に配置されている、前記リーダデータおよび/または前記ライタデータを受信するステップと、
ここで、前記リーダデータによって、前記非ウェブサービスによって提供されるデータを取得する許可が与えられた1つまたは複数のサービスが特定され、前記ライタデータによって、前記非ウェブサービスにデータを提供する許可が与えられた1つまたは複数のサービスが特定され、
前記コンピュータ上で実行されるサービスディレクトリが、前記リーダデータおよび/または前記ライタデータをサブスクライバ-パブリッシャデータベースに保存したことに応答して、前記非ウェブサービスに対する非ウェブサービスサブスクライバデータおよび/または非ウェブサービスパブリッシャデータを生成するステップと、
ここで、前記非ウェブサービスサブスクライバデータによって、前記非ウェブサービスによって提供されるデータのサブスクライバとしての外部のコンピュータ上で実行されるウェブサービスが特定され、前記非ウェブサービスパブリッシャデータによって、前記非ウェブサービスがデータを取得することを可能にするデータのパブリッシャとしての前記ウェブサービスが特定され、
前記WSIが、前記非ウェブサービスサブスクライバデータおよび/または前記非ウェブサービスパブリッシャデータが前記非ウェブサービスに提供されて、前記非ウェブサービスが
前記ウェブサービスと通信することが可能となるようにするステップと、
前記サービスディレクトリが、前記ウェブサービスによって提供されるデータのサブスクライバおよび/または前記ウェブサービスがデータを取得することを可能にするデータのパブリッシャに関する1つまたは複数のウェブサービス要求を受信するステップであって、データの前記パブリッシャは前記非ウェブサービスを含む、前記1つまたは複数のウェブサービス要求を受信するステップと、
前記サービスディレクトリが、前記1つまたは複数のウェブサービス要求に応答して、ウェブサービスサブスクライバデータおよび/またはウェブサービスパブリッシャデータを生成するステップと、
前記サービスディレクトリが、前記ウェブサービスサブスクライバデータおよび/または前記ウェブサービスパブリッシャデータが前記ウェブサービスに提供されて、前記ウェブサービスが前記非ウェブサービスと通信することが可能となるようにするステップと、を含む方法。
【請求項15】
前記サービスディレクトリが、前記非ウェブサービスがオンラインであることを示すステータスデータを定期的に受信するステップであって、前記ステータスデータは前記非ウェブサービスによって提供される、前記ステータスデータを定期的に受信するステップと、
定義された期間内に前記ステータスデータを含む個々のメッセージを受信しないことに応答して、データの前記パブリッシャおよび/またはデータの前記サブスクライバとしての前記非ウェブサービスを前記サービスディレクトリから除去するステップと
、をさらに含む、請求項14に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ウェブサービスと非ウェブサービスとの間でメッセージを通信するためのシステムおよび方法に関する。
【背景技術】
【0002】
オープンミッションシステム(OMS: Open Mission Systems)規格は、ミッションシステムのより高い再利用および統合リスクの低減を可能にする、ミッションシステムのペイロードおよびサブシステムのための共通アーキテクチャの構築に焦点を当てたイニシアティブである。OMS規格の目標は、安価な技術的なリフレッシュおよびインサーション、簡略化されたミッションシステム統合、サービス再利用および相互運用性、ならびにライフサイクルを通じた競争を可能にする、非プロプライエタリミッションシステムアーキテクチャ規格に対する業界コンセンサスを形成することである。一例として、OMS規格は、サービス指向アーキテクチャ、定義されたメッセージスキーマ、ソフトウェアサービスのアプリケーションプログラムインタフェース(API:application program interface)を使用し、かつセーフティクリティカルな航空機サブシステムを分離する航空機ミッションシステムアーキテクチャを定義するために使用され得る。
【発明の概要】
【0003】
本開示は、ウェブサービスと非ウェブサービスとの間でメッセージを通信するためのシステムおよび方法に関する。
一例では、システムは、ウェブサービスインタフェース(WSI:web service interface)と、サービスディレクトリとを含み得る。WSIは、リーダデータ(reader data)および/またはライタデータ(writer data)を受信するように非ウェブサービスと通信するように構成され得る。リーダデータは、非ウェブサービスによって提供されるデータを取得する許可を与えられた1つまたは複数のサービスを特定し得、ライタデータは、非ウェブサービスにデータを提供する許可を与えられた1つまたは複数のサービスを特定し得る。サービスディレクトリは、リーダデータおよび/またはライタデータを受信したことに応答して、非ウェブサービスに関する非ウェブサービスサブスクライバデータ(non-web service subscriber data)および/または非ウェブサービスパブリッシャデータ(non-web service publisher data)をWSIに提供するように構成され得る。非ウェブサービスサブスクライバデータは、非ウェブサービスによって提供されるデータのサブスクライバとしてウェブサービスを特定し得、非ウェブサービスパブリッシャデータは、非ウェブサービスがデータを取得することを可能にするデータのパブリッシャとしてウェブサービスを特定し得る。WSIは、ウェブサービスサブスクライバデータおよび/またはウェブサービスパブリッシャデータを非ウェブサービスに提供して、非ウェブサービスがウェブサービスと通信することを可能にするように構成され得る。
【0004】
別の例では、システムは、機械可読命令およびデータを保存するためのメモリを含み得る。システムは、メモリにアクセスし、機械可読命令を実行するための1つまたは複数のプロセッサをさらに含み得る。機械可読命令は、プロセッサに、非ウェブサービスによって生成されたリーダデータおよび/またはライタデータを受信することを行わせ得る。リーダデータは、非ウェブサービスによって提供されるデータを取得する許可を与えられた1つまたは複数のサービスを特定し得、ライタデータは、非ウェブサービスにデータを提供する許可を与えられた1つまたは複数のサービスを特定し得る。機械可読命令はさらに、プロセッサに、非ウェブサービスに関するリーダデータおよび/またはライタデータをパブリッシャ-サブスクライバデータベースに保存し、非ウェブサービスによって提供されるデータのサブスクライバおよび/または非ウェブサービスがデータを取得することを可能にするデータのパブリッシャに関してパブリッシャ-サブスクライバデータベースに問い合わせることを行わせ得る。機械可読命令はさらに、プロセッサに、パブリッシャ-サブスクライバデータベースへの問い合わせに応答して、非ウェブサービスサブスクライバデータおよび/または非ウェブサービスパブリッシャデータを生成し、非ウェブサービスサブスクライバデータおよび/または非ウェブサービスパブリッシャデータが非ウェブサービスに関連付けられたWSIに提供されて、非ウェブサービスサブスクライバデータおよび/または非ウェブサービスパブリッシャデータを非ウェブサービスに提供するようにして、非ウェブサービスがウェブサービスと通信することを可能にさせることを行わせ得る。
【0005】
さらなる例では、方法は、WSIが、非ウェブサービスによって生成されたリーダデータおよび/またはライタデータを受信することを含み得る。WSIは、非ウェブサービスを含むオープンミッションシステム(OMS)規格に従って構成されたシステムのクリティカルアブストラクト層(critical abstract layer)に配置され得る。方法はさらに、サービスディレクトリが、リーダデータおよび/またはライタデータをサブスクライバ-パブリッシャデータベースに保存したことに応答して、非ウェブサービスに対応する非ウェブサービスサブスクライバデータおよび/または非ウェブサービスパブリッシャデータを生成するステップと、WSIが、非ウェブサービスサブスクライバデータおよび/または非ウェブサービスパブリッシャデータが非ウェブサービスに提供されて、非ウェブサービスがウェブサービスと通信することが可能となるようにするステップと、サービスディレクトリが、ウェブサービスによって提供されるデータのサブスクライバおよび/またはウェブサービスがデータを取得することを可能にするデータのパブリッシャに関する1つまたは複数のウェブサービス要求を受信するステップと、を含み得る。データのパブリッシャは、非ウェブサービスを含み得る。方法は、1つまたは複数のウェブサービス要求に応答して、ウェブサービスサブスクライバデータおよび/またはウェブサービスパブリッシャデータを生成するステップと、サービスディレクトリが、ウェブサービスサブスクライバデータおよび/またはウェブサービスパブリッシャデータがウェブサービスに提供されて、ウェブサービスが非ウェブサービスと通信することが可能となるようにするステップとをさらに含み得る。
【図面の簡単な説明】
【0006】
【
図3】OMSシステムのさらなる例を示す図である。
【
図5】非ウェブサービスと通信するサービスディレクトリの一例を示す図である。
【
図6】ウェブサービスと通信するサービスディレクトリの一例を示す図である。
【
図9】非ウェブサービスがウェブサービスと通信することを可能にする方法の一例を示す図である。
【
図10】ウェブサービスと非ウェブサービスとの間の通信を可能にする方法の別の例を示す図である。
【発明を実施するための形態】
【0007】
本開示は、ウェブサービスと非ウェブ規格サービスとの間でデータを通信するためのシステムおよび方法に関する。
OMS規格に基づくシステム(例えば、航空機ミッションシステム、兵器システムなど)は、メッセージブローカサービス(message broker service)を使用して、非ウェブサービス(例えば、OMSサービス)とウェブサービスとの間のメッセージとしてのデータの交換を可能にするサービス指向アーキテクチャを使用する。メッセージブローカは、中間サービスとして機能し、ウェブサービスからの非ウェブ規格メッセージを処理して、これらのメッセージをウェブサービスにおいてウェブ取り込み可能なメッセージに変換する。しかしながら、OMSシステムの非ウェブサービスとインターネット上のウェブサービスとの間でメッセージを交換するための仲介(brokered)メッセージソリューションは、商用ライセンスを必要とし、従って膨大な費用がかかる可能性がある。さらに、仲介メッセージソリューションは、OMSシステムの処理能力およびメモリ能力の使用を増加させ、これは、OMSシステムの性能を阻害し得る。
【0008】
本明細書で説明されるシステムおよび方法は、OMSサービス等の非ウェブ規格サービスが、メッセージブローカサービスを使用することなく、インターネット上のウェブサービスまたはOMSシステムの他のOMSサービスにハイパーテキスト転送プロトコル(HTTP:Hypertext Transfer Protocol)に従ってメッセージを通信することを可能にする。いくつかの例では、本明細書で説明されるシステムおよび方法によれば、ウェブサービスは、表現状態転送(REST:representational state transfer )規格に従って構成され得る。いくつかの例では、RESTfulウェブサービスは、ウェブサービスのためのRESTfulアーキテクチャに従うようにプログラムされ得る。RESTfulアーキテクチャに準拠し得るウェブサービスは、RESTfulウェブサービスと称され得る。本明細書で説明されるシステムおよび方法は、既存の規格およびウェブサービス規格の両方への準拠を維持しながら、ウェブサービスと現在インタフェースしていない既存の規格(例えば、OMS規格)からウェブサービス通信方式を抽象化することを可能にし、従って、これらのサービスが構築されている規格の知識なしに、これらの異種サービスが通信することを可能にする。
【0009】
本明細書で説明されるシステムおよび方法は、OMSシステムのCALにおけるWSIと、サービスディレクトリとを使用して、OMSシステムの非ウェブサービスが、これらのメッセージが中間サービスによって処理されることを必要とせずに、HTTPに基づいてウェブサービスと通信することを可能にし、従って、異種サービス(例えば、ウェブサービスおよび非ウェブサービス)間の通信を可能にする。さらに、本明細書で説明されるシステムおよび方法は、共通の通信規格を介したOMSシステムの非規格サービスの相互運用性を向上させ、ウェブサービスを使用する者による技術的専門知識の必要性を減少させ、メッセージ通信のためにブローカーサービスが必要とされないことでOMSシステム性能を向上させ、商用ライセンスが必要とされないことでOMSシステム全体のコストを削減する。本明細書では、OMSシステムのコンテキストにおける非ウェブ規格サービスとしてのOMSサービスに基づいて多くの例が提示されているが、本明細書の例は、OMSシステムのOMSサービスがウェブサービスと通信できるようにすることのみに解釈および/または限定されるべきではない。本明細書で説明されるシステムおよび方法は、任意の非ウェブサービスが、非ウェブサービスとは異なる規格を使用するウェブサービスからメッセージを伝達および受信することを可能にするために使用され得る。
【0010】
図1は、OMSシステム100の非ウェブサービス104がウェブサービス106と通信することを可能にするWSI102を備えて構成されたOMSシステム100の一例である。いくつかの例では、非ウェブサービス104は、OMSシステム100のOMSサブシステムに関連付けられ得る。従って、いくつかの例では、非ウェブサービス104は、OMSサブシステムアプリケーションによって使用され得る。いくつかの例では、ウェブサービス106はウェブクライアントに関連付けられ得る。他の例では、ウェブサービス106は、ウェブクライアントのためのウェブAPIとして実施され得る。さらなる例では、ウェブサービス106は、ウェブクライアントの一部として実施され得る。
【0011】
例として、OMSシステム100がOMS準拠の兵器システムとして実装される場合、非ウェブサービス104は、OMS準拠の兵器システムの電気光学および赤外線(EO/IR:electro-optical and infrared)用途のためのEO/IRサービスを担当し得る。いくつかの例では、非ウェブサービス104は、レーダーサービス、能力/リソース管理サービス、またはミッション計画サービスを担当し得る。非ウェブサービス104は、CAL108と通信することができる。CAL108は、対応するOMSシステムの非ウェブサービスとの間でデータを通信するためのOMS APIを含み得る。従って、CALは、OMSメッセージングスキーマ(例えば、拡張マークアップ言語(XML:extensive markup language)スキーマ)のソフトウェアメッセージタイプ(例えば、CALメッセージ)への変換によって定義され得るインタフェースを含み得る。従って、CAL108は、CALメッセージの作成およびそのようなメッセージの操作(例えば、CALメッセージのフィールドの設定/アクセス)のために、対応するOMSシステムにおいて使用され得る。いくつかの例において、WSI102は、CAL108のOMS APIにおいて実装される。
【0012】
CAL108は、OMSシステム100のASL110とインタフェースするように構成され得る。非ウェブサービス104とASL110との間でCAL108を使用することによって、CAL108は、非ウェブサービス104をASL110から分離する(isolate)(例えば、隔離する(segregate))ことができる。従って、CAL108は、ASL110のトランスポート機能から非ウェブサービス104を抽象化することができる。いくつかの例では、ASL110は、非ウェブサービスの機能に影響を与えることなく、非ウェブサービスがトランスポート機構を変更することを可能にするように構成され得る。さらなる例では、ASL110は、メッセージブローカサービスを使用する通信のために構成された非ウェブサービスのためのパブリッシャ-サブスクライバインタフェースを提供するように構成され得る。例として、ASL110は、非ウェブサービス104によって提供されるコマンドおよび制御(C2)メッセージ、データ、および他の信号の送信をサポートするように構成され得るトランスポート機構を担当し得る。従って、非ウェブサービス104は、CAL108を利用して、コマンドおよび制御イニシアティブ(UCI:command and control initiatives)メッセージ、データ、または他の信号を送受信するように構成され得る。いくつかの例では、WSI102は、ウェブサーバとして実装することができ、かつCAL108にソフトウェアプラグインとして組み込むことができる。
【0013】
いくつかの例では、ASL110は、アブストラクトサービスバス(ASB:Abstract Service Bus)と称され得る。
図1の例は、CAL108をASL110とは別個のものとして示しているが、いくつかの例では、ASL110はCAL108を含むことができる。従って、いくつかの例において、WSI102は、ASL110において実装され得る。いくつかの例では、ASL110は、ソフトウェアコンポーネントおよびハードウェアコンポーネントを含む任意の数のトランスポート機構を含み得る。ASL110は、ミッションサービス機能が他のサービス、サブシステム、および/またはリソースに利用可能となるように構成され得る。例えば、ASL110は、ミドルウェア層、ネットワーク層、およびトランスポート層を含み得る。いくつかの例では、ASL110は、物理インタフェース(例えば、イーサネット(登録商標)インタフェース接続又はポート)、データ転送インタフェース、特殊信号インタフェース、コア機能、および/またはセキュリティ情報交換を含み得る。CAL108においてWSI102を使用することによって、OMSシステム100の非ウェブサービス104は、ウェブサービス106と通信することができる。ウェブサービス106は、インターネット(
図1には図示せず)上に存在し得る。いくつかの例では、ウェブサービス106は、クラウドコンピューティング環境内に存在し得る。既存のOMSシステムは、現在、メッセージブローカサービスを利用するウェブサービス106などの外部ウェブサービスと通信するように構成されている。しかしながら、外部ウェブサービスとメッセージを交換するための仲介メッセージソリューションは、商用ライセンスを必要とする。さらに、仲介メッセージソリューションは、OMSシステムの処理能力およびメモリ能力の使用を増加させ、これは、OMSシステムの性能を阻害し得る。サービスディレクトリ112と組み合わせて、CAL108においてWSI102を使用することによって、非ウェブサービス104は、メッセージブローカサービスを使用することなく、ウェブサービス106と通信することが可能となる。
【0014】
いくつかの例では、WSI102は、サービスディレクトリ112と通信するように構成され得る。
図1の例では、サービスディレクトリ112はOMSシステム100の外部にあるが、いくつかの例では、OMSシステム100はサービスディレクトリ112を含み得る。サービスディレクトリ112は、非ウェブサービスサブスクライバデータおよび/またはウェブサービスサブスクライバデータを保存し得る。非ウェブサービスサブスクライバデータは、非ウェブサービス104によって生成されたメッセージのサブスクライバとして、ウェブサービス106および/またはOMSシステム100の別の非ウェブサービス(
図1には図示せず)などの1つまたは複数の他のサービスを特定し得る。いくつかの例では、非ウェブサービスサブスクライバデータは、1つまたは複数の他のサービスに向けられた非ウェブサービス104によって生成されたメッセージのサブスクライバの各々に関する1つまたは複数のトピックを特定し得る。いくつかの例では、非ウェブサービス104は、非ウェブサービスサブスクライバデータの1つまたは複数のトピックの個々のトピックに基づいて、データを1つまたは複数の他のサービスに送信するように構成され得る。従って、非ウェブサービスサブスクライバデータは、1つまたは複数のトピックおよび非ウェブサービス104によって生成された個々のメッセージを受信することになる関連する1つまたは複数のサブスクライバを特定することができる。
【0015】
いくつかの例では、ウェブサービスサブスクライバデータは、ウェブサービス106によって生成されたメッセージのサブスクライバとして、非ウェブサービス104および/またはOMSシステム100の他の非ウェブサービスなどの1つまたは複数の他のサービスを特定し得る。いくつかの例では、ウェブサービスサブスクライバデータは、1つまたは複数の他のサービスに向けられたウェブサービス106によって生成されたメッセージのサブスクライバの各々に関する1つまたは複数のトピックを特定し得る。いくつかの例では、ウェブサービス106は、ウェブサービスサブスクライバデータの1つまたは複数のトピックの個々のトピックに基づいて、データを1つまたは複数の他のサービスに送信するように構成され得る。従って、ウェブサービスサブスクライバデータは、ウェブサービス106によって生成されたメッセージを受信することになる1つまたは複数のサブスクライバを特定することができる。いくつかの例では、サービスディレクトリ112は、ウェブサービスパブリッシャデータを保存するように構成され得る。ウェブサービスパブリッシャデータは、ウェブサービス106がデータを取得することができる1つまたは複数のサービス(例えば、非ウェブサービス104および/または他の非ウェブサービス)を特定し得る。さらなる例では、サービスディレクトリ112は、非ウェブサービスパブリッシャデータを保存するように構成され得る。非ウェブサービスパブリッシャデータは、非ウェブサービス104がデータを取得することができる1つまたは複数のサービス(例えば、ウェブサービス106および/または他の非ウェブサービス)を特定し得る。
【0016】
いくつかの例では、サービスディレクトリ112は、非ウェブサービス104によって生成されたリーダデータおよびライタデータを受信するように構成され得る。リーダデータは、非ウェブサービス104によって提供されるデータを取得する(例えば、読み出す)許可が与えられた1つまたは複数のサービス(例えば、ウェブサービス106および/または他の非ウェブサービス)を特定し得る。ライタデータは、非ウェブサービス104にデータを提供する(例えば、書き込む)許可を与えられた1つまたは複数のサービス(例えば、ウェブサービス106および/または他の非ウェブサービス)を特定し得る。いくつかの例では、非ウェブサービス104は、WSI102を呼び出すことによって、リーダデータおよびライタデータをサービスディレクトリ112に提供するように構成され得る。例えば、WSI102は、リーダデータおよびライタデータを1つまたは複数のメッセージとしてカプセル化して、1つまたは複数のメッセージをサービスディレクトリ112に提供するように構成され得る。サービスディレクトリ112は、リーダデータおよび/またはライタデータに基づいて、ウェブサービスサブスクライバデータおよび/またはウェブサービスパブリッシャデータを生成するように構成され得る。他の例では、ウェブサービスサブスクライバデータおよび/またはウェブサービスパブリッシャデータは、(例えば、入力デバイスにおける)ユーザ入力に基づいて生成され得る。いくつかの例では、非ウェブサービスサブスクライバデータおよび/または非ウェブサービスパブリッシャデータは、(例えば、入力デバイスにおける)ユーザ入力に基づいて生成され得る。
【0017】
いくつかの例では、WSI102は、ウェブサービス106に向けられた非ウェブサービス104からのデータをHTTPに従ってカプセル化して、カプセル化されたメッセージを生成するように構成され得る。いくつかの例では、WSI102は、サービスディレクトリ112および/またはOMSシステム100の他の非ウェブサービスに向けられた非ウェブサービス104からのデータをHTTPに従ってカプセル化するように構成され得る。例えば、WSI102は、非ウェブサービス104からデータを受信するように構成され得る。データは、ウェブサービス106をメッセージの意図された受信側として特定するとともに、他のデータを含むことができる。いくつかの例では、他のデータは、非ウェブサービス104が機能している(例えば、オンラインである)かどうかを示すことができるステータスデータである。いくつかの例では、他のデータはUCIデータである。さらなる例として、非ウェブサービス104によって提供されるデータは、標準ファイル形式を有し得る。例えば、ファイル形式は、ジャヴァスクリプト・オブジェクト・ノーテーション(JSON:JavaScript(登録商標)Object Notation)などの標準ファイル形式であり得る。WSI102は、ウェブサービス106に向けられた非ウェブサービス104によって提供されるデータをHTTPに従ってカプセル化して、カプセル化されたメッセージを生成するように構成され得る。いくつかの例では、WSI102は、サービスディレクトリ112に向けられた非ウェブサービス104によって提供されるデータをHTTPに従ってカプセル化して、カプセル化されたメッセージを生成するように構成され得る。さらなる例では、WSI102は、他の非ウェブサービスに向けられた非ウェブサービス104によって提供されるデータをHTTPに従ってカプセル化して、カプセル化されたメッセージを生成するように構成され得る。
【0018】
いくつかの例では、WSI102は、ウェブサービス106に対するカプセル化されたメッセージを、ウェブサービス106またはOMSシステム100の他の非ウェブサービスにルーティングするためのルーティングデータをカプセル化されたメッセージに挿入するように構成され得る。例えば、WSI102は、カプセル化されたメッセージをASL110を介してインターネットに伝達して、カプセル化されたメッセージをウェブサービス106に提供するように構成され得る。いくつかの例では、サービスディレクトリ112はインターネット上に実装されており、WSI102は、カプセル化されたメッセージをASL110を介してインターネットに伝達して、カプセル化されたメッセージをサービスディレクトリ112に提供するように構成され得る。いくつかの例では、WSI102は、カプセル化されたメッセージをウェブサービス106、サービスディレクトリ112、または他の非ウェブサービスに伝達するために、HTTPメソッド(HTTP動詞としても知られる)を実施するように構成され得る。WSI102が実施するように構成され得る例示的なHTTPメソッドは、POST、GET、PUT、PATCH、DELETEを含むことができ、これらはそれぞれ、作成、読み出し、更新、および/または削除(又はCRUD)動作に対応し得る。いくつかの例では、ウェブサービス106は、HTTPメソッドを実施して、ウェブサービス106が、非ウェブサービス104および/またはサービスディレクトリ112に向けられた1つまたは複数のカプセル化されたメッセージを提供することを可能にするように構成され得る。
【0019】
いくつかの例では、非ウェブサービス104がウェブサービス106および/またはOMSシステム100の他の非ウェブサービスと通信することを可能にするために、非ウェブサービス登録プロセスが実施され得る。非ウェブサービス登録プロセスの機能の少なくとも一部は、非ウェブサービス104によって実施され得、非ウェブサービス登録プロセスの他の機能は、サービスディレクトリ112によって実施され得る。例えば、非ウェブサービス104の初期化時に、非ウェブサービス登録プロセス中に、非ウェブサービス104は、WSI102を使用してリーダデータおよびライタデータを(例えば、1つまたは複数のメッセージとして)サービスディレクトリ112に伝達するように構成され得る。いくつかの例では、非ウェブサービス104が機能している(例えば、オンラインである)ときにサービスディレクトリ112がオフラインであり、オンラインに戻る場合、サービスディレクトリ112は、非ウェブサービス104からのサービス要求を含むメッセージを監視するように構成され得る。サービス要求は、ウェブサービス106および/または他の非ウェブサービスと通信する要求を示し得る。いくつかの例では、非ウェブサービス登録プロセス中に、サービスディレクトリ112は、リーダデータおよびライタデータに対する要求を非ウェブサービス104に対する1つまたは複数のメッセージとして発行するように構成され得る。いくつかの例では、リーダデータおよび/またはライタデータに対する要求は、サービス要求を受信したことに応答してサービスディレクトリ112によって発行される。
【0020】
いくつかの例では、非ウェブサービス登録プロセス中に、WSI102は、リーダデータ/ライタデータに対する要求を受信し、その要求を非ウェブサービス104に提供するように構成され得る。非ウェブサービス登録プロセス中に、非ウェブサービス104は、リーダデータおよびライタデータに対する要求に応答して、リーダデータおよびライタデータを(例えば、1つまたは複数のメッセージとして)サービスディレクトリ112に伝達するようにWSI102を呼び出すように構成され得る。非ウェブサービス登録プロセス中に、サービスディレクトリ112は、非ウェブサービスサブスクライバデータおよび/または非ウェブサービスパブリッシャデータを1つまたは複数のメッセージとしてWSI102に伝達するように構成され得る。例えば、サービスディレクトリ112は、非ウェブサービス104からリーダデータおよび/またはライタデータを受信したことに応答して、非ウェブサービスサブスクライバデータおよび/または非ウェブサービスパブリッシャデータを伝達するように構成され得る。WSI102は、1つまたは複数のメッセージから非ウェブサービスサブスクライバデータおよび/または非ウェブサービスパブリッシャデータを抽出し、抽出された非ウェブサービスサブスクライバデータおよび/または非ウェブサービスパブリッシャデータを非ウェブサービス104に提供して、非ウェブサービス104がウェブサービス106と通信することを可能にし、それによって非ウェブサービス登録プロセスを完了するように構成され得る。
【0021】
いくつかの例では、ウェブサービス106が非ウェブサービス104と通信することを可能にするために、ウェブサービス登録プロセスが実施され得る。ウェブサービス登録プロセスの機能の少なくとも一部は、ウェブサービス106によって実施され得、ウェブサービス登録プロセスの他の機能は、サービスディレクトリ112によって実施され得る。例えば、ウェブサービス登録プロセス中に、ウェブサービス106は、ウェブサービス106によって生成されるデータのサブスクライバおよび/またはウェブサービス106がデータを取得することができるパブリッシャに対する1つまたは複数の要求を含む1つまたは複数のメッセージを生成するように構成され得る。ウェブサービス106によって生成された1つまたは複数の要求は、サービスディレクトリ112に提供され得る。ウェブサービス登録プロセス中に、サービスディレクトリ112は、リーダデータおよび/またはライタデータに基づいて、ウェブサービスサブスクライバデータおよび/またはウェブサービスパブリッシャデータを含む1つまたは複数のメッセージを生成するように構成され得る。いくつかの例では、リーダデータおよび/またはライタデータは、本明細書で説明するように、非ウェブサービス登録プロセス中に提供され得る。ウェブサービス登録プロセス中に、サービスディレクトリ112は、ウェブサービスサブスクライバデータおよび/またはウェブサービスパブリッシャデータをウェブサービス106に伝達するように構成され得る。ウェブサービス106は、メッセージからウェブサービスサブスクライバデータおよび/またはウェブサービスパブリッシャデータを抽出して、ウェブサービス106が非ウェブサービス104と通信することを可能にし、それによってウェブサービス登録プロセスを完了するように構成され得る。
【0022】
いくつかの例では、動作中に、非ウェブサービス104は、パブリッシャおよびサブスクライバとしての非ウェブサービス104をサービスディレクトリ112から除去するための削除要求を含むメッセージを発行するように構成され得る。例えば、非ウェブサービス104は、例えば、別のサービス、アプリケーションに応答して、またはユーザ入力に基づいて、オフラインになる前に削除要求を発行するように構成され得る。サービスディレクトリ112は、削除要求に応答してライタデータおよびリーダデータを削除するように構成され得る。他の例では、サービスディレクトリ112は、一定期間内にステータスデータを受信しないことに応答して、パブリッシャおよびサブスクライバとしての非ウェブサービス104を除去するように構成され得る。例えば、非ウェブサービス104は、WSI102を呼び出すことによって、非ウェブサービス104が機能している(例えば、オンラインである)かどうかを示すステータスデータをメッセージとして伝達するように構成され得る。サービスディレクトリ112が、一定期間の後または一定期間内にサービスデータを受信しない場合、これは、非ウェブサービス104がオフラインであることを示し得る。サービスディレクトリ112は、非ウェブサービス104がオフラインであるとの判定に応答して、非ウェブサービス104に対するライタデータおよびリーダデータを削除し、それによって、1つまたは複数のサービス(例えば、ウェブサービス106および/または他の非ウェブサービス)に対するデータのパブリッシャとしての、および1つまたは複数のサービス(例えば、ウェブサービス106および/または他の非ウェブサービス)からのデータのサブスクライバとしての非ウェブサービス104を除去するように構成され得る。
【0023】
いくつかの例では、サービスディレクトリ112は、削除要求に応答して、または非ウェブサービス104がオフラインであるとの判定に応答して、非ウェブサービス104をウェブサービス106によって生成されたメッセージのサブスクライバおよび/またはウェブサービス106がデータを取得することができるサービスとして特定しない更新されたウェブサービスサブスクライバデータおよび/または更新されたウェブサービスパブリッシャデータを提供するように構成され得る。サービスディレクトリ112は、本明細書で説明されるように、ウェブサービスサブスクライバデータおよび/またはウェブサービスパブリッシャデータと同一または同様の方法で、更新されたウェブサービスサブスクライバデータおよび/または更新されたウェブサービスパブリッシャデータをウェブサービス106に提供するように構成され得る。追加の例または代替の例では、サービスディレクトリ112は、削除要求に応答して、または非ウェブサービス104がオフラインであるとの判定に応答して、他の非ウェブサービスをウェブサービス106によって生成されたメッセージのサブスクライバおよび/または他の非ウェブサービスがデータを取得することができるサービスとして特定しない更新された非ウェブサービスサブスクライバデータおよび/または非ウェブサービスパブリッシャデータを他の非ウェブサービスに提供するように構成され得る。
【0024】
従って、サービスディレクトリ112と組み合わせてOMSシステム100のCAL108においてWSI102を使用することによって、OMSシステム側の非ウェブサービス104は、メッセージブローカサービス、従って中間サービスなしで、ウェブサービス106と通信することができる。従って、異種サービス間の通信が、WSI102およびサービスディレクトリ112によって可能となり得る。さらに、サービスディレクトリ112と組み合わせて、WSI102をCAL108に導入することによって、非ウェブサービス104とウェブサービス106との間の通信を抽象化することが可能になる。通信を抽象化することによって、各規格のサービス104および106は、他のサービスが構築された技術規格については気付いていない。従って、サービスディレクトリ112と組み合わせてCAL108においてWSI102を使用することによって、OMSシステム100の非ウェブサービス104は、非ウェブサービス104を変更することなく、ウェブサービス106と通信し、かつウェブサービス106からメッセージを受信することが可能になる。
【0025】
図2は、非ウェブサービス206が1つまたは複数の他の非ウェブサービスおよび/またはウェブサービスと通信することを可能にするためのWSI202およびサービスディレクトリ204を備えて構成されたOMSシステム200の一例である。ウェブサービスは、
図1に示されるようなウェブサービス106であり得る。従って、
図2の以下の説明は、
図1も参照することができる。いくつかの例では、非ウェブサービス206は、
図1に示されるような非ウェブサービス104である。代替例では、1つまたは複数の他の非ウェブサービスは、
図1に示されるような非ウェブサービス104である。いくつかの例では、OMSシステム200は、
図1に示されるようなOMSシステム100である。明確かつ簡潔にするために、OMSシステム200の他の要素は省略されている。WSI202及びサービスディレクトリ204を備えてOMSシステム200を構成することにより、非ウェブサービス206は、1つまたは複数の他の非ウェブサービスおよび/またはウェブサービスとデータをメッセージ(例えば、HTTPメッセージ)として通信することができる。いくつかの例では、データは、UCIメッセージなどのメッセージである。
【0026】
いくつかの例において、OMSシステム200は、1つまたは複数のプロセッサ208およびメモリ210を含み得る。メモリ210は、本明細書で説明されるように、非ウェブサービスがウェブサービスおよび/または1つまたは複数の非ウェブサービスと通信するのを可能にするために、1つまたは複数のプロセッサ208によって取得され実行され得る機械可読命令を保存し得る。例として、メモリ210は、例えば、揮発性メモリ(例えば、ランダムアクセスメモリ)、不揮発性メモリ(例えば、ハードディスクドライブ、ソリッドステートドライブ、フラッシュメモリなど)、またはそれらの組合せなどの非一時的コンピュータ記憶媒体として実装され得る。1つまたは複数のプロセッサ208は、例えば、1つまたは複数のプロセッサコアとして実施され得る。本例では、OMSシステム200の構成要素は、同じシステム上に実装されるものとして示されているが、他の例では、構成要素は、異なるシステム(例えば、コンピュータ、デバイスなど)にわたって分散され、かつ例えば、ネットワーク(例えば、無線ネットワークおよび/または有線ネットワーク)を介して通信することができる。例として、ネットワークは、有人航空機または無人航空機などの航空機のアビオニクスバスネットワーク(ABN:avionics bus network)であり得る。
【0027】
いくつかの例では、メモリ210はCAL212を含み得る。CAL212は、
図1に示されるようなCAL108であり得る。WSI202は、CAL212に配置され得る。WSI202は、HTTPメソッド214及び抽出器216を含み得る。HTTPメソッド214は、非ウェブサービス206によって提供されるデータ(例えば、ステータスデータ、UCIメッセージなど)をHTTPに従ってカプセル化して、カプセル化されたメッセージを提供するようにプログラムされ得る。従って、HTTPメソッド214は、非ウェブサービス206によって提供されるデータを含むHTTPメッセージを提供するようにプログラムされ得る。抽出器216は、非ウェブサービス206のためにCAL212からカプセル化されたメッセージを受信し、カプセル化されたメッセージ内のデータを抽出し、抽出されたデータを非ウェブサービス206に提供するようにプログラムされ得る。
【0028】
いくつかの例では、非ウェブサービス206は、非ウェブサービス206が1つまたは複数の他の非ウェブサービスおよび/またはウェブサービスと通信することを可能にするために、サービスディレクトリ204と通信してサービスディレクトリ204に登録するようにプログラムされ得る。例えば、非ウェブサービス206は、HTTPメソッド214を呼び出して、リーダデータ218およびライタデータ220を1つまたは複数のカプセル化されたメッセージ222としてサービスディレクトリ204に伝達するようにプログラムされ得る。いくつかの例では、サービスディレクトリ204は、OMSシステム200の一部として実装されていない。リーダデータ218およびライタデータ220は、(例えば、
図1に関して)本明細書で説明するリーダおよびライタに対応し得る。
【0029】
サービスディレクトリ204は、サービスメッセージインタフェース(SMI:service message interface)224およびパブリッシャ-サブスクライバデータベース226を含み得る。いくつかの例では、パブリッシャ-サブスクライバデータベース226は、各非ウェブサービスおよびウェブサービス(例えば、非ウェブサービス206およびウェブサービス(例えば、
図1に示されるようなウェブサービス106)、およびいくつかの例では、他の非ウェブサービス)に関する各トピック、関連するサブスクライバ、および前記トピックのパブリッシャを特定するテーブルを含み得る。SMI224は、1つまたは複数のカプセル化されたメッセージ222からリーダデータ218およびライタデータ220を抽出し、リーダデータ218およびライタデータ220をパブリッシャ-サブスクライバデータベース226に保存するようにプログラムされ得る。いくつかの例では、SMI224は、非ウェブサービス206によって提供されるデータのサブスクライバ、および/または非ウェブサービス206がデータを取得することができるデータのパブリッシャに関してパブリッシャ-サブスクライバデータベース226に1回または複数回問い合わせるようにプログラムされ得る。いくつかの例では、SMI224は、リーダデータ218およびライタデータ220をパブリッシャ-サブスクライバデータベース226に保存すること、または非ウェブサービス206によって提供されるデータのサブスクライバおよび/または非ウェブサービス206が取得され得るデータのパブリッシャに対する後続の要求を受信することに応答して、データのサブスクライバおよびパブリッシャに関してパブリッシャ-サブスクライバデータベース226に問い合わせることを行うようにプログラムされ得る。
【0030】
パブリッシャ-サブスクライバデータベース226は、(例えば、
図1に関して)本明細書で説明される非ウェブサービスサブスクライバデータおよび/または非ウェブサービスパブリッシャデータと同様の非ウェブサービスサブスクライバデータ228および/または非ウェブサービスパブリッシャデータ230を提供するようにプログラムされ得る。SMI224は、HTTPメソッド232を呼び出して、非ウェブサービスサブスクライバデータ228および/または非ウェブサービスパブリッシャデータ230を1つまたは複数のカプセル化されたメッセージ234としてCAL212に伝達するようにプログラムされ得る。CAL212は、1つまたは複数のカプセル化されたメッセージ234をWSI202に提供するようにプログラムされ得、抽出器216は、1つまたは複数のカプセル化されたメッセージ234から非ウェブサービスサブスクライバデータ228および/または非ウェブサービスパブリッシャデータ230を抽出するようにプログラムされ得る。抽出器216は、非ウェブサービスサブスクライバデータ228および/または非ウェブサービスパブリッシャデータ230を非ウェブサービス206に提供して、非ウェブサービス206がウェブサービスおよび/または1つまたは複数の他の非ウェブサービスと通信することを可能にするようにプログラムされ、それによって非ウェブサービス206がサービスディレクトリ204に登録される。
【0031】
いくつかの例では、サービスディレクトリ204は、ウェブサービスによって提供されるデータのサブスクライバおよび/またはウェブサービスがデータを取得することができるデータのパブリッシャに対する1つまたは複数の要求を含む1つまたは複数のカプセル化されたメッセージ236を受信するようにプログラムされ得る。1つまたは複数のカプセル化されたメッセージ236は、
図1に示されるようなウェブサービス106等のウェブサービスによって生成され得る。SMI224は、1つまたは複数のカプセル化されたメッセージ236から1つまたは複数の要求を抽出するようにプログラムされ得る。SMI224は、1つまたは複数の要求に応答して、ウェブサービスによって提供されるデータのサブスクライバおよび/またはウェブサービスがデータを取得することができるデータのパブリッシャに関してパブリッシャ-サブスクライバデータベース226に1回または複数回問い合わせるようにプログラムされ得る。パブリッシャ-サブスクライバデータベース226は、(例えば、
図1に関して)本明細書で説明されるウェブサービスサブスクライバデータおよび/またはウェブサービスパブリッシャデータと同様のウェブサービスサブスクライバデータ238および/またはウェブサービスパブリッシャデータ240を提供するようにプログラムされ得る。SMI224は、HTTPメソッド232を呼び出して、ウェブサービスサブスクライバデータ238および/またはウェブサービスパブリッシャデータ240を1つまたは複数のカプセル化されたメッセージ242としてウェブサービスに伝達して、ウェブサービスが非ウェブサービス206および/または1つまたは複数の他の非ウェブサービスと通信することを可能にするようにプログラムされ、それによってウェブサービスがサービスディレクトリ204に登録される。
【0032】
いくつかの例では、ウェブサービスサブスクライバデータ238および/またはウェブサービスパブリッシャデータ240は、入力デバイス244(例えば、キーボード、マウスなど)におけるユーザ入力に基づいて生成され得る。例えば、ユーザは、入力デバイス244を使用して、パブリッシャ-サブスクライバデータベース226と対話して、ウェブサービスのためのサブスクライバおよびパブリッシャを定義し得る。サービスディレクトリ204は、表示デバイス上にグラフィカルユーザインタフェース(GUI:graphical user interface)を生成するように構成され得、ユーザは、このグラフィカルユーザインタフェースにより入力デバイス244を使用して、パブリッシャ-サブスクライバデータベース226と対話することができる。いくつかの例では、入力デバイス244を使用して、非ウェブサービス206によって提供されるデータを読み出すことが許可された1つまたは複数のサービス、および非ウェブサービス206にデータを書き込むことが許可された1つまたは複数のサービスを特定し得る。従って、いくつかの例では、入力デバイス244を使用して、リーダデータ218およびライタデータ220を提供し得る。
【0033】
いくつかの例では、非ウェブサービス206は、パブリッシャおよびサブスクライバとしての非ウェブサービス206をパブリッシャ-サブスクライバデータベース226から除去するための削除要求を発行するように構成され得る。例えば、非ウェブサービス206は、例えば、別のサービス、アプリケーションに応答して、または入力デバイス244におけるユーザ入力に基づいて、オフラインになる前に削除要求を発行するように構成され得る。他の例では、サービスディレクトリ204は、定義された期間内にステータスデータを受信しないことに応答して、パブリッシャおよびサブスクライバとしての非ウェブサービス206を除去するように構成され得る。例えば、非ウェブサービス206は、非ウェブサービス206が機能している(例えば、オンラインである)かどうかを示すステータスデータを定期的に伝達するように構成され得る。SMI224が、定義された期間内またはその後にサービスステータスデータを受信しない場合、これは、非ウェブサービス206がオフラインであることを示し得る。ステータスデータは、カプセル化されたメッセージ246としてHTTPメソッド214によって提供され得る。SMI224は、非ウェブサービス206がオフラインであると判定したことに応答して、パブリッシャ-サブスクライバデータベース226に保存されたライタデータ218およびリーダデータ220を削除するようにプログラムされ得る。
【0034】
いくつかの例では、SMI224は、削除要求に応答して、または非ウェブサービス206がオフラインであるとの判定に応答して、パブリッシャ-サブスクライバデータベース226に問い合わせして、非ウェブサービス206をウェブサービスによって生成されるメッセージのサブスクライバまたはウェブサービスがデータを取得することができるサービスとして特定しない更新されたウェブサービスサブスクライバデータおよび/または更新されたウェブサービスパブリッシャデータを提供するようにプログラムされ得る。SMI224は、本明細書で説明されるように、ウェブサービスサブスクライバデータ238および/またはウェブサービスパブリッシャデータ240と同一または同様の方法で、更新されたウェブサービスサブスクライバデータおよび/または更新されたウェブサービスパブリッシャデータをウェブサービスに提供するようにプログラムされ得る。従って、サービスディレクトリ204と組み合わせてOMSシステム200のCAL212でWSI202を使用することによって、OMSシステム200の非ウェブサービス206は、メッセージブローカサービス、従って中間サービスなしで、ウェブサービスと通信することができる。従って、異種サービス間の通信が、WSI202およびサービスディレクトリ204によって可能となり得る。
【0035】
図3は、OMSシステム300の一例である。OMSシステム300は、
図1に示されるようなOMSシステム100または
図2に示されるようなOMSシステム200に対応し得る。従って、
図3の以下の説明は、
図1および
図2も参照することができる。いくつかの例では、OMSシステム300は、第1のOMSサービス302および第2のOMSサービス304を含み得る。明確かつ簡潔にするために、OMSシステム300の他の要素は省略されている。一例として、OMSシステム300は、OMS兵器システムを担当し得る。従って、いくつかの例では、第1のOMSサービス302は、OMS兵器システムのセンササービス(例えば、OMS兵器システムのEO/IR用途のためのEO/IRサービス)であり得る。例として、第2のOMSサービス304は、OMS兵器システムの赤外線捜索追尾(IRST:infrared search and track)用途のためのIRSTサービスであり得る。他の例では、第2のOMSサービス304は、アグリゲータ(aggregator)サービスであり得る。いくつかの例では、本明細書で説明されるように、第2のOMSサービス304は、ウェブサービス306とデータ(例えば、UCIメッセージ)を交換するように構成され得る。ウェブサービス306は、インターネット308上で(例えば、クラウド環境において)実装され得る。一例では、ウェブサービス306は、ユーザがOMS兵器システムを制御するために使用することができるユーザインタフェースサービスを担当し得る。例えば、OMS兵器システムが有人航空機または無人航空機上で使用される場合、ウェブサービス306は、ユーザがオペレータコンソールなどを介してOMS兵器システムを遠隔制御することを可能にし得る。いくつかの例では、ウェブサービス306は、データコレクタサービスとして実施され得る。例えば、ウェブサービス306は、センササービス(例えば、第1のOMSサービス302)によって提供されるセンサデータを受信または取得して、センササービスの性能を決定するように構成され得る。いくつかの例では、センササービスは、センササービスの性能を示す性能データを提供するように構成され得る。受信または取得されたセンサデータ、またはいくつかの例では、性能データは、本明細書に説明されるように、1つまたは複数のメッセージとしてウェブサービス306に提供され得る。
【0036】
第1および第2のOMSサービス302および304の各々は、対応する第1および第2のCAL310および312とインタフェースすることができる。ASL314ならびに第1および第2のCAL310および312のOMSリファレンス実装は、パブリッシュ-サブスクライブパラダイムに基づいて個々の第1および第2のブローカーサービス316および318を使用するメッセージ交換をサポートし得る。一例として、第1および第2のブローカーサービス316および318は、アパッチソフトウェア財団(Apache Software Foundation(登録商標))からのアパッチ・アクティブエムキュー(Apache ActiveMQ)などのジャヴァ(Java(登録商標))マルチプロトコルメッセージブローカーサービスとして実装され得る。第1および第2のブローカーサービス316および318の各々は、対応する構成データ320および322に基づいて構成され得る。各ブローカーサービス316および318に対して対応する構成データ320および322は、どのサービスが個々のOMSサービス302および304と通信できるかを定義することができ、従って、個々の第1および第2のOMSサービス302および304に対するパブリッシャ-サブスクライバパラダイムを特徴付け得る。いくつかの例では、構成データ320および322は、プレーンテキストファイルまたは拡張可能マークアップ言語(XML)ファイルとして表され得る。第1および第2のブローカーサービス316および318の各々は、第1および第2のOMSサービス302および304のうちの対応する1つからデータを受信し、第1および第2のOMSサービス302および304のうちの1つの残りのOMSサービスに対する処理のために、ASL314を使用して他のブローカーサービス316および318に伝達するためのOMSフォーマットにデータをカプセル化し得る。
【0037】
いくつかの例では、第2のCAL312は、WSI324を含み得る。WSI324は、
図1に示されるようなWSI102であり得るか、または
図2に示されるようなWSI202であり得る。WSI324は、ウェブサービス306に向けられた第2のOMSサービス304からのデータ(例えば、UCIメッセージ)をHTTPに従ってカプセル化して、カプセル化されたメッセージを生成するように構成され得る。WSI324は、サービスディレクトリ326と通信するように構成され得る。サービスディレクトリ326は、
図1に示されるようなサービスディレクトリ112であり得るか、または
図2に示されるようなサービスディレクトリ204であり得る。サービスディレクトリ326は、第2のOMSサービス304が、ウェブサービス306と(例えば、
図1および/または
図2に関して)本明細書で説明したのと同一または同様の方法でメッセージ(例えば、HTTPメッセージ)を通信することを可能にするために使用され得る。
【0038】
いくつかの例では、第2のOMSサービス304は、ウェブサービス306を特定する情報とともにデータをWSI324に提供するように構成され得る。WSI324は、(例えば、
図2に示されるように、HTTPメソッド214を呼び出すことによって)データをカプセル化して、カプセル化されたメッセージを提供するように構成され得る。カプセル化されたメッセージは、通信リンク328を介してインターネット308上のウェブサービス306に伝達され得る。通信リンク328は、OMSシステム300と、ウェブサービス306を実行するシステム(インターネット308上のサーバなど)との間の1つまたは複数の物理的接続および/または論理的接続を含み得る。さらなる例として、通信リンク328の少なくとも一部は、OMSシステム300をインターネット308に接続するための通信要素(例えば、インターネット接続回路および/またはデバイス)を含み得るASL314を介して確立され得る。第2のCAL312はWSI324を使用するため、第2のOMSサービス304は、ウェブサービス306にデータを送信し、かつウェブサービス306からデータを受信することができる。第1のOMSサービス304は、インターネット308から分離されているため、第2のOMSサービス304などのウェブサービス306と通信することができない。
【0039】
図4は、OMSシステム400の別の例である。OMSシステム400は、
図1に示されるようなOMSシステム100または
図2に示されるようなOMSシステム200に対応し得る。従って、
図4の以下の説明は、
図1および
図2も参照することができる。いくつかの例では、OMSシステム400は、第1のOMSサービス402、第2のOMSサービス404、および第3のOMSサービス406を含み得る。明確かつ簡潔にするために、OMSシステム400の他の要素は省略されている。例として、OMSシステム400は、OMS兵器システムを担当し得る。従って、いくつかの例では、第1のOMSサービス402は、OMS兵器システムのEO/IR用途のためのEO/IRサービスであり得る。第2のOMSサービス404は、OMS兵器システムのIRST用途のためのIRSTサービスであり得る。いくつかの例では、第2のOMSサービス404はログアグリゲータ(log aggregator)サービスであり得る。第3のOMSサービスは、OMSシステム400の合成開口レーダー(SAR:synthetic-aperture radar)用途のためのSARサービスであり得る。いくつかの例では、第3のOMSサービス406は、第2のOMSウェブサービス404を制御するためのミッションプランナ(mission planner)サービスであり得る。いくつかの例では、第1および第2のOMSサービス402および404は、OMS規格に完全に準拠していることを示すティア(tier)3のサービスとして指定され得る。第3のOMSサービス406は、OMS規格に部分的に準拠していることを示すティア2のサービスとして指定され得る。
【0040】
いくつかの例では、第2および第3のOMSサービス404および406は、ウェブサービス408とデータ(例えば、UCIメッセージ)を交換するように構成され得る。ウェブサービス408は、インターネット410上で(例えば、クラウド環境において)実装され得る。従って、いくつかの例では、OMSシステム400のティア2および3のサービスは、インターネット410上に実装されているウェブサービス408と通信することを可能にし得る。一例では、ウェブサービス408は、ユーザがOMS兵器システムを制御するために使用することができるユーザインタフェースサービスを担当し得る。さらなる例として、ウェブサービス408は、第3のOMSサービス406からミッションプランデータを受信または取得して、関連するミッション情報をユーザインタフェース上に表示するように構成され得る。いくつかの例では、ウェブサービス408は、EO/IRメトリックを追跡するように構成され得る。
【0041】
第1、第2、および第3のOMSサービス402、404、および406の各々は、対応する第1、第2、および第3のCAL412、414、および416と対話するように構成され得る。OMSシステム400のASL418ならびに第1、第2、および第3のCAL412、414、および416のOMSリファレンス実装は、パブリッシュ-サブスクライブパラダイムに基づいて個々の第1、第2、および第3のブローカーサービス420、422、および424を使用するメッセージ交換をサポートし得る。例として、第1、第2、および第3のブローカーサービス420、422、および424は、アパッチソフトウェア財団(Apache Software Foundation(登録商標))からのアパッチ・アクティブエムキュー(Apache ActiveMQ)などのジャヴァ(Java(登録商標))マルチプロトコルメッセージブローカーサービスとして実装され得る。第1、第2、および第3のブローカーサービス420、422、および424の各々は、対応する構成データ426、428、および430に基づいて構成され得る。第1、第2、および第3のブローカーサービス402、404、および406の個々の1つに対する対応する構成データ426、428、および430は、どのサービスが第1、第2、および第3のOMSサービス420、422、および424の個々の1つと通信できるかを定義することができ、従って、第1、第2、および第3のOMSサービス402、404、および406に対するパブリッシャ-サブスクライバパラダイムを特徴付け得る。
【0042】
いくつかの例では、構成データ426、428、および430は、プレーンテキストファイルまたはXMLファイルとして表され得る。第1、第2、および第3のブローカーサービス420、422、および424の各々は、第1、第2、および第3のOMSサービス402、404、および406の対応する1つからデータを受信し、データを適切なOMSフォーマットにカプセル化し得る。カプセル化されたデータは、個々の第1、第2、および第3のOMSサービス402、404、および406のうちの1つの残りのOMSサービスに対する処理のために、ASL418を使用して第1、第2、および第3のブローカーサービス420、422、および424の残りのブローカーサービスのうちの1つに伝達され得る。
【0043】
いくつかの例では、第2および第3のCAL414および416は、対応する第1および第2のWSI432および434を含み得る。第1および第2のWSI432および434は、
図1に示されるようなWSI102と同様であり得るか、または
図2に示されるようなWSI202と同様であり得る。第1および第2のWSI432および434の各々は、ウェブサービス306または残りの第2および第3のOMSサービス404および406のうちの1つに向けられ得る第2および第3のOMSサービス404および406のうちの対応する1つからのデータ(例えば、UCIメッセージ)をHTTPに基づいてカプセル化して、カプセル化されたメッセージを生成するように構成され得る。第1および第2のWSI432および434の各々は、サービスディレクトリ436と通信するように構成され得る。サービスディレクトリ436は、
図1に示されるようなサービスディレクトリ112であり得るか、または
図2に示されるようなサービスディレクトリ204であり得る。サービスディレクトリ436は、第2のOMSサービス404および第3のOMSサービス406の各々が、(例えば、
図1および/または
図2に関して)本明細書で説明したのと同一または同様の方法でウェブサービス408とメッセージ(例えば、HTTPメッセージ)を通信することを可能にするために使用され得る。
【0044】
いくつかの例では、第2および第3のOMSサービス404および406の各々は、個々の非ウェブサービスサブスクライバデータに基づいてウェブサービス306を特定する情報とともにデータを第1および第2のWSI432および434のうちの対応する1つに提供するように構成され得る。第1および第2のWSI432および434の各々は、(例えば、
図2に示されるようなHTTPメソッド214などの対応するHTTPメソッドを呼び出すことによって)データをカプセル化して、個々のカプセル化されたメッセージを提供するように構成され得る。個々のカプセル化されたメッセージは、通信リンク438を介してインターネット410上のウェブサービス408に伝達され得る。
図4は、第1および第2のWSI432および434とウェブサービス408との間の単一の通信リンク438を示しているが、他の例では、第1のWSI432とウェブサービス408との間、および第2のWSI434とウェブサービス408との間に個々の通信リンクが確立され得る。いくつかの例では、通信リンク438は、OMSシステム400と、ウェブサービス408を実行するシステム(インターネット410上のサーバなど)との間の1つまたは複数の物理的接続および/または論理的接続を含み得る。さらなる例として、通信リンク438の少なくとも一部は、OMSシステム400をインターネット410に接続するための通信要素(例えば、インターネット接続回路および/またはデバイス)を含み得るASL418を介して確立され得る。
【0045】
第2および第3のCAL414および416の各々は、第1および第2のWSI432および434の対応する1つを使用するため、第2および第3のOMSサービス404および406は、ウェブサービス408にデータを送信し、かつウェブサービス408からデータを受信し得る。第1のOMSサービス402は、インターネット410から分離されているため、第2または第3のOMSサービス404および406などのウェブサービス408と通信することができない。さらに、第2のOMSサービス404がティア3のサービスとして指定される例では、ティア3のOMSサービスは、第1のWSI432を使用してティア3のサービスデータ(例えば、ティア3のカプセル化されたメッセージ)をウェブサービス408に伝達するように構成され得る。いくつかの例では、第3のOMSサービス406は、ティア2のサービスに指定されている。第2および第3のCAL414および416の各々を第1および第2のWSA432および434の対応する1つと共に構成することによって、OMSシステム100のティア2および3のサービスがウェブサービス408と通信することが可能になる。
【0046】
図5は、非ウェブサービス502と通信するサービスディレクトリ500の一例である。
図5に示されるようなように、WSI504は、OMSシステム(例えば、
図1に示されるようなOMSシステム100、または
図2に示されるようなOMSシステム200)のCAL506に配置され得る。いくつかの例では、サービスディレクトリ500は、
図1に示されるようなサービスディレクトリ112であり得るか、または
図2に示されるようなサービスディレクトリ204であり得る。WSIは、
図1に示されるようなWSI102であり得るか、または
図2に示されるようなWSI202であり得る。非ウェブサービス502は、
図1に示されるようなウェブサービス106であり得る。従って、
図5の以下の説明は、
図1および
図2も参照することができる。
【0047】
いくつかの例では、非ウェブサービス502は、開始(例えば、起動)に応答してサービスディレクトリ500と通信するように構成され得る。非ウェブサービス502は、本明細書で説明されるように、リーダデータおよびライタデータ(例えば、
図2に示されるリーダデータ218およびライタデータ220)をサービスディレクトリ500に伝達するように構成され得る。いくつかの例では、WSI504は、HTTPメソッド(例えば、
図2に示されるようなHTTPメソッド214)を実施して、リーダデータ及びライタデータを伝達するように構成され得る。例えば、WSI504は、PUTメソッド508を実施して、サービスディレクトリ500内(例えば、
図2に示されるようなパブリッシャ-サブスクライバデータベース226内)のリーダ位置(reader location)をリーダデータにより更新するように構成され得る。WSI504は、リーダデータをカプセル化して、カプセル化されたメッセージ510をサービスディレクトリ500に提供するように構成され得る。サービスディレクトリ500は、カプセル化されたリーダデータを抽出し、サービスディレクトリ500のパブリッシャ-サブスクライバデータベースのリーダ位置をリーダデータにより更新し得る。いくつかの例において、WSI504は、PUTメソッド508を実施して、サービスディレクトリ500内のライタ位置(writer location)をライタデータにより更新するように構成され得る。WSI504は、ライタデータをカプセル化して、カプセル化されたメッセージ512をサービスディレクトリ500に提供するように構成され得る。サービスディレクトリ500は、カプセル化されたライタデータを抽出し、サービスディレクトリ500のパブリッシャ-サブスクライバデータベース(例えば、
図2に示されるようなパブリッシャ-サブスクライバデータベース226)のライタ位置をライタデータにより更新し得る。
【0048】
いくつかの例では、WSI504は、非ウェブサービス502からステータスデータを受信するように構成され得る。ステータスデータは、非ウェブサービス502が機能している(例えば、オンラインである)かどうかを示し得る。WSI504は、POSTメソッド514を実施して、サービスディレクトリ500内のパブリッシャ-サブスクライバデータベースのステータス位置(status location)を非ウェブサービス502のステータスにより更新するように構成され得る。WSI504は、ステータスデータをカプセル化して、カプセル化されたメッセージ516をサービスディレクトリ500に提供するように構成され得る。サービスディレクトリ500は、カプセル化されたステータスデータを抽出し、ステータス位置をステータスデータにより更新し得る。非ウェブサービス502は、ステータスデータをサービスディレクトリ500に定期的に提供するように構成され得る。サービスディレクトリ500は、ステータスデータを使用して、非ウェブサービスがオンラインまたはオフラインであることを確認し得る。
【0049】
いくつかの例では、サービスディレクトリ500は、HTTPメソッド(例えば、
図2に示されるようなHTTPメソッド232)を実施するように構成され得る。例えば、サービスディレクトリ500は、POSTメソッド518を実施して、本明細書で説明されるように、非ウェブサービスサブスクライバデータおよび/または非ウェブサービスパブリッシャデータ(例えば、
図2に示されるような非ウェブサービスサブスクライバデータ228および/または非ウェブサービスパブリッシャデータ230)を非ウェブサービス502に伝達するように構成され得る。サービスディレクトリ500は、非ウェブサービスサブスクライバデータおよび/または非ウェブサービスパブリッシャデータをカプセル化して、1つまたは複数のカプセル化されたメッセージ520をWSI504に提供するように構成され得る。WSI504は、1つまたは複数のカプセル化されたメッセージ520からカプセル化された非ウェブサービスサブスクライバデータおよび/または非ウェブサービスパブリッシャデータを抽出して、非ウェブサービスサブスクライバデータおよび/または非ウェブサービスパブリッシャデータを非ウェブサービス502に提供し得る。非ウェブサービス502は、非ウェブサービスサブスクライバデータおよび/または非ウェブサービスパブリッシャデータを使用して、ウェブサービスおよび/または1つまたは複数の他の非ウェブサービスと通信し得る。
【0050】
いくつかの例では、サービスディレクトリ500はオフラインであり得るが、非ウェブサービス502はオンラインである。サービスディレクトリ500がオンラインに戻ったことに応答して、サービスディレクトリ500は、GETメソッド522を実施して、非ウェブサービス502からのリーダデータおよびライタデータに対する1つまたは複数の要求を伝達するように構成され得る。サービスディレクトリ500は、リーダデータおよび/またはライタデータに対する1つまたは複数の要求をカプセル化して、1つまたは複数のカプセル化されたメッセージ524をWSI504に提供するように構成され得る。WSI504は、1つまたは複数のカプセル化されたメッセージ524からリーダデータおよび/またはライタデータに対する1つまたは複数のカプセル化された要求を抽出し、リーダデータおよび/またはライタデータに対する1つまたは複数の要求を非ウェブサービス502に提供し得、非ウェブサービス502は、本明細書で説明するように、カプセル化されたメッセージ510および512を提供するように構成され得る。
【0051】
いくつかの例では、新たなリーダおよび/または新たなライタが非ウェブサービス502に追加されると、非ウェブサービス502は、PUTメソッド508をトリガして、新たなリーダデータおよび/または新たなライタデータを1つまたは複数のカプセル化されたメッセージ510および/または512として伝達し得る。いくつかの例では、非ウェブサービス502は、以前にサービスディレクトリ500と通信していなかった新たな非ウェブサービスであり得る。非ウェブサービス502は、ステータスデータをサービスディレクトリ500に伝達するように構成され得る。サービスディレクトリ500は、非ウェブサービス502からのリーダデータおよび/またはライタデータに対して、1つまたは複数のカプセル化されたメッセージ524をWSI504に提供するように構成され得る。非ウェブサービス502は、本明細書で説明されるように、リーダデータおよび/またはライタデータを個々のカプセル化されたメッセージ510および512としてサービスディレクトリ500に提供し得る。
【0052】
いくつかの例では、非ウェブサービス502はオフラインになってステータスデータの送信を停止し得る。例えば、サービスディレクトリ500が、一定期間内に(例えば、毎秒)ステータスデータを受信しない場合、これは、非ウェブサービス502がオフラインであることを示し得る。サービスディレクトリ500が定義された期間内にステータスデータを受信しない場合、サービスディレクトリ500は、本明細書で説明されるように、非ウェブサービス502のパブリッシャおよびサブスクライバをパブリッシャ-サブスクライバデータベースから除去し得る。いくつかの例では、オフラインになる前の非ウェブサービス502は、非ウェブサービス502のパブリッシャおよびサブスクライバを除去するための削除要求を生成し得る。WSI504は、削除要求をカプセル化して、カプセル化されたメッセージ526を提供し得る。サービスディレクトリ500は、削除要求をカプセル化されたメッセージ526から抽出し得る。サービスディレクトリ500は、削除要求に応答して、非ウェブサービス502のパブリッシャおよびサブスクライバを除去し得る。
【0053】
図6は、ウェブサービス602と通信するサービスディレクトリ600の一例である。いくつかの例では、サービスディレクトリ600は、
図1に示されるようなサービスディレクトリ112であり得るか、または
図2に示されるようなサービスディレクトリ204であり得る。ウェブサービス602は、
図1に示されるようなウェブサービス106であり得る。従って、
図6の以下の説明は、
図1および
図2も参照することができる。いくつかの例では、ウェブサービス602は、本明細書で説明されるように、HTTPメソッドを呼び出すように構成され得る。ウェブサービス602は、サービスディレクトリ600をルックアップテーブルとして使用して、どのパブリッシャから取得する(GET)か、またはどのサブスクライバに送信する(POST)かを知ることができる。例えば、ウェブサービス602は、GETメソッド604を呼び出して、ウェブサービスサブスクライバデータおよび/またはウェブサービスパブリッシャデータ(例えば、
図2に示されるようなウェブサービスサブスクライバデータ238および/またはウェブサービスパブリッシャデータ240)を取得するように構成され得る。ウェブサービス602は、ウェブサービスサブスクライバデータおよび/またはウェブサービスパブリッシャデータに対する1つまたは複数の要求をカプセル化して、1つまたは複数のカプセル化されたメッセージ606をサービスディレクトリ600に提供するように構成され得る。サービスディレクトリ600は、1つまたは複数のカプセル化されたメッセージ606から1つまたは複数の要求を抽出して、1つまたは複数の要求に基づいて1つまたは複数の応答のカプセル化されたメッセージ608においてウェブサービスサブスクライバデータおよび/またはウェブサービスパブリッシャデータを提供するように構成され得る。ウェブサービス602は、ウェブサービスサブスクライバデータおよび/またはウェブサービスパブリッシャデータを使用して、本明細書で説明するように、1つまたは複数の非ウェブサービスからデータを提供および取得し得る。
【0054】
図7は、通信系統
図700のさらなる例である。通信系統
図700は、第1のOMSサービス702、第2のOMSサービス704、サービスディレクトリ706、およびウェブクライアント708を含む。第1のOMSサービス702は、
図1に示されるような非ウェブサービス104に対応し得るか、または
図2に示されるような非ウェブサービス206に対応し得る。いくつかの例において、第2のOMSサービス704は、
図1に示されるような非ウェブサービス104に対応し得るか、または
図2に示されるような非ウェブサービス206に対応し得る。サービスディレクトリ706は、
図1に示されるサービスディレクトリ112に対応し得るか、または
図2に示されるサービスディレクトリ204に対応し得る。従って、
図7の以下の説明は、
図1および
図2も参照することができる。
【0055】
710において、第1のOMSサービス702が始動(例えば、開始)され得る。第1のOMSサービス702は、ステータスデータを発行するように構成され得るとともに、サービスディレクトリ706(例えば、
図2に示されるようなパブリッシャ-サブスクライバデータ226)に基づく第2のOMSサービス702などの別のサービスのステータスデータを受信するサブスクライバとして構成され得る。いくつかの例において、第1のOMSサービス702は、(例えば、ステータスデータに対する要求を受信したことに応答して)WSIを呼び出すことによって、ステータスデータを1つまたは複数のメッセージとして提供するように構成され得る。第1のOMSサービス702は、リーダデータおよびライタデータ(例えば、
図2に示されるようなリーダデータ218およびライタデータ220)をサービスディレクトリ706に提供するように構成され得る。例えば、712において、第1のOMSサービス702は、第1のWSI(例えば、
図1に示されるようなWSI102)を呼び出してPUTメソッドを実施して、リーダデータおよびライタデータをメッセージ(またはメッセージの組み合わせ)としてサービスディレクトリ706に提供するように構成され得る。714において、サービスディレクトリ706は、POSTメソッドを実施して、第1の非ウェブサービスサブスクライバデータ(例えば、
図2に示されるような非ウェブサービスサブスクライバデータ228)を第1のOMSサービス702に対するメッセージとして提供するように構成され得る。
【0056】
いくつかの例では、716において、第2のOMSサービス704が始動(例えば、開始)され得る。第2のOMSサービス704は、リーダデータおよびライタデータ(例えば、
図2に示されるようなリーダデータ218およびライタデータ220)をサービスディレクトリ706に提供するように構成され得る。例えば、718において、第2のOMSサービス704は、第2のWSI(例えば、
図1に示されるようなWSI102)を呼び出してPUTメソッドを実施して、リーダデータおよびライタデータをメッセージとしてサービスディレクトリ706に提供するように構成され得る。720において、サービスディレクトリ706は、POSTメソッドを実施して、第2の非ウェブサービスサブスクライバデータ(例えば、
図2に示されるような非ウェブサービスサブスクライバデータ228)を第2のOMSサービス704に対するメッセージとして提供するように構成され得る。第2の非ウェブサービスサブスクライバデータは、第1のOMSサービス702を第2のOMSサービス704によって提供されるメッセージのサブスクライバとして特定するため、722において、第2のOMSサービス704は、第1のOMSサービス702をサブスクライバとして認識しているものとして示され得る。
【0057】
いくつかの例では、第2のOMSサービス704は、ステータスデータを発行する要求を提供するように構成され得る。例えば、724において、第2のOMSサービス704は、第2のWSIを呼び出してPOSTメソッドを実施して、ステータスデータを発行する要求を有するメッセージを第1のOMSサービス702に伝達するように構成され得る。726において、第1のOMSサービス702は、ステータスデータを発行するように構成され得る。728において、ウェブクライアント708は、GETメソッドを呼び出して、第1のOMSサービス702のステータスを示すステータスデータに対する要求を有するメッセージを第1のOMSサービス702に伝達するように構成され得る。いくつかの例では、ウェブクライアント708は、GETメソッドを呼び出して、本明細書で説明されるウェブサービスサブスクライバデータと同様のウェブクライアントサブスクライバデータに関するメッセージを生成するように構成され得る。ウェブクライアントサブスクライバデータに関するメッセージは、サービスディレクトリ706に提供され得、サービスディレクトリ706は、応答メッセージにおいてウェブクライアントサブスクライバデータをウェブクライアント808に提供するように構成され得、それによって、ウェブクライアント708が第1のOMSサービス702と通信することが可能となる。従って、いくつかの例では、サービスディレクトリ706(例えば、
図2に示されるようなパブリッシャ-サブスクライバデータベース226)は、ウェブクライアントサブスクライバデータを保存し得る。例えば、ウェブクライアントサブスクライバデータは、ウェブクライアント708によって生成されたメッセージのサブスクライバとして、第1のOMSウェブサービス702および/または第2のOMSウェブサービス704などの1つまたは複数の他のサービスを特定し得る。730において、第1のOMSサービス702は、第1のOMSサービス702のステータスを示すステータスデータを有するメッセージをウェブクライアント708に提供するように構成され得る。
【0058】
いくつかの例では、732において、シャットダウンする前に、第1のOMSサービス702のサービスディレクトリ706からの除去が開始され得る。例えば、734において、第1のOMSサービス702は、HTTPメソッド(例えば、PUTメソッド)を呼び出して、第1のOMSサービス702に関するリーダデータおよびライタデータをサービスディレクトリ706から除削する第1の要求を含むメッセージを提供するように構成され得る。736において、サービスディレクトリ706は、HTTPメソッド(例えば、POSTメソッド)を呼び出して、第1のOMSサービス702に関するリーダデータ/ライタデータがサービスディレクトリ706から削除されたという第1の確認を含むメッセージを提供するように構成され得る。いくつかの例では、第1のOMSサービス702は、第1のOMSサービス702に関するリーダデータ/ライタデータがサービスディレクトリ706から削除されたという第1の確認を受信した後、または受信したことに応答してシャットダウンするように構成され得る。
【0059】
いくつかの例では、740において、シャットダウンする前に、第2のOMSサービス704のサービスディレクトリ706からの除去が開始され得る。例えば、742において、第2のOMSサービス704は、HTTPメソッド(例えば、PUTメソッド)を呼び出して、第2のOMSサービス704に関するリーダデータおよびライタデータをサービスディレクトリ706から削除する第2の要求を含むメッセージを提供するように構成され得る。744において、サービスディレクトリ706は、HTTPメソッド(例えば、POSTメソッド)を呼び出して、第2のOMSサービス704に関するリーダデータ/ライタデータがサービスディレクトリ706から削除されたという第2の確認を含むメッセージを提供するように構成され得る。いくつかの例において、第2のOMSサービス704は、第2のOMSサービス704に関するリーダデータ/ライタデータがサービスディレクトリ706から削除されたという第2の確認を受信した後、または受信したことに応答してシャットダウンするように構成され得る。
【0060】
図8は、別の通信系統
図800の別の例である。通信系統
図800は、OMSサービス802、ウェブサービス804、サービスディレクトリ806、およびウェブクライアント808を含む。OMSサービス802は、
図1に示されるような非ウェブサービス104に対応し得るか、または
図2に示されるような非ウェブサービス206に対応し得る。ウェブサービス804は、
図1に示されるウェブサービス106に対応し得る。サービスディレクトリ806は、
図1に示されるサービスディレクトリ112に対応し得るか、または
図2に示されるサービスディレクトリ204に対応し得る。従って、
図8の以下の説明は、
図1および
図2も参照することができる。
【0061】
810において、OMSサービス802が始動(例えば、開始)され得る。例として、第1のOMSサービス802は、ステータスデータを発行するように構成され得るとともに、いくつかの例では、サービスディレクトリ806(例えば、
図2に示されるようなパブリッシャ-サブスクライバデータ226)に基づく別のサービスのステータスデータを受信するサブスクライバとして構成され得る。いくつかの例では、OMSサービス802は、(例えば、ウェブクライアント808などからステータスデータに対する要求を受信したことに応答して)WSIを呼び出すことによって、ステータスデータを1つまたは複数のメッセージとして提供するように構成され得る。OMSサービス802は、リーダデータおよびライタデータ(例えば、
図2に示されるようなリーダデータ218およびライタデータ220)をサービスディレクトリ806に提供するように構成され得る。例えば、812において、OMSサービス802は、WSI(例えば、
図1に示されるようなWSI102)を呼び出してPUTメソッドを実施して、リーダデータおよびライタデータをメッセージとしてサービスディレクトリ706に提供し得る。814において、サービスディレクトリ806は、POSTメソッドを呼び出して、非ウェブサービスサブスクライバデータ(例えば、
図2に示されるような非ウェブサービスサブスクライバデータ228)をOMSサービス802に対するメッセージとして提供するように構成され得る。
【0062】
いくつかの例では、816において、ウェブサービス804は、GETメソッドを呼び出して、ウェブサービスサブスクライバデータ(例えば、
図2に示されるようなウェブサービスサブスクライバデータ238)に関するメッセージを生成するように構成され得る。818において、サービスディレクトリ806は、HTTPメソッド(例えば、POSTメソッド)を呼び出して、ウェブサービスサブスクライバデータをウェブサービス804に対するメッセージとして提供するように構成され得る。ウェブサービスサブスクライバデータは、OMSサービス802をウェブサービス804によって提供されるメッセージのサブスクライバとして特定するため、820において、ウェブサービス804は、OMSサービス802をサブスクライバとして認識し得る。
【0063】
いくつかの例では、ウェブサービス804は、ステータスデータを発行する要求を提供するように構成され得る。例えば、822において、ウェブサービス804は、POSTメソッドを呼び出して、ステータスデータを発行する要求を有するメッセージをOMSサービス802に伝達するように構成され得る。824において、OMSサービス802は、ステータスデータを発行するように構成され得る。826において、ウェブクライアント808は、GETメソッドを呼び出して、OMSサービス802のステータスを示すステータスデータに対する要求を有するメッセージをOMSサービス802に伝達するように構成され得る。828において、OMSサービス802は、OMSサービス802のステータスを示すステータスデータを有するメッセージをウェブクライアント808に提供するように構成され得る。
【0064】
いくつかの例では、830において、シャットダウンする前に、OMSサービス802のサービスディレクトリ806からの除去が開始され得る。例えば、832において、OMSサービス802は、HTTPメソッド(例えば、PUTメソッド)を呼び出して、OMSサービス802に関するリーダデータおよびライタデータをサービスディレクトリ806から削除する要求を含むメッセージを提供するように構成され得る。834において、サービスディレクトリ806は、HTTPメソッド(例えば、POSTメソッド)を呼び出して、OMSサービス802に関するリーダデータおよびライタデータがサービスディレクトリ806から削除されたという確認を含むメッセージを提供するように構成され得る。いくつかの例において、OMSサービス802は、OMSサービス802に関するリーダデータ/ライタデータがサービスディレクトリ806から削除されたという確認を受信した後、または受信したことに応答してシャットダウンするように構成され得る。
【0065】
上述した構造的特徴および機能的特徴を考慮して、例示的な方法は、
図9及び
図10を参照することによって、より良く理解されるであろう。説明を簡単にするために、
図9および
図10の例示的な方法は、連続して実行されるものとして示され、説明されているが、他の例においていくつかの動作が、本明細書に示され、かつ説明されているものとは異なる順序で、複数回、および/または同時に行われ得るため、例示的な方法は、図示されている順序によって制限されないことを理解および認識されたい。
【0066】
図9は、非ウェブサービスがウェブサービスと通信することを可能にする方法の一例を示す図である。方法900は、本明細書で説明するようなWSI(例えば、
図1に示されるようなWSI102)などのWSIによって実施され得る。従って、
図9の以下の説明は、
図1および
図2も参照することができる。方法900は、902において、WSIが、非ウェブサービス(例えば、
図1に示されるような非ウェブサービス104)のリーダデータおよび/またはライタデータをサービスディレクトリ(例えば、
図1に示されるようなサービスディレクトリ112)に提供することによって開始され得る。WSIは、OMSシステムのCAL(例えば、
図1に示されるようなOMSシステム100のCAL108)に配置され得る。904において、非ウェブサービスサブスクライバデータおよび/または非ウェブサービスパブリッシャデータ(例えば、
図2に示されるような非ウェブサービスサブスクライバデータ228および/または非ウェブサービスパブリッシャデータ230)がWSIで受信され得る。906において、WSIは、非ウェブサービスサブスクライバデータおよび/または非ウェブサービスパブリッシャデータを非ウェブサービスに提供して、非ウェブサービスがウェブサービスと通信することを可能にし得る。
【0067】
図10は、インターネット上に配置されたウェブサービスとOMSシステムの非ウェブサービスとの間の通信を可能にするための方法1000の別の例である。方法1000は、
図1に示されるようなサービスディレクトリ112、または
図2に示されるようなサービスディレクトリ204等のサービスディレクトリによって実施され得る。従って、
図10の例の以下の説明では、
図1および
図2の例を参照することができる。方法1000は、1002において、非ウェブサービスのリーダデータおよび/またはライタデータを含み得る1つまたは複数のメッセージをサービスディレクトリにて受信することによって開始され得る。1つまたは複数のメッセージは、OMSシステムのCAL(例えば、
図1に示されるようなOMSシステム100のCAL108)に配置されたWSI(例えば、
図1に示されるようなWSI102)によって生成され得る。1004において、サービスディレクトリは、非ウェブサービスのリーダデータおよび/またはライタデータを受信したことに応答して、非ウェブサービスに関する非ウェブサービスサブスクライバデータおよび/または非ウェブサービスパブリッシャデータ(例えば、非ウェブサービスサブスクライバデータ228および/または非ウェブサービスパブリッシャデータ230)を提供するように構成され得る。非ウェブサービスサブスクライバデータおよび/または非ウェブサービスパブリッシャデータが非ウェブサービスに提供されて、非ウェブサービスがウェブサービスと通信することが可能となるようにし得る。1006において、サービスディレクトリは、ウェブサービスに関するパブリッシャおよび/またはサブスクライバに対する要求を受信するように構成され得る。1008において、サービスディレクトリは、非ウェブサービスのリーダデータおよび/またはライタデータに基づいて、ウェブサービスサブスクライバデータ(例えば、
図2に示されるようなウェブサービスサブスクライバデータ234)および/またはウェブサービスパブリッシャデータ(例えば、
図2に示されるようなウェブサービスパブリッシャデータ240)を生成するように構成され得る。1010において、サービスディレクトリは、ウェブサービスサブスクライバデータおよび/またはウェブサービスパブリッシャデータをウェブサービスに提供して、ウェブサービスが非ウェブサービスと通信することを可能にするように構成され得る。
【0068】
上記した説明は一例である。もちろん、構成要素または方法の考えられる全ての組み合わせを説明することは不可能であるが、当業者は、さらに多くの組み合わせおよび置換が可能であることを認識するであろう。従って、本開示は、添付の特許請求の範囲を含む本出願の範囲内にあるそのような全ての変更、修正、および変形を包含することを意図している。本明細書で使用される場合、「含む」という用語は、限定することなく含むことを意味する。「に基づく」という用語は、少なくとも部分的に基づくことを意味する。さらに、開示または請求項が「1つの」、「第1の」、または「別の」要素、またはそれらの同等物を記載する場合、1つまたは複数のそのような要素を含むと解釈されるべきであり、2つ以上のそのような要素の要求も除外もされない。
以下に、上記実施形態から把握できる技術思想を付記として記載する。
[付記1]
システムであって、
非ウェブサービスと通信して、リーダデータおよび/またはライタデータを受信するように構成されたウェブサービスインタフェース(以下、WSIとする)であって、前記リーダデータは、前記非ウェブサービスによって提供されるデータを取得する許可が与えられた1つまたは複数のサービスを特定し、前記ライタデータは、前記非ウェブサービスにデータを提供する許可が与えられた1つまたは複数のサービスを特定する、前記WSIと、
前記リーダデータおよび/または前記ライタデータを受信したこと応答して、前記非ウェブサービスに関する非ウェブサービスサブスクライバデータおよび/または非ウェブサービスパブリッシャデータを前記WSIに提供するように構成されたサービスディレクトリであって、前記非ウェブサービスサブスクライバデータは、前記非ウェブサービスによって提供されるデータのサブスクライバとしてウェブサービスを特定し、前記非ウェブサービスパブリッシャデータは、前記非ウェブサービスがデータを取得することを可能にするデータのパブリッシャとして前記ウェブサービスを特定する、前記サービスディレクトリと、を備え、前記WSIは、ウェブサービスサブスクライバデータおよび/またはウェブサービスパブリッシャデータを前記非ウェブサービスに提供して、前記非ウェブサービスが前記ウェブサービスと通信することを可能にするように構成される、システム。
[付記2]
前記WSIは、クリティカルアブストラクト層に配置され、前記システムは、オープンミッションシステム規格に従って構成される、付記1に記載のシステム。
[付記3]
前記WSIは、ハイパーテキスト転送プロトコル(以下、HTTPとする)メソッドを含み、前記非ウェブサービスは、前記HTTPメソッドを呼び出して、前記リーダデータおよび/またはライタデータを1つまたは複数のメッセージとして前記サービスディレクトリに伝達するように構成される、付記2に記載のシステム。
[付記4]
前記サービスディレクトリは、サービスメッセージインタフェース(以下、SMIとする)およびパブリッシャ-サブスクライバデータベースを含み、前記SMIは、前記1つまたは複数のメッセージから前記リーダデータおよび/または前記ライタデータを抽出し、抽出された前記リーダデータおよび/または前記ライタデータを前記パブリッシャ-サブスクライバデータベースに保存するように構成される、付記3に記載のシステム。
[付記5]
前記SMIは、前記非ウェブサービスによって提供されるデータのサブスクライバおよび/または前記非ウェブサービスがデータを取得することを可能にするデータのパブリッシャに関して前記パブリッシャ-サブスクライバデータベースに問い合わせるように構成され、前記パブリッシャ-サブスクライバデータベースは、前記パブリッシャ-サブスクライバデータベースへの問い合わせに応答して、前記非ウェブサービスサブスクライバデータおよび/または前記非ウェブサービスパブリッシャデータを提供するようにプログラムされる、付記4に記載のシステム。
[付記6]
前記1つまたは複数のメッセージは1つまたは複数の第1のメッセージであり、前記HTTPメソッドは第1のHTTPメソッドであり、前記サービスディレクトリは第2のHTTPメソッドを含み、前記SMIは、前記第2のHTTPメソッドを呼び出して、前記非ウェブサービスサブスクライバデータおよび/または前記非ウェブサービスパブリッシャデータを1つまたは複数の第2のメッセージとして前記WSIに伝達するように構成される、付記5に記載のシステム。
[付記7]
前記WSIは抽出器を含み、前記抽出器は、前記1つまたは複数の第2のメッセージから前記非ウェブサービスサブスクライバデータおよび/または前記非ウェブサービスパブリッシャデータを抽出し、前記非ウェブサービスが前記ウェブサービスと通信することを可能にするために、抽出された前記非ウェブサービスサブスクライバデータおよび/または抽出された前記非ウェブサービスパブリッシャデータを前記非ウェブサービスに提供するように構成される、付記6に記載のシステム。
[付記8]
前記SMIは、前記ウェブサービスによって提供されるデータのサブスクライバおよび/または前記ウェブサービスがデータを取得することを可能にするデータのパブリッシャに関する1つまたは複数のウェブサービス要求を受信するようにさらに構成される、付記7に記載のシステム。
[付記9]
前記SMIは、前記1つまたは複数のウェブサービス要求に基づいて、前記ウェブサービスによって提供されるデータの前記サブスクライバおよび/または前記ウェブサービスがデータを取得することを可能にするデータの前記パブリッシャに関して前記パブリッシャ-サブスクライバデータベースに問い合わせるように構成され、前記パブリッシャ-サブスクライバデータベースは、前記パブリッシャ-サブスクライバデータベースへの問い合わせに応答して、ウェブサービスサブスクライバデータおよび/またはウェブサービスパブリッシャデータを提供するようにプログラムされる、付記8に記載のシステム。
[付記10]
前記ウェブサービスサブスクライバデータは、前記ウェブサービスによって提供されるデータのサブスクライバとして前記非ウェブサービスを特定し、前記ウェブサービスパブリッシャデータは、前記ウェブサービスがデータを取得することを可能にするデータのパブリッシャとして前記非ウェブサービスを特定する、付記9に記載のシステム。
[付記11]
前記WSIは、前記非ウェブサービスがオンラインであることを示すステータスデータを含むメッセージを前記サービスディレクトリに定期的に伝達するように構成され、前記ステータスデータは、前記非ウェブサービスによって提供される、付記10に記載のシステム。
[付記12]
前記SMIは、定義された期間内に前記ステータスデータを含む個々のメッセージを受信しないことに応答して、データの前記パブリッシャおよび/またはデータの前記サブスクライバとしての前記非ウェブサービスを前記パブリッシャ-サブスクライバデータベースから除去するように構成される、付記11に記載のシステム。
[付記13]
前記WSIは、前記非ウェブサービスに応答して、データの前記パブリッシャおよび/またはデータの前記サブスクライバとしての前記非ウェブサービスを前記パブリッシャ-サブスクライバデータベースから除去するための削除要求を含むメッセージを生成するように構成される、付記12に記載のシステム。
[付記14]
前記SMIは、前記非ウェブサービスに対する前記ライタデータおよび/または前記リーダデータを前記パブリッシャ-サブスクライバデータベースから除去するための前記削除要求に基づいて、データの前記パブリッシャおよび/またはデータの前記サブスクライバとしての前記非ウェブサービスを除去するように構成される、付記13に記載のシステム。
[付記15]
システムであって、
機械可読命令およびデータを保存するためのメモリと、
前記メモリにアクセスし、前記機械可読命令を実行するための1つまたは複数のプロセッサと、を備え、前記機械可読命令は、前記プロセッサに、
非ウェブサービスによって生成されたリーダデータおよび/またはライタデータを受信することであって、前記リーダデータは、前記非ウェブサービスによって提供されるデータを取得する許可が与えられた1つまたは複数のサービスを特定し、前記ライタデータは、前記非ウェブサービスにデータを提供する許可が与えられた1つまたは複数のサービスを特定する、前記リーダデータおよび/または前記ライタデータを受信すること、
前記非ウェブサービスに関する前記リーダデータおよび/または前記ライタデータをパブリッシャ-サブスクライバデータベースに保存すること、
前記非ウェブサービスによって提供されるデータのサブスクライバおよび/または前記非ウェブサービスがデータを取得することを可能にするデータのパブリッシャに関して前記パブリッシャ-サブスクライバデータベースに問い合わせること、
前記パブリッシャ-サブスクライバデータベースへの問い合わせに応答して、非ウェブサービスサブスクライバデータおよび/または非ウェブサービスパブリッシャデータを生成すること、
前記非ウェブサービスサブスクライバデータおよび/または前記非ウェブサービスパブリッシャデータが前記非ウェブサービスに関連付けられたウェブサービスインタフェース(以下、WSIとする)に提供されて、前記非ウェブサービスサブスクライバデータおよび/または前記非ウェブサービスパブリッシャデータを前記非ウェブサービスに提供するようにして、前記非ウェブサービスがウェブサービスと通信することを可能にさせること、を行わせる、システム。
[付記16]
前記システムは、オープンミッションシステム(OMS)規格によって構成され、前記システムの前記データは、前記WSI及び前記非ウェブサービスを含む、付記15に記載のシステム。
[付記17]
前記データは、クリティカルアブストラクト層(以下、CALとする)を含み、前記CALは前記WSIを含み、前記WSIはウェブサーバとして実装される、付記16に記載のシステム。
[付記18]
前記機械可読命令はさらに、前記プロセッサに、
前記ウェブサービスによって提供されるデータのサブスクライバおよび/または前記ウェブサービスがデータを取得することを可能にするデータのパブリッシャに対する1つまたは複数のウェブサービス要求を受信すること、
前記1つまたは複数のウェブサービス要求に基づいて、前記ウェブサービスによって提供されるデータの前記サブスクライバおよび/または前記ウェブサービスがデータを取得することを可能にするデータの前記パブリッシャに関して前記パブリッシャ-サブスクライバデータベースに問い合わせること、
前記パブリッシャ-サブスクライバデータベースへの問い合わせに応答して、ウェブサービスサブスクライバデータおよび/またはウェブサービスパブリッシャデータを生成することであって、前記ウェブサービスサブスクライバデータは、前記ウェブサービスによって提供されるデータのサブスクライバとして前記非ウェブサービスを特定し、前記ウェブサービスパブリッシャデータは、前記ウェブサービスがデータを取得することを可能にするデータのパブリッシャとして前記非ウェブサービスを特定する、前記ウェブサービスサブスクライバデータおよび/または前記ウェブサービスパブリッシャデータを生成すること、
前記ウェブサービスサブスクライバデータおよび/または前記ウェブサービスパブリッシャデータが前記ウェブサービスに提供されて、前記ウェブサービスが前記非ウェブサービスと通信することを可能にさせること、を行わせる、付記17に記載のシステム。
[付記19]
方法であって、
ウェブサービスインタフェース(以下、WSIとする)が、非ウェブサービスによって生成されたリーダデータおよび/またはライタデータを受信するステップであって、前記WSIは、前記非ウェブサービスを含むオープンミッションシステム(OMS)規格に従って構成されたシステムのクリティカルアブストラクト層に配置されている、前記リーダデータおよび/または前記ライタデータを受信するステップと、
サービスディレクトリが、前記リーダデータおよび/または前記ライタデータをサブスクライバ-パブリッシャデータベースに保存したことに応答して、前記非ウェブサービスに対する非ウェブサービスサブスクライバデータおよび/または非ウェブサービスパブリッシャデータを生成するステップと、
前記WSIが、前記非ウェブサービスサブスクライバデータおよび/または前記非ウェブサービスパブリッシャデータが前記非ウェブサービスに提供されて、前記非ウェブサービスがウェブサービスと通信することが可能となるようにするステップと、
前記サービスディレクトリが、前記ウェブサービスによって提供されるデータのサブスクライバおよび/または前記ウェブサービスがデータを取得することを可能にするデータのパブリッシャに関する1つまたは複数のウェブサービス要求を受信するステップであって、データの前記パブリッシャは前記非ウェブサービスを含む、前記1つまたは複数のウェブサービス要求を受信するステップと、
前記1つまたは複数のウェブサービス要求に応答して、ウェブサービスサブスクライバデータおよび/またはウェブサービスパブリッシャデータを生成するステップと、
前記サービスディレクトリが、前記ウェブサービスサブスクライバデータおよび/または前記ウェブサービスパブリッシャデータが前記ウェブサービスに提供されて、前記ウェブサービスが前記非ウェブサービスと通信することが可能となるようにするステップと、を含む方法。
[付記20]
前記サービスディレクトリが、前記非ウェブサービスがオンラインであることを示すステータスデータを定期的に受信するステップであって、前記ステータスデータは前記非ウェブサービスによって提供される、前記ステータスデータを定期的に受信するステップと、
定義された期間内に前記ステータスデータを含む個々のメッセージを受信しないことに応答して、データの前記パブリッシャおよび/またはデータの前記サブスクライバとしての前記非ウェブサービスを前記サービスディレクトリから除去するステップと、
前記サービスディレクトリが、更新されたウェブサービスサブスクライバデータおよび/または更新されたウェブサービスパブリッシャデータが前記ウェブサービスに提供されて、前記ウェブサービスが前記非ウェブサービスと通信することが無効となるようにするステップと、をさらに含む、付記19に記載の方法。