本連載では、「RESTful Webサービス」によるアプリケーション連携の特徴と、JavaでRESTful Webサービスを実現するためのAPIである「JAX-RS」の使用方法を解説します。 まず連載1回目の今回は、様々なアプリケーション連携のアーキテクチャを考察し、本連載のテーマである「RESTful Webサービス」の特徴的な点を解説します。
-
- Page 1
アプリケーション連携アーキテクチャ
エンタープライズシステムでは、複数のアプリケーション同士が連携して、一つの業務取引を成立させるケースが多いでしょう。連携を行う相手のアプリケーションは、同じ企業内における他部門のアプリケーションかもしれませんし、他の企業のアプリケーションかもしれません。いずれにしても、アプリケーション連携を行うためには、何らかの通信プロトコルによって相手のアプリケーションと接続し、お互いのアプリケーションにとって都合の良いメッセージフォーマットで、データの送受信を行う必要があります。
本節では、アプリケーション連携のための様々なアーキテクチャを紹介します。なお、本連載では、アプリケーション連携において、呼び出し元となるアプリケーションを「リクエスタ」、呼び出し先となるアプリケーションを「プロバイダ」、プロバイダが提供する機能を「サービス」、リクエスタが送信するメッセージを「要求メッセージ」、プロバイダが返送するメッセージを「応答メッセージ」という呼称で統一します(図1)。

さて、Javaでアプリケーション連携を行うための方法を、通信プロトコルとメッセージフォーマットに着目して分類すると、以下のようになります。
- Java-RMI
- EJBリモート呼び出し
- HTTP連携
- SOAP Webサービス
- RESTful Webサービス
- JMS
分散オブジェクト技術
上記の1.~6.のうち、Java-RMI(1.)とEJBリモート呼び出し(2.)は、「分散オブジェクト技術」と呼ばれています。後述するSOAP Webサービス(4.)も、広義の分散オブジェクトと位置付けることができます。
分散オブジェクト技術では、プロバイダが提供するサービスのインタフェースを、何らかの記述言語によって表現します。そしてリクエスタでは、そのインタフェースを取り込み、ツールによってプロキシ(スタブと呼ばれることもあります)を自動生成します。リクエスタでは、自動生成されたプロキシに対してプログラミングを行うことで、通信プロトコルやメッセージフォーマットをまったく意識することなく、物理的に離れた位置にあるアプリケーション(=プロバイダ)のサービスメソッドを呼び出すことが可能になります。
RPC
このように、プロキシを利用することによって、物理的に離れた位置にあるアプリケーションのメソッド(リモートメソッド)を、ローカルメソッドと全く同じように呼び出す手法は、古くからRPC(Remote Procedure Call)と呼ばれてきました。
Java-RMIやEJBリモート呼び出しを利用すると、リクエスタは容易にプロバイダにアクセスできますが、これらの技術の適用は、あくまでもリクエスタ・プロバイダ双方がJavaであることが条件です。また、通信プロトコルはRMIになるため、インターネット越しのサービス呼び出しは難しいでしょう。
この記事は参考になりましたか?
- JAX-RSで実践!JavaでRESTful Webサービス連載記事一覧
- この記事の著者
-
UFJIS 斉藤賢哉(ユーエフジェーアイエスサイトウケンヤ)
UFJIS株式会社三菱UFJフィナンシャルグループ(MUFG)の100%出資子会社。銀行、信託、証券、カード・信販、リースなど幅広い金融サービス機能を有する総合金融グループであるMUFGグループ各社の総合金融サービスをIT面から支える金融ITのリーディングカンパニー。斉藤 賢哉UFJIS株式会社、オープンプラットフ...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア