クリアフィルター
お知らせ
Mihoko Iijima · 2022年8月19日
開発者の皆さん、こんにちは!
Interoperability を使った開発のスキルを披露してみませんか?次回のコンテストのお題は 🏆 InterSystems Interoperability Contest: サステナブルなソリューションの構築 🏆です!
期間: 2022年8月29日~9月18日
💰賞金💰 $13,500 – 賞金の配分方法が変更されました!
テーマ
💡 InterSystems IRIS と IRIS for Health を使用した Interoperability(相互運用性)ソリューションの開発 💡
InterSystems IRIS または InterSystems IRIS for Health を使用して、相互運用性ソリューション、相互運用性ソリューションの開発・保守を支援するソリューションの開発を行ってください。
さらに、開発者に皆さんには、地球規模の課題の解決に挑戦していただきます。今回は、「持続可能な開発問題」です。
ぜひ、このコンテストに参加し、サステナビリティ問題の解決を目指したソリューションを構築してください。
1) サステナビリティ、ESG、代替エネルギーの最適利用などを解決できるアプリケーションであれば、特別ボーナスポイントを獲得できます。2) サステナビリティ、ESG、代替エネルギーの最適利用などに関連するデータセットを作成し、提出した場合にもボーナスポイントを獲得できます。
General Requirements:
応募可能なアプリケーション
Open Exchange アプリケーションの新規作成、または既存アプリケーションであっても大幅に改善されているものであればご応募いただけます。
コミュニティの担当チームは、コンテストへの応募を承認する前に申請された全アプリケーションをレビューします。
全てのアプリケーションは IRIS Community Edition 、 IRIS for Health Community Edition 、 IRIS Advanced Analytics Community Edition のいずれかで動作する必要があります。
アプリケーションはオープンソースであり、GitHubで公開されている必要があります。
アプリケーションの README ファイルは、英語で記述してください(日本語で記述したものがあればそのまま掲載いただき、英文の追記をお願いします。翻訳アプリを使用しますが翻訳をお手伝いすることもできますのでお気軽にお知らせください!)。また、インストール手順や、アプリケーションがどのように動作するかの説明、またはビデオデモを含めてください
🆕 優勝特典:
皆様から寄せられたご意見を元に、賞金の配分方式を変更しました(賞金獲得のチャンスが増えました)!
1. Experts Nomination – 審査員から多く票を集めたアプリケーションには、以下の賞金が贈られます
🥇 1位 - $5,000
🥈 2位 - $3,000
🥉 3位 - $1,500
🏅 4位 - $750
🏅 5位 - $500
🌟 6-10位 - $100
2. Community winners – a開発者コミュニティで多く票を集めたソリューションには、以下の賞金が贈られます。
🥇 1位 - $1,000
🥈 2位 - $750
🥉 3位 - $500
✨ 受賞者全員にグローバルマスターズ・バッジをプレゼントします!!
複数の参加者が同数の票を獲得した場合、全参加者が勝者となり賞金は勝者間で分配されます。
スケジュール:
🛠 アプリケーション開発と応募期間:
2022年8月29日 (00:00 EST): コンテスト開始!
2022年9月11日 (23:59 EST): 応募締め切り日
✅ 投票期間:
2022年9月12日 (00:00 EST): 投票開始!
2022年9月18日 (23:59 EST): 投票締め切り日
応募、投票期間中、アップロードしたアプリケーションは改良できます。
参加資格:
どなたでもご参加いただけます!(InterSystems 開発者コミュニティのアカウントを作成するだけでご応募いただけます)
👥 開発者がチームを組んで共同でアプリケーションを作成し、応募することもできます! 1チーム 2~5名 までご参加いただけます。
チームでご応募いただく場合は、アプリケーションの README にチームメンバー名の記載をお忘れなく!!(開発者コミュニティのプロファイルのリンクもお願いします)
Helpful Resources:
✓ サンプルアプリケーション:
interoperability-embedded-python
IRIS-Interoperability-template
ETL-Interoperability-Adapter
HL7 and SMS Interoperability Demo
UnitTest DTL HL7
Twitter Sentiment Analysis with IRIS
Healthcare HL7 XML
RabbitMQ adapter
PEX demo
✓ オンラインコース(英語):
Interoperability for Business
Interoperability QuickStart
Interoperability Resource Guide - 2019
✓ ビデオ:
Intelligent Interoperability
Interoperability for Health Overview
✓ For beginners with IRIS:
Build a Server-Side Application with InterSystems IRIS
Learning Path for beginners
【はじめての InterSystems IRIS】セルフラーニングビデオ 索引
【はじめてのInterSystems IRIS】Interoperability(相互運用性)を使ってみよう!
✓ For beginners with ObjectScript Package Manager (ZPM):
How to Build, Test and Publish ZPM Package with REST Application for InterSystems IRIS
Package First Development Approach with InterSystems IRIS and ZPM
✓コンテストへの応募方法
Need Help?
ご質問がある場合は、この投稿へコメントいただくか、InterSystems の Discord server チャンネルにご参加ください!
皆様からのアプリケーションのご応募、お待ちしております!👍
❗️ コンテストに参加された場合、こちらに記載されているコンテスト規約に同意したものとみなされます。ご応募の際、ご一読いただきますよう、お願い申し上げます❗️
ご応募方法について
以下の応募方法ビデオをご参照ください。
以下、コンテストに応募する迄の手順をご説明します。
コンテスト応募までの流れは以下の通りです(※ビデオでは、3番以降の内容をご紹介しています)。
1、IRISプログラミングコンテスト用テンプレートを使用して、開発環境を準備します。
2、コンテスト用アプリケーションを作成します。
3、コンテストの準備が完了したら、ソースコードをローカルのGitリポジトリへコミットします。
初回コミット時に、Gitの初期設定がないためコミットが失敗することがあります。その場合は、以下のコマンドでGitユーザ名とEmailを設定します。
git config --global user.name "ここにユーザ名"
git config --global user.email "ここにメールアドレス”
4、ローカルのGitリポジトリのコミットが完了したら、リモートのGitリポジトリを作成します。
リポジトリ作成後、リモートリポジトリのURLをコピーします。
5、リモートのGitリポジトリへPushします。
git push ここにリモートのリポジトリのURL
6、OpenExchangeにログインし、アプリケーションを追加します。
※事前にDeveloper communityでユーザアカウントを作成する必要があります。ログイン後、Profile→Applications から Application をクリックし、4 でコピーしたリモートのGitリポジトリのURLを設定します。
アプリケーションを登録すると、画面右上に「Send Approval」のボタンが表示されるので、クリックします。
再度作成したアプリケーションを開くと、「Apply for Contest」ボタンが表示されるので、クリックすると応募が完了します。
お知らせ
Mihoko Iijima · 2023年2月13日
開発者の皆さん、こんにちは!
InterSystems デベロッパーツールコンテストの勝者が発表されました!
この記事では、コンテスト受賞者を発表します📣
その前に...
今回のコンテストですが、なんと 21 の応募 がありました!🔥 多数のご応募、ありがとうございました!
Experts Nomination
🥇 1位 - $5,000 は、irissqlcli を開発された @Dmitry.Maslennikov さんに贈られました。
🥈 2位 - $3,000 は、DX Jetpack for VS Code を開発された @John.Murray さんに贈られました。
🥉 3位 - $1,500 は、OpenAPI-Suite を開発された @Lorenzo.Scalese さんに贈られました。
🏅 4位 - $750 は、iris-geo-map を開発された @Muhammad.Waseem さんに贈られました。
🏅 5位 - $500 は、iris-tripleslash を開発された @José.Pereira さん、@Henrique.GonçalvesDias さん、@Henry.HamonPereira さんに贈られました。
さらに!
🏅 $100 は、iris-log-viewer を開発された @Oliver.Wilms さんに贈られました。
🏅 $100 は、iris-persistent-class-audit を開発された @Stefan.Cronje1399 さんに贈られました。
🏅 $100 は、iris-connections を開発された @Yuri.Gomes さんに贈られました。
🏅 $100 は、cos-url-shortener を開発された @Daniel.Aguilar さんに贈られました。
🏅 $100 は、iris-deploy-tools を開発された @Francisco.López1549 さんに贈られました。
Community Nomination
🥇 1位 - $1,000 は、 iris-tripleslash を開発された @José.Pereira さん、@Henrique.GonçalvesDias さん、@Henry.HamonPereira さんに贈られました。
🥈 2位 - $750 は、 Intersystems IRIS platform queue trend monitoring component を開発された @yubo.mao さんに贈られました。
🥉 3位 - $500 は、 irissqlcli を開発された @Dmitry.Maslennikov さんに贈られました。
今回も、コンテストにご注目いただきありがとうございました!
では、また、次のコンテストをお楽しみに!😎 
記事
Megumi Kakechi · 2023年3月9日
Windowsクライアント環境に、スタンドアロンの IRIS ODBC ドライバをインストールする際、
Error 1918. Error installing ODBC driver InterSystems IRIS ODBC.35, ODBC error 13: システム エラーコード 126: 指定されたモジュールが見つかりません。
のエラーとなりインストールに失敗する場合の対処法をご案内します。
※インストール時に以下のようなエラーが出る場合です。
***
こちらのエラーは、Windowsクライアント環境に必要なバージョンの Microsoft VC++ ランタイム ライブラリがインストールされていない場合に出力されます。
この場合、ODBCドライバをインストールする前に、必要なバージョンの「Visual C++ 再頒布可能パッケージ」をインストールする必要があります。
以下のマイクロソフト社のページより、VC++ 再頒布可能パッケージ をダウンロードしてインストールしてください。
https://docs.microsoft.com/ja-jp/cpp/windows/latest-supported-vc-redist?view=msvc-170
> Visual Studio 2015、2017、2019、および 2022
なお、IRIS 2022.1 以降のバージョンでは、必要な「Visual C++ 再頒布可能パッケージ」バージョンがインストールされていない場合は、IRIS ODBC ドライバインストール時にインストールされるようになりました。
※以下のようなダイアログが出てインストールが開始します。
記事
Toshihiko Minamoto · 2023年6月29日
### 
コミュニティの皆さん、こんにちは。
この記事では、InterSystems Embedded Python の使用方法を説明します。以下のトピックが含まれます。
* 1- Embedded Python の概要
* 2- Embedded Python の使用方法
* 2.1- ObjectScript から Python ライブラリを使用する
* 2.2- Python から InterSystems API を呼び出す
* 2.3- ObjectScript と Python を同時に使用する
* 3- Python 組み込み関数の使用
* 4- Python モジュール/ライブラリ
* 5- Embedded Python のユースケース
* 5.1- Python **Reportlab ライブラリ**を使った PDF の印刷
* 5.2- Python **Qrcode ライブラリ**を使った QR コードの生成
* 5.3- Python **Folium ライブラリ**を使った地理的位置情報の取得
* 5.4- Python **Folium ライブラリ**を使ったインタラクティブ地図への場所の生成とマーキング
* 5.5- Python **Pandas ライブラリ**を使ったデータ分析 **
* 6- まとめ
では、概要から始めましょう。
** **
## 1- Embedded Python の概要
Embedded Python は、Python 開発者が InterSystems IRIS の全データと全機能に直接アクセスできるようにする、InterSystems IRIS データプラットフォームの機能です。
InterSystems IRIS には、データプラットフォーム内で解釈、コンパイル、および実行される ObjectScript と呼ばれる強力なプログラミング言語が組み込まれています。
ObjectScipt は InterSystems IRIS のコンテキスト内で実行されるため、データプラットフォームのメモリとプロシージャ呼び出しに直接アクセスできます。
Embedded Python は、InterSystems IRIS プロセスコンテキスト内で Python コードを実行を可能にする Python プログラミング言語の拡張機能です。
ObjectScript と Python のいずれも同じオブジェクトメモリで動作するため、Python オブジェクトは ObjectScript オブジェクトを単にエミュレートするのではなく、ObjectScipt オブジェクトであると言えます。
これらの言語の共平等性により、ジョブに最適な言語か、アプリケーションの記述に最も使いやすい言語を選択することができます。

