オルタナティブ・ブログ > 夜な夜な海外ネット >

海外技術の勝手なコメント及び海外技術者との交流情報

ポートレットによるSOA開発

»

先日からLiferayポータルによるSOA開発について説明をしているが、読んだ人からなぜポートレットの開発がSOAなのか理解できないといわれた。

簡単にいうと、ポートレット(warファイル)間でサービスを呼び出せるようになっているため、他ポートレットのサービスを組み合わせて新しいサービスを定義できるからだ。

例えば、自体にはエンティティを持たなくて、すべて他ポートレットのサービスを組み合わせるファサードポートレットを作成することもできる。

また、jBPMやDroolsなどのようなワークフローエンジンやビジネスルールエンジンを呼び出すプロキシーサービスを作成することもできる。

また、jBPMをActivitiなどと入れ替える場合は、インターフェースが異なるので、アダプターポートレットを使って、インターフェースのマッピングを行う。

従来のポートレット開発はポートレット(warファイル)内で完結するように設定されていたと思う。ポートレットをデプロイ/アンデプロイすることはできるが、ポートレットの内部機能を外部から利用することはできなかった。

勿論、このようなようにポートレットを設計/開発された場合は、SOA型の開発ではない。ポートレットによるSOA開発を行う場合は、ポートレット内の機能を外部から利用できるようにする。ポートレットの単位は、責務に分割して、ポートレット間でサービスを呼び出して、サービスの入れ替えや再利用をできるようにしたのでポートレットSOA開発である。

ポートレットによるSOA型開発が、正しいポートレットの設計/開発だと思う。また、正しいWebアプリケーションの開発の仕方だと思う。

現在、同じプロジェクトをLiferayによるSOA型開発、スクラッチ開発、クラウドプロバイダを利用した開発を3チームで行っている。このらの3種類の技法によって、開発費用、品質、期間などを比較することができる。

既にLiferayによるSOA型開発ではシステム開発が終了している。スクラッチ開発はまだ設計段階である。クラウドは予算申請段階である。納期までの成果物の機能及び品質の比較が楽しみだ。

Comment(0)