皆さん、こんにちは!
InterSystems IRIS には [Interoperability(相互運用性)]というメニューがあります。
このメニューには、システム統合を簡単に作成できる仕組み(アダプタ、レコードマップ、BPM、データ変換など)が用意されていて、異なるシステムを簡単に接続することができます。
例えば、普段繋がっていないシステムを繋げるために相手の仕様に合わせてデータを受信(または送信)したり、データ送信前に別システムから情報を取得して追加したり、データベース(IRIS でもそれ以外でも)から情報を取得したり更新したり、データ中継の流れの中に様々な処理を含むことができます。
この記事のシリーズでは、Interoperability(相互運用性)でシステム統合を行う際、どのような仕組みで動作するのか、またどのような開発が必要になってくるのか、をご理解いただくためにサンプルコードをご覧いただきながら以下の項目を解説します。
まずはこのシリーズで使用するテーマをご紹介します。
ショッピングサイトを運営している会社があり、季節に合わせ商品情報の表示順を変更する作業を行っています。
ところが、季節を問わず良く売れるもの、想定しなかった時期に売れるものもあり、現在の表示順変更ルールにうまく合いません。
そこで、季節に合わせた表示順ではなく、そのときの気温にあわせた表示順に変更できないか検討した結果、購入物品に対してそのときの気温を調査する必要が出てきました。
気象情報の確認には、外部の Web API が利用できるため、購入されたタイミングで気象情報を収集し、後で確認できるようにデータベースに情報を登録していく予定です。
とても簡単な内容ですが、「外部の Web API」を利用して情報収集する必要があるのと、取得できた情報と購入情報をデータベースに登録する作業をひとまとめにする必要があります。
具体的な方法は関連記事に続きます(Webサイトの作成は含みません)。ぜひご参照ください!
さて、今回利用している「外部の Web API」ですが、OpenWether の Current weather data を使用しています。
(実際お試しになる場合は、アカウント登録を行い、APIIDを取得する必要があります。)
REST クライアントから GET 要求を行った結果は以下の通りです(この内容を Interoperability で実装する仕組みの中で実行していく予定です)。
HTTP 応答の JSON は以下の通りです。
"coord": {
"lon": 138.1,
"lat": 36.64
},
"weather": [
{
"id": 801,
"main": "Clouds",
"description": "薄い雲",
"icon": "02d"
}
],
"base": "stations",
"main": {
"temp": 10.12,
"feels_like": 9.1,
"temp_min": 8.33,
"temp_max": 11.67,
"pressure": 1013,
"humidity": 86
},
"visibility": 10000,
"wind": {
"speed": 0.76,
"deg": 233
},
"clouds": {
"all": 24
},
"dt": 1603584269,
"sys": {
"type": 3,
"id": 19237,
"country": "JP",
"sunrise": 1603573442,
"sunset": 1603612743
},
"timezone": 32400,
"id": 1856215,
"name": "Nagano",
"cod": 200
}
次の記事では、Interoperability(相互運用性) メニューを利用してシステム統合を行う際、どのような仕組みで動作しているのか について解説します。