## 2- Embedded Python の使用方法
Embedded Python を使用する場合、3 つの異なる方法でコードを記述できます。
### 2.1- ObjectScript から Python ライブラリを使用する
まず、通常の .py ファイルを記述し、InterSystems IRIS コンテキストからそれを呼び出します。 この場合、データプラットフォームは Python プロセスを起動し、IRIS と呼ばれるモジュールをインポートできるようにします。これにより、Python プロセスが IRIS カーネルに自動的に接続されるため、Python コードのコンテキストから ObjectScript のすべての機能にアクセスできるようになります。
.png)
### 2.2- Python から InterSystems API を呼び出す
次に、通常の ObjectScript コードを記述し、%SYS.Python パッケージを使って Python オブジェクトをインスタンス化します。 この ObjectScript パッケージを使うと、Python モジュールとライブラリをインストールし、ObjectScript 構文でコードベースを操作できるようになります。
%SYS.Python パッケージを使うと、ObjectScript 開発者は Python の知識が無くてもリッチな Python ライブラリエコシステムを ObjectScript コードで使用できるようになります。
.png)
### 2.3- ObjectScript と Python を同時に使用する
最後に、InterSystems クラス定義を作成し、Python でメソッドを記述します。 そのメソッドを呼び出すと、Python インタープリターが起動します。 このメソッドは、メリットとして、それを含むクラスのインスタンスへの参照を使って、Python コードのそのブロックの self キーワードを埋めることができます。 また、Python を使って InterSystems クラスにクラスメソッドを書き込むことで、SQL で、テーブルに新しい行が追加されたなどの異なるデータエントリイベントを処理するメソッドを簡単に実装できます。
カスタムストアドプロシージャを Python で迅速に開発することも可能です。
.png)
ご覧のとおり、Embedded Python を使用すると、パフォーマンスを犠牲にすることなく、ジョブに最適なプログラミング言語を選択できます。

