エンタープライズ・サービス・バスのための、USB に似たユニバーサル・ポート・タイプ: 第 3 回 ユニバーサル・ポートのメリット

ESB にとってユニバーサル・ポートを持つことによるさまざまなメリットを学ぶ

この連載の第 1 回の記事では、始めにエンタープライズ・サービス・バス (Enterprise Service Bus: ESB) の基本機能について説明し、その後で ESB を使用する上での現在の問題をいくつか紹介しました。連載の第 2 回の記事では、ユニバーサル・ポート・タイプという、ESB のための新しい概念について、またユニバーサル・ポートを実装する方法について説明しました。ユニバーサル・ポートは現在 ESB を使用している人々が経験している多くの問題に対するソリューションとなります。ユニバーサル・ポートは、コンピューターに多様な機器を接続するための USB ポートと役割が似ています。USB ポートと同じように、ユニバーサル・ポートを使用することで任意のアプリケーションを ESB に接続することができ、また間接的に、他のアプリケーションに接続することもできます。それらのアプリケーションは、まったく異なる形式のサービスを使用して機能の一部またはすべてを公開するかもしれませんが、その場合にも 1 つのポート・タイプを使用することができます。連載の第 3 回となる今回の記事では、ユニバーサル・ポートが持つさまざまなメリットについて説明します。

Dr. Waseem Roshen, Master IT Architect, IBM  

Waseem RoshenWaseem Roshen 博士は米オハイオ州コロンバスのオハイオ州立大学 (The Ohio State University) で博士号を取得し、IT 分野で 18 年を超える実践経験があります。彼は現在、IBM の Enterprise Architecture and Technology Center of Excellence の IT アーキテクトです。彼は SOA (Service-Oriented Architecture) などの分散コンピューティングを幅広く経験してきています。また、カスタム開発、統合アーキテクチャー、J2EE (現在の JEE) にも専門知識があります。彼が現在関心を持っている分野には、SOA と Web サービス、量子コンピューター、クラウド・コンピューティングなどがあります。Roshen 博士は 60 点を超える出版物を執筆し、37 件の特許を持ち、IEEE と IEEE Computer Society の会員でもあります。彼は『SOA-Based Enterprise Integration: A step-by-step guide to services-based application integration』を単著として執筆しました。



2012年 2月 16日

はじめに

エンタープライズ・サービス・バス (Enterprise Service Bus: ESB) は、アプリケーション同士を接続したりデータや機能を共有したりするための効率的な手段です。ESB を介して接続されるアプリケーションは、まったく異なる形式のサービスを使用して、そのアプリケーションの機能の一部またはすべてを公開します。現在の ESB を図で示したものが図 1 です。この図で注目すべき最も重要な点は、各アプリケーションが固有のポート・タイプを使用して ESB に接続されている点です。つまり、各ポート・タイプは特定のタイプのアプリケーション専用であり、それらのアプリケーションは特定の通信プロトコルとメッセージまたはデータ・フォーマットを使用して、そのアプリケーションの機能を公開します。

図 1. アプリケーションごとに固有のポート・タイプを使用して ESB に接続する様子
アプリケーションごとに固有のポート・タイプを使用して ESB に接続する様子

連載 の第 1 回では、特定のポート・タイプを使用する現在の ESB を使用する上での一般的な問題のいくつかについて説明しました。これらの問題や不都合としては、1 つのアプリケーションで複数の通信プロトコルを使用する場合や 1 つのアプリケーションで複数の通信プロトコルを切り換える場合への対応、新しい通信プロトコルを使用できるように ESB の使い方を拡張する方法、大量のアプリケーションに対応するためのスケーラビリティー、ESB に関する一般的な保守と更新の問題、などがあります。

現在の ESB が抱えるこれらの欠点を克服するために、この連載の第 2 回では新しいタイプの ESB を提案しました。この新しいタイプの ESB では、ほとんどのタイプのアプリケーション、またはすべてのタイプのアプリケーションに対応可能な、1 つのユニバーサル・ポート・タイプを使用します (図 2)。このユニバーサル・ポート・タイプにより、新しいタイプのアプリケーションごとに新しいポート・タイプを開発してデプロイする必要がなくなり、コードの再利用を大幅に増やすことができます。

