SOAって何? Part2 ー 積み木作りといっしょ!!
エンジニア以外の人にも「分かりやすく、かんたんに」を実現
しようとしているのがSOA
ガートナーのロイ・シェルテが1996年に名付けたSOAが
こうなのかはわかりませんが、私の中では(Sunではなく)
このように考えるととてもすっきりしています。
今までの歴史は、開発者にとって「分かりやすく、かんたんに」を
目指してきました。
アセンブラから始まり、手続き型、モジュール化、オブジェクト指向へと
進化してきたのですが、言語の進化、開発ツールの進化の過程により開発者に
とっての「分かりやすく、かんたんに」は随分進化しわかりやすくなってきました。
一方でITエンジニア以外がシステムを理解するためにはどうでしょう?
たとえば、会社の社長が社内のシステムの全体像を理解して
有効活用させたいと考えます。
その場合、恐らく既存のシステムを理解する所からつまずくでしょう。
なぜなら、今あるシステムのドキュメントは開発者には
分かりやすいものですが、詳細すぎて社長をはじめ、ITに精通していない人には
全体像を理解するには難しすぎるからです。
開発者が作成したUML図を開発者以外が見てもよくわからないからでしょう。
ですので、開発者以外の人がシステム全体を理解しやすいように、
ITシステム基盤を構築するアーキテクチャをSOAと読んでいます。
ポイント:
詳細な設計資料から全体像を把握するのは困難
これを積み木に例えて、積み木で家を作る時を考えましょう。
最もかんたんな家は下記の絵のように、四角の木が2本と三角の木が
1本あれば家をつくる事ができます。
この時、家の全体像を把握したい人(社長)は四角の木が2本と三角の木が1本あれば
できることを理解すればよいのです。
木の材質(どの言語でつくられているか)や木がどのように作られたか
(内部的にどのように実装されているか)は(社長は)知らなくてもよいのです。
これをサービスに置き換えて考えると、それぞれの木をサービスとして
おきかえてみてください。
Javaで実装されたサービス:
● サービスA(四角の木)
● サービスB(四角の木)
.Netで実装されたサービス:
● サービスC(三角の木)
どの言語か、どのような実装かは理解しなくても、単にサービスA、サービスB、
サービスCという抽象度の高いコンポーネントからシステムが作られていることが
理解できれば、今までよりも明らかに分かりやすくなります。
ここではサービスとしてJavaや、.Netを例にあげていますが
言語はなんでもよくまた、サービスの連携もプログラム言語だけでなく、
汎用機や、DB、ERPなどのデー連携などでもよいです。
ポイント:
SOAが目指す「分かりやすく、かんたんに」は開発者、システムエンジニア向けではなく、
エンジニア以外の人が見てもITシステムの全体像を分かりやすくすることです。
次回は、SOAで「柔軟さ」が必要なわけを説明します。
Entry filed under: Application Server/GlassFish.
1.
kimimasa | 2008年8月18日 2:53 午後
DB、ERPなどのデー連携
=> DB、ERPなどのデータ連携
ですねー :)
2.
よっしー | 2008年8月18日 7:52 午後
きみちゃん、御指摘ありがとうございます。