Archive for 8月, 2008
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で「柔軟さ」が必要なわけを説明します。
SOAって何?
ブログのコメントにSOAって何?とご質問を頂いたので、
私なりのSOAの解釈についてまとめたいと思います。
まぁ、私も数年ぶりにSOAに触れているので、
間違った解釈もあるかもしれないですが、そこはお許しください。
SOA=サービス指向アーキテクチャです。
なんていう怒られちゃいそうですが、(^_^;)
サービス指向っていうのは今までもずっと開発の
歴史の中にあった、人間にとって「わかりやすく、かんたんに」
を考えた先のアーキテクチャなのです。
プラスするならばシステムに柔軟さを持たせるためのアーキテクチャです。
SOAのポイント:
● 分かりやすく
● かんたんに
● 柔軟に
SOA導入により目指すべきゴール:
● 企業ITシステムの全体最適を行う
● 柔軟に企業のIT基盤を変更できるようにする
詳しく説明すると長くなりそうなので何回かに分けて書きます。
次回は、誰にとって「わかりやすく、かんたんに」?
オープンソースは進化を体感できる
SailFin 1.0 (Sun GlassFish Communication Server 1.5)のα版が
下記より入手できるようになりました。
SailFin 1.0α版ダウンロード
今月末には、GlassFish ESBのEarly Access版もリリースされる予定です。
SailFinもGlassFish ESBも共に年末には正式版の入手ができるようになる予定ですが、
このように製品が正式にリリースされる前から、試して頂けるのはオープンソースならではです。
SailFin,GlassFish ESB共に御興味のある型は正式版のリリース前から是非
触ってみてください。
GlassFish v2 update Release 2
GlassFish v2 update 2がリリースされたようです。
●GlassFIsh v2 update release 2
●Sun Java System Application Server 9.1 update2
このリリースで修正されたバグ一覧:
• [6597868] When add/removing “additional properties” for a JDBC pool, I have to restart glassfish
• [6611251] Restore Virtual Server’s Root Context Behavior from GlassFish v1
• [6618420] Make Application server DAS able to communicate to remote node-agents and instance thru firewall
• [6647594] HTTP Status error messages should not be Localized
• [6655568] Generated granted.policy file gets truncated when you redeploy the application
• [6660443] Web Container not honoring the application to virtual server mappings for ServletContextListener
• [6670460] Upgrading a MQ resource adapter failed : zipFile (/usr/share/lib/imq/imqjmsra.rar) doesn’t exist
• [6672732] DAS GUI can get confused, and report an error that a property does not exist
• [6689309] Admin GUI monitoring display refresh button no use
• [6698604] Stand-alone instances sometimes obtain files from other instances on syncing to DAS at startup
• [6702146] App server hangs when trying to stop domain due to JMX related issues
• [6704722] HttpServletResponse.encodeURL() unconditionally appends jsessionid newly created session
• [6706296] exception during deploy if class-suffix > 1024
• [6707850] WEB0113 error targeting web modules on virtual servers in a cluster not seen on standalone instance
• [6709765] bad response times with HTTPS when acceptor-threads >1 with multi-cpu system
• [6714827] Integrating Metro 1.1.3 in 9.1UR2Patch02
• [6714898] Integrate new JBI with the final ML resource bundle translations
• [6717137] Multiple deploys can corrupt domain.xml
今さらSOAを始める
ブログの更新も中々できなかったのですが、
実は少し理由がありまして、今年から私も
SOA系の製品(Sun JavaCAPS)を担当することになり、
ここ数週間SOAについて再勉強をしていたわけです。
#もちろんGlassFishもやり続けるので
#GlassFishに御興味のある方もご安心ください。
#これから書くことはSOA信者やSOAについて
#詳しい方からすると今更何いってんの?
#なんて思われるかもしれませんが、
#私なりに今のSOA(SOA製品)を見つめて感じたことを
#直感で書いてみてますので、お許しください。
SOAは数年程前に騒がれだしてましたが
実は私はあまりSOA(SOA製品)にほとんど興味を持ってませんでした。
#こんな事公でいったら怒られるかな?
#でもベンダーの中にもこういう風に思う人がいても
#いいのかもと思います。
Sunが旧SeeBeyondを買収してからもSOAについて???
な所が多々あり、SOAを導入すると変化に強いIT基盤を構築できる
と言われても、うーんとうなる事ばかりであまり私自身関心も持てていませんでした。
恐らく、その当時は私の中でSOAに対する理想論と現実の狭間が不明確で、
各ベンダーがいう「SOAを導入すれば将来ハッピーになる」、なんてことは
全く信じられず、疑いしか持ってませんでした。
(私にとってそんなイメージだったので、本当にいってたっけかなぁ?)
また、どこから始めればいいのかわからないし、当時(今から数年前)は
SOAで失敗したプロジェクト等も多数見ていたので、概念的には
よさそうだけど実際には使えないんじゃないの?なんて思ってました。
SOAについて私はあまりにも不振を持ちすぎていたので
当時色々な人と飲みの席でSOAについて熱い議論をしては
私のその疑念を打ち破ってくれる明確な回答は得られず、
結果として、GlassFishが好きでのめり込んで行った経緯があります。
でも、今回再度勉強を初めてみて少しずつ私の勉強不足だったんだな、
と思うようになってきています。もしかしたら時が経ったからかもしれませんが、
時が経過しベンダーやSIerの方々が多くの失敗をし、失敗からから多くを学んだ事により
より現実的な視点でSOAを捉え始めてきているので、理想と現実の境界線が分かり易く
なってきているのかもしれません。
私は自分が本当に良いと思ったものを、良いと思った所を
お客様に紹介したいので、まずは自分がSOAについて理解
しなければ何もできません。
私なりのSOAの解釈と現実的に始められるSOAについて少しずつまとめて
いけたらいいなと思っております。