Copyright 2012 NTT DATA INTRAMART CORPORATION 1 Top
目 次 intra-mart Accel Platform 外 部 ソフトウェア 接 続 モジュール 仕 様 書 第 2 版 2014-04-01 改 訂 情 報 はじめに 本 書 の 目 的 対 象 読 者 本 書 の 構 成 概 要 外 部 ソフトウェア 接 続 モジュールとは 仕 様 外 部 ソフトウェア 接 続 モジュールの 構 成 サンプルプログラム サンプル 内 容 動 作 に 必 要 な 環 境 構 築 プログラムソース ログイン セキュリティ 環 境 の 構 築 外 部 ソフトウェア 連 携 時 の 認 可 設 定 2
改 訂 情 報 intra-mart Accel Platform 外 部 ソフトウェア 接 続 モジュール 仕 様 書 第 2 版 2014-04-01 変 更 年 月 日 変 更 内 容 2012-12-21 初 版 2014-04-01 第 2 版 下 記 を 追 加 変 更 しました 概 要 の 説 明 を 追 加 サンプルプログラム にtenantIdの 指 定 を 追 加 3
はじめに intra-mart Accel Platform 外 部 ソフトウェア 接 続 モジュール 仕 様 書 第 2 版 2014-04-01 本 書 の 目 的 本 書 では 外 部 ソフトウェア 接 続 モジュールの 仕 様 とそのプログラミング 方 法 や 注 意 点 等 について 説 明 します 注 意 この 機 能 は 旧 バージョンの 互 換 用 として 提 供 されています セキュリティ 面 での 懸 念 があるため 利 用 される 場 合 は 十 分 な 注 意 が 必 要 です 対 象 読 者 次 の 開 発 者 を 対 象 としてます intra-mart Accel Platform の 外 部 ソフトウェア 接 続 モジュールを 利 用 したい 開 発 者 本 書 の 構 成 本 書 は 上 記 の 対 象 読 者 に 応 じて 次 の2つの 構 成 を 取 っています 概 要 外 部 ソフトウェア 接 続 モジュールの 概 要 について 説 明 します サンプルプログラム 外 部 ソフトウェア 接 続 モジュールを 利 用 したプログラミング 方 法 について 説 明 します 4
概 要 intra-mart Accel Platform 外 部 ソフトウェア 接 続 モジュール 仕 様 書 第 2 版 2014-04-01 項 目 外 部 ソフトウェア 接 続 モジュールとは 仕 様 外 部 ソフトウェア 接 続 モジュールの 構 成 外 部 ソフトウェア 接 続 モジュールとは 市 販 のアプリケーションパッケージから im-bizapi の 各 種 API を 呼 び 出 して 直 接 利 用 するなど intra-mart と 外 部 ソフトウェアを 簡 単 に 連 携 接 続 できるモジュールです 連 携 接 続 する 方 法 には 次 の 2 通 りの 方 法 が 用 意 されています この 連 携 API コネクタ を 使 用 して 任 意 のプロセスと im-bizapi を 連 携 させる 方 法 外 部 ソフトウェアから Web サービスにより im-bizapi の 各 種 API を 呼 び 出 す 方 法 連 携 API コネクタ は im-bizapi と 連 携 するための Java ベース API として 提 供 されているので 外 部 ソフト ウェアが Java 実 行 環 境 であれば 任 意 のプロセスと im-bizapi を 連 携 させることができます 例 えば 市 販 のポータルサーバ 製 品 と 組 み 合 わせて ポータル 画 面 中 に intra-mart の 画 面 を 表 示 したり 他 のア プリケーションと 連 携 してバッチ 動 作 する 独 自 の Java プロセスからユーザアカウント 情 報 を 操 作 したりすること が 可 能 です コラム ここでは Webサービスにより im-bizapi の 各 種 API を 呼 び 出 す 方 法 については 説 明 しませ ん 外 部 ソフトウェア 接 続 モジュール は 互 換 用 として 提 供 されているものです セキュリティ 面 で の 懸 念 があるため 利 用 される 場 合 は 十 分 な 注 意 が 必 要 です Webサービス については 以 下 のWebサービス 各 種 マニュアルを 参 照 してください Webサービス スクリプト 開 発 プログラミングガイド Webサービス Java 開 発 プログラミングガイド Webサービス 認 証 認 可 仕 様 書 仕 様 外 部 ソフトウェア 接 続 モジュールのインタフェースは Java のクラスです したがって 連 携 するアプリケーション は Java インタフェースを 利 用 できることが 前 提 となります また Java インタフェースを 利 用 することから このモジュールが 動 作 する 環 境 には Java-VM が 必 要 になりま す 5
連 携 用 のコネクタクラスは ネットワークを 介 して intra-mart Accel Platform と 連 動 します したがって ネットワー クが 利 用 可 能 な 環 境 であることも 前 提 条 件 となります ただし API は URL によってネットワーク 通 信 を 制 御 するため 開 発 者 がネットワークを 直 接 意 識 することはあり ません コネクタは intra-mart Accel Platform に 対 して HTTP 接 続 を 行 います 連 携 用 に 指 定 する URL には 専 用 の サーブレットパス(/imart/HTTPActionEventListener( 標 準 ))を 指 定 します ネットワークは API に 指 定 されたURL により 解 決 されますが この URL は intra-mart Accel Platform の 運 用 形 態 により 以 下 のような 注 意 が 必 要 です intra-mart Accel Platform がスタンドアロンで 運 用 されている 場 合 は そのスタンドアロンサーバへの 接 続 URL を 指 定 します intra-mart Accel Platform が 分 散 環 境 で 運 用 されている 場 合 は Web Server への 接 続 URL を 指 定 し ます 外 部 ソフトウェア 接 続 モジュールの 構 成 外 部 ソフトウェア 接 続 モジュールは サーバ 側 モジュールとクライアント 側 モジュールの2つのモジュールで 構 成 さ れます モジュール 名 外 部 連 携 クライアン ト 外 部 連 携 認 証 認 可 クラスアーカイブ imaca_client-xxxmain.jar imaca_provider-xxxmain.jar 説 明 呼 び 出 し 側 の 外 部 ソフトウェアに 配 置 するクライアント 側 ロジックです intra-mart Accel Platform に 配 置 するサーバ 側 ロジック です 6
サンプルプログラム 項 目 サンプル 内 容 動 作 に 必 要 な 環 境 構 築 プログラムソース ログイン セキュリティ 環 境 の 構 築 外 部 ソフトウェア 連 携 時 の 認 可 設 定 サンプル 内 容 このサンプルは intra-mart Accel Platform システム 外 の Java 実 行 環 境 から 任 意 のページをリクエストする URL を 取 得 するサンプルソースになります スクリプト 開 発 モデルで 作 成 されたページ sample/chart/default_graph をリクエストするための URL を 作 成 します 動 作 に 必 要 な 環 境 構 築 外 部 ソフトウェア 連 携 を 行 う 場 合 は 以 下 の 手 順 で 連 携 に 必 要 な 環 境 を 作 成 してください 1. 外 部 連 携 クライアントモジュールに 含 まれているクラスアーカイブ ファイル imaca_client-xxxmain.jar を 連 携 させるアプリケーションが 動 作 する 環 境 にコピーしてください (jar ファイルは WARファイル 内 の WEB-INF/lib にあります ) 2. コピーしたアーカイブファイルの imaca_client-xxx-main.jar に 対 してクラスパスを 設 定 してください バージョンの 異 なる jar ファイルの 場 合 正 常 に 連 携 動 作 させることができない 可 能 性 がありますので パッチ 等 を 適 用 した 場 合 やリビジョンアップをした 場 合 などは 十 分 注 意 をして ください なお intra-mart Accel Platform に 対 してパッチを 適 用 したときなどは パッチに 含 まれる imaca_client-xxx-main.jar を 上 書 きコピーしてご 利 用 ください プログラムソース package jp.co.intra_mart.sample.service.client.application; import java.io.ioexception; import jp.co.intra_mart.foundation.service.client.application.httpactioneventhandler; import jp.co.intra_mart.foundation.service.client.application.httpactioneventhandlerexception; import jp.co.intra_mart.foundation.service.client.application.httpactioneventurl; import jp.co.intra_mart.foundation.service.client.application.passwordsecurityhttpactioneventfilterhandler; import 7
jp.co.intra_mart.foundation.service.client.application.webapplicationhttpactioneventhandler; import jp.co.intra_mart.foundation.service.client.application.content.accessiblelinkhttpactioneventfilterhandler import jp.co.intra_mart.foundation.service.client.application.content.presentationpagehttpactioneventhandler; public class JSSPConnectURLCreator { /** * コマンドプロンプトからメインクラスとして 指 定 された 場 合 に 実 行 されるメソッド * @param args コマンドライン 引 数 */ public static void main(final String[] args) { try { // スクリプト 開 発 モデルの 画 面 をリクエストするためのURLを 取 得 final String jsspurl = createjsspurl(); // 結 果 の 表 示 System.out.println("URL: " + jsspurl); } catch (final Exception e) { e.printstacktrace(); } } /** * 指 定 のアカウント パスワードによるセキュリティセッション 環 境 で メニュー 画 面 を 作 成 してソースを 返 します * @return ページURL * @throws IOException 入 出 力 エラーが 発 生 した 場 合 にスローされます * @throws HTTPActionEventHandlerException イベント 実 行 時 に 例 外 が 発 生 した 場 合 にスローされます */ public static String createjsspurl() throws IOException, HTTPActionEventHandlerException { // イベント 実 行 ハンドラの 作 成 final String path = "sample/chart/default_graph"; HTTPActionEventHandler handler = new PresentationPageHTTPActionEventHandler(path); // 絶 対 パスでリンクするための 定 義 handler = new AccessibleLinkHTTPActionEventFilterHandler(handler); // ログイン セキュリティ 環 境 の 構 築 final String tenantid = "default"; final String usercd = "user"; final String password = "password"; handler = new PasswordSecurityHTTPActionEventFilterHandler(handler, tenantid, usercd, password); } // URL の 取 得 final String url = "http://localhost:8080/imart/httpactioneventlistener"; final HTTPActionEventURL result = WebApplicationHTTPActionEventHandler.getURL(handler, url); return result.geturl(); } 8
コラム このソースをコンパイルするときは imaca_client-xxx-main.jar をクラスパスに 設 定 してくださ い 実 行 時 は このソースをコンパイルしてできたクラスファイルを 実 行 する Java プロセス 環 境 から 利 用 できる 場 所 に 保 存 してください 注 意 バーチャルテナントによる 複 数 テナントの 環 境 で 使 用 する 場 合 は PasswordSecurityHTTPActionEventFilterHandlerのインスタンス 生 成 時 にアクセスするテナン トの tenantid を 指 定 します tenantid が 指 定 されていない 場 合 はデフォルトテナントに 指 定 されているテナントにアクセスし ます intra-mart Accel Platform 2013 Winter 以 前 テナントIDの 指 定 は 必 要 ありません ログイン セキュリティ 環 境 の 構 築 ログインセッション 環 境 でイベントを 実 行 するためには 以 下 のいずれかの ActionEventFilterHandler を 利 用 す る 必 要 があります jp.co.intra_mart.foundation.service.client.application.groupsecurityhttpactioneventfilterhandler Anonymousユーザでイベントを 実 行 します jp.co.intra_mart.foundation.service.client.application.accountsecurityhttpactioneventfilterhandler 指 定 されたユーザコードのユーザでログイン 認 証 を 行 って イベントを 実 行 します jp.co.intra_mart.foundation.service.client.application.passwordsecurityhttpactioneventfilterhandler 指 定 されたユーザコード パスワードでログイン 認 証 を 行 って イベントを 実 行 します コラム GroupSecurityHTTPActionEventFilterHandlerおよび AccountSecurityHTTPActionEventFilterHandlerは 標 準 の 状 態 では 利 用 できなくなっています 利 用 したい 場 合 は WEB-INF/web.xml に 記 載 されている HTTPActionEventListener の initparam use.account.security の 値 を true に 指 定 ください 外 部 ソフトウェア 連 携 時 の 認 可 設 定 外 部 ソフトウェア 連 携 モジュールを 利 用 したイベント 実 行 時 に 認 可 機 能 によるアクセス 制 御 を 行 いたい 場 合 は 以 9
下 のActionEventFilterHandlerを ログイン ログインセキュリティ 用 のActionEventFilterHandlerの 前 に 設 定 して ください jp.co.intra_mart.foundation.service.client.application.authorizationhttpactioneventfilterhandler 指 定 された 認 可 URIでアクセス 制 御 を 行 います 実 装 例 認 可 URI service://sample/chart/default_graph のリソースのアクセス 権 限 を 持 つユーザのみ 実 行 でき るようにする 場 合 は 以 下 のように 実 装 します // イベント 実 行 ハンドラの 作 成 final String path = "sample/chart/default_graph"; HTTPActionEventHandler handler = new PresentationPageHTTPActionEventHandler(path); // 絶 対 パスでリンクするための 定 義 handler = new AccessibleLinkHTTPActionEventFilterHandler(handler); // アクセス 制 御 を 行 うための 定 義 handler = new AuthorizationHTTPActionEventFilterHandler(handler, "service://sample/chart/default_graph", "execute"); // ログイン セキュリティ 環 境 の 構 築 final String tenantid = "default"; final String usercd = "user"; final String password = "password"; handler = new PasswordSecurityHTTPActionEventFilterHandler(handler, tenantid, usercd, password); // URL の 取 得 final String url = "http://localhost:8080/imart/httpactioneventlistener"; final HTTPActionEventURL result = WebApplicationHTTPActionEventHandler.getURL(handler, url); return result.geturl(); コラム 認 可 機 能 によるアクセス 制 御 を 利 用 する 場 合 は あらかじめ 利 用 するURIのリソースが 設 定 してください 10
注 意 バーチャルテナントによる 複 数 テナントの 環 境 で 使 用 する 場 合 は PasswordSecurityHTTPActionEventFilterHandlerのインスタンス 生 成 時 にアクセスするテ ナントの tenantid を 指 定 します tenantid が 指 定 されていない 場 合 はデフォルトテナントに 指 定 されているテナントにアクセ スします intra-mart Accel Platform 2013 Winter 以 前 テナントIDの 指 定 は 必 要 ありません 11