機能と技術からわかる!システム基盤の実力

第11回 業務システムを効率的にアップデートする「SOA-ERP連携」のポイント

この記事を読むのに必要な時間:およそ 3 分

ERP(統合基幹業務システム)は,今や企業の経営に不可欠のシステムとなりつつあります。このため,エンタープライズシステムをERPパッケージに置きかえたり,Javaアプリケーションで新規開発したいというニーズが出てきました。一方,COBOLやCで開発した業務システムが多く残っている場合は,ERPを使ったシステムに既存資産を全て刷新するリスク(費用・業務移行等)が大きく,悩ましいところです。

このような場合,既存資産を活かしつつ,段階的にシステムを移行していくことができればベストです。そのために,前回までに説明してきたSOAのエンタープライズバスを利用する方法があります。

SAP ERPパッケージとその種類

SAPは,ERP市場最大手のソフトウェアメーカです。ここでは,同社のERP製品であるSAP R/3,mySAP ERP,SAP ERP 6.0を例に,SOA-ERP連携の方法を説明します。まず,SAP ERPの歴史とその製品についておさらいしておきましょう。

SAP R/3

WindowsやUNIXのオープンプラットフォームで動作するクライアント/サーバ型のシステムで,1992年に発表されました。ABAPと呼ばれるSAP独自のプログラム言語で実装されており,財務会計,管理会計,販売,在庫購買,生産計画/管理などの業務に必要なモジュールをほとんど備えています。ビジネスプロセスをこのパッケージにあらかじめ用意されている機能で実現できない場合,アドオンパッケージを開発する必要があります。

mySAP ERP

SAP R/3の後継製品。2004年にリリースされ,統合アプリケーションプラットフォーム「SAP NetWeaver」を基盤にした新しいアーキテクチャに変更されました。またWebサービスにも対応し,RFCイネーブルされた汎用モジュールをWebサービス化できるようになりました。従来の R/3の部分についてはECC(ERP Central Component) 5.0としてモジュール提供されました。

SAP ERP 6.0

2006年にSAP ERP Central Component(ECC)のバージョンを6.0とし,基盤のSAP NetWeaverのバージョンは7.0となりました。また,Enhancement Packageを組み込むことにより,再定義されたWebサービス「Enterprise Services(ES)⁠が利用できるようになりました。このWebサービスは,RFCイネーブルされた汎用モジュールとはインターフェースが異なっています。

SAP ERPとの連携方式

最近のSAP 6.0などはWebサービスを使ったSOAパッケージとの連携が可能ですが,SAP R/3ではそうはいきません。SAP R/3の時代からサードパーティのアプリケーションとSAP ERPを連携するため,次のようなインターフェースが提供されています。

RFC(Remote Function Call)
RFCとは呼出元と異なるシステムで動作する汎用モジュールを指します。SAP ERPに入ってくる方向をインバウンド,SAP ERPから出ていく方向をアウトバウンドと呼んでいます。外部のシステムからSAP ERPを呼ぶ場合にはC/C++やJavaをサポートしたライブラリを使います。
IDoc(Intermediate Document)
IDocは,EDIシステムとの連携を主とした構造化されたデータを交換するためのインターフェースです。
BAPI(Business API)
ビジネスオブジェクトを意識したインターフェースです。

これらのインターフェースは,同期または非同期でリアルタイムに連携するためのインターフェースです。これらとは別に「バッチインプット」と呼ばれるバルクデータを転送するバッチでのデータ転送用インターフェースがあります。

リアルタイムにSAP ERPと連携するためには,通常上記のRFC/IDoc/BAPIインターフェースを使って,C/C++やJavaで連携部品を開発する必要があります。開発の手間を省くため,通常はプレビルドされた「SAPアダプタ」を購入し,ノンプログラミングで外部接続を実現します。

たとえば,日立のCosminexusでは,アイウェイ・ソフトウェアとの協業により,プレビルドされたSAPアダプタとして「iWayアダプタ」を提供しています。iWayアダプタを導入することにより,連携部品を開発することなしにSAP ERPと接続することができるようになります。

mySAP ERP以降の製品からは,ABAPで開発されたRFCイネーブルされた汎用モジュールをWebサービス化することができるようになり,連携部品の開発は不要になっています。また,SAP ERP 6.0のEnhancement PackageではプレビルドされたWebサービス(ES)を利用することができ,より便利になっています。

SOA-ERP連携システムの構築

ここまでの話をふまえ,SAP ERPとの連携を検討する場合,次の2種のシステム構成が考えられます。

①Webサービスのインターフェースを装備しないSAP ERPとの連携

SAP R/3は,Webサービスのインターフェースを装備していません。このような場合は前出のiWayアダプタなどのSAPアダプタを利用して,SOAプラットフォームとの連携システムを構築できます図1)⁠

図1 iWayアダプタを使った連携例

図1 iWayアダプタを使った連携例

CosminexusとiWayアダプタは,内部でSOAPプロトコルを経由して接続します。接続定義に必要なWSDLは,iWayアダプタが動作するサーバに Webブラウザでアクセスして取得します。

②Webサービスのインターフェースを装備したSAP ERPとの連携

mySAPERPやSAP ERP 6.0はWebサービスのインターフェースを装備しています。このような場合,iWayアダプタを利用しなくても,Cosminexusとの連携システムを構築できます図2)⁠

図2 iWayアダプタを使わない連携例

図2 iWayアダプタを使わない連携例

CosminexusとSAP ERPはSOAPプロトコルで直接接続します。接続定義に必要なWSDLは,SAP ERPから取得します。SAP ERPからCosminexusを呼び出すことも可能です。

なお,SAP ERPにWebサービス経由で接続するためには,ABAPで開発されたRFCイネーブルされた汎用モジュールをWebサービス化したり,プレビルドされた Webサービス(ES)を利用するために Enhancement Packageをインストールしたり,その他の方法でSAP ERPが提供するWebサービスが利用可能な状態にしておく必要があります。

コメント

コメントの記入