SOAについて知るべきことはすべてLinuxから学んだBeginner's Guide(2/2 ページ)

» 2007年10月12日 01時30分 公開
[Shawn-Hermans,Open Tech Press]
SourceForge.JP Magazine
前のページへ 1|2       

正しい方法は1つだけではない――誰でもいいのでLinux愛好家にお気に入りのディストリビューション、デスクトップ環境、コマンドシェル、あるいはスクリプト言語について尋ねてみよう。きっと時間をかけて熱心に答えてくれるはずだ。Linuxは、同じことをするにも競合する多くの方法を用意することで高い順応性を獲得している。例えば、デスクトップ環境の選択肢の多さゆえに、Linuxは低スペックのデスクトップマシンでも、最新のド派手なグラフィカルアイキャンディで飾られたハイエンドなワークステーションでも動作させることができる。

 同様に、SOAの実装方法についても互いに矛盾する多くの考え方が存在する。SOAPを使うのがサービスを公開する正しい方法だという人がいる。一方で、サービスの方針としてRuby On RailsのようなREST(Representational State Transfer)の原則の利用を提唱する人もいる。どちらの実装方法にも一長一短あり、それらが功を奏するアプリケーションもあれば相性の悪いアプリケーションもある。誰であれSOAの実装方法は1つしかないなどとのたまう者を信じてはならない。SOAの実装は、SOAベンダーの製品にではなく、個々の組織のニーズに合わせて適宜変えることだ。

共有は皆のためになる――実は、わたしがこの教訓を学んだのは幼稚園にいたときでLinuxから学んだわけではないのだが、それでも優れた考え方であることに変わりはない。Linux の成功は、サービス(ソフトウェアコンポーネント)とその背後にあるソースコードのどちらが対象であっても共有によって恩恵が得られることを実証している。

 サービスレジストリはサービスを見つけ出すための不可欠な手段だが、必ずしも完成されたソリューションではない。公表されているサービスの提供と管理をサービスプロバイダーに頼っているからだ。ときには、レジストリに公表されているサービスが、ほとんどサポートのない“ホビーショップ”プロジェクトにすぎないこともある。

 集中型のソースコードリポジトリはサービスレジストリをもっと強化したもので、サービスの再利用だけでなくコードの再利用も促進されるというメリットがある。そうしたソースコードリポジトリには、開発チームのニーズに合わせてサービスの変更や導入が行えるという柔軟性がある。現在、多くのソースコードリポジトリが利用可能であり、その中には有名なSourceForgeリポジトリのエンタープライズ規模版も含まれている。

 結局、共有は文化的な問題であって技術的な問題ではないため、共有を成功させるにはあらゆる層の管理職に働きかける必要がある。一部の企業が外部に自社のソフトウェアやコードを公開したがらないのは分かるが、内部的にはコードとサービスの再利用を奨励するべきだろう。

開発者を信頼する――SOAの世界には、トップダウン、ミドルアウト、ボトムアップというSOAに関する3つの考え方が存在する。トップダウンSOAでは、経営上層部が設計上の重要な決定を行い、全体のプロセスを主導する。ボトムアップSOAでは、個々の開発チームが公開するサービスとその公開方法を決定する。ミドルアウトSOAはトップダウンとボトムアップの両方のアプローチを融合したもので、重要な基準の決定は管理職が行うが、設計上の決定は開発チームに委ねられる。

 Linuxは開発者主導色の強いアーキテクチャの例であり、一方Microsoftはトップダウンアプローチをことさらに強調している。Microsoftの元社員モイセ・レトビン氏は「丸1年かけてある機能の設計に取り組みんだが、その実装とテストは1週間で終わった」という話をしてくれた。遅れやコードの書き直しが生じる主な原因は階層の多すぎる官僚的組織構造にある、と彼は言う。レトビン氏の体験は、トップダウンアプローチを優先した設計や実装の危険性を物語っている。

 LinuxおよびOSSコミュニティー以外では、Googleが開発者主導の体制を実現している企業の例として最もよく知られている。Googleでは、社員が就業時間の2割を自分自身のプロジェクトに割り当てることができる、という方針を取っている。Google NewsやGoogle Suggestなど、Googleの成功したプロダクトの多くは、こうした開発者主導型の取り組みの成果である。

 組織的な統治(governance)はSOAの成功にとって重要だが、技術的な詳細を理解していない者による統治は、SOAの実装の成功を妨げる可能性こそあれ、役に立つことはない。Linuxを統治するための全体的な手法は存在しないが、Linuxはこれまでに開発されたOSの中で最も柔軟性に富んだものの1つである。これは、テクノロジーを理解していない者ではなく開発者によって実装上の決定が行われていることに起因している。どんな統治手法でも、基本となるテクノロジーを十分に理解している人々からの意見を大いに採り入れる必要があるのだ。

 ITアーキテクトは、自分たちのシステムアーキテクチャを単に流行に迎合したものに終わらせないために、エンジニアリングに関する正しい原則を求めている。オールインワンソリューションを謳うベンダーの高価なSOA製品に資金を投じるのではなく、以前から有効性が実証されている設計原則を適用する必要がある。ともすれば忘れがちなことだが、最も大切な教えは最初のころに学んだ基本事項にあるのだ。

Shawn Hermansはグローバル戦略立案および技術コンサルティング会社Booz Allen Hamiltonでコンサルタントを務めている。


前のページへ 1|2       

Copyright © 2010 OSDN Corporation, All Rights Reserved.

注目のテーマ