#InterSystems IRIS

1 フォロワー · 1.4K 投稿

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

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

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

新着
質問 Gabriela Paliuco · 8時間 前

InterSystems IRIS上でsmtp.office365.comサーバーを使用してSMTP経由でメールを送信しようとしていますが、エラー#988 - SSL通信失敗というエラーが発生します。 IRIS上でOffice 365を使用している際に、このエラーに遭遇した方は他にいますか?Microsoftが基本認証を廃止したため、Office 365でモダン認証(OAuth2)を使用するには、IRISで追加の設定が必要なのでしょうか?あるいは、IRISのSSL/TLS設定に、Office 365(Gmailではなく)でこの特定のエラーが発生する原因となる設定があるのでしょうか?

0
0 2
新着
InterSystems公式 Megumi Kakechi · 16時間 前 1m read

5月21日に Ubuntu 26.04 向けの x86_64 ビルドをリリースしました。その際、テスト中に断続的なネットワーク問題が見つかったため、ARM サポートのリリースは見送るとお伝えしていました。Ubuntu チームと協力してこれらの問題の解決に取り組み、その結果、ベンダー製ネットワークドライバの不具合が原因であることが判明し、問題は解消されました。そこで、以下の製品の一般提供開始(GA)を発表できることを嬉しく思います。

InterSystems は以下の製品の一般提供開始を発表します。

  • InterSystems IRIS Data Platform 2026.1.0.237.3
  • InterSystems IRIS for Health 2026.1.0.237.3
  • HealthShare Health Connect 2026.1.0.237.3

本リリースでは、ARM および x86_64 プロセッサの両方において、Ubuntu 26.04 オペレーティングシステムのサポートが追加されました。Ubuntu 26.04 には Linux カーネル 7.0 が含まれており、セキュリティの強化に加え、インストーラおよびユーザーインターフェイスの改善が行われています。

0
0 6
新着
記事 Toshihiko Minamoto · 6月16日 4m read

IRISは、CCDAおよびFHIRの変換機能を標準でサポートしていますが、これらの機能にアクセス・閲覧するには、かなりの設定時間と製品知識が必要となります。IRIS Interop DevToolsアプリケーションは、そのギャップを埋めるために設計されており、導入担当者がすぐに使い始め、製品の組み込み変換機能を閲覧できるようにします。 

IRIS XML、XPath、およびCCDA変換環境に加え、Interop DevToolsパッケージでは現在、以下の機能を提供しています:

  • FHIR-SDA 変換設定
  • SDA-FHIR 変換設定
  • FHIR 検証エラーの伝播
  • FHIR 変換に必要なコンテキストの読み込み

ダッシュボードの見た目と操作感が刷新され、より直感的で使いやすくなりました。 実行はIRIS内で行われますが、UIは可視性と再現性を確保しつつ、テストのために変更点やモジュールを個別に切り離すことも可能です。

以下の5つのユーティリティがあります:

1. XPathエバリュエーター:入力CCDに対してXPathを評価し、結果を返します

2. CCDAからSDAへの変換:入力CCDに対して選択された基本XSL変換を実行し、SDAの結果を表示します。 

3. XSLテンプレートテスター:入力CCDに対して単一のXSLテンプレートを適用し、結果のCCDを表示します。 

4.

0
0 5
新着
記事 Toshihiko Minamoto · 6月11日 19m read

LangGraph を使用して、推論、ベクトル検索、ツール統合を組み合わせた、スケーラブルで自律的な AI エージェントの設計方法を学びましょう。 cover

長すぎるので読み飛ばしました

  • AIエージェントとは、メモリ・コンテキスト・主体性を組み合わせ、単なるチャットボットを超えたタスクを自動化する能動的なシステムです。
  • LangGraphは、組み込みの状態管理機能を備えたノード(タスク)とエッジ(接続)を活用し、複雑なAIワークフローを構築できるフレームワークです。
  • このガイドでは、優先度を分類し、関連するトピックを特定し、エスカレーションを行うか自動返信するかを判断する、AI搭載のカスタマーサポートエージェントの構築手順をご説明します。

では、一体、AIエージェントとは何でしょうか?

率直に言って、「AIエージェント」と聞くと、まるで役員室を乗っ取ろうとするロボットのように聞こえるかもしれません。しかし実際には、複雑なワークフローを効率化し、反復的な作業を排除してくれる、先を見越した頼もしい相棒なのです。チャットボットをさらに進化させた存在だと考えられるでしょう。AIエージェントは単に指示を待つだけでなく、自らアクションを開始し、複数のステップを調整し、状況に応じて適応していくのです。

