新しいお気に入りの Data-as-a-Platformである Hadoopが、少々人気を失っているSOAと結婚するのは可能であろうか? Joe McKendrick氏の最近の 投稿によると、そのような結婚は、非常に有益、特にSOAにとって有益である、という。Data-as-a-Platformはデータ統合を格段に単純化できるからである。
HadoopがサポートするData-as-a-platformは、SOAの実践者が長年持っている懸案事項に対処できます。Akred氏が言うように、余りに長い間、多くの企業は増々複雑になるスパゲッティアーキテクチャを2点間のデータ統合で対処しようとがんばってきました。「もう彼らは、何か新しい製品を導入しようとか、変更を加えようとすると、30もの異なるシステムに触る必要があるほどになっているのです」と彼は言っている。「これがエンタープライズ業界の実際の結果であり、市場状況に合わせ、成功する能力の結果です。」
そこで提案しているソリューションは、Hadoopをクロスアプリケーションのデータストアとして利用し始めることである。
アプリケーションの周りにデータストアを編成すると、新しいアプリケーションの導入毎に、無理矢理統合することになるので、そういうやり方ではなく、Data-as-a-Platformのアプローチで、クロス-エンタープライズのリソースとしてデータを維持します。
"Hadoop Tuesdays"で Akred氏がプレゼンしたのは、Hadoop対応SOAという以下のような考えである。
我々はデータインフラ層、Hadoopのようなデータストア、そしてデータに価値ある文脈を与え、それらをデータ層で統合する既存の企業システムを取り扱います。そして我々は、サービス指向データアクセスパターンを介して、利用しているアプリケーションからその統合されたデータプラットフォームを取り込みます。そこで、我々のエンタープライズデータプラットフォームを直接のクエリアクセスではなく、サービスを介して企業に公開します。
この幾つかの提案はいいアイデアのように聞こえるが、 Hadoopがエンタープライズアプリケーション用の常時稼動可能なデータストアとして使える、みたいな非常に強い前提に基づいている。Hadoopは、決してそのようには設計されていない。エンタープライズアプリケーションに一般的に必要なACID特性を持ったデータベースでは決して無い。HBaseは通常データベースというラベルを貼られているが、この言葉がエンタープライズアプリケーションで使われている意味での、データベースでは無い。
Hadoopは、エンタープライズにおいて、ストレージを提供し、大量のデータ処理を行う重要な役割を演じているが、高度なトランザクションのあるデータアクセスが必要なデータベースを置き換えることを意図したものではない。
これは、SOAの原理がHadoopベースのソリューションに適用できない、という意味ではない。個別の Map Reduceジョブや(Oozieを利用して)それらを組み合わせて、サービスとして公開でき、そしてすべきで、そうすれば、企業内でビジネス処理で使うことができる。しかし、それらは有効であろうが、純粋のデータサービスではない。
なのでHadoopとSOAは完全に調和して共存できるが、 McKendrick氏の投稿に述べられているような方法では決して無い。