図 2. 複数のアプリケーションが 1 つのポート・タイプ (ユニバーサル・ポート) を使用して ESB に接続する様子
複数のアプリケーションが 1 つのポート・タイプ (ユニバーサル・ポート) を使用して ESB に接続する様子

ユニバーサル・ポート・タイプの概念を理解するために、PC などのコンピューターのハードウェアを考えてみるとわかりやすいでしょう。USB ポートが登場する前には、さまざまな機器 (プリンター、フラッシュ・メモリー、リムーバブル・ハードディスクなど) をコンピューターに接続するために、さまざまなタイプのポートがコンピューターに必要でした。それぞれのタイプのポートは特定の種類の機器に専用でした。そのため、プリンターをコンピューターに接続するためには専用のタイプのポートをコンピューターに用意する必要がありました。同様に、追加のハードディスクを接続するためには異なるタイプのポートがコンピューター上に必要でした。しかし最近では、USB ポートが発明されたことにより、機器の種類ごとに別のタイプのポートを用意する必要がなくなり、今やほとんどすべての機器を USB ポートという 1 つのタイプのポートを使用してコンピューターに接続することができます。

このユニバーサル・ポートを持つ新しいタイプの ESB は、従来の ESB に比べて多くのメリットがあります。それらのメリットには ESB 側にとってのメリットと、ESB に接続されるアプリケーション側にとってのメリットがあります。まず、ESB 側のメリットについて次のセクションで説明します。

ESB 側のメリット

このセクションでは、ユニバーサル・ポートを使用することによる ESB 側のメリットとして最も重要なものについて説明します。

単純化

ESB にユニバーサル・ポートが実装されると、その ESB の大部分のユーザーにとって ESB を使用する方法が大幅に単純化されます。この単純化は主に、ユニバーサル・ポートを容易に構成できることでもたらされるものです。各ユニバーサル・ポートを実装するコードは同じはずなので、ユニバーサル・ポートを構成する上で唯一重要なことは、ESB が実行されているマシンまたはコンピューター上のポートとユニバーサル・ポートとを関連付けることです。ほとんどすべてのポートがカスタム・ポートである上に、ポートのタイプが多種多様である現状に比べると、構成は大幅に単純になるはずです。また、現在の ESB ポートのコンポーネントに比べ、ユニバーサル・ポートが非常に軽量のコンポーネントであることも、言及しておく必要のある重要な点です。ユニバーサル・ポートの目的は、ESB に接続されるアプリケーションで使用されている通信プロトコルを判断し、ESB 本体内にある適切なプロトコル処理プログラムにリクエストを転送することのみとなります。これを図 3 に示します。

図 3. ユニバーサル・ポートは軽量のコンポーネントであり、ほとんどの処理が ESB 本体内で行われる様子
軽量のコンポーネントであるユニバーサル・ポート

拡張の容易さ

ESB を拡張して新しい通信プロトコルに対応するのが容易になります。実際、コードをダウンロードして新しいプロトコルを ESB に登録することにより、新しいプロトコル処理プログラムをインストールできるようになります。この拡張性を理解するために、USB ポートを介して新しいハードウェア機器を接続する場合を考えてみてください。通常、ドライバーと呼ばれるコードが Web サイトからダウンロードされ、そのコードが登録されます。それと同様に、ESB ポートを使用して新しいプロトコルを使い始めるためには、Web サイトからコードをダウンロードして登録するだけでよいのです。

コードの再利用促進と保守や更新の容易さ

この新しい仕組みでは、ESB 本体内に存在する各プロトコルのコードは 1 つのみです。これは ESB の現在の実装とは極めて対照的です。現在の ESB では個々の ESB ポートに各プロトコルのコードがあるため、さまざまな ESB ポートに同じコードが複数存在しています。つまりユニバーサル・ポートの場合には、コードの再利用を大幅に増やすことができます。このようにコードが再利用されるようになると、ESB の動作がより一貫したものになります。また、同じコードが 1 ヶ所にしか存在しなくなるため、コードの保守や更新も容易になります。

スケーラビリティー