0
0 6
新着
記事 Toshihiko Minamoto · 6月11日 8m read

Intersystems IRIS プロダクションは、さまざまなプロトコルやメッセージ形式を持つ異種システム間を、信頼性が高く、可観測性があり、スケーラブルな方法で接続するための強力なフレームワークです。intersystems_pyprodは、 InterSystems Python Productionsの略称は、開発者がこれらの相互運用性コンポーネントをPythonで完全構築できるようにするPythonライブラリです。柔軟性を重視して設計されており、ハイブリッドなアプローチをサポートしています。つまり、既存のObjectScriptベースのコンポーネントと新しいPythonベースのコンポーネントをシームレスに組み合わせ、確立されたIRISインフラストラクチャを活用することができます。一度定義されると、これらのPythonコンポーネントは他のコンポーネントと同様に管理されます。つまり、[IRIS プロダクション構成]ページを使用して、追加、構成、接続を行うことができます。


InterSystems IRIS プロダクション:簡単な入門書

プロダクションの主要な要素

画像提供:ラーニング・サービス研修資料

通常、IRISプロダクションは外部インターフェースからデータを受け取り、調整したステップを通じて処理を行い、宛先へと転送します。

0
0 9
新着
記事 Hiroshi Sato · 6月4日 3m read

今回は、自動エージェントコーディングというよりは、システム構成の設定方法の支援でClaude Codeが役立ったという話です。

React Routerを使っている場合のApacheでのルーティング問題という割と有名な問題があり、ウェブで検索すると色々説明が出てきて、私が抱えていた問題は、まさにこれだったのですが、それらの説明サンプルでは、非常に単純なケースの例しか見つからず、私のケースでは結局どう設定する必要があるのかわからず、半年以上解決できずにいました。

昨今実感しているClaude Codeの優秀さを考えれば、この問題を解決してくれるだろうと思い、問い合わせを行った所、予想通り、一発で解決してくれました。


最初の質問です
 

デバッグモードの場合、トピックIDの直接指定で正しく動作しますが、
デプロイモードでWebサーバーをApacheにすると404エラーになります。
直接指定方法は、
http://localhost:portno/faqdirect/Content/100
のような形式です。
.htaccessにどのように指定すればいいですか?


Claude Codeの回答です。
 

Apacheでのルーティング問題ですね。React Routerを使っている場合、全てのリクエストをindex.htmlにフォールバックさせる必要があります。


既存の.htaccessの内容を確認しました。サブパス(/faqdirect/)に配置する場合は RewriteBase の指定が必要です。

現在の.htaccessにRewriteBaseが欠けているのが原因です。以下のように修正してください:

正しい.htaccessの内容:

RewriteEngine On
RewriteBase /faqdirect/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^ index.html [QSA,L]
合わせて package.json の homepage も設定が必要です:

これを設定した上で npm run build を実行することで、ビルド済みの JS/CSS のパスが /faqdirect/static/... になります。
0
0 14
新着
記事 Toshihiko Minamoto · 6月3日 21m read

INTRO

Barricadeは、InterSystems OMOP向けのFHIRからOMOPへの変換を効率化し、そのサポートをスケールアップするために、ICCA Opsが開発したツールです。当社のクライアントは、InterSystems OMOPを使用してFHIRデータをこのOMOP形式に変換することになります。マネージドサービスとして、当社の役割は変換プロセスに伴うあらゆる問題のトラブルシューティングを行うことです。Barricadeは、さまざまな理由から、このプロセスを支援する理想的なツールです。第一に、効果的なサポートには、FHIR標準、OHDSI OMOPモデル、そしてInterSystems特有の運用ワークフローにわたる専門知識が必要ですが、これらはすべて高度に専門化された分野です。Barricadeは、大規模言語モデルを活用してFHIRやOHDSIに関する専門知識を提供することで、知識のギャップを埋めるお手伝いをします。さらに、特定の変換問題を解決するために詳細な説明が行われたとしても、その知識はメールやチャットの中に埋もれてしまい、将来的に活用できなくなることがよくあります。Barricadeなら、その知識を収集・再利用し、類似のケースにスケールさせることも可能です。最後に、多くの場合、ソースデータにアクセスできません。

0
0 14
記事 Hiroshi Sato · 5月21日 2m read

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

一番簡単な方法は、以下のコミュニティ記事にある ObjectScript Lite Terminalを使用する方法です。

VSCodeだけでIRISターミナル完結

IRISのコマンドをターミナルから実行する場合は、即時実行と複数行のコードを一度にまとめて実行する2つの実行方法があります。
即時実行の場合は、1個または複数のコマンドを1行で入力して、リターンキーを入力することで実行します。
即時実行の場合、複数行にまたがって一度に実行することはできません。

複数行をまとめて実行する場合には、予め複数行のコードをルーチンバッファーと呼ばれるメモリー上に一時的に保存して、一度に実行することができます。

ルーチンバッファーにコードを入力するためには、

ラベルの後ろにスペースまたはタブを入力した後に実行したいコードを入力します。
2行目以降は、スペースまたはタブを入力した後に実行したコードを入力します。

コードを入力し終わったら、以下のように実行することで、複数行まとめて実行できます。

>Do [先頭に指定したラベル名]

ルーチンバッファーの内容を確認するには、zprintコマンドを使用します。
以下はルーチンバッファーに複数行のコードを保存して、実行する例です。

1
0 20
記事 Tomoko Furuzono · 5月29日 1m read

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


「500 - Internal server error」の原因は様々考えられますが、まずは、

①監査ログで原因となるログが記録されないか確認します。
監査ログの使い方は下記をご参照ください。
https://jp.community.intersystems.com/node/504791

監査ログに原因と思われるようなログが確認できない場合は、

②Webゲートウェイや、IRISのISCLOGで調査します。
調査方法は、下記をご参照ください。
https://jp.community.intersystems.com/node/548871
原因としてよくあるのは、
・アプリケーションコードに問題がある
・構成ファイル(CSP.iniやhttpd.conf)に問題がある
 ※構成ファイルを変更した場合は、反映するために再起動が必要となる場合があります。

などです。

0
0 11
記事 Hiroshi Sato · 5月29日 2m read

昨今エージェントAIコーディングの競争が激化しているようで、CODEXも劇的に進化しているという噂です。

Googleも負けじとAntigravityで巻き返し、さらにはXも参戦と市場は盛り上がってきています。

おそらく私の使用程度ではどのエージェントAIを選んでも、それほど大差ない状況になってきていると思いますが、しばらくはClaude Codeで頑張ってみたいと思います。

少し前にもTypseScriptの自動コーディングの話を書きましたが、それは単にCSSライブラリの変更というかなり機械的にできる内容でしたが、今回は、ページのルック&フィールを変更するという内容です。

Reactプログラミングでの一番の悩みは、ユーザーインタフェースの見た目をどうするかという点でした。

美的センスゼロの私が自己流で作ったスクリーンは、やはり何かしっくりとしない感じがしていました。

そこで世の中のウェブのUIを調査したところ、ある程度のパターンが見えてきました。

しかし、それに合うように自分でスタイルシートを駆使して、そのパターンを真似るのは大変だなという印象で躊躇してきたわけですが、Claude Codeならやってくれるだろうという予想の元、トライしてみました。

結果は、見事1時間程度である程度満足のいく結果を得ることができました。

0
0 15
記事 Hiroshi Sato · 5月28日 1m read

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

UNIX系(Linux、macOSなど)とWindowsでは対応が異なります。

UNIX系は、バージョン2021.1以降OpenSSLのライブラリは同梱されなくなり、OSにインストールされたOpenSSLを使用します。

OpenSSLのバージョンは以下のコマンドで確認できます。

>write $SYSTEM.Encryption.OpenSSLVersion()
OpenSSL 3.6.1 27 Jan 2026

UNIX系では、OpenSSLだけをバージョンアップすることも可能です。

Windowsの場合、現時点(2026.1)のバージョンでも、OpenSSLライブラリは、IRISに同梱されており、OpenSSLのバージョンは、IRISのバージョン毎に固定されています。
従って、OpenSSLのみのバージョンアップはできません。

新しいOpenSSLを利用するためには、そのOpenSSLに対応したIRISバージョンにする必要があります。

0
0 12
記事 Hiroshi Sato · 5月28日 7m read

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

これらのファイルを個別にエクスポートする最も簡便で確実な方法は、VSCodeを利用してIRISのソースファイルを管理することです。

VSCodeの利用方法は、以下をご参照ください

VSCodeを使ってみよう

VSCode以外のツールとしての提供はありませんので、是非VSCodeのご利用をご検討ください。


VSCodeをご利用できない場合は、IRISが提供するAPIを使用して、個別にプログラミングする必要があります。

1) クラス定義

%SYSTEM.OBJクラスのExportAllClassesIndividualメソッドを使用してクラス毎にファイル出力できますが、その出力形式がXML形式です。

XML形式での出力は、可読性も低く、クラス数が多量にある場合には、インポートの時間も余計にかかるため、複数クラスを1ファイルにまとめる目的以外では、推奨しておりません。

可読性の高いUDL形式で出力するためには、

該当ネームスペースに存在するクラス名をクエリーで抽出し、クラス定義をUDL形式でエクスポートするメソッドで出力することができます。

以下はClaude Codeで生成したサンプルコードです。

Class Samples.ExportUDLAll
{

/// 指定されたネームスペース内のすべてのクラス定義を
/// 個別のUDL形式ファイルとして指定ディレクトリに出力する
///
/// @param pDirectory 出力先ディレクトリ名
/// @return %Status ステータスコード
ClassMethod Export(pDirectory As %String) As %Status
{
Set tSC = $$$OK
Try {
// %SYSTEM.OBJ の GetClassList メソッドでクラス名一覧を取得
// items はローカル多次元配列として ByRef で返る
// 第一サブスクリプトにクラス名が格納される
Set tSC = $SYSTEM.OBJ.GetClassList(.items, "/application=1")
If $$$ISERR(tSC) Quit

// items 配列をサブスクリプト順に走査してクラス数分繰り返す
Set tClassName = ""
For {
Set tClassName = $Order(items(tClassName))
Quit:tClassName=""

Write "class name = ", tClassName, !
Set tFileName = pDirectory _ "/" _ tClassName _ ".cls"
Write "file name = ", tFileName, !

// ExportUDL の第一パラメータ(itemname)はクラス名に ".cls" を付加
Set tSC = $SYSTEM.OBJ.ExportUDL(tClassName _ ".cls", tFileName)
If $$$ISERR(tSC) Quit

Write "Exported: ", tClassName, " -> ", tFileName, !
}
} Catch ex {
Set tSC = ex.AsStatus()
}
Quit tSC
}

}
0
0 11
記事 Toshihiko Minamoto · 5月26日 5m read

InterSystems IRISは、データ論理構成(ネームスペース)とその物理的保存場所(データベース)を分離するアーキテクチャに構築されています。この分離と、ネームスペースとデータベースの区別を理解することは、効果的なデータ管理、セキュリティ、特には高パフォーマンスなデータ共有において極めて重要です。

本記事では、これらの基盤となる構成要素について解説し、グローバルマッピングを活用して異なるロジカル環境間でネイティブデータ構造(グローバル変数)を共有するための実践的なガイドを提供いたします。

データベース:物理的な現実

データベースは、データがディスク上に保存されている物理的な現実を表現しています。何よりもまず、IRIS.dat というファイルシステム内のファイルです(例: \mgr\user\IRIS.DAT)。 このファイルの最大サイズは32TBです。実際のデータおよびコードのすべてを格納するコンテナとなります。データベースはIRISカーネルによって管理され、物理ファイルレベルでのキャッシュ、ジャーナリング、トランザクションログの処理を担当します。

0
0 15
記事 Hiroshi Sato · 5月25日 3m read

自分で作成したサンプルを公開する際にコンテナで提供することが一般的になっています。


私も基本はその方針でサンプル類を公開しています。


そして簡単なデモアプリケーションを公開する場合、IRISがリリースされる以前はCSPベースでしたが、ご承知のようにCSPはIRISで利用することは推奨されていません。


ということで、私は代わりにReactを使うことが多いです。


このReactベースのサンプルをコンテナで公開する際にちょっとした不便があるので、情報共有したいと思います。


こういったサンプルを提供する際に様々な人に試してもらいたいという思いからIRISのコミュニティ版でDockerを構築します。


コミュニティ版のIRISには引き続き管理ポータルを動作させるための簡易Apacheサーバが同梱されており、これを使えば、CSPアプリケーションは、サンプル程度のものであれば、何の問題もなく動作します。


しかし、Reactのサンプルを動かす場合には、支障が出るケースがあります。


Reactに限らず、最近のJavaScriptフレームワークは、SPA(Single Page Architecture)というページを遷移せずに、ブラウザ上のDOMを直接書き換えることでページ内容を書き換えるという手法が一般的です。

0
0 12
記事 Hiroshi Sato · 5月25日 1m read

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

CPU使用率が高いプロセスの優先度を下げて、他のプロセスへの影響を軽減する方法が用意されています。

該当プロセスの優先度を下げるには、%SYSTEM.Util.SetPrio()メソッドを使用します。

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

SetPrio()メソッド
 

使用例: PID=24096 のプロセスの優先度を通常(8)から低(4) に変える

※OSにより優先度の番号は異なります。

USER>write $system.Util.GetPrio(24096)

8

USER>write $SYSTEM.Util.SetPrio(-4,24096)  // 8から4下げる(-4)

4

USER>write $system.Util.GetPrio(24096)

4

負荷が高すぎて、サーバーに接続できないような状況の場合には、この方法で優先度を下げることができない可能性があります。
また、このAPIによって、該当プロセスの優先度を逆に上げたい場合には、予期せぬ結果を招くリスクがあるため、慎重に行ってください。

0
0 11
記事 Hiroshi Sato · 5月25日 2m read

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

IRISの%Net.HttpRequestクラスを利用して、外部のREST APIを呼び出し、情報の取得やデータの登録などの処理を実行することができます。

処理を実装する前準備としてSSL構成情報の設定が必要です。

この設定は、管理ポータル>システム管理>セキュリティ>SSL/TLS構成>新規構成の作成で行ってください。

構成名は任意の名前を指定します。

ここではSSLという名前で作成します。

その他の項目は、デフォルト値のままでOKです。

以下のサンプルは、郵便番号関連情報を取得するAPIサービスを利用しています。(https://zipcloud.ibsnet.co.jp/doc/api

set req = ##class(%Net.HttpRequest).%New()

set req.ContentType="application/json;charset=UTF-8"

do req.SetParam("zipcode","0790177")

set req.SSLConfiguration="SSL"

do req.Post("https://zipcloud.ibsnet.co.jp/api/search")

set res = req.HttpResponse.Data.Read(10000)

set obj={}.%FromJSON(res)

do showItem(obj)

quit



showItem(obj) {

set itr=obj.%GetIterator()

while itr.%GetNext(.key, .value, .type ) {

if type="array" {

write "==================================",!

write "[",key,"]",!

do showItem(value)

write "==================================",!

}

elseif type="object" {

write "---------------------------",!

do showItem(value)

}

else {

write key_" : "_value,!

}

}

quit

}
0
0 15
記事 Hiroshi Sato · 5月24日 1m read

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

HANGコマンドや$ZF実行中の時には、^JOBEXAMや管理ポータルのプロセス詳細画面(システム>プロセス>プロセス詳細)でそのプロセス変数情報を取得することができません。

これらは内部的に以下のシステムクラスメソッドを呼び出しています。

ExamStackByPidメソッド

代わりにVariableByPidクラスクエリを利用することで、そのような状況でもプロセス変数情報を取得できます。

VariableByPidクエリ
以下のように取得することができます。

実行例:  // %SYSネームスペースで実行
set stmt=##class(%SQL.Statement).%New()
write stmt.%PrepareClassQuery("%SYS.ProcessQuery","VariableByPid")
set rs=stmt.%Execute(35552,"")  // 第1引数にPIDを指定、第2引数 “” で全ての変数
                           // PID=35552がハング状態でも実行可能
do rs.%Display()
// Name  Value
// a    123
// b    456
// c    789
// :
0
0 12
InterSystems公式 Ayumu Tanaka · 5月21日 1m read

InterSystems は以下のバージョンをリリースしました: 

  • InterSystems IRIS Data Platform 2026.1.0.237.3
  • InterSystems IRIS for Health 2026.1.0.237.3
  • HealthShare Health Connect 2026.1.0.237.3

このリリースでは新たに Ubuntu 26.04 オペレーティングシステムをサポートします。Ubuntu 26.04 は Linux カーネル 7.0、セキュリティの改善、インストーラとユーザインターフェイスの改善が行われています。  

今回は Intel/AMD (x86_64) プロセッサ対応のキットのみをリリースしています。ARMサーバにおいてネットワーク障害が発生するケースが複数報告されています。これはネットワークドライバの問題だと考えていますが、念のためARMプロセッサ対応キットのリリースを保留しています。この問題が解決され次第、ARMプロセッサ対応キットをリリースいたします。

ソフトウェアの入手方法

インストールキットは WRC の Software Distribution にある InterSystems IRIS (Extended Maintenance kits) ページから入手可能です。

0
0 17
記事 Toshihiko Minamoto · 5月19日 16m read

前回、Apache Spark と InterSystems Data Platform を使って機械学習を実験するためのプレイグラウンドを作成したときは(「Spark と Caché による機械学習」を参照)、Caché、Python、Apache Spark、Java、Hadoop ライブラリなど、すべてを直接自分のノートパソコンにインストールして構成しました。 これには多少の努力が必要でしたが、最終的には上手くいきました。 満足していましたが、 心配になりました。 「この手順をすべて再現できるのだろうか?」 ―多分できる。 「Windows や Java のアップデートですべてが一瞬にして台無しになる可能性はないか?」 ―ほぼ確実にある。

今では、ますます普及しているコンテナとますます使いやすくなった Docker for Windows により、事前に構成された機械学習環境とデータサイエンス環境を選択できるようになりました。 たとえば、Jupyter Docker StacksZeppelin on Docker Hub をご覧ください。

0
0 8
記事 Toshihiko Minamoto · 5月13日 5m read

重要である理由

IAMの管理を手動で行うには手間ががかります。OpenAPI(Swagger)仕様を使用して、APIがすでにしっかりとドキュメント化されている場合はなおさらです。 Open API仕様から直接、Kongサービスやルートを自動生成できたらいいのにと思いませんか?

このObjectScriptメソッドはまさにその処理を行います。仕様クラスの XData ブロック内に保管されているOpenAPI 2.0仕様を読み取り、IAM構成を同期するために使用できるdecKと互換性があるYAMLファイルを生成します。

このアプローチは:

  • 手動による構成エラーを削減します
  • ゲートウェイをAPI仕様に常に同期します
  • デプロイメントとオンボーディングを高速化します

前提条件:

  • InterSystems IRIS、またはIRISベースのプラットフォーム
  • InterSystems API Manager
  • Deck CLIツール

メソッドの内容

メソッド ConvertOpenAPIXDataToDeckYAML の機能は次のとおりです。

  1. OpenAPI仕様を読み取る: 指定したクラス内の OpenAPI という名前の XData ブロックから読み取ります。

  2. JSONを解析する:動的オブジェクトに変換します。

  3. エンドポイントを抽出する :HTTPメソッドも抽出します。

0
0 16
記事 Toshihiko Minamoto · 5月13日 7m read

REST API(Representational State Transferアプリケーションプログラミングインターフェース)は、GET、POST、PUT、DELETEなどのHTTPメソッドを使用してウェブアプリケーション間で通信するための標準化された方法です。 リソースを中心に設計されており、リソースにはユーザーやファイルなどあらゆるものが含まれます。 各リソースは一意のURLで識別され、これらのリソースのやり取りはステートレスです。クライアントからサーバーへの各リクエストには、リクエストを理解して処理するために必要なすべての情報が含まれている必要があります。 このステートレス性と標準的なHTTPメソッドの使用により、REST APIは高度にスケーラブルで理解しやすく、さまざまなシステムとの統合も簡単です。 RESTの原則に従うことで、開発者は一貫性があり、使いやすく、幅広いタスクに対応できるAPIを作成できます。

InterSystemsは、さまざまなツールと技術でREST API開発をサポートします。 この記事シリーズでは、私自身が特にお勧めするものを取り上げます。 記事は以下のように分類されています。

  • OpenAPI 2.0仕様の記述方法
  • OpenAPI 2.0仕様を使用したREST APIのドキュメント化および開発。
0
0 21
InterSystems公式 Masahito Miura · 5月1日

以下は、2026 年の IRIS リリースカレンダーの更新情報と、2027 年に予定されている変更点の概要です。2026 年における主なポイントは、メンテナンスリリースのバージョン番号付けが、これまでの年とは若干異なる点です。

2026 年:IRIS 2026.1 メンテナンスリリースのバージョン番号

  • 2026 年   7 月:IRIS 2026.1の最初のメンテナンスリリース(予定バージョン:2026.1.4)
  • 2026 年 10 月:次回のメンテナンスリリース(予定バージョン:2026.1.5)
  • 2027 年   2 月:次のメンテナンスリリース(予定バージョン:2026.1.6)

このバージョン番号付けの変更は、2027年に予定されているメンテナンス頻度の拡大に備えたものです。

2027 年:メンテナンスリリースの頻度拡大

2027 年よりお客様が IRIS の新バージョンをより迅速に導入できるよう、メンテナンスリリースの頻度を高める予定です。

2027 年のメンテナンスリリースに関する詳細は、来年発表される予定です。

EM および CD のリリースに関する詳細については リリースストリームのドキュメント をご覧ください。

0
0 29
記事 Toshihiko Minamoto · 4月30日 15m read

cover

その1 では、MAIS(マルチエージェント相互運用システム)の技術的基盤を構築いたしました。「脳」の配線に成功し、LiteLLMを用いた堅牢なアダプターを構築し、IRIS資格情報でAPIキーをロックダウンし、そしてついにPython相互運用性のパズルを組み立てたのです。 しかしながら、現時点では我々のシステムはLLMへの単なる未加工のパイプに過ぎません。テキストを扱うことはできますが、アイデンティティを欠いているのです。

さて、この第2部では、エージェントの構造についてご説明いたします。単純なAPI呼び出しから、構造化されたペルソナへと進みます。LLMをビジネスロジックの層でラップし、その名称やロールを定義し、そして最も重要な点として、隣接する要素を認識する能力を付与する方法について学んでまいります。

私たちのマシンの「魂」を構築しましょう。

エージェントの構造: ただのプロンプトではなく

「脳」(LLM)との接続が確立したところで、次にその「脳」にパーソナリティを付与する必要があります。よくある誤解として、エージェントとは単に「役立つアシスタントです。」といったシステムプロンプトに過ぎないという見方がありますが、それは単なるチャットボットに過ぎません。

真正なエージェント型AIは、監視を必要としない点で際立っています。それは自律性と、任務を完遂しようとする強い意欲を兼ね備えています。

0
0 12
記事 Toshihiko Minamoto · 4月30日 8m read

image1

ある概念は紙に書かれたままでは完璧に理解できても、他の概念は実際に手を汚すことを必要とすることがあります。 例えば、運転を例に挙げましょう。エンジンの仕組みのあらゆる部品を暗記することはできますが、それが運転が実際にできることを意味するわけではありません。

実際に運転席に座り、クラッチの摩擦点や路面からの振動を身体で感じ取るまでは、その真髄を理解することはできません。 コンピューティングの概念の中には直感的に理解できるものもありますが、インテリジェントエージェントは異なります。それらを理解するためには、運転席に座る必要があるのです。

これまでのAIエージェントに関する記事では、CrewAIおよびLangGraphといったツールについて取り上げてまいりました。しかし、本ガイドでは、AIエージェントのマイクロフレームワークをゼロから構築してまいります。エージェントを構築することは、単なる構文の習得を超えた取り組みであり、開発者にとって実世界の問題を解決に挑戦する貴重な旅と申せます。

とはいえ、経験そのもの以上に、これを行う根本的な理由がもう一つあります。それはリチャード・ファインマンの言葉に最もよく表れています:

「自分でつくれないものは、本当に理解しているとはいえない」

では…AIエージェントとは何でしょうか?

具体的に説明いたします。エージェントとは、本質的に目的を追求するコードです。

0
0 13
記事 Toshihiko Minamoto · 4月23日 15m read

現代のデータアーキテクチャでは、リアルタイムのデータ収集、データ変換、データ移動、データロードのソリューションを活用し、データレイク、分析用倉庫、ビッグデータリポジトリを構築しております。様々なソースからのデータを、それらを利用する操作に影響を及ぼすことなく分析することを可能にします。これを実現するためには、継続的、拡張的、弾力的、かつ堅牢なデータフローを確立することが不可欠です。そのための最も一般的な方法は、CDC(変更データキャプチャ) 技術によるものです。CDCは小さなデータセットの生成を監視し、このデータを自動的に収集して、分析用データリポジトリを含む1つ以上の受信先に配信します。主な利点は、分析におけるD+1(データ生成の翌日)の遅延が解消される点です。データは生成されるとすぐにソースで検知され、その後、対象の宛先へ複製されるためです。

本記事では、CDCシナリオにおいて最もよく使用される2つのデータソース(データソースおよびデータ宛先として)についてご説明いたします。データソース(元)としては、SQLデータベースおよびCSVファイルにおけるCDCの活用方法について探ってまいります。

0
0 14
InterSystems公式 Masahito Miura · 4月16日

InterSystems IRIS® データプラットフォーム、 InterSystems IRIS® for Health および HealthShare® Health Connect™ のメンテナンスバージョン 2025.1.4 および 2024.1.6 がリリースされました。今回のリリースでは、最近お知らせした以下の警告や勧告の修正が含まれています。 

より良い製品を皆様と共に作り上げていくため、 アイデアポータル 内の リリース後のフィードバック カテゴリからご意見をお寄せください。

ドキュメント

詳細な変更リストとアップグレードチェックリストはこちらのドキュメントをご参照ください(すべて英語 2025.

0
0 34
記事 Toshihiko Minamoto · 4月16日 16m read

InterSystems IRISデータプラットフォームは、InterSystemsの全アプリケーションに加え、ヘルスケア、ファイナンシャルサービスおよびサプライチェーンをはじめとする様々なエコシステムにおいて、数千もの顧客およびパートナーアプリケーションの基盤となっております。これは収束プラットフォームであり、トランザクション・アナリティクスデータ管理、統合された相互運用性、データ統合に加え、統合された分析およびAIを提供します。多様な分散データを管理するInterSystemsスマートデータファブリックアプローチをサポートしております。

 

当社のアーキテクチャの中核には、コアデータエンジン(別名一般なデータプレーン)における高性能・マルチモデル・多言語データ処理機能がございます。これを基盤として、膨大なデータ量と毎秒10億を超えるデータベース操作に及ぶ高いトランザクションレートに対応する、卓越したスケーリング機能を備えております。

次に、二つの主要なサブシステムが挙げられます。一つは分析と人工知能(AI)に焦点を当てたもので、もう一つは相互運用性とデータ統合に焦点を当てたものです。これらのサブシステムは、データに近接して全てを実行し、最小のフットプリントで高いパフォーマンスを提供する、という当社の基本理念に沿った設計となっております。

0
0 10
記事 Toshihiko Minamoto · 4月14日 11m read

序言

極めて高いパフォーマンスが求められるアプリケーションにおいて、企業はしばしばインメモリデータベースやキーバリューストア(キャッシュ層)を採用します。しかしながら、インメモリデータベースは総所有コストが高く、スケーラビリティにも限界があり、メモリ制限を超えた場合には信頼性の問題や再起動の遅延が生じます。インメモリキーバリューストアも同様の制約を抱えるだけでなく、アーキテクチャの複雑さやネットワーク遅延といった新たな課題をもたらします。

本記事では、高パフォーマンスのSQLおよびNoSQLアプリケーションにおいて、InterSystems IRIS™データプラットフォームがインメモリデータベースやキーバリューストアに比べ優れた選択肢である理由についてご説明いたします。

パフォーマンスと効率性のレベルアップ

InterSystems IRISは、同時データ取り込みおよび分析処理において、インメモリデータベースやキャッシュ層の性能に匹敵、あるいはそれを上回る唯一の永続データベースです。市販されているハードウェア上において、ネットワーク遅延を発生させることなく、1マイクロ秒未満で着信トランザクションの処理、データのディスクへの永続化、分析のためのインデックス作成を実現します。

0
0 21
記事 Toshihiko Minamoto · 4月9日 7m read

インターシステムズ アイデア ポータル(InterSystems Ideas Portal)で最も多くの賛同を得た提案(74票)は、IRISの軽量バージョンを要望するものです。プラットフォームは強力なデータエンジンに成長していますが、多くのプロジェクトではSQLデータベース機能のみが必要とされています。本記事では、コアなデータベース機能にのみ焦点を当てた非公式なコンパクトなIRIS Community Editionイメージを構築する方法を示し、イメージサイズを80%以上削減する方法を説明します。

⚠️ Disclaimer

このプロジェクトは、InterSystems IRIS Community Editionの非公式な実験的なイメージを生成します。

  • InterSystemsによるサポートまたは推奨はされていません。
  • 使用は自己責任です。これらの変更により、プラットフォームの中核機能が削除され、ツールやAPI、想定される動作との互換性が損なわれる場合があります。
  • 確証または保証 なしに生は、産用途への適合性を含みます。
  • 上級ユーザーによる教育および実験目的のみに供するものです。
0
0 28
記事 Hiroshi Sato · 4月7日 3m read

Claude CodeはIRISのことかなり理解してくれていますが、それでもやはり想定外が発生します。

まず1つ目は既に何回か発生した問題で、正しく指示しないと今後もよく発生する可能性の高い問題です。

IRISの文字型のデータ(%String)のコレーション(照合)は、デフォルトではSQLUPPERとなっていて、その結果としてデータをSQLで取得すると大文字に変換されて返ってくる場合があります。(GROUP BYなどのソートして集計する場合)

それを意識せずに(通常誰も意識していないと思いますが)、Claude Codeにそのデータの値に依存するような指示を与えると、期待した結果が得られないことが起こります。

例えば、何々のカラムの値がGroup BYで指定したカラムで集計した場合、返ってくるそのカラムの値が大文字となるため実際のデータはSupportだけれども実際に返ってくる値がSUPPORTとなっているためにマッチしないという感じです。

Claude Codeのスキルにこれをちゃんと記載するか、クラス定義のCOLLATEをSQLSTRINGに変更することでこの状況を回避できると思います。

もう一つ最近遭遇した問題は、これはさすがに難しいだろうという感じのものです。

IRISにはご存知の方も多いと思いますが、計算フィールドという非常に便利な機能があります。

0
0 35