#InterSystems IRIS

1 フォロワー · 1.3K 投稿

InterSystems IRISは総合データプラットフォームです

    InterSystems IRISは、企業にとって最も価値のある資産(データ)の取得、共有、理解、そしてデータに基づく行動のために必要なすべてのものを提供します。

    完全なプラットフォームである InterSystems IRIS は、複数の開発技術を統合する必要がありません。より少ないコードで開発が可能で、そのアプリケーションは、システムリソース、メンテナンスなども少なくて済みます。

記事 Toshihiko Minamoto · 1月 28 4m read

InterSystems IRISのウィンドウ関数を使用すると、累積合計、ランキング、移動平均など、強力な分析を直接SQLで実行できます。
ウィンドウ関数は、「GROUP BY」のように結果をまとめることなく、関連行の「ウィンドウ」(グループ上)で動作します。
つまり、ループも結合も一時テーブルも使わずに、より簡潔で高速、しかも保守しやすいクエリを書くことができます。

この記事では、よくあるデータ分析タスクに取り組むことで、ウィンドウ関数の仕組みを理解していきましょう。


InterSystems IRISでのSQLウィンドウ関数入門

SQLウィンドウ関数は、データ分析のための強力なツールです。
各行をそのまま表示したまま、複数行の集計とランキングを計算することができます。
ダッシュボード、レポート、または複雑な分析を構築しているかどうかに関係なく、ウィンドウ関数はロジックを簡素化し、パフォーマンスを大幅に向上させます。

注意:私はウィンドウ関数の専門家ではありませんが、私がウィンドウ関数を理解するうえで役立ったインサイトやリソースを共有したいと思います。 ご提案や訂正があれば、ぜひお知らせください!


🚀 ウィンドウ関数が重要な理由

累積合計やランキング、行間の差分を計算するために、複数のSQLクエリや手続き型のループを書いたことはありませんか?

0
1 60
記事 Mihoko Iijima · 1月 28 7m read

開発者の皆さん、こんにちは!

この記事では、InterSystems IRIS サーバサイドで実行できるPython(Embedded Python)のデバッグ方法をご紹介します。

前提:VSCode の Python デバッガ用モジュールの debugpy を利用するため、Python スクリプトファイルに記載した Embedded Python のコードが対象です。クラス定義に[Language = python]を指定して記載しているコードは対象外となります。ご注意ください!

0
0 72
お知らせ Mihoko Iijima · 1月 27

開発者の皆さん、こんにちは!

2026年最初の InterSystems プログラミングコンテストの内容が決定しましたのでお知らせします!📣

🏆 InterSystems フルスタックコンテスト(USコミュニティ) 🏆

期間:2026年2月2日~3月1日

賞金総額:$12,000


0
0 36
記事 Toshihiko Minamoto · 1月 26 5m read

InterSystems IRIS、特にInteroperabilityを使い始めたころ、最初によく思っていた疑問の一つは「処理を一定間隔やスケジュールで実行するにはどうすればいいのか」でした。 このトピックでは、この問題に対処する2つのシンプルなクラスをご紹介します。 似たようなクラスがEnsLibに見当たらないことに、驚いています。 十分に検索しなかったのかもしれません。 いずれにせよ、このトピックでは複雑な作業を扱うつもりはなく、初心者向けの簡単なスニペットを少し紹介します。

0
0 39
記事 Tomo Okuyama · 1月 23 2m read

DifyのベクトルストアにIRISを追加しました

こんにちは、セールスエンジニアの奥山です。

OSSのLLMアプリ開発プラットフォーム「Dify」に、IRISをベクトルストアとして利用できる機能をコントリビュートしました。Dify 1.11.2でマージされています。

https://github.com/langgenius/dify/releases/tag/1.11.2

Difyとは

Difyは、RAGやAIエージェントをノーコード/ローコードで構築できるOSSプラットフォームです。 GitHub Stars 10万以上、世界中で急速に利用が広がっています。

https://github.com/langgenius/dify

これまでWeaviate、Qdrant、Milvus、PgVector等のベクトルDBに対応していましたが、 今回IRISが選択肢に加わりました。

使い方

Difyの公式docker-compose.ymlにIRIS 2025.3の設定が含まれています。 .envファイルでVECTOR_STORE=irisと設定するだけでIRISが起動します。

# .envの設定
VECTOR_STORE=iris

接続情報のデフォルト値も設定済みなので、ローカルで試すだけならすぐに動かせます。

0
0 67
記事 Megumi Kakechi · 1月 23 2m read

これは InterSystems FAQ サイトの記事です。
こちらの記事では、データベースサイズを拡張する方法をご紹介します。


1.今すぐ拡張したい場合

2.空き容量がなくなったときに、拡張するサイズを設定したい場合



1.今すぐ拡張したい場合

管理ポータル、またはコマンドで、拡張したいサイズにデータベースサイズを指定します。

管理ポータル:
[システム管理] > [構成] > [システム構成] > [ローカルデータベース]

対象のデータベースを選択し、データベース属性のダイアログで、「現在」に拡張したいサイズ(拡張後のサイズ)を指定します。
保存クリック後、即座にデータベースは拡張されます。

上記例は、もともと11MBだったサイズを50MBに拡張、つまり39MB拡張したため、messages.logには以下のようなログが記録されます。

08/04/25-11:27:01:333 (3468) 0 [Database.StartExpansion] Starting Expansion for database c:\intersystems\iris\mgr\user\. 39 MB requested.
08/04/25-11:27:01:424 (3468) 0 [Database.
0
0 39
記事 Toshihiko Minamoto · 1月 21 4m read

メール送信は、統合シナリオでは一般的な要件です。クライアントへのリマインダー、自動レポート、トランザクション確認などに使用されます。 固定メッセージは、管理やパーソナライズが難しくなりがちです。 そこで登場するのが templated_email モジュールです。InterSystems IRIS InteroperabilityをJinja2テンプレートの機能を組み合わせます。

メール作成でJinja2を選ぶ理由

Jinja2はPythonエコシステムで人気のあるテンプレートエンジンで、完全に動的なコンテンツ生成を可能にします。 次をサポートします:

  • 変数 — 統合メッセージや外部ソースから動的にデータを取り込みます
  • 条件(if/else)— ランタイムデータに基づいてコンテンツを変更します
  • ループ(for)— テーブル、項目リスト、反復セクションを生成します
  • フィルターとマクロ — 日付や数字のフォーマット、テンプレートブロックを再利用します

簡単なメール本文テンプレートの例:

 


Hello {{ user.name }}!

{% if orders %} You have {{ orders|length }} new orders: {% for o in orders %}

  • Order #{{ o.id }}: {{ o.
0
0 41
記事 Toshihiko Minamoto · 1月 19 13m read

この記事では、2025.2リリースで導入された、IRIS SQL処理の重要な要素、InterSystems IRISのテーブル統計処理の大きな改善について紹介します。 まず最初に、テーブル統計とは何か、どのように利用されるのか、そしてなぜ今回の改善が必要だったのかを簡単におさらいします。 その後、テーブル統計を収集・保存するための新しいインフラの詳細を掘り下げてから、この変更が実際にアプリケーションにどのような影響を与えるのかを詳しく見ていきます。 最後に、新しいモデルで可能になったパターンに関する追加の注意点をいくつか紹介し、今回の初期リリースに続く次のフェーズに期待をつなげます。

0
0 37
記事 Toshihiko Minamoto · 1月 14 10m read

Googleフォームは、データ収集、アンケートやクイズへの回答を行うための市場で最も人気のソリューションです。そのため、システムを拡張または開発することなく、患者データや回答を実用的な方法で収集するのに理想的な手段と言えます。本記事では、Google Cloudにアカウントを作成し、Google Forms APIを利用するアプリケーションを登録します。また、APIを利用するためのサービスユーザーを生成して、最後にEmbedded PythonとIRISを用いて新しいフォームを作成し、入力されたデータを自動的に収集する方法ついて詳しく説明します。

Google Cloudアカウントの作成

Google Cloudアカウントをお持ちでない場合、これらの手順に従ってください。すでにお持ちの場合は、次のセクションに進みます。
Google Cloud Platform(GCP)アカウントを作成するには、最初にGoogleアカウントを作成する必要があります。 次に、Google Cloudコンソールにサインインし、無料枠を利用開始するか、課金アカウントを作成できます。 ステップバイステップガイドは次のとおりです。
1.    Google Cloudコンソールに移動する。cloud.google.comにアクセスします。
2.    Googleアカウントにサインインする。

0
0 45
記事 Toshihiko Minamoto · 1月 12 7m read

image

血液検査の結果を見て、何が書いてあるのか全然わからないあの感じ、分かるかと思います。 その問題を解決してくれるのがFHIRInsightです。 そもそも医療データは怖いものや分かりにくいものではなく、誰もが活用できるものであるべきだ、という考えから始まりました。 血液検査は健康チェックではとても一般的ですが、正直なところ、理解するのは多くの人にとって難しく、臨床検査を専門としない医療スタッフにとっても難しいことがあります。 FHIRInsightは、血液検査のプロセスをもっと分かりやすくし、情報をより活用しやすくすることを目指しています。

FHIRInsight logo

🤖 FHIRInsightを構築した理由

すべては、シンプルながら強力なこの質問から始まりました。

「なぜ血液検査の結果を読むのは、時には医師にとってもこんなに難しいのか?」

血液検査の結果を見たことがあるなら、大量の数字、意味の分かりにくい略語、そして自分の年齢や性別、状態に合っているかどうかもわからない「基準範囲」を見たことがあると思います。 確かに診断ツールではありますが、状況が分からなければ、結局推測することになります。 経験豊富な医療従事者でさえ、すべてを理解するためにはガイドラインや論文、専門家の意見を照らし合わせる必要があることがあります。

そこで登場するのがFHIRInsightです。

0
0 44
記事 Megumi Kakechi · 1月 12 4m read

これは InterSystems FAQ サイトの記事です。
こちらのトピックでは、ミラー環境でECPを行う場合の設定方法注意すべき点について、ご案内します。

【設定方法】

手順は以下になります。


(1) 両方のフェイルオーバーメンバおよび任意の DR 非同期メンバで、ECPを有効にします

(2) ECP アプリケーションサーバ(ECPクライアント)で、ECPの設定を行います

(3) ECP アプリケーションサーバ(ECPクライアント)で、リモートデータベースの作成を行います

(4) 動作確認&リダイレクトのテストを行います


今回作成するECP構成は、ドキュメントにある以下のイメージの赤丸のインスタンスによる構成になります。




  A:プライマリ・
フェイルオーバーメンバ
B:バックアップ・
フェイルオーバーメンバ
C:DR非同期 ECPアプリケーションサーバ
(クライアント)
ミラー名 TESTMIRROR TESTMIRROR TESTMIRROR  
ミラーメンバ名 MACHINEA MACHINEB MACHINEC  
IPアドレス 10.0.0.244 10.0.0.151 10.0.0.60 10.0.0.
0
0 41
記事 Mihoko Iijima · 1月 12 1m read

これは InterSystems FAQ サイトの記事です。

バージョン2025.1以降では、ジャーナルファイルを作成したインスタンスと同じバージョン、またはそれ以降のバージョンへのジャーナルファイルのリストアは保証されていますが、2025.1以降で作成されたジャーナルファイルを2024.1以前のインスタンスにリストアできません。

ドキュメント:ジャーナル・リストアの互換性 (アップグレード関連)

2025.1以降のインスタンスのデータを、2024.1以前にリストアしたい場合、時間がかかる方法となりますが、2025.1以降のバージョンから対象グローバル変数をエクスポートし、2024.1以前のバージョンにインポートする方法を利用できます。

InterSystems 製品のミラーリングについては、全メンバー(プライマリ/バックアップ/非同期)で同一バージョンを使用する必要があります。

ミラーリングは、ジャーナルファイルのリストアを内部的に利用しているため、バージョン2025.1へアップグレードした場合、全メンバーのバージョンが2025.1以降である必要があります。ご注意ください。

ご参考「InterSystems IRIS インスタンスの互換性

0
0 36
記事 Megumi Kakechi · 1月 9 5m read

これは InterSystems FAQ サイトの記事です。
ミラーの現在の状態は、管理ポータルのミラーモニタで確認できます。

こちらのトピックでは、それらの情報をコマンドで確認する方法をご紹介します。


(1) フェイルオーバメンバ(プライマリ・バックアップ)の状態を確認する

(2) 非同期メンバの状態を確認する

(3) ISCAgentの状態を確認する

(4) 定期的にミラーステータスを取得するサンプル(ツール)のご紹介


では、以下のようなミラーの状態を確認してみます(以下はフェイルオーバーメンバ・プライマリの状態)。


 

(1) フェイルオーバメンバ(プライマリ・バックアップ)の状態を確認する

フェイルオーバメンバのミラーの状態は、SYS.Mirror クラスの GetFailoverMemberStatus メソッドで確認できます。
結果は出力引数に$list形式で返されます。詳細はクラスリファレンスをご覧ください。

   例)
    プライマリ、バックアップともActiveな状態

// フェイルオーバーメンバ(プライマリまたはバックアップ)で確認
// 以下はプライマリで実行した例
%SYS>set x=##class(SYS.Mirror).GetFailoverMemberStatus(.thismember,.
0
0 62
記事 Hiroshi Sato · 1月 5 1m read

MacOS(Linux)とWindows両方で動作するObjectScriptプログラムを開発する際に、よくやらかしてしまうミスを共有します。

WindowsとUNIX系のファイルシステムの1つの違いは、ディレクトリのセパレータです。

UNIX系は、/(スラッシュ)

Windows系は、\(バックスラッシュ)

です。

ファイルを読み書きするプログラムでセパレータをOS別に選択するという以下のようなコードをよく書くのですが、

if ($system.Version.GetOS() = "UNIX") {
    set sep = "/"
}
else {
    set sep = "\"
}

ここでこのバックスラッシュをキーボードで入力すると、日本語キーボードの場合、バックスラッシュの代わりに¥(円マーク)が入力されてしまいます。

ソースコードがSJISの場合は、これでも問題ないのですが、クロスプラットフォームで開発する場合は、UTF8で通常作成するので、Macで動かすと問題ないのにWindowsで動かすとエラーになるということがちょくちょく起こります。

そして、これは意外に間違いに気づきにくいです。

ちなみにPythonでは、どちらでも/を使っておけば問題ないので、こんな問題は起こることはないと思います。

3
0 54
記事 Mihoko Iijima · 12月 25, 2025 2m read

これは InterSystems FAQ サイトの記事です。

InterSystems 製品の内部日付時刻($HOROLOG)を利用して時刻を取得している場合、オペレーティング・システムが提供するアルゴリズムに基づいて季節的な時刻調整を行います。

そのため、オペレーティングシステムにてサマータイムの調整が行われる場合は、InterSystems 製品は、オペレーティングシステムで対応したサマータイム時刻で動作します。

注意点としては、$HOROLOG 値が大きく変更されるケースもあるため、時刻比較やこの値をキーにしたアプリケーションの処理などがもしある場合は、その変更を考慮していただく必要があります。

ご参考:「ローカル時刻調整のしきい値

なお、$NOW() 関数を使用して内部日付時刻を取得している場合は、オペレーティングシステムのサマータイムの調整に対応していませんのでご注意ください。

$NOW() 関数は、$ZTIMEZONEの値を使用してローカル時刻を決定しています。
$ZTIMEZONEは1年を通して連続的で、サマータイム(DST)などのローカル時刻の調整に対応していないためです。

また、小数点以下を含むタイムスタンプ値をサマータイム対応済のローカル時刻で取得したい場合、$HOROLOG では対応できませんので、以下の2つ方法のどちらかを利用して取得します。

0
0 68
記事 Megumi Kakechi · 9月 15, 2025 3m read

これは InterSystems FAQ サイトの記事です。
ビジネスサービスやビジネスオペレーションで EnsLib.CloudStorage.InboundAdapter アダプタを使用したり、%Net.Cloud.Storage.Client を使用することで、Amazon s3(クラウドストレージAPI)のファイルにアクセスすることが可能です。

いずれの場合も、事前に Javaランタイムをシステムにインストールし、インストールしたJavaランタイムの JAVA_HOME 情報を、管理ポータルにて設定する必要があります(手順は後述します)。


今回は、%Net.Cloud.Storage.Client クラスを使用したサンプルをご紹介します。
手順は以下のようになります。


【手順】

以下のS3パケットにアクセスする手順になります。

 

(1) 事前に、コマンドプロンプトにて aws コマンドを使用して動作確認をしておきます(S3に存在しているファイル一覧がプロンプトに返ればOKです)。

> aws s3 ls s3://isj-s3
2025-04-30 16:20:52         32 abc.txt
2025-04-30 16:14:00      21529 messages.log

もしくは

>aws s3 --endpoint-url https://s3.
2
0 127
記事 Toshihiko Minamoto · 12月 25, 2025 5m read

概要統合とE2Eテストのために一時的なInterSystems IRISコンテナの起動を簡単にするNode.jsライブラリ、testcontainers-iris-nodeのリリースをお知らせします。 このプロジェクトが、testcontainers-iris-pythontestcontainers-iris-javaなどを含む、IRIS用Testcontainersアダプターの既存ファミリーに加わるのは極めて自然なことです。

testcontainers-iris-nodeを使う理由とは?InterSystems IRISで作業するNode.js開発者として、本番環境を再現するテスト環境を設定する際によく問題にぶつかりました。 testcontainers-iris-nodeは、オンデマンドで隔離されたIRIS環境を作成するためにtestcontainers-nodeフレームワークを活用することで、この問題を解決しました。

これは次において特に有用です。

  • IRISデータベースとの統合テスト
  • データパイプラインやマイクロサービスのテスト
  • CIパイプラインでのテスト環境の自動化

機能

  • Testcontainersを使用してDockerコンテナでIRISを起動します
  • カスタムのDockerイメージと構成をサポートします
  • テスト開始前にIRISが準備完了していることを確認するための待機戦略
  • テスト実行間のクリーンなティアダウン
0
0 55
記事 Toshihiko Minamoto · 12月 22, 2025 7m read

概要

typeorm-irisプロジェクトは、TypeORMInterSystems IRISとの統合に対して実験的サポートを提供し、開発者がTypeORMのよく知られているデコレーターとリポジトリの抽象化を使用してIRISとやり取りできるようにします。 これにより、IRISをバックエンドデータベースとして使用するNode.jsアプリケーションを構築するJavaScriptやTypeScript開発者にとって、より馴染みのある開発体験が可能になります。

TypeORM MongoDB Review. I recently started using TypeORM in a… | by Eliezer  Steinbock | Medium

プロジェクトはTypeORMとの主要な統合ポイントを実装しており、基本的なエンティティ操作をサポートしていますが、まだ十分に実戦で検証されておらず、本番環境には適していません。

0
0 52
記事 Mihoko Iijima · 12月 22, 2025 8m read

これは InterSystems FAQ サイトの記事です。

InterSystems 製品で利用できる ID およびアクセスの管理には、Kerberos、OS ベース、InterSystems ログイン(=インスタンス認証/パスワード認証)、2 要素認証、JWT 認証、LDAP 認証(AD も含む)、OAuth2 などが用意されていますが、これらのどの方法にも当てはめることのできない独自の管理方法をお持ちの場合に利用できる方法があり「代行認証」(または委譲認証)と呼びます。

ドキュメント:代行認証

このトピックでは、代行認証を行うまでの手続きについて解説します。

サンプルコードはこちら👉https://github.com/Intersystems-jp/FAQ-716

シナリオとして、アプリケーション用ユーザ名、パスワードを管理する専用テーブルがあるとしています。特定の REST API のログイン、またはターミナルアクセス利用時にこの情報を使用して代行認証を行う方法を解説します。

大まかな手順は以下の通りです。

[1] 専用ルーチンを作成する

[2] システム・セキュリティの認証/ウェブセッションオプションを変更する

[3] 使用するサービスに対して代行認証を有効化する

[4] テストする


[1] 専用ルーチンを作成する

以下の流れで作成します。

0
0 57
記事 Mihoko Iijima · 4月 24, 2023 6m read

開発者の皆さん、こんにちは!

過去に開催した開発者向けウェビナー アーカイブビデオのまとめページを作成しました。

今後もウェビナーを開催していきますのでこのページをブックマークしていただけると嬉しいですlaugh

プレイリストはこちら👉https://www.youtube.com/playlist?list=PLzSN_5VbNaxB39_H2QMMEG_EsNEFc0ASz

2025年開催分:

✅ウェビナー

25
3 851
記事 Toshihiko Minamoto · 12月 17, 2025 5m read

前の記事では、smolagentsとInterSystems IRISを使用して、SQL、ベクトル検索を使用したRAGinteroperabilityを組み合わせたカスタマーサービスAIエージェントをビルドしました。

その際、LLMと埋め込み表現のためにクラウドモデル(OpenAI)を使用しました。

今回はさらに一歩進めます。Ollamaを利用して、同じエージェントをローカルモデルで実行します

0
0 53
記事 Megumi Kakechi · 12月 16, 2025 2m read

これは InterSystems FAQ サイトの記事です。
こちらの記事では、コマンド・パイプデバイスを使用して、外部コマンドの出力を取得する方法をご紹介します。

以下のように行います。
★コマンド出力を取得する例:

USER>kill
USER>set cmd="netstat -anp tcp"
USER>set pipe=##class(%File).%New(cmd)
 
USER>write pipe.Open("rq")
1
USER>while 'pipe.AtEnd { write !,pipe.ReadLine() }
アクティブな接続
  プロトコル  ローカル アドレス          外部アドレス        状態
  TCP    0.0.0.0:23             0.0.0.0:0              LISTENING
  TCP    0.0.0.0:80             0.0.0.0:0              LISTENING
(中略)
  TCP    192.168.172.1:139      0.00.
0
0 51
記事 Toshihiko Minamoto · 12月 15, 2025 8m read

カスタマーサポートの質問は、構造化データ(オーダー、製品 🗃️)、非構造化知識(ドキュメント/よくある質問 📚)、およびライブストリーム(出荷更新 🚚)と多岐にわたります。 この投稿では、以下を使用して、3つすべてに対応するコンパクトなAIエージェントを作成します。

  • 🧠 Python + smolagentsは、エージェントの「頭脳」を構成します
  • 🧰 SQLベクトル検索(RAG)、およびInteroperabilityのためのInterSystems IRIS(モック配送状況API)
0
0 71
記事 Megumi Kakechi · 12月 9, 2025 7m read

これは InterSystems FAQ サイトの記事です。
この記事では、ミラーリングの構成方法をご紹介します。

2025.1のバージョンより、既存のミラーリングされたデータベースをミラーメンバーに追加する際、「ミラーメンバーからの自動データベースダウンロード」が可能となりました。
以前のバージョンでは、手動でのバックアップとリストアを行っていましたが(もしくはIRIS.datのコピー)、この機能を使用するとデータベース作成時に、別のミラーメンバーから自動的にダウンロードされます。大変便利な機能なので、ぜひお試しください。
※ こちらの問題 があるため、「自動データベースダウンロード」機能は最新バージョン 2025.1.2~ でお試しください。​​​​​


本記事では、「自動ダウンロード」の機能についても、あわせてご紹介します。
では、ミラーの構成手順をご紹介します。
今回ご紹介するのは、同期ミラーによるフェールオーバー(常にデータベースが同期されて複製、障害時に自動でフェールオーバー)構成です。
手順は以下になります。


0
0 84
お知らせ Mihoko Iijima · 12月 4, 2025

開発者の皆さん、こんにちは!

3回目の開催となったミートアップですが、12月3日(水)に無事、開催を終えることができました。ご参加いただきましたメンバーの皆様、ありがとうございました!

