写真●日立製作所 ソフトウェア事業部 AP基盤技術支援センタ 担当部長の吉村誠氏(撮影:皆木優子)
写真●日立製作所 ソフトウェア事業部 AP基盤技術支援センタ 担当部長の吉村誠氏(撮影:皆木優子)
[画像のクリックで拡大表示]

 SaaS(ソフトウエア・アズ・ア・サービス)と社内システムとを連携させる上では、SOA(サービス指向アーキテクチャ)の導入が有効だが、SaaSと社内システムとではサービスの粒度がバラバラなので、ミドルウエアレイヤーでのコントロールが必要だ--。日立製作所 ソフトウェア事業部 AP基盤技術支援センタ 担当部長の吉村誠氏(写真)は2009年9月15日、開発者向けイベント「XDev2009」で「Salesforce.com」の導入事例を基に、このようなアドバイスを行った。

 吉村氏が事例として取り上げたのは、日立ソフトウェアエンジニアリング(日立ソフト)における、社内営業システムへのSOA導入である。日立ソフトでは以前から、顧客からの問い合わせ管理に日立ソフト製のパッケージ「Sales24」を、営業履歴管理として「Salesforce CRM」を使用していたほか、独自の見積もりシステムやプロジェクト統合管理システム、基幹系業務システムとして「SAP R3」を使用していた。

 従来の社内営業システムでは、システムごとに顧客IDを管理していたため、同一顧客のひも付けを手作業でやっていたという。システムの連携が図られていなかったため、ある営業プロモーションが、どれだけ顧客からの引き合いに影響したかという営業施策の効果測定も測られていなかった。これらのシステムをリアルタイムに連携させることが、SOA導入の目的である。プリセールス用のシステムに関しては2008年4月から10月までの期間で導入を完了し(フェーズ1)、2009年4月からはポストセールス用のシステムでの導入を進めている(フェーズ2)。

 Salesforce CRMのようなSaaSや、SAP R3のようなパッケージアプリケーションは、既にWebサービスに対応済みであり、システム連携は難しくないと考えるのが一般的だろう。しかし日立の吉村氏によれば、SaaSやパッケージはそれぞれ「サービスの粒度」がバラバラで、そのままでは連携させにくいのだという。

 「Salesforce CRMは粒度が『粗い』。データベースに対してSQLを実行しているのと同じで、戻りの型が抽象的だ。一方のSAP R3のWebサービスは粒度が『細かい』。単独では業務プロセスの要件を満たせないサービスが、多数存在している」(吉村氏)。これらのサービスを連携させるには、サービス間を流れるデータの型を決め、サービスの粒度をそれに合わせる必要があるのだという。

 Salesforce CRMに関しては、「WSDL(Web Services Description Language)が公開されているが、そのままでは業務と乖離していたので、ユーザーの業務に合う形でインターフェースを設計し直した」(同)。また粒度が細かくて単独では業務を満たせないサービスは、複数のサービスを組み合わせた。

 SaaSのWebサービス連携には、ほかにも注意点がある。例えば、Salesforce CRMのWebサービスを利用する場合は、必ず認証が必要である。そのため、情報取得などのたびに認証を行っていては、性能が劣化してしまう。そこで、複数回のWebサービス操作を一回の操作にまとめるよう、ESB(エンタープライズ・サービス・バス)を使ってWebサービスをまとめたり、連続するWebサービス操作で認証を引き継ぐようなことを行ったりした。

 日立ソフトの事例では、サービス連携を実現するプラットフォームとして日立製作所の「uCosminexus Service Platform」を、Webサービスエンジンのアプリケーションサーバーとして「uCosminexus Application Server」を使用した。「プリセールス用のシステムにSOAを導入するフェーズ1は6カ月で完了した。期間としてはかなり短かったと思う」(吉村氏)という。