SOAと「つなぐ」技術 第1回 「SOAとは何か」

Avatar
dstn

アプレッソ開発部の渡辺です。

今回から何回かにわけて、SOAについて、そしてSOAに関連する「つなぐ技術」についての記事を書かせていただきます。

ITシステムは業務にとって必須の存在となりました。ビジネスに速度がますます求められるようになり、業務システムにも、より高いレベルの変更の柔軟性や 変更の迅速性を求められるようになっています。また、クラウドの利用が本格化し、モバイルやソーシャルやビッグデータへの対応が求められるなど、業務シス テムをとりまく状況は複雑化しつつあります。

今後の業務システムでは、柔軟性や変更の迅速性や、様々なシステムやリソースを「つなぐ」力が求められることでしょう。SOAをはじめとする「つなぐ技術」は、このような状況に必要な技術として今後重要な考え方となるのではないかと考えています。 

SOAとは何か?

まず最初に、SOAとは何か?を簡単に説明します。 

「SOAとは何であるか」については様々な人が様々なことを言っており、公式の定義のようなものもありません。そこで、ここでは「広義のSOA」などと呼ばれることもある、比較的広く使われている定義を元に説明をします。 

SOA は Service-Oriented Architecture の略で、日本語に訳すと「サービス指向アーキテクチャ」を略したものになります。「業務システムをどのように作るか」についての「考え方」のことで、業務システムを以下のようにして作ろうという考え方のことを言います。 

  • 業務システムの構成要素を「サービス」としてブラックボックス化して部品化する 
  • 各サービスには「標準化されたインタフェース」があり、外部から呼び出すことが出来る 
  • 上記のようなサービスを組み合わせて、業務に必要なアプリケーションを作り上げる 

SOAの特徴は、業務システムを直接作ることせず、業務システムの構成要素をサービスと呼ぶ「部品」として用意し、部品を組み立てることによって業務システムを作り上げる点にあります。 

SOAのメリット

SOAでは作りたい業務システムを直接作りません。つまり、通常のソフトウェア開発のように、欲しいものを直接開発することをせず、まずは部品(サービス)を作ってからアプリケーションを組み立てるという、なにやら回りくどいとも言える方法でシステムを作ります。

SOAではなぜこのような方法で開発を行うのでしょうか。それは、部品化をすることで、部品単位でソフトウェア資産を再利用することができたり、部品を組み合わせて必要なアプリケーションを素早く作ったり作り直したりできるようになるメリットがあるためです。

再利用性

通常の開発手法では、ソフトウェア資産の再利用(例えば一度書いたコードをうまく再利用する)が容易ではないことが知られています。これに対し、部品化をすることにより、ソフトウェア資産の再利用を容易にします。

例えば、あるシステムに会員顧客へのニュースレターを送信する機能があったとしましょう。これを部品化すれば、他の用途や他のシステムでも、同様に会員顧客にニュースレターを送付する際に、その都度個別に開発せずに使えることになります。

また、将来的に機能の改修(例えば、スマホ向け送信機能を付けるなど)が必要になった際も、機能が共通化されているため、あちこち修正せずに済むようになります。

変更の柔軟性

通常の開発手法では、一度作った後の変更が容易ではない傾向があります。これに対し、部品を組み合わせてシステムを作ることで、変更の柔軟性を回復させます。

SOAにおけるアプリケーション開発とは、サービス(部品)を組み合わせてつなぎ合わせることになります。一度作った後の変更についても、コードを書きなおしたり書き足したりする作業の代わりに、ブラックボックス化されて自由につなげるサービスのつなぎ方を変更するだけで済むようになります。これにより、変更はこれまでよりも行いやすくなります。

変更や新規開発の迅速性

通常の開発手法では、新規開発を行う場合にしても、既存システムの変更を行う場合にも長い時間がかかってしまう傾向がありました。これに対して、部品を組み合わせてシステムを作ることで、業務に必要なアプリケーションを迅速に用意したり、迅速に変更できるようにします。

同じく、コードを一から書いたり書きなおす作業の代わりに、部品化されたサービスを、新たにつなぎ合わせたりつなぎ方を変更するだけで済むようになるため、迅速な対応が可能となります。

業務システムを超えた連携の実現

通常の開発手法では、別々に開発を行ったシステム同士を連携させたり統合することが難しく、システム同士がうまく連携出来ずぞれぞれが孤立した状態となりがちでした。

SOAでは自由に組み合わせて利用できる部品を作り、部品を組み合わせて業務に必要なアプリケーションを作るため、部品とアプリケーションが切り離されています。そのため、部品を組み合わせなおすことで、システム同士の連携や統合がこれまでよりも容易に行えます。

多種多様なリソースを容易に利用できる

通常の開発手法では、異なる技術など異質なものを組み合わせたり、異質なものを同時に利用することが難しいことがあります。SOAではまずサービスとして 部品化を行います。サービスとして部品化される時点で、様々な「個別の違い」が隠蔽されます。これにより、非常に多種多様なリソースを必要に応じて組み合 わせて利用できるようになります。

通常のソフトウェア開発では、メインフレームとSNSと繋ぐ場合、ちょっとした一大事になるかもしれませんが、SOAでは個別の違いはブラックボックス化されて隠蔽され、等しく標準インタフェースから呼び出せる部品を、ただ組み合わせて使うだけで済みます。

例えばメインフレーム上で動いている機能も、クラウド上のSNSのサービスも、ERPパッケージソフトウェア上の会計処理機能も、SOAでは同じく部品として利 用できるようになります。これにより、多種多様なリソースを区別なく利用でき、必要に応じて組み立てて利用することが出来るようになります。

このようにSOAでは、通常の業務システム開発で起こりがちな様々な問題を、業務に必要なアプリケーションをサービスと呼ぶ部品を組み立てて作ることにより解消/改善することができます。

おわりに

SOAと聞くと、2005年あたりにブームだったなあ(今はそうではない)と思う人も居られるかもしれません。SOA を Webサービス(という技術)で実現することにより、またサービスなどの標準化がすすむことにより、大きな変化が起こることが(過剰に)期待されたことによるブームがありました。しかし、SOAは2005年あたりに生まれて消えたものではありません。

SOAという言葉は予想外に昔からあります。Gartnerが1996年に発表した「Service Oriented Architecture」というレポートがSOAという言葉が世間に広まったきっかけではないかと言われています。これにより、少なくとも1996年にはSOAという言葉があったことが解ります。

なにしろXMLが生まれたのは1998年ですから、SOAはXMLよりも古いくらいに昔からある考え方だともいえます。これは、SOAが昔から業務システム開発を苦しめてきた問題への取り組みであるためです。

次回の記事では、業務システム開発における問題について簡単に説明し、SOAの考え方がどうして必要になったかを紹介し、SOAの現在における価値の再確認をしたいと思います。

コメント

ログインしてコメントを残してください。

Powered by Zendesk