## 3- Python 組み込み関数の使用
Python インタープリターには、常に利用できる多数の関数と型が組み込まれています。 以下に、アルファベット順でリストしています。
組み込み関数
AELR
abs()
enumerate()
len()
range()
aiter()
eval()
list()
repr()
all()
exec()
locals()
reversed()
any()
round()
anext()
F
M
ascii()
filter()
map()
S
float()
max()
set()
B
format()
memoryView()
setattr()
bin()
frozenset()
min()
slice()
breakpoint()
G
N
staticmethod()
bytearray()
getattr()
next()
str()
bytes()
globals()
sum()
O
super()
C
H
object()
callable()
hasattr()
oct()
T
chr()
hash()
open()
tuple()
classmethod()
help()
ord()
type()
compile()
hex()
complex()
P
V
I
pow()
vars()
D
id()
print()
delattr()
input()
property()
Z
dict()
int()
zip()
dir()
isinstance()
divmod()
issubclass()
-
iter()
__import__()
**Python 組み込み 関数の使用**
Python 組み込み関数を使用するには、"builtins" をインポートする必要があります。その後、関数を呼び出せるようになります。
set builtins = ##class(%SYS.Python).Import("builtins")
Python の print() 関数は、実際には組み込みモジュールのメソッドであるため、ObjectScript からこの関数を使用できるようになりました。
USER>do builtins.print("hello world!")
hello world!
USER>set list = builtins.list()
USER>zwrite list
list=5@%SYS.Python ; [] ; <OREF>
同様に、help() メソッドを使って、リストオブジェクトのヘルプを取得できます。
USER>do builtins.help(list)
Help on list object:
class list(object)
| list(iterable=(), /)
|
| Built-in mutable sequence.
|
| If no argument is given, the constructor creates a new empty list.
| The argument must be an iterable if specified.
|
| Methods defined here:
|
| __add__(self, value, /)
| Return self+value.
|
| __contains__(self, key, /)
| Return key in self.
|
| __delitem__(self, key, /)
| Delete self[key].
## 
## 4- Python モジュールまたはライブラリ
一部の Python モジュールまたはライブラリはデフォルトでインストールされるため、すでに利用することができます。 help("module") 関数を使うと、これらのモジュールを表示できます。


