My Family,
My Treasure,
My Life







My Family

Best Shot Album



-- 2012--

October
September
August

July
June
May
April
March
February

January


-- 2011--

December
November

October
September
August

July
June
May
April
March
February

January

-- 2010--
December

November
October
September
August
July
June

May
April
March

February
January

-- 2009 --
December
November
October

September
August

July
June
May
April
March

February

January


-- 2008 --

December
November
October
September
August
July
June
May
April
March
Fbruary
January

-- 2007 --

December
November
October
September
August
July
June
May
April
March
February
January

-- 2006 --

December
November
October
September
August
July
June
May
April
March
February
January

-- 2005 --

December
November
October
September
August
July
June
May
April
March
February
January

-- 2004 --

December
November
October
September
August
July
June
May
April

March
February

January

-- 2003 --

December
November

October
September
August

July
June
May
April
March

February
January

-- 2002 --

December
November
October
September
August




Since '02.08.03




Column Index




新しいSOAの実装方法「クライアント型SOA」のすすめ
2005/8/29-2006/5/31

クライアント型SOAとは

はじめに
 継ぎ足し継ぎ足しで構築されてきた企業内のシステム。読者の皆様はそんなシステムに心当たりはないでしょうか?

   情報システム部門の方々の総意として、本来システムはサービス・オリエンテッドなシステムで構築すべきである、もしくはありたいと思っているはずです。なぜならシステムは、利用者の生産性を向上させる道具だからです。

   しかしながら現状の企業内のシステムは会社の事業拡大の歴史、ITテクノロジーの変遷、そして事業・部門単位で予算化されシステムが構築されてきたことなど、企業の文化・成長背景によって、その時々の最善のチョイスを行ってきた結果、現状の複雑なシステム構成になってしまっているケースが多いのではないでしょうか(図1)。

現状のシステム構成
図1:現状のシステム構成

   システム構成図上では非常にシンプルかつ簡潔に記載をされていますが、その裏側に存在している、システム間のデータ連携、ビジネス・プロセスなどは複雑すぎて、とても一枚の絵には描くことが難しく、複雑に絡まってしまっている状態になっているようです。

   そんなシステムの状況などはおかまいなしに、皆様のビジネスは事業拡大のために、市場追従のために常に変化しています。その変化に対応すべく、企業内のシステムも変化を求められるのは当然の要求です。

   この要求に応え、変化に自社システムを追従させるために、さらなる「システムの継ぎ足し」を行い、システムの柔軟性下落に目をつむり、応急処置でしのぐか、全面リプレイスをするしか方法がなかったと思います。

   そんな状況を打開すべく、この世に生まれたのが「SOA:Service Oriented Architecture(サービス指向アーキテクチャ)」です。

   SOAは「既存のシステムを生かしつつ、システム間の連携(データ&プロセス連携)をすべて吸収し、混沌としたシステム環境を、利用者が使用するサービス・機能単位で整理し、利用者ニーズに柔軟な対応ができるようになる」と、ある意味救世主的なアーキテクチャに見えた方も多いと思います。

   そういった期待もあり、多くのベンダーがSOAのビジネスに名乗りをあげ、ソリューションの選択肢も多くなりました。また本年はSOAの大型のイベントも開催され、「いよいよSOAも本格的に盛りあがってくるかもしれない」と感じている読者の方もいらっしゃると思います。

   しかしながら現状のSOAソリューションが、皆様の期待感に応えられていますでしょうか?


SOAに期待されている要求

   まず、SOAに期待されている要求を列記します。

  • SOAの採用メリットである「利用者の生産性」を向上させたい
  • 既存のシステムを生かしたい
  • 柔軟なシステムを構築したい
   この要求に応えるべくIT産業のベンダーのほとんどは下記の提案をしていると思います。

  1. 「利用者の生産性」を向上させるために、まさにサービス・オリエンテッドなシステムを作ります
  2. 利用者のニーズの変化に対応するために、サービスをコンポーネント化し、このコンポーネントの組み換えにより、システムの柔軟性を実現します
  3. 既存のシステムをいかすために、システムの連携を行う中継役のシステムを作ります
  4. 連携できていない部分も、ビジネス・プロセスを再確認した上で、より良いビジネス・プロセスのモデルを作ります
   1と2は企業の情報システム部門の方々にとってはすんなり肯ける項目です。しかしながら3と4の部分で、大きなコストと時間が発生する場合が多く、ここが、SOA採用に踏み切ることができる企業との分かれ道になります。

   この3と4を受け入れることができる企業が少ないために、現時点ではSOAの採用数が伸びていないのではないかと、私は考えています。裏を返せば、この3と4をお客様の想定内(予算と時間)に収めることができるソリューションこそが秀逸なソリューションであります。

   この3と4を踏まえて、前述のSOAに期待されている要求を詳細に述べます。
