SOAって何だろう


本ページは、SOA(Service Oriented Architecture)に関する、江端の所感メモです。

本記載から生じる全ての事項について、江端は責任を持ちません。

2014年12月18日 江端智一


Q SOAってなんですか?

A SOAとは、Service Oriented Architecture:サービス指向アーキテクチャのことで,アプリケーションなどをコンポーネント化(部品化)し,それらを組み合わせてシステムを作る設計手法です。

Q あなたが何を言っているのか、よく分かりません

A 難しいことは言っていません。

要するに、プログラムで言うところのサブルーチンを、Web I/Fで呼び出せるサービスに置き換えただけのものです。

メインルーチンは、その呼び出すURLをダラダラと記載したに過ぎません。


Q じゃあ、単に「構造化プログラム的なシステム構築手法」と言えばいいじゃないですか

A だから「SOA」なんて名前を付けているんだと思います。

まあ、WebI/Fでアクセスできる単位で付くっておけば、複数のアプリケーションがてんでバラバラにアクセスできる、という点では、確かに美味しいと言えるかもしれません。


Q でも、それって、所詮はCGIやRESTやGoogle MAP APIみたいなものと一緒でしょう?

A 技術的にはその通り。

「SOA」なんぞ全然新しくもない。

ただですね、「SOA」のちょっとだけ「おや?」と思えるところは、業務内容の流れとサービスの流れを一致させよう、という試みが、ちょっとだけ新鮮なんですよ。


Q どういうことですか?

A 例えば

■「見積」という作業に対応する「見積サービス」をWebI/Fで作っておく。

■「発注」という作業に対応する「発注サービス」をWebI/Fで作っておく。

■「承認」という作業に対応する「承認サービス」をWebI/Fで作っておく。

これを組み合わせると、『まあ、なんてことでしょう? あっと言う間に、社内の業務サービスができてしまったわ! 』ということです。


Q マジですか?

A 理屈は通っているでしょう。

それに、あながち捨てたもんじゃないと思いますよ。

だって、オブジェクト指向プログラムだって、「目に見えるモノ」そのものをベースにしてプログラミングしようという試みでしたよね。

オブジェクト指向プログラムを初めて書いた時の、あの「おぞましい感覚」に比べれば、「SOA」の方がまだマシな方だと思いますよ。


Q まあ、いいです。じゃあ実際に「SOA」をやるために必要なものは何ですか?

A 基本的には「SOAP」「WSDL」「UDDI」の3つ。

■「SOAP」は、XML-RPCから発展した、WebサービスのためのRPCプロトコル。

■「WSDL」は、どんなサービスがどこにあってどうやって使うのかを記述する手段。

■「UDDI」は、サービスを探し出すDNS(ドメインネームサービス)

のようなものと思えば良いでしょう。

でも、実際、そのどれ一つとして必要ではありません。

WebI/Fでアクセスできるサービスがあれば、それで足ります。


Q じゃあ「SOA」をやるために本当に必要なものは何なのですか?

A 気合です。

■業務単位に応じたサービス単位を規定して、

■その上でそのサービスをコーディングして、

■それをWebI/F単位で動くような状態にし、

■さらにそのサービスを呼び出すメインルーチンを作る

―― そういう気合が必要なのです。


Q 「SOA」って、確か「レガシーシステムを統合できる」って唄っていましたよね

A できる訳ないじゃないですか。

―― いや、まあ、できますよ。

■レガシーシステムのソースコードが完璧に残っていて、

■レガシーシステムを開発した開発者がまだ在籍していて、

■レガシーシステムをサービス単位に再コーディングして、

■そのサービスから完全にバグを叩き出すことができれば

可能です。


Q それって、スクラッチから作り直した方が早いんじゃあ・・・

A だから「できる」けど、結局、阿呆らしくて「やらない」のですよ。

『パッケージアプリを統合』てな話に至っては、「夢でも見ているんですか」と言いたくなるのです。

こぼれネットへ戻る