### Python モジュールまたはライブラリのインストール
これらのモジュールとは別に、Python には数百ものモジュールとライブラリがあり、pypi.org で確認できます。(Python Package Index(PyPI)は Python プログラミング言語のソフトウェアリポジトリです)
.png)
他のライブラリが必要な場合は、intersystems irispip コマンドを使ってライブラリをインストールする必要があります。
たとえば、Pandas は Python データ分析ライブラリです。 以下のコマンドは、パッケージインストーラーの irispip を使用して、Windows システムに Pandas をインストールします。
C:\InterSystems\IRIS\bin>irispip install --target C:\InterSystems\IRIS\mgr\python pandas
C:\InterSystems は InterSystems インストールディレクトリに置き換えられることに注意してください。
** **
## 5- Embedded Python のユースケース
### 5.1- Python Reportlab ライブラリを使った PDF の印刷
irispip コマンドを使用して Reportlab ライブラリをインストールしてから、objectscript 関数を作成します。
ファイルの場所を指定すると、以下の CreateSamplePDF() という ObjectScript メソッドによって、サンプル PDF ファイルが作成され、その指定場所に保存されます。
Class Demo.PDF
{
ClassMethod CreateSamplePDF(fileloc As %String) As %Status
{
set canvaslib = ##class(%SYS.Python).Import("reportlab.pdfgen.canvas")
set canvas = canvaslib.Canvas(fileloc)
do canvas.drawImage("C:\Sample\isc.png", 150, 600)
do canvas.drawImage("C:\Sample\python.png", 150, 200)
do canvas.setFont("Helvetica-Bold", 24)
do canvas.drawString(25, 450, "InterSystems IRIS & Python. Perfect Together.")
do canvas.save()
}
}
メソッドの最初の行では、ReportLab の pdfgen サブパッケージから canvas.py ファイルをインポートしています。 コードの 2 行目は、Canvas オブジェクトをインスタンス化し、InterSystems IRIS オブジェクトのメソッド呼び出しと同じ方法で、メソッドを呼び出しています。
その後、通常の方法でメソッドを呼び出せるようになります。
do ##class(Demo.PDF).CreateSamplePDF("C:\Sample\hello.pdf")
以下の PDF が生成され、指定された場所に保存されます。
****
** **
### 5.2- Python Qrcode ライブラリを使った QR コードの生成
QR コードを生成するには、irispip コマンドを使用して Qrcode ライブラリをインストールする必要があります。次に、以下のコードを使用すると、QR コードを生成できます。
.png)

### 5.3- Python Folium ライブラリを使った地理的位置情報の取得
地理データを取得するには、irispip コマンドを使用して Folium ライブラリをインストールする必要があります。次に、以下の objectscript 関数を作成します。
Class dc.IrisGeoMap.Folium Extends %SwizzleObject
{
// Function to print Latitude, Longitude and address details
ClassMethod GetGeoDetails(addr As %String) [ Language = python ]
{
from geopy.geocoders import Nominatim
geolocator = Nominatim(user_agent="IrisGeoApp")
try:
location = geolocator.geocode(addr)
print("Location:",location.point)
print("Address:",location.address)
point = location.point
print("Latitude:", point.latitude)
print("Longitude:", point.longitude)
except:
print("Not able to find location")
}
}
**IRIS ターミナルに接続して以下のコードを実行します**
do ##class(dc.IrisGeoMap.Folium).GetGeoDetails("Cambridge MA 02142")
**以下が出力されます。**


