自動化可能なサービス・フレームワークの概要


TPTP は、異なる環境からの Eclipse によるホスティングを受ける TPTP サービスの供給と消費をサポートする、自動化可能なサービス・フレームワークを提供します。 これらの TPTP サービスは、拡張機能を介して (サポートされるプロパティーの関連仕様と振る舞い上の規約とともに) 自らをパブリッシュする、基本的にブラック・ボックスのコンポーネントであり、 これによって同様なサービスを実装する新規のサービス・プロバイダーを作成することが可能になります。 この手法を実装すると、サービスの消費者とプロバイダーの間にゆるやかで動的な結合が生まれます。

TPTP のサービス抽象化は、標準的な Web サービス抽象化とは厳密には同じではありません (ずっと軽量で、単純、インフォーマルです) が、TPTP をサービス指向アーキテクチャーで役割を果たす機能に近づけています。 自動化可能なサービス・フレームワークで導入される概念と抽象化は、あらゆるサービス指向アーキテクチャーの高レベル抽象化と同義です。

TPTP を構成する機能は、TPTP プラットフォームが Eclipse 外部のスクリプトや任意のプログラムから指示されるようにするサービスを徐々に開発、パブリッシュしています。 TPTP テスト機能は現在、TPTP テストをプログラマチックな方法で柔軟に実行するテスト実行サービスを提供しています。

フレームワーク・アーキテクチャー

自動化可能なサービス・フレームワークには、このフレームワークの各コンポーネント間をゆるやかに結合する階層化アーキテクチャーがあります。 サービス・コンシューマーの要求をサービス・プロバイダーの応答に転送する (サービスの実行) バスは両者に拡張性を提供します。 クライアント側にアダプター・モデルを (クライアント側は Eclipse インスタンスの内側でコードを実行するか、Eclipse の外側でコマンド行スクリプトのようなコードを実行する)、サーバー側にサービス・プロバイダー提供モデル (サーバー側とは、サービス実装を提供するプラグインをホストする Eclipse インスタンスを指します) をそれぞれ提供します。

新しいサービス・コンシューマー・パラダイムを TPTP で提供される標準の自動化クライアント・インターフェース・クライアントに適応させることができる、別の自動化クライアント・アダプターも開発できます。 例えば、標準の Web サービス環境の内部から TPTP 自動化可能サービスを実行できるサード・パーティー製の機能を使えば Web サービス・クライアント自動化アダプターを開発できますし、Jython 環境からサービスの消費をサポートするような Jython クライアント自動化アダプターを作成することもできます。

規格に準拠した新しい自動化可能なサービスがパブリッシュされると、TPTP Eclipse インスタンスから公的に利用できる有用なサービスのプールが増え、その結果、 自動化可能なサービス・フレームワークを利用している消費者に機能を提供できる有効なサービス・プロバイダーも増加します。 エンド・ユーザーは、適切な拡張ポイントを実装し、1 つ以上の Java クラスを開発するだけで新しいサービスを提供するプラグインを作成できます。 このサービスは、バスの階層化アーキテクチャーとその特質によって、ant スクリプトや shell スクリプト、Java プログラム、あるいは消費者環境にインストールされた任意のクライアント・アダプターから自動的に利用できるようになります。

軽量の自動化クライアント・コンポーネントは、クライアント・アダプターが利用する標準セットのサービス・インターフェースだけでなく、シナリオごとに適切な Eclipse 起動戦略を提供します。 2 つの起動および実行戦略が現在提供されています。 1 つはプロセス内サービス消費用で、もう 1 つはプロセス外サービス消費用です (プロセス外戦略とは、特定の Eclipse インスタンスの外部にいるクライアントにサービスを提供する、典型的な戦略です)。 プロセス内戦略は、呼び出し元と同じ Eclipse インスタンスでサービスが実行されるのが望ましい状況で使用されます。

軽量コンポーネントは重量コンポーネントと対話します (重量なのは Eclipse に大きく依存しているからで、そのため外部の自動化クライアント・コンポーネントが抽出されるようなライブラリー依存関係もあります)。 軽量コンポーネントによる特定の Eclipse インスタンスとの唯一の結合は、自動化クライアント・コンポーネント・インスタンスで設定できるストリング識別子を介して行われます。 Eclipse インスタンス内部でホストされる自動化サーバー (コンポーネントまたはブローカー内部では重量ともいいます) は、軽量自動化クライアント・コンポーネントから着信通信を受け取り、適切なサービス・プロバイダーへの呼び出しをマーシャルします (自動化可能サービスともいいます)。 自動化サーバーは、要求されたサービスとその要求を処理する Java クラスとの間で間接参照を可能にするように、 単純な拡張ポイントをいくつか定義します。

関連タスク
スクリプトとアプリケーションからテストを起動
テスト実行サービスを実行

関連参照
サポートされるテスト実行サービスのプロパティー