EnterpriseZine(エンタープライズジン)

EnterpriseZine(エンタープライズジン)

テーマ別に探す

RESTful Webサービスの特徴

  2008/09/25 11:00

本連載では、「RESTful Webサービス」によるアプリケーション連携の特徴と、JavaでRESTful Webサービスを実現するためのAPIである「JAX-RS」の使用方法を解説します。
まず連載1回目の今回は、様々なアプリケーション連携のアーキテクチャを考察し、本連載のテーマである「RESTful Webサービス」の特徴的な点を解説します。
 

アプリケーション連携アーキテクチャ

 エンタープライズシステムでは、複数のアプリケーション同士が連携して、一つの業務取引を成立させるケースが多いでしょう。連携を行う相手のアプリケーションは、同じ企業内における他部門のアプリケーションかもしれませんし、他の企業のアプリケーションかもしれません。いずれにしても、アプリケーション連携を行うためには、何らかの通信プロトコルによって相手のアプリケーションと接続し、お互いのアプリケーションにとって都合の良いメッセージフォーマットで、データの送受信を行う必要があります。

 本節では、アプリケーション連携のための様々なアーキテクチャを紹介します。なお、本連載では、アプリケーション連携において、呼び出し元となるアプリケーションを「リクエスタ」、呼び出し先となるアプリケーションを「プロバイダ」、プロバイダが提供する機能を「サービス」、リクエスタが送信するメッセージを「要求メッセージ」、プロバイダが返送するメッセージを「応答メッセージ」という呼称で統一します(図1)。

図1:本連載で使用する名称
図1:本連載で使用する名称

 さて、Javaでアプリケーション連携を行うための方法を、通信プロトコルとメッセージフォーマットに着目して分類すると、以下のようになります。

  1. Java-RMI
  2. EJBリモート呼び出し
  3. HTTP連携
  4. SOAP Webサービス
  5. RESTful Webサービス
  6. JMS

分散オブジェクト技術

 上記の1.~6.のうち、Java-RMI(1.)とEJBリモート呼び出し(2.)は、「分散オブジェクト技術」と呼ばれています。後述するSOAP Webサービス(4.)も、広義の分散オブジェクトと位置付けることができます。

 分散オブジェクト技術では、プロバイダが提供するサービスのインタフェースを、何らかの記述言語によって表現します。そしてリクエスタでは、そのインタフェースを取り込み、ツールによってプロキシ(スタブと呼ばれることもあります)を自動生成します。リクエスタでは、自動生成されたプロキシに対してプログラミングを行うことで、通信プロトコルやメッセージフォーマットをまったく意識することなく、物理的に離れた位置にあるアプリケーション(=プロバイダ)のサービスメソッドを呼び出すことが可能になります。

RPC

 このように、プロキシを利用することによって、物理的に離れた位置にあるアプリケーションのメソッド(リモートメソッド)を、ローカルメソッドと全く同じように呼び出す手法は、古くからRPC(Remote Procedure Call)と呼ばれてきました。

 Java-RMIやEJBリモート呼び出しを利用すると、リクエスタは容易にプロバイダにアクセスできますが、これらの技術の適用は、あくまでもリクエスタ・プロバイダ双方がJavaであることが条件です。また、通信プロトコルはRMIになるため、インターネット越しのサービス呼び出しは難しいでしょう。

※この続きは、会員の方のみお読みいただけます(登録無料)。


※この続きは、会員の方のみお読みいただけます(登録無料)。


著者プロフィール

  • UFJIS 斉藤賢哉(ユーエフジェーアイエスサイトウケンヤ)

    UFJIS株式会社 三菱UFJフィナンシャルグループ(MUFG)の100%出資子会社。銀行、信託、証券、カード・信販、リースなど幅広い金融サービス機能を有する総合金融グループであるMUFGグループ各社の総合金融サービスをIT面から支える金融ITのリーディングカンパニー。 斉藤 賢哉 UFJIS株式会社、オープンプラットフォーム部、システムデザイナ。 一橋大学経済学部卒業後、1994年に三和銀行(現三菱東京UFJ銀行)に入行。1997年にシステム部に配属となり、2004年より現部署。これまでに、アーキテクトとして数々の大規模JavaEEプロジェクトに携わる。現在は、JavaEE5ベースの社内フレームワーク開発チームのリーダを務める傍ら、JavaEEサーバ基盤の社内標準化や、社員育成などに従事。著書に、『マスタリングJavaEE5』(翔泳社)がある。

バックナンバー

連載:JAX-RSで実践!JavaでRESTful Webサービス
All contents copyright © 2007-2020 Shoeisha Co., Ltd. All rights reserved. ver.1.5