### 5.4- Python Folium ライブラリを使ったインタラクティブ地図への場所の生成とマーキング
同じ Python Folium 伊良部らりを使用して、インタラクティブ地図に場所を生成し、それをマーキングします。以下の objectsctipt 関数によって、これを実行します。
ClassMethod MarkGeoDetails(addr As %String, filepath As %String) As %Status [ Language = python ]
{
import folium
from geopy.geocoders import Nominatim
geolocator = Nominatim(user_agent="IrisGeoMap")
#split address in order to mark on the map
locs = addr.split(",")
if len(locs) == 0:
print("Please enter address")
elif len(locs) == 1:
location = geolocator.geocode(locs[0])
point = location.point
m = folium.Map(location=[point.latitude,point.longitude], tiles="OpenStreetMap", zoom_start=10)
else:
m = folium.Map(location=[20,0], tiles="OpenStreetMap", zoom_start=3)
for loc in locs:
try:
location = geolocator.geocode(loc)
point = location.point
folium.Marker(
location=[point.latitude,point.longitude],
popup=addr,
).add_to(m)
except:
print("Not able to find location : ",loc)
map_html = m._repr_html_()
iframe = m.get_root()._repr_html_()
fullHtml = """
"""
fullHtml = fullHtml + iframe
fullHtml = fullHtml + """
"""
try:
f = open(filepath, "w")
f.write(fullHtml)
f.close()
except:
print("Not able to write to a file")
}
**IRIS ターミナルに接続し、MarkGeoDetails 関数を呼び出します**
dc.IrisGeoMap.Folium クラスの MarkGeoDetails() 関数を呼び出します。
この関数には、以下の 2 つのパラメーターが必要です。
1. 場所("," 区切りで、複数の場所を渡すことができます)
2. HTML ファイルパス
以下のコマンドを実行し、地図に Cambridge MA 02142、NY、London、UAE、Jeddah、Lahore、および Glasgow の場所をマークして、 "irisgeomap_locations.html" ファイルとして保存します。
do ##class(dc.IrisGeoMap.Folium).MarkGeoDetails("Cambridge MA 02142,NY,London,UAE,Jeddah,Lahore,Glasgow","d:\irisgeomap_locations.html")
上記のコードによって、以下のインタラクティブ HTML ファイルが生成されます。


### 5.5- Python Pandas ライブラリを使ったデータ分析
irispip コマンドを使用して Pnadas ライブラリをインストールする必要があります。次に、以下のコードを使用すると、データが表示されます。
.png)

## 6- まとめ
InterSystems Embedded Python(IEP)は、Python コードと InterSytems アプリケーションをシームレスに統合できる強力な機能です。 IEP を使用すると、Python で利用可能な広範なライブラリとフレームワークを活用して、InterSystems アプリケーションの機能を強化できます。 この記事では、IEP の主な機能とメリットを説明しました。
IEP は、InterSystems アプリケーション内から Python オブジェクトを操作し、Python コードを実装できるようにする一連のライブラリとして実装されています。 これにより、単純で有効な方法によって、Python コードを InterSystems アプリケーションに統合できるため、データ分析、機械学習、自然言語処理など、InterSystems ObjectScript での実装が困難なタスクを実行できるようになります。
IEP を使用する主なメリットの 1 つには、Python と InterSysems の間のギャップのかけ渡しを得られることが挙げられます。 このため、両方の言語の持つ力を使って、両分野の長所を組み合わせた強力なアプリケーションを作成しやすくなります。
IEP には、Python の機能を活用して、InterSystems アプリケーションの機能を拡張する方法も備わっています。 つまり、InterSystems ObjectScript で実装するには困難なタスクに、Python で利用できる膨大な数のライブラリをフレームワークを利用して実行できます。
InterSystems Embedded Python には、Python の機能を活用して、InterSystems アプリケーションの機能を拡張する強力な方法が備わっています。 Python コードを InterSystems アプリケーションに統合することで、Python で利用できる膨大な数のライブラリとフレームワークを利用し、InterSystems ObjectScript での実装が困難な複雑なタスクを実行できます。
以上です!
質問
Hiroshi Sato · 2020年8月26日
InterSystems IRIS Data Platformに関して販売している書籍は現時点ではありません。
旧製品であるCachéの公式ガイドブックとして、「Cachéデベロッパーズガイド(翔泳社)」という本があります。(ISBN978-4-7981-1885-7)
しかし、内容がかなり古いため、以下のウェブサイトで更新した内容を公開しています。
IRISディベロッパーズガイド
また実践プログラミングガイドという文書も公開しています。
IRIS実践プログラミングガイド 上記の
IRISディベロッパーズガイド
IRIS実践プログラミングガイド
を使用したいと思いGit Hubからダウンロードしdocker-compose up -d --buildしたのですが、以下のエラーが出て使用できないのですが、使用する方法を教えていただけませんか?
↓↓↓↓↓↓↓↓
=> [ 8/10] COPY csp/*.* /usr/irissys/csp/user/ 0.0s => ERROR [ 9/10] RUN iris start IRIS && iris session IRIS < /tmp/iris.script && iris stop IRIS quietly 11.4s------ > [ 9/10] RUN iris start IRIS && iris session IRIS < /tmp/iris.script && iris stop IRIS quietly:#14 0.369 Using 'iris.cpf' configuration file#14 0.487#14 0.976 This copy of InterSystems IRIS has been licensed for use exclusively by:#14 0.976 Community License expired.#14 0.976 Copyright (c) 1986-2021 by InterSystems Corporation#14 0.976 Any other use is a violation of your license agreement#14 3.363#14 3.363 Error: Invalid Community Edition license, may have exceeded core limit. - Shutting down the system : $zu(56,2)= 0Starting IRIS#14 11.39#14 11.39 An error was detected during InterSystems IRIS startup.#14 11.39 ** Startup aborted **------failed to solve: rpc error: code = Unknown desc = executor failed running [/bin/sh -c iris start IRIS && iris session IRIS < /tmp/iris.script && iris stop IRIS quietly]: exit code: 1 @TAKI.KURITA さん、こんにちは!
エラーですが、IRIS 2021.1コミュニティエディションに組み込まれているライセンスの期限切れが原因のようです(関連記事はこちら)。大変申し訳ありません。
今、Gitの先を見ると Dockerfile のイメージ:タグ名の指定が、新しいタグ名に更新されているようですので(@Hiroshi.Sato さんありがとうございます!)、もう1度 ソースを Pull した後、docker-compose up -d --build をお試しいただけないでしょうか。 再インストールしたらうまくいきました!
迅速な対応いつもありがとうございます!!
記事
Mihoko Iijima · 2021年1月15日
これは InterSystems FAQ サイトの記事です。
InterSystemsでは、既存のお客様および見込みのお客様と実施した他DBMS製品との比較を行った様々なベンチマーク結果を持っています。
しかし、それらの結果に関して、ほとんどのRDBMSベンダのライセンス条項に当該RDBMSベンダの承諾なしにベンチマーク結果を公表してはならないという条項があるため、現実問題として一般的な公表は、難しい状況です。
一方、TPC等の公共の機関等がベンチマーク条件を策定、公開しているベンチマークに関しては、必要な実施コストに対して得られるものが少ないと考えており、過去にも実施しておりませんし、将来も実施する予定はありません。
InterSystemsは、TPCの様な現実のシナリオからかけ離れたベンチマークを実施するのではなく、実際のアプリケーションを模したベンチマークシナリオを構築し、それに基づき、各ハードウェアベンダ、パートナ企業、エンドユーザとの協力の基、ベンチマークを実施しております。
様々なベンチマークの結果をまとめた記事があります。ぜひご参照ください。
IRISで公開しているベンチマーク資料 レポートのリンク先がなくなっているようです
記事
Mihoko Iijima · 2020年6月28日
基本操作編ビデオシリーズ:その2
IRIS で開発を始めるために必要な準備について以下の内容をご説明します。
管理ポータルの起動方法
ネームスペースの作成方法
IDEからIRISへ接続する方法
もくじ
最初から ~ 6:50 管理ポータルの開き方とメニューについて
7:03 ~ 12:50 ネームスペースとデータベースについて
12:50 ~ 17:10 ネームスペース、データベースの作成実演
17:10 ~ 20:50 スタジオを使用する場合の設定内容
20:50 ~ 22:35 スタジオ:IRISへの接続実演
22:35 ~ 26:50 VS Codeを使用する場合の設定内容
26:52 ~ VS Code:IRISへの接続実演
※YouTubeでご覧いただくと「もくじ」に記載の秒数クリックでビデオをジャンプできます。
その他ビデオ一覧は索引ページをご参照ください。
《2021/7/21 ビデオを更新しました》
VSCode の ObjectScript エクステンションを利用して IRIS に接続する説明を更新しました(settings.json に接続情報を設定する方法の解説に変更しました)。
記事
Toshihiko Minamoto · 2021年11月16日
ODataとは?
OData(Open Data Protocol)は、RESTful APIの構築と消費に関する一連のベストプラクティスを定義するISO/IEC認定のOASIS標準です。 ODataは、リクエストとレスポンスのヘッダー、ステータスコード、HTTPメソッド、URL変換、メディアタイプ、ペイロード形式、クエリオプションなどを定義するための多様なアプローチを気にせずに、RESTful APIを構築しながらビジネスロジックに専念するのに役立ちます。 また、ODataには変更の追跡、再利用可能なプロシージャの関数/アクションの定義、および非同期/バッチリクエストの送信に関するガイダンスも提供されています(出典: OData.org)。
ODataのユースケース
開発作業なしで、相互運用可能な形式でデータをRESTサービスとしてデプロイする。
開発作業なしで、RESTを使って、BI、データ視覚化、ERP、CRM、ESB、ワークフローツール、およびエンジンでデータを消費できるようにする。
API管理ツールで企業データを仮想化する。
ODataは、これらのRESTful APIを使用して、SQLのようなクエリ機能を可能にするREST APIを実装するための標準的な方法を提唱しています。 ODataは基本的に、RESTアーキテクチャスタイルを利用しながら、HTTP、JSON、およびATOMの標準プロトコルを土台に構築されたWeb用のSQLです(出典: progress.com)。
ODataは幅広く採用されています。以下をご覧ください。
ODataはFHIRの実装に役立ちます。FHIR(Fast Healthcare Interoperability Resources Specification)は、医療情報を電子的に交換するための標準です。 FHIRを実質的に相互運用可能にため、$searchパラメーターにはOData仕様で規定されたルールをシステムが使用することが推奨されます。 さらに、FHIRは、クライアントとの信頼関係を築くため、追加のセキュリティレイヤにOAuthも使用しています(出典: progress.com)。
ODataは、ページネーション、バッチリクエスト、およびJSON、ATOM、XMLなどのさまざまな形式をサポートしています。
ODataとInterSystems IRIS
InterSystems IRISはODataをサポートしていませんが、OData Server for InterSystems IRISを使用して、永続クラスをRESTとして公開することが可能です。
次の手順に従ってください。
IRIS OData Serverのソースコードのクローンを次のようにして作成します: git clone https://github.com/yurimarx/isc-iris-odata.git
次のフォルダに移動します: isc-iris-odata folder
次を実行します: mvnw install(MS Windows)または ./mvnw install(Linuxまたはmac)
次を実行します: docker build -t odata:1.0.0
次を実行します: docker run -p 8080:8080 odata:1.0.0 OData Serverが起動します:
任意の永続クラスでInterSystems IRISインスタンスを起動します。
ブラウザで次にアクセスします: http://localhost:8080/ 画面でパラメーターを設定します:
これは私のインスタンスのパラメーターです。 ご利用のIRISインスタンスにパラメーターを設定してください。 ネームスペースにあなたのIRISのネームスペース、スキーマにSQLテーブルスキーマ、ポートにJDBCデータベース接続へのポートを設定します。
[送信]を押すと、OData Server Dockerインスタンスが再読み込みされてパラメーターが適用されます。
http://localhost:8080/odata.svc/にアクセスし、IRISスキーマのすべての永続クラスを表示します。 私の場合は次のようになります。
永続クラスに移動するには、次を参照します: http://localhost:8080/odata.svc/<Persistent_Class> 例: http://localhost:8080/odata.svc/Animal
ODataサーバーは次のようにAnimalデータをリスト表示します。
JSON形式で表示するには、次を参照します: http://localhost:8080/odata.svc/Animal?$format=application/json 次に例を示します。
行の詳細を表示するには、次を参照します: http://localhost:8080/odata.svc/Animal(8)?$format=application/json
削除するには、Postmanで次を指定してDELETEを送信します: http://localhost:8080/odata.svc/Animal(8)
挿入するには、次のようにPostmanで http://localhost:8080/odata.svc/Animalとプロパティ名と値のペアを持つJSON本体を指定してPOSTを送信します。
永続クラスを使用して、すべてのCRUD操作を実行できます。
IRIS OData Serverがコミュニティで採用されるようになれば、今後、その他多数の機能がリリースされるでしょう。
それでは!
記事
Megumi Kakechi · 2023年6月11日
インターシステムズは、InterSystems Supply Chain Orchestrator と InterSystems IRIS for Supply Chain の2023.1リリースを一般提供開始(GA)したことを発表しました。
InterSystems Supply Chain Orchestratorは、InterSystems IRIS上に構築されており、スマートデータファブリックアーキテクチャを実現し、データとアプリケーションサイロを接続する高性能な機械学習対応アプリケーションの構築と展開を容易にする完全クラウドファーストデータプラットフォームです。InterSystems IRISとサプライチェーンに特化したアクセラレータやフレームワークのパワーを結集し、サプライチェーンのオーケストレーション、需要の検知と予測、フルフィルメント、動きの速い消費財の再梱包に最適化したソリューションを提供しています。
InterSystems Supply Chain Orchestratorの主要コンポーネントであるInterSystems IRIS for Supply Chainは、InterSystems IRISが提供するスマートデータファブリックアーキテクチャをサプライチェーンのユースケースに近づけ、価値実現までの時間を短縮するための支援を行います。
*: InterSystems IRIS Advanced サーバーが必要です**: InterSystems Package Manager (IPM) を通じて利用可能です
【機能のハイライト】
InterSystems IRIS for Supply Chain 2023.1 は、InterSystems IRIS に加えて以下の機能を提供します。
カスタマイズ可能なサプライチェーンデータモデル
組み込みの分析キューブ
KPI構成フレームワーク
問題のライフサイクル管理
問題分析と実用的な洞察
REST API の完全なサポート
【ドキュメントと参考資料】
注目機能の詳細は、以下のリンクからご覧いただけます。
製品ドキュメント:InterSystems IRIS for Supply Chain 2023.1(英語)
インターシステムズのオンライン学習:サプライ チェーンの学習パス(英語)
インターシステムズの概要:サプライ チェーン
お知らせ
Seisuke Nakahashi · 2023年7月3日
InterSystems IRIS Cloud SQL は、何千ものエンタープライズのお客様に利用いただいている InterSystems IRIS の優れたリレーショナルデータベース機能を実感いただける、幅広いアプリケーション開発者やデータ専門家のみなさまのためのフルマネージドサービスです。また InterSystems IRIS Cloud IntegratedML は、この DBaaS (Database-as-a-Service) のオプションであり、SQL ネイティブを通じて強力な自動機械学習機能を簡単にご利用いただけるサービスを提供します。シンプルな一連の SQL コマンドは簡単にアプリケーションコードに組み込むことができるため、データに近いところで動作する ML モデルにより、お客様のアプリケーションを拡張することができます。
本日は、これら2製品に関する 開発者アクセスプログラム を発表いたします。アプリケーション開発者は本サービスにみなさまご自身で登録いただくことで、デプロイメントの作成、構成可能なアプリケーションのビルド、そして本サービスによってプロビジョン、構成、システム管理が実行されるスマートデータべースを体験いただけます。
開発者のみなさまは、期間限定で完全無料の小さなデプロイを行うことで、すぐに InterSystems IRIS クラウドテクノロジーのパフォーマンスを体験できるフリートライアルをご利用いただけます。あるいは、AWS マーケットプレイスを通じて、フルセットのインスタンスのデプロイをお申込みいただけます(こちらは AWS アカウントに請求が行われます)。コアとなるリレーショナル・データベース・サービスを補完・サポートするために、InterSystems クラウドチームは、開発者アクセスプログラムを通じて追加機能や製品機能を迅速に展開していきます。ユーザ・エクスペリエンスをさらに向上させるためにも、みなさまからのフィードバックを心からお待ちしています。
InterSystems IRIS Cloud SQL ならびに Cloud IntegratedML アドオンは、InterSystems クラウド製品ラインの基本となるサービスであり、また InterSystems のヘルスケア業界向けの初期の SaaS (Software-as-a-Service) や PaaS (Platform-as-a-service) の成功事例を補完するものです。そして、日々目まぐるしく変化する今日のテクノロジー環境において、プロビジョン、拡張、運用をより簡単に行うソリューションを実装するために必要な、コンポーザビリティ・アプローチを実現するブロック要素となるものです。
ぜひ開発者アクセスプログラムにご登録いただき、新しいソリューションを目指してください!
開発者アクセスプログラムでは AWS us-east-1 リージョンでのみデプロイできます。また本プログラムはこの利用規約が適用されます。
記事
Megumi Kakechi · 2020年10月13日
これはInterSystems FAQ サイトの記事です。InterSystems IRIS Native API for Java のメソッドに、IRIS クラスメソッドを呼び出す classMethod***() があります。ObjectScript メソッドおよび関数の呼び出し
こちらを使用することで、InterSystems IRIS Native API for Java から InterSystems IRIS のクラスメソッドを呼び出すことが可能です。以下、使用方法について簡単なサンプルをご紹介します。
*SampleNativeAPI .java
import java.sql.DriverManager;import com.intersystems.jdbc.IRISConnection;import com.intersystems.jdbc.IRIS;import com.intersystems.jdbc.IRISIterator;
public class SampleNativeAPI { protected static int superserverPort = 51773; // YOUR PORT HERE protected static String namespace = "USER"; protected static String username = "_SYSTEM"; protected static String password = "SYS";
public static void main(String[] args) { try { // open connection to InterSystems IRIS instance using connection string String url = "jdbc:IRIS://localhost:"+superserverPort+"/"+namespace; IRISConnection conn = (IRISConnection) DriverManager.getConnection(url,username,password);
// create IRIS Native object IRIS iris = IRIS.createIRIS(conn);
System.out.println("[1. Setting and getting a global]");
// setting and getting a global // ObjectScript equivalent: set ^testglobal("1") = 8888 iris.set(8888,"^testglobal","1");
// ObjectScript equivalent: set globalValue = $get(^testglobal("1")) Integer globalValue = iris.getInteger("^testglobal","1"); System.out.println("The value of ^testglobal(1) is " + globalValue); System.out.println();
System.out.println("[2. Iterating over a global]");
// modify global to iterate over // ObjectScript equivalent: set ^testglobal("1") = 8888 // ObjectScript equivalent: set ^testglobal("2") = 9999 iris.set(8888,"^testglobal","1"); iris.set(9999,"^testglobal","2"); // iterate over all nodes forwards IRISIterator subscriptIter = iris.getIRISIterator("^testglobal"); System.out.println("walk forwards"); while (subscriptIter.hasNext()) { String subscript = subscriptIter.next(); System.out.println("subscript="+subscript+", value="+subscriptIter.getValue()); } System.out.println(); System.out.println("[3. Calling a class method]");
// calling a class method // ObjectScript equivalent: set returnValue = ##class(%Library.Utility).Date(5) String returnValue = iris.classMethodString("%Library.Utility","Date",5); System.out.println(returnValue); System.out.println();
// close connection and IRIS object iris.close(); conn.close();
} catch (Exception ex) { System.out.println(ex.getMessage()); } }
}
InterSystems IRIS Native API for Java の使用方法については、以下のドキュメントをご覧ください。InterSystems IRIS Native API for Java の使用法
また、Java側から InterSystems IRIS のストアドプロシージャをJDBC経由で呼び出す方法もあります。詳細は、【FAQ】 Javaから配列のような複数項目のデータを渡すにはどうすれば良いですか をご覧ください。