「既存のシステムを活かしたい」とはいったが
 これは「会社の業務ノウハウを集約して構築されたシステムであり、このシステム自体は上手く動いているために、下手に手を加えたくない」、もしくは「リプレイスをするにはコストもさることながら、年単位のプロジェクトになり時間的な負担が大きすぎる」といった気持ちが含まれています。つまり、「既存のシステムを活かしたいとはいったが、新たに大きなコストと時間をかけたくない」ということです。
柔軟なSOAを元にしたシステムを構築したいとはいったが

   しっかり作りすぎるシステムは柔軟性を失います。しかしながら、しっかり作りこまないと、利用者の要求に応えられないですし、各部門管轄のシステム間連携で企業内のシステムは運営されているために、プロセスなどに問題があったら企業活動に大きな影響をきたします。

   この「システムの柔軟性」と「厳密なシステム」の両立といった要求が出てくるのですが、その両立のために、新たな大きなシステムを導入することは、システムのためのシステムとなり、さらなる「システムの継ぎはぎ化」を生みます。

   「このSOAのための新しいシステムを大きなコストと時間をかけて構築し、もし成功しなかった場合のリスクがあまりにも大きすぎる」そんな思いで、他社の採用状況を探られている情報システム部門の方も多いのではないでしょうか?

   そこで本連載では、コストと時間を極力かけずに実現する新しい「SOA」の手法を中心に、「ソリューションの方向性とソリューションを支える技術概説」、「SOAの実装例と採用効果」を解説します。


現状のSOAソリューションについて

   ここでは、現状のSOAソリューションに関して詳しく解説いたしません。一般的なSOAやSOAソリューションに関してはWebページや書籍などで詳しく解説されていますので、そちらをご参考ください。ここではあくまで、ご確認をいただく意味で簡潔に解説します。


SOAの定義

   SOAの定義に関しては各社によってかなり差があります。ここでは一般論として記載します。

   SOAとはService Oriented Architecture(サービス指向アーキテクチャ)の略です。既設のシステムをいかし、個々のシステムおよび内部の機能を「サービス」という部品として捉え、複数のサービスを利用者のニーズに合わせて柔軟に提供できるシステムを構築するためのアーキテクチャです。

   構造的には連携先の異なったアーキテクチャ(インターネットアプリケーション、EDI、レガシーなど)の連携を吸収するためのミドルウェアとその上のコンポーネントが存在するイメージです(図2)。

SOAのシステム・イメージ
図2:SOAのシステム・イメージ
SOA採用のメリット
   前述のようにビジネス・プロセスに合わせて、接続元のシステムのサービス(機能)を抜き出し、組み換え、サービスを提供するために、従来のシステムのように、既存のシステムや個別の組織・業務フローに特化した固定的なソフトと比較し、利用者やビジネス・プロセスに合わせて組み合わされたサービスを向上させるために、非常に柔軟かつ生産性が高いシステムが構築できます(図3)。

従来のシステムとSOAのシステム
図3:従来のシステムとSOAのシステム

   よって、SOAを用いたシステムでは下記のメリットがあります。

  • 接続モジュールなどのシステムレベル部品の再利用性の向上
  • 既存資産/システムの再利用性の向上
  • 業務手順の設計・開発の容易化・迅速化
SOA実装のポイントについて

   SOAの実装にあたって、一般的に以下のことがポイントとされています。

  1. 対象サービスの選定と、エコシステム(循環システム)の策定
  2. サービスの粒度(サービス内容の深さ)
  3. 段階的導入(短期、中期、長期での適用範囲の確定)。まずはSmall Startが大事
  4. システム開発方法・運営方法の策定
  5. プロジェクト遂行組織、参加部門・メンバーの策定
  6. プロジェクトの運営方針と運営計画の立案
   つまり上記のポイントはプロジェクトが長期に渡ることを前提に述べられているのです。大事な基幹システムと連携するシステムなので、しっかり計画して、きっちり運営しましょうということです。


