JP1からintra_martで使用しているBusinessLogicを実行したい

intra_mart自体にジョブの実行機能があることは分かっていました。ただ、前後関係を設定したり、別のジョブと待ち合わせをしたりなどができないためにアプリうけが悪いのです。たしかに一度JP1のようなジョブネットを定義できるようなジョブツールを使用してしまうと、それが当たり前のようになり、いつしか「え〜、JP1が利用できないの〜? じゃあ使えないね」みないなことになってしまうのです。でもまあ、幸いintra_martには外部から内部のBusiness Logicを呼び出す仕組みが提供されていると風のうわさで聞いていましたので、安心していました。ですが、身近にやったことのある方がいませんでした。
intra_martが起動しているサーバにJP1が入っている状況なら動くのかもしれないと思い、その想定でpublic static void main()のあるJavaのコンソールアプリケーションを作成し、実行してみましたが、やはりうまくいきません。なんだかよく分からないエラーが出力されてしまいます。
よくよく調べてみると、「外部ソフトウェア接続モジュール」というものが存在し、これを使用することでHTTP接続経由で内部のBusiness Logicを起動できるらしいというところまで分かりました。そのモジュールは、

  • imaca_client.jar
  • imaca_provider.jar

らしいです。確かに、intra_martをインストールすると、doc/imart/WEB-INF/libの配下に上記の2つのファイルが存在します。
と真っ当にintra_martのホームページからいろいろ探していると、普通にマニュアルに公開されていました。
http://www.intra-mart.jp/download/product/v71_doc/iwp_iaf/development/javaee_prog_guide_v71.pdf

手順をものすごく単純化すると

  • サーバ側のBusiness Logicは、imaca_provider.jarに含まれるインターフェース(jp.co.intra_mart.foundation.service.provider.application.HTTPActionEvent)を実装するクラスから呼び出す
    • 具体的には、actionメソッドを実装します。
  • クライアント側の呼び出し側は、imaca_client.jarに含まれるハンドラ(jp.co.intra_mart.foundation.service.client.application.HTTPActionEventHandler)を経由してサーバ側で実装したactionを呼び出します。

パートナー契約を結ぶか、製品を購入するとサンプルコードが入手できるようです。
何はともあれ、外部(JP1など)からintra_martのBusiness Logicを呼び出すことは可能みたいです。