記事
· 2020年10月27日 7m read

【はじめてのInterSystems IRIS】Interoperability(相互運用性):プロダクションとは

この記事はこちらの投稿の続きの内容です。

前回の記事では、Interoperability(相互運用性)メニューを利用してシステム統合を行う際、どのような仕組みで動作しているのかについて解説しました。

今回の記事では、Interoperability(相互運用性)メニューを利用してでシステム統合を行うためにどのような開発を行うのか、について解説します。

最初に、どんな流れを作りたいのか?を考えながら、以下の内容を作成していきます。

  • プロダクション
  • メッセージ
  • コンポーネント
    • ビジネス・サービス
    • ビジネス・プロセス
    • ビジネス・オペレーション

 

プロダクション については、システム統合を行うために必要なコンポーネントの指定と、コンポーネントの設定を保存しておくため定義で、管理ポータルを使用して設定します(内部的にはプロダクション用クラス定義として保存されます)。

例えば、一定間隔で指定ディレクトリに置かれたファイルを処理するビジネス・サービスを作成している場合、「どのディレクトリを監視するのか」「どのファイルを処理したらいいのか」を具体的に設定します。この設定を保存するために用意するのが プロダクション です。

なお、設定内容はデータを送受信するコンポーネントが使用するアダプタにより異なります。

アダプタとは、外部システムとの接続を簡単にするためのクラスで、メール/ファイル/SOAP/FTP/HTTP/SQL/TCP などプロトコル別のものもあれば、HL7など規格に対応したアダプタもあります。

アダプタ詳細についてドキュメント(プロトコル別のアダプタ や EDIドキュメントに関連するアダプタ)をご参照ください。

 

プロダクションには必要なコンポーネントを定義しておくので、「プロダクションを開始」することでシステム統合が開始し、「プロダクションを停止」することでシステム統合が停止します。

プロダクションを完成させるために必要な開発は、システム統合に必要な部品の作成ですが、具体的には以下の内容を作成します。

  • メッセージ
  • コンポーネント(ビジネス・サービス/ビジネス・プロセス/ビジネス・オペレーション)
  • データ変換 などなど

 

上記内容はこの後の記事でゆっくり解説します。

まずは、サンプルのプロダクションを利用してプロダクションを開始し、設定内容を確認しながら実際にデータを流してメッセージの流れを確認してみましょう。

サンプルは https://github.com/Intersystems-jp/selflearning-interoperability からダウンロードいただけます。

 

コンテナを利用される場合は、git clone でサンプルコードをダウンロードいただき、clone で作成したディレクトリに移動後、docker-compose up -d を実行するだけ!とても簡単です。
手順はこちらをご参照ください(コンテナ作成に少し時間がかかります)。

 

コンテナを利用されない場合は、サンプルダウンロード後、新規でネームスペースを作成し、作成したネームスペースに src フォルダ以下にあるクラス定義ファイル(拡張子.cls)をすべてインポートしてください。
ネームスペース作成の流れなどは、こちらの記事の 07:03以降のビデオをご参照ください。

 

サンプルコード詳細については README もぜひご参照ください。

 

準備ができたら、管理ポータルにアクセスします(Webサーバのポート番号はご利用環境に合わせて変更してください)。

localhost:52773/csp/sys/UtilHome.csp

管理ポータル > [Interoperability] > [構成] > [プロダクション] にアクセスします.

 

コンテナ以外をご利用の場合はソースコードをインポートしたネームスペースに接続してから[構成] > [プロダクション] にアクセスし [開く] ボタンをクリックし [Start] > [Production] を選択したあと [開始する] ボタンをクリックします。

※コンテナ以外をご利用の場合は、初期設定が必要です。後述の内容を事前に設定してからこの後の内容をお試しください

 

 

プロダクションの画面は「サービス」「プロセス」「オペレーション」のコンポーネントごとに [コンポーネント名] と表示されます。

コンポーネント名をクリックすると、画面右端の「設定」タブの内容が変わります。

例えば、Start.GetKionOperation をクリック(シングルクリック)したときの表示は以下の通りです。

 

このコンポーネントは Web API に接続するための [HTTPサーバ]  [URL] の設定があります。設定の下の方には API key を入力するための [appid] 欄があります。ここに取得した API key を入力し「適用」ボタンをクリックします。

 

コンテナをご利用の方はこれで設定は完了です。つづきはこちらをご覧ください。


コンテナ以外でお試しいただいてる方

事前に以下2つの設定を行ってください。

1) SSLクライアントの設定。

接続先の Web API の通信が https で行われるため、事前にIRIS側に SSLクライアントの設定を行います。
サンプルプロダクションの設定に合わせるため、[openweather] の名称で作成します。プロダクション上の設定は以下の通りです。

 

 

管理ポータル > [システム管理] > [セキュリティ] > [SSL/TLS 構成] > [新規構成の作成]ボタンクリックし、「構成名」に openweather と記入したら「保存」ボタンをクリックして終了です。
 

 

2) REST用ベースURLの作成

サンプルプロダクションでは、RESTで情報入力できるように設定しています。IRIS 側の設定として REST のベースURL を設定しておく必要があります。
例では、/start をベースURLに設定しています。サンプルをインポートしたネームスペースに Start.REST クラスが存在しますので、このクラスをディスパッチクラスに指定し、アクセス時の認証を省略したいので、アプリケーションロールとして %All を追加します。

管理ポータル > [システム管理] > [セキュリティ] > [アプリケーション] > [ウェブ・アプリケーションパス] > [新しいウェブ・アプリケーションを作成] ボタンをクリックします。

名前欄に /start 、ネームスペースにサンプルをインポートされたネームスぺ―スを指定、ディスパッチクラス名に Start.REST を指定、許可された認証方法に「認証なし」を選択し、一旦保存します。

保存後、「アプリケーションロール」タブで %All ロールをアプリケーションロールに追加します。


 

データを送信してみる

準備ができたら、REST で情報を送信できるビジネスサービスを利用して、情報を流してみます。

http://localhost:52773/start/weather/ちくわ/豊橋市

上記例は、「豊橋市」で「ちくわ」を購入した人がいた、を想定したURLです。

実行後の画面は以下の通りです。

プロダクションに流れたメッセージを確認します。

管理ポータル > [Interoperability] > [構成] > [プロダクション] の画面で、名称をクリックします。

画面右側で「メッセージ」タブを選択し、ヘッダ欄にある番号をクリックします。もし表示されていない場合はブラウザをリロードします。

 

トレース画面を利用すると、コンポーネント間を送受信したメッセージの情報を確認できます。水色の枠の部分では、Web API から気象情報を取得して返送していることがわかります。

このように、トレースを利用すると、その時どんな順序でどんなデータが送受信されていたのかを確認できます。

 

この記事を通して、プロダクションにはシステム統合に必要なコンポーネントとその設定が定義されていることを サンプルコードの設定を参照しながら確認できました。

また、トレース画面を利用することでプロダクションに流れるメッセージの詳細を時系列に参照できることも確認できました。

 

この後の記事では、このトレースに表示されているメッセージを作成するときの考え方や、実際の定義方法を解説します。

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください