クラウドの浸透に伴って本格化した連携ニーズ
様子見の印象が強かった2、3年前と違って、最近ではシステムの新規構築や更改を行う際にクラウドを積極的に取り入れようという動きが加速している。これに合わせて人々の関心を集めているのが「クラウド連携」だ。通常、クラウドの導入は段階的に行われるため、すでにクラウド上に移行されているシステムと社内に置かれた既存のオンプレミスのデータを連携する必要に迫られることになる。
本稿では、セールスフォース(*)やAmazon Web Servicesの導入とそれに伴うデータ連携システムの構築、データ連携用のミドルウェア「DCSpider」の開発など、弊社がこれまで手がけた案件を通して獲得したデータ連携に関する知見を紹介する。なお、本文中にはDCSpiderという製品名が多く出てくるが、DCSpiderでできることは(それにかかる工数は別として)他のミドルウェアや手作りのプログラムでもできるとお考えいただいても差し支えない。
米salesforce.com, inc.が提供するクラウドプラットフォームForce.comとその上に実装されているCRMアプリケーションであるSalesforce CRMをあわせた総称としてここでは「セールスフォース」と表現している。
クラウド連携の基本となるのは、各クラウドシステムが備えるAPI(Application Program Interface)だ。HTTP(SOAPまたはREST)を使ってインターネット経由でAPIにアクセス、データを取得、更新することになる。また、データ連携の目的も従来のオンプレミス間連携とは異なるクラウド独特のものが多い。まずは、現時点ではどのようなクラウド連携が行われているか代表的なパターンを1つずつ具体的に見ていこう。
マスタ・トランザクション連携
クラウドとオンプレミスの間で必要なデータをやりとりする。データ連携と聞いて真っ先に思いつくのがこのパターンであろう。社内にある基幹システムの商品マスターをクラウド側のデータベースに登録したり、クラウド側で受注が確定したデータを基幹システムに渡したりする。データ連携の中でも最も多いパターンである。
実装は、相手システム用にデータを加工して転送するというシンプルなものだ。例えば、DCSpiderを使ってOracle Database(以下、Oracle DB)内に格納された基幹システムの商品マスターをセールスフォースに登録する場合を考えてみよう。
まず、DCSpiderはOracle DBから商品マスターを読み取る。その後、セールスフォースのデータベース設計に合わせて、各データ項目の関係をマッピングする。例えば、Oracle DBの[JAN_CODE]と[PRODUCT_NAME]はセールスフォース上の[商品コード]と[商品名]に対応するといった具合だ。また、データベースによって表現形式が異なる日付などのデータは連携先のフォーマットに従って変換する。その後、APIを使ってセールスフォースにデータを登録するというのが一連の流れだ。
データの読み出しや書き込み、データ項目のマッピングやフォーマットの変換といった処理自体は、必ずしもDCSpiderのような連携ミドルウェアを使わずに、オリジナルのプログラムを組んでもかまわない。ただし、連携ミドルウェアを使えば、Oracle DBからデータを取得するためのJDBC機能や、セールスフォースのアプリケーションのアーキテクチャを意識することなく、マウス操作だけで容易にデータ連携の設定ができる。将来的に連携するアプリケーションが増えたり、仕様が変更されたりする可能性を考慮すれば、採用を検討する価値はあるだろう。