記事
· 4 hr 前 5m read
WebSocketの使用

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

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

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

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

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

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

0 0
0 9

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

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

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

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

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

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

0 0
0 8

これは 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によるデータベースアクセス

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

    0 0
    0 9

    CSPでWebアプリケーションを開発する方法は今では推奨されていませんが、既存資産が膨大にあって、他の手法への書き換えには相当の時間がかかりそうな方々はたくさんおられることでしょう。

    そういう方々は、しばらくはそれらCSPファイルのメンテナンスの必要性があるかと思います。

    IRISではVSCodeが主たるIDEとなっていますが、開発環境がWindowsのみであれば、CSPファイルをSJISでメンテナンスしておけば、問題は起こりません。

    ところが、それらのファイルをUNIX環境(LinuxやMac)に持っていって、VSCodeで編集作業を開始すると、文字化けの嵐となってしまいます。

    これは以前にポストしましたが、UNIX環境のIRISは何も設定しないとロケールがenuw(英語)となっているためです。

    さらにこれを日本語専用ロケールに変えても、unix環境ではロケールがjpuwの場合、ファイルの読み書きのエンコーディングが、utf8となっているので、cspファイルのエンコーディングがSJISのままでは都合が悪いです。

    従ってCSPファイルのエンコーディングをUTF8に変更する必要があります。

    しかし、プラットフォームの切り替えのたびにエンコーディングを変更するのも面倒です。

    0 0
    0 6
    記事
    · 2025年11月24日 5m read
    Pythonでの仮想環境入門

    img

    この記事では、Pythonでの仮想環境の概念を紹介します。仮想環境は、依存関係を管理してプロジェクトをOSから分離するために不可欠です。

    仮想環境とは?

    仮想環境とは、次が含まれているフォルダのことです。

    • 特定のバージョンのPython
    • 最初は空のsite-packagesディレクトリ

    仮想環境により、OSのPythonインストールとその他のプロジェクトからプロジェクトを分離できるようになります。

    使用方法

    仮想環境を使用するには、これらの手順に従います。

    1. 仮想環境を作成する:Pythonに標準搭載されている venv モジュールを使用すると、仮想環境を作成できます。 ターミナルを開いて、以下を実行します。

    0 0
    0 24

    はじめに

    コミュニティの皆さま、初投稿になりますが、何か少しでも興味深い知見を共有できると幸いです。

    今回の内容は、筆者が%Persistentを中心に据えたデータ構造管理の検討の過程で必要性を感じ行った、「列挙体」Likeな「データ型クラス」(%DataTypeのサブクラス)構築に関するレポートです。

    内容面では、筆者が「データ型クラス」の特性に不勉強だったことに由来しての躓きに関するものも多くなりますが、ご容赦願います。
    また、内容の中には、筆者が思い当たらなかった手段の活用により、よりシンプルに回避できた部分もある可能性が大いにございます。
    そういった内容にお気づきの場合、ご指摘いただけますと大変ありがたいです。

    12 0
    0 58

    開発者の皆さん、はじめまして!

    普段はサーバーレス環境での開発をしていて、AWS Lambda を使ったアプリケーション構築を主に行っています。IRIS についての実装経験はまだ浅いのですが、その高速で柔軟なデータベース機能の素晴らしさはよく知っています。

    「このパワフルな IRIS を、使い慣れたサーバーレスアプリから呼び出せたらいいのにな...」

    そんな思いから、今回 AWS Lambda と IRIS Native API を組み合わせた実装に挑戦してみました。これを通して、IRIS のことをもっと好きになれたらいいなと思っています。まだ IRIS の実装経験が浅いため、もっと良いアプローチや最適な方法があるかもしれません。もし改善点や間違いがあれば、ぜひコメントで教えていただけると嬉しいです!

    この記事では、AWS Lambda から IRIS Native API を使用してデータを取得する方法を実装例とともに解説します。この基本実装をベースに、S3 トリガーや他の AWS サービスとの連携も可能です。ぜひ最後までお付き合いいただけると嬉しいです!

    8 0
    0 53
    記事
    · 2025年11月18日 7m read
    Pythonモジュール入門

    img

    モジュールは重要なテーマです! ObjectScriptにはこの概念はありませんが、Pythonでは基本的な考え方です。 一緒に見ていきましょう。

    モジュールとは?

    モジュールは、クラスとパッケージの間にある中間層だと私は考えています。 例を見てみましょう。

    悪い例:

    # MyClass.py
    class MyClass:
        def my_method(self):
            print("Hello from MyClass!")
    

    別のスクリプトでこのクラスを使用する場合、次のようになります。

    1 0
    0 25

    新しい InterSystems IRIS® Cloud SQL と InterSystems IRIS® Cloud IntegratedML® クラウド製品のユーザーであり、デプロイメントのメトリクスにアクセスして独自の可観測性プラットフォームに送信しようと考えている方のために、メトリクスを Google Cloud Platform Monitoring(旧称 StackDriver)に送信して手っ取り早く行う方法をご紹介します。

    0 0
    0 34

    img

    この記事では、IRIS環境におけるPythonプログラミングの基礎について紹介します。

    本題に入る前に、重要なトピックである「Pythonの仕組み」について説明します。これは、IRIS環境でPythonを使用して作業する際に起こりうる問題や制限を理解するのに役立ちます。

    すべての記事と例は、以下のgitリポジトリで確認できます: iris-python-article

    Pythonの仕組み

    インタープリター型言語

    Pythonはインタープリター型言語であり、コードはランタイム時に1行ずつ実行されます。スクリプトをインポートする場合でも同様です。

    これはどういうことでしょうか? 以下のコードを見てみましょう。

    0 0
    0 34
    記事
    · 2025年10月28日 3m read
    Pythonダンダーメソッド入門

    img

    この記事では、マジックメソッドとしても知られるPythonダンダーメソッドについて簡単に解説します。

    ダンダーメソッドとは?

    ダンダーメソッドは、始めと終わりに2つのアンダースコア(__)が付いているPythonの特殊メソッドです。 このメソッドを使用することで、加算や減算、文字列表現など、組み込みの操作に対するオブジェクトの動作を定義することができます。

    よくあるダンダーメソッドには、次が含まれます。

    0 0
    0 26

    コミュニティの皆さんこんにちは。

    ベクトル検索関連の処理が完全にノーマークだった私が、一先ず「やってみよう!」との事で、2つの動画のサンプルを実行してみました。
    Pythonは初心者なので、アレな箇所があっても目をつぶっていただけると幸いです。

    また、間違っている箇所があったら、ご指摘いただけると幸いです。



    ■参考にした動画

    ■参考にしたコミュニティ記事

    12 0
    0 112

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

    SQLアクセス( ADO含む)を行う場合は、SQLトランザクションを使用して、トランザクションを制御します。

    一方オブジェクトアクセス(ObjectScript)ではtstart / tcommit / trollbackコマンド
    (Native SDK for .NETでは IRIS の TStart(), TCommit(), TRollback() メソッド)
    によってトランザクションを制御します。

    この2種類のトランザクションモードを混在させて使用することはサポートされていません。

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

    トランザクション管理

    0 0
    0 16

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

    この記事では、Developer Hub にまたまた新チュートリアル:InterSystems IRIS for Health:デジタルヘルスの相互運用性 が追加されましたので、体験内容についてご紹介します。(準備不要でブラウザがあれば試せるチュートリアルです!)

    チュートリアルでは、InterSystems IRIS for Health を使用しているのですが、IRIS for Health の持つ機能により以下のような相互運用性シナリオを作成できます。

    0 0
    0 26

    私が先週リリースしたInterSystems Testing Managerの新しいバージョンでは、@Timothy Leavittの優れた
    テストカバレッジツールが追加され、私は2025年度Developer Toolsコンテストに出品しました。

    こちらは、IPMプロジェクトのユニットテストが、IPMリポジトリでソート順を上書きできると思われる機能をまだカバーしていないことを示すティザー的なスクリーンショットです。

    0 0
    0 27

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

    この記事では、Developer Hub にあるチュートリアルに新しいチュートリアル:InterSystems IRIS ベクトル検索を使用した RAG が追加されましたので内容をご紹介します。(準備不要でブラウザがあれば試せるチュートリアルです!)

    このチュートリアルでは、生成 AI アプリケーションの精度向上に向けて、ベクトル検索と検索拡張生成(Retrieval Augmented Generation)の活用を体験できます。

    具体的には、InterSystems IRIS のベクトル検索機能を活用し、生成 AI チャットボット向けのナレッジベースをサンプルコードを利用して作成します。

    0 0
    0 42

    少し遅れましたが、モバイルアプリケーションから接続する例を示して Workflow Engine に関する連載記事をようやく締めくくることにします。

    前回の記事では、これから説明する例として、患者と担当医師の両方にとって高血圧症などの慢性病状の詳細な管理を可能にするアプリケーションを示しました。 この例では、患者は携帯電話からウェブアプリケーション(基本的に、デバイスに応答するように設計されたウェブページ)にアクセスし、ポータブル血圧計が IRIS インスタンスに送信する測定に基づく通知を受信します。

    したがって、IRIS インスタンスへのアクセスは 2 つです。

    • モバイルアプリケーションからのユーザーアクセス。
    • 血圧の測定値を送信するデバイスアクセス。

    この記事では、患者が測定値を生成するタスクを管理できる、最初のアクセスを確認します。

    0 0
    0 25

    REST レスポンスから IRIS データーベースに情報を保存する新しいプロジェクトがあります。 少なくとも 20 以上の個別の REST エンドポイントの情報を同期する必要があるため、それらのエンドポイントの結果を保存するために、ほぼ同じ数の ObjectScript クラスを作成しなければなりません。

    ChatGPT を使って、それらのクラスを作成することはできますか? 答えは「できます」です。生成 AI を使って便利なものを作るのは初めてなので、素晴らしい機会だと思います。 スープを飲むキリンの写真を生成するのには飽きてきました…。

    1 0
    0 28

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

    $System.Encryption.Base64Encodeに指定するデータは、UTF8にエンコードして渡す必要があります。

    日本語が含まれるローカル変数をこのメソッドの引数として指定すると<ILLEGAL VALUE>エラーが返ります。

    以下のようにUTF8に変換後引数として渡す必要があります。

    0 0
    0 20

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

    何の設定も行なっていない場合、GROUP BYやDISTINCTで指定したフィールドは大文字小文字を区別せずに全て大文字として処理されます。

    これはGROUP BYやDISTINCTのグループ化がフィールドに対して定義された照合タイプに基づいて行われ、その文字列照合の既定値がSQLUPPERになっているためです。

    以下のドキュメントに説明がある通り、DISTINCT は、フィールドに対して定義された照合タイプに基づいて、文字列値をグループ化します。

    大文字/小文字の区別と DISTINCT の最適化

    1 0
    0 28

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

    10月1日(水)から今年の「技術文書ライティングコンテスト」が始まります!💨みなさま、応募の準備は進んでいますか??👀

    この記事では、昨年開催したコンテストにご応募いただいた素晴らしい作品を審査員コメントを添えてご紹介します。

    (審査員コメントは昨年 11 月に開催したミートアップ内で行ったコンテスト表彰式で紹介した内容です)

    0 0
    0 54

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

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

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


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


    【手順】

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

    0 0
    0 39

    開発者の皆様こんにちは。先日のWebinar「ベクトルであそぼう!」では、以下の内容でデータをベクトル化することの可能性をご紹介しました。

    写真から魚の名前をあててみる

    3 0
    0 59
    記事
    · 2025年9月3日 2m read
    大量データをJSON形式で渡す方法

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

    ダイナミックオブジェクトの%ToJSONメソッドを利用することで簡単にJSONデータを送信することができます。

    但し、標準的な方法では、出力するJSONのデータがIRIS文字列の最大長(約32万文字 正確には$SYSTEM.SYS.MaxLocalLength()が返す値)を超えると<MAXLENGTH>エラーとなります。

    これを回避するためには、文字列として返すのではなく、%ToJSONメソッドの出力先としてStreamを指定し、その結果作成されたそのStreamデータを順次読み取って、出力先に書き出すようにする必要があります。

    以下のように処理できます。

    0 0
    0 59