現状のSOAソリューションの問題点

   実際にSOA実装の提案依頼をした情報システム部門の方でしたら、おわかりになると思いますが、現状の手法でのSOAプロジェクトは、想像以上に重いプロジェクトであり、まるで、新規に大きな基幹システムを導入するようなイメージです。

   ここまでも解説してきたとおり、SOAソリューションの問題点は、コストと時間です。この2点がクリアになれば、SOAが持つ利点である「生産性の向上」と「システムの柔軟性の確保」を実装という形で、ユーザ企業に受け入れられると考えています。

   今までもシステム開発に投資を重ね、その投資したシステムをさらにいかすために、さらなる大型の投資をしましょうというのでは、ユーザ企業の経営者は納得するはずもありません。


クライアント型SOA

   ここでは、サイオが提唱する「クライアント型SOAソリューション」を例にして解説します。

   この「クライアント型SOAソリューション」の狙いは、コストと時間のセーブです。その実現のために、原則として既存のサーバシステムには一切手を加えません。すべてクライアント側だけでSOAを実現します。

   クライアント側だけで実現した場合に発生するクライアント側のメンテナンスとサーバとの接続をローコストかつ、手軽に行うことができるのは独自の技術が存在しているからです。

   この独自の技術により、従来のサーバ型のSOAのシステムと比較して、3年間のTCOを1/5にセーブできた実績がございます(その実例に関しては次回以降で解説させていただきます)。


クライアント型SOAとは

   クライアント型SOAとは、クライアント側でサービスの統合および組み換えを実現したライトウェイトな新しいSOAの実装形式です。まずは、システム・イメージを解説いたします。

   クライアント型SOAでは、SOAクライアントを利用者側のクライアント環境に設置します。このSOAクライアント上で各接続先のサーバとの接続用のコンポーネントや各プロセス・コンポーネントおよびデータ変換コンポーネントを設置し、SOAクライアントが動作するイメージです。各コンポーネントはコンポーネント配信用Webサーバが、プッシュもしくはプルでコンポーネントを配信します(図4)。

クライアント型SOAソリューション・システムイメージ
図4:クライアント型SOAソリューション・システムイメージ
サーバ型とクライアント型SOAの違い
クライアント型SOAの違いを述べます。
サーバコストの違い

   従来のサーバ型のSOAがサービスの組み替え・共通化を行うミドルウェアがサーバ側にあるのに対して、クライアント型ソリューションはそのミドルウェアが利用者のクライアント側に存在することです。

   これにより、利用者のアクセスが集中する大型のサーバシステムを構築する必要がなく、既に利用者が集中的にアクセスすることを想定して構築された既存のサーバ環境との二重投資を回避できます。つまり、既存のサーバ環境をそのまま いかした、分散環境でのSOA対応システムを構築することができるのです。


接続容易性の違い

   サーバ型のSOAのソリューションのほとんどが、サーバ直結型のインターフェイスを必要することに対して、クライアント型SOAではサイオの技術(サイオIdbA Webスクレイピング機能)を使用した場合、サーバ側のユーザインターフェイスをそのまま流用するために、短期間でのシステム開発が可能です。

   分散型のシステムということでクライアント側(分散側)のメンテナンスが気になると思います。しかしサイオのIdbAを利用したクライアント型のSOAはメンテナンス性が向上されています。

   SOAクライアント上で構築されるソフトウェアはすべてコンポーネント化されており、SOAクライアント上でダイナミックに連携できるために、ソフトウェア更新のためのメンテナンス・コストはサーバ側と比較して同等以下です。

   また、サイオ独自の技術により、ソフトウェア(コンポーネント)の更新時に再立ち上げを必要としていないために、利用者にメンテナンスのストレスをほとんど与えることがありません。


クライアント型SOAのメリット
  • SOA本来の目的である、サービス・オリエンテッドなシステムをコンポーネント化の技術により可能にします
  • SOA対応のシステムがコンポーネント化されているために、柔軟なシステム改変とメンテナンス性の向上が可能です
  • 既存のシステムに手を加えない分散システムによる、ローコストかつ短期間でのシステム構築と既存システムの再利用(継続利用)が可能です
最後に

   次号では今回説明しました、クライアント型SOAの実装系について、実際の採用事例を元に工夫した点と苦労した点を解説します。

   次回をご期待ください。

第1回 クライアント型SOAとは
第2回 クライアント型SOAの設計方法と開発方法
第3回 クライアント型SOAの実例
第4回 クライアント型SOAによる官公庁電子申請システム
第5回 クライアント型SOAによるBtoCビジネス向けのシステム
第6回 クライアント型SOAによるスモール&クイックスタート - 最適な投資とは
第7回 ストックビジネスを変えるクライアント型SOA
第8回 クライアント型SOAが実現するBtoBクライアント


このサイトはリンクフリーです。ご自由にどうぞ。