« ドキュメント不整合問題の様相 | トップページ | システムの「基盤交換性」を見極める »

2014.03.20

取引先にEDI用Webサービスを提供する

 拙作の開発基盤XEAD Driverでは、Webサービスを利用するための関数を使える。たとえば「郵便番号で住所を検索して返すWebサービス」があるとして、Scriptランチャー(*1)の機能タイプの中でこれを利用するために次のようにコーディングできる。もちろん、応答(response)をXMLやJSONとして処理するための関数も用意されている。

<GET命令の場合>
var uri = 'http://...?zip=' + bango;
var response = session.requestWebService(uri); ...(a)

<POST命令の場合>
var uri = 'http://...';
var request = session.createWebServiceRequest(uri); ...(b)
request.setParameter('zip', bango);
var response = request.execute();

 ただし、上例(a)や(b)の関数はあくまでも「既存のWebサービスを利用する」ためのものであって、「独自のWebサービスを提供する」ためのものではない。事務手続きの合理化を推進するために業務システムは、既存のWebサービスを利用できるだけでなく、独自のサービスを提供できていなければいけない。そのためのサーブレットがXEAD Serverである(XEAD Driverのインストーラに同梱されている)。

 ではそもそも業務システムは、どんなWebサービスを利用したり提供したりするのだろう。上例の住所検索サービスは、業務システムが利用するものとして本質的なものではない。本質的なWebサービスがどんなものであるかは「B2B型ビジネス」の動きを想像すればわかりやすい。まず、業務システムが「利用したくなるサービス」は以下のようなものだ。

A:仕入先企業の注文受信サービス
B:仕入先企業のカタログ送信サービス
C:仕入先企業の検収受信サービス
D:得意先企業の納期回答サービス
E:得意先企業の請求受信サービス

 なぜこれらが「利用したくなるサービス」であるかというと、たとえばAのWebサービスが仕入先によって提供されていれば、発注作業を合理化できるからだ。これらのWebサービスを用いることで、従来の企業間EDI(Electric Data Interface)をWeb上で手軽に実現できる(Web-EDIと呼ばれる)。けっきょくB2B型業務システムにとっての「提供すべきサービス」は、以下のようにそれらの「裏返し」に他ならない。

A':注文受信サービス(得意先向け)
B':カタログ送信サービス(得意先向け)
C':検収受信サービス(得意先向け)
D':納期回答サービス(仕入先向け)
E':請求受信サービス(仕入先向け)

 XEAD Serverを使えば、既存のWebサービスを利用するのと同じ手軽さで、独自サービスを開設できる。そのための機能は特別なものではなく、上掲のようなふつうのScriptランチャーとして定義される。Tomcat等に配備済のXEAD Serverが、httpリクエストに含まれる機能IDに対応するScriptランチャーを起動して、実行結果を要求元に返す。上掲のA'~E'あたりは、B2B型業務システムにとっての「標準的に提供すべきEDI用Webサービス」として手軽に組み込んでしまえる。

 ただし、Webサービスの開発がどんなに容易になろうと、的確に構造化されたDBが背後になければ効果は発揮されない。構造が小汚いDBを扱うのであれば、WEBサービスの仕様も小汚くなる。けっきょくWebサービスだろうと何だろうと、処理対象のDBがまともに設計されていなければ、機能として仕様化しづらいことに変わりはないということだ。


*1.「Scriptランチャー」は、XEAD Driverが提供する「機能タイプ(プログラム・パターン)」のひとつで、バッチ処理やJCLとして利用されることが多い。このタイプで機能を定義して起動すると、そこに書かれたJavaScriptコードが実行される。他の機能タイプとしては「明細一括表示」等のパネル系機能タイプや「見出し明細印刷」等の印刷用機能タイプが用意されている。

このブログでの参考記事:
業務システムとWEBサービス

|

« ドキュメント不整合問題の様相 | トップページ | システムの「基盤交換性」を見極める »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 取引先にEDI用Webサービスを提供する:

« ドキュメント不整合問題の様相 | トップページ | システムの「基盤交換性」を見極める »