ESB のポートの構成プロセスが大幅に単純化されるため、多数のポートを素早く容易に構成することができます。これにより、さまざまなタイプの多数のアプリケーションを ESB に接続することができ、統合可能なアプリケーションのタイプと数の両面でスケーラビリティーが高まります。またユニバーサル・ポートを使用することで、ESB に対する呼び出し回数の面でランタイムのスケーラビリティーも高まります。このようにスケーラビリティーが高まるのは、各プロトコル処理プログラムが ESB 本体の一部となり、各プロトコル処理プログラムの複数のインスタンスを実行することができ、それらの各プロトコル処理プログラムを複数のユニバーサル・ポートで再利用できるためです。

アプリケーション側のメリット

このセクションでは、ユニバーサル・ポートを使用することで、ESB に接続されるアプリケーション側にもたらされる最も重要なメリットについて説明します。

コードの変更が不要

ユニバーサル・ポートを導入しても、現在 ESB に接続されているアプリケーションを (もし変更する必要があるとしても) 大幅に変更する必要はありません。これは大きなメリットです。なぜなら、従来の ESB からユニバーサル・ポートを持つ新しいタイプの ESB への移行を、アプリケーション側に意識させることなく実現できるからです。

任意のプロトコルを使用可能

通常、アプリケーションのランタイム環境では、アプリケーションは ESB への接続に 1 つの手段またはプロトコルしか使用することができず、しかもそのプロトコルは、その ESB 上の指定されたポートで使用可能なプロトコルでなければなりません。例えば、あるアプリケーションでトランスポートとして MQ を使用できるようにするには、そのアプリケーションが実行されるマシンに何らかのバージョンの MQ をインストールしておく必要があります。ユニバーサル・ポートを使用すると、アプリケーションはランタイム環境で許される任意のプロトコルを使用することができるため、アプリケーションのプロトコルと ESB 側のプロトコルとを一致させなければならないという問題がなくなります。このことから、アプリケーション側でのランタイム要件の一部を削減できる可能性があります。

プロトコルの切り換えが容易

IT の世界では、頻繁に要件が変更される場合もあれば、新しい要件が登場する場合もあります。なかには、要件が変更されたことで、アプリケーションが ESB への接続に使用していた通信プロトコルを変更しなければならない場合もあります。そうした新たな要件や要件の変更の例として、トランザクション、セキュリティー、信頼性、パーシスタンスに関して新たな要件が追加される場合があります。このようなケースでユニバーサル・ポートを使用すると、ESB 側には何も変更が必要ないため (または最小限の変更で済むため)、アプリケーションはいつでも極めて容易にプロトコルを切り換えることができます。

アプリケーションが複数のプロトコルを使用可能

アプリケーション内にある別々のコンポーネント (あるいは別々の部分) が、ESB や他のアプリケーションと通信する際に異なるプロトコルを使用することは珍しくありません。例えば、メインフレームで実行されるレガシー (COBOL) アプリケーションの別々の部分で異なるプロトコルが使用されることは非常に一般的です (Web サービス、MQ、ゲートウェイなど)。ユニバーサル・ポートを使用すると、アプリケーションのさまざまな部分を、同じコンピューター・ポートを使用して ESB に接続することができるため、このような接続の構成を単純化することができます。

まとめ

連載第 3 回目となる今回は、特定の通信プロトコルやメッセージ・フォーマット・タイプ専用のポートを持つ従来の ESB に比べ、ユニバーサル・ポートを持つ新しいタイプの ESB には多くのメリットがあることを説明しました。それらのメリットには ESB 側にとってのメリットと、ESB に接続されるアプリケーション側にとってのメリットがあります。

これで、ユニバーサル・ポートを持つ新しいタイプの ESB についての連載を終了します。この連載の第 1 回では、アプリケーションが使用する通信プロトコルとメッセージ・フォーマットのタイプによって決まる固有のポートを持つ現在の ESB は、使用する上で多くの問題があることを説明しました。第 2 回では、ユニバーサル・ポートの概念と、ユニバーサル・ポートの実装方法を紹介し、最終回の第 3 回では、ESB 側にも、ESB に接続されるアプリケーション側にも、多くのメリットがあることを説明しました。重要な点として、この分野で IBM が特許を申請中であり、この連載で紹介した概念の詳細が特許申請書に記述されていることを付け加えておきます。

参考文献

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=SOA and web services
ArticleID=792477
ArticleTitle=エンタープライズ・サービス・バスのための、USB に似たユニバーサル・ポート・タイプ: 第 3 回 ユニバーサル・ポートのメリット
publish-date=02162012