今年は初の試みとして、ゲストスピーカーをお招きしご講演いただきました。その後から17時頃まで、各自のパソコンでワークショップの内容をお試しいただいたり、メンバー同士で会話されたりで、あっという間に時間が過ぎたように感じます。

ミートアップのワークショップで使用した内容は、全て以下リポジトリに公開しております。

https://github.com/Intersystems-jp/meetup2025Workshop

IRIS の環境は 12 月中ご利用いただけます。

ワークショップ中モデルのダウンロードのところで Notebook がなかなか進まなかったりでお試しいただけなかった部分があるかと思います。もしよろしければ、再度お試しいただければと思います。


以下、当日の写真を添えながらワークショップとネットワーキングの様子をご紹介いたします。

第1部最初は、加川さんからのご講演で

「AI駆動開発の実践──自社サービスと個人開発での活用事例」

のテーマでお話いただきました。

1
0 107
記事 Hiroshi Sato · 12月 8, 2025 6m read

これは InterSystems FAQ サイトの記事です。
 

WebSocketは、リアルタイム双方向通信を可能にするプロトコルで、Webアプリケーションの動的な操作性を向上させるために広く活用されています。

この技術は、TCP上で動作し、HTTPプロトコルを介して接続を確立します。

一度接続が確立されると、持続的な接続が維持され、サーバーとクライアントが効率的にデータを交換できるのが特徴です。

通常のHTTP通信の場合、クライアントからのリクエストに対してサーバーが応答するというのが基本的な動作になるため、サーバーから非同期にデータを送信することが難しいですが、WebSocketを利用することでそのような機能を簡単に実現できます。

一方で、サーバーからの一方向の非同期通信が実現できれば良いという要件であれば、SSE (Server-Sent Events)を使用することもできます。

一般的にWebSocket通信が最も適していると考えられるのは、クライアント・サーバー間で双方向にデータを交換する必要がある場合になります。

双方向の接続を維持する必要があるため、状況によって、サーバー上のコンピュータ資源の消費(メモリー、CPU、IRISライセンス使用量など)に注意する必要があります。

0
0 67
記事 Hiroshi Sato · 12月 8, 2025 2m read

これは InterSystems FAQ サイトの記事です。
 

PythonからIRISにアクセスするためのNative SDK for Pythonと呼ばれるインタフェースが用意されています。

Javaや.Net用に用意されているNative SDKと同等な機能が提供されています。

(一部異なる機能があります)。

また、Python用にはEmbedded Pythonと呼ばれるIRISと密に連携した機能があります。

IRISから最大限の性能を得るためには、Embedded Pythonが適していますが、以下のような場合、Native SDKが適しているケースもあります。

  1. 異なるサーバーでIRISとPythonプログラムが連携する必要がある。
  2. 同一サーバー上でIRISとPythonが稼働するが、システムが異なる(サブシステム間連携など)
  3. システムを別々の開発ベンダーが構築するなど、明確な境界を設けたい場合

Native SDKを利用することで以下のようなことを実装することができます。

  1. ObjectScriptやEmbedded Pythonで作成したメソッドの実行
  2. IRISオブジェクトの操作
  3. IRISグローバルデータの操作
  4. DBI-APIによるデータベースアクセス


以下からこれらのサンプルプログラムを取得することができます。

0
0 60
記事 Hiroshi Sato · 12月 8, 2025 1m read

これは InterSystems FAQ サイトの記事です。
 

.NETからIRISにアクセスするためのNative SDK for .NETと呼ばれるインタフェースが用意されています。

JavaやPython用に用意されているNative SDKと同等な機能が提供されています。

(一部異なる機能があります)。

    Native SDKを利用することで以下のようなことを実装することができます。

    1. ObjectScriptやEmbedded Pythonで作成したメソッドの実行
    2. IRISオブジェクトの操作
    3. IRISグローバルデータの操作
    4. ADO.NETによるデータベースアクセス

    以下からこれらのサンプルプログラムを取得することができます。

    Native SDK for .NETサンプル1

    Native SDK for .NETサンプル2

    .NETに様々な手段でアクセスするサンプル


    詳細は、以下のドキュメントをご参照ください。

    InterSystems Native SDK for .NET

    0
    0 64