InterSystems公式 Toshihiko Minamoto · 2月 9, 2022

インターシステムズは、2018年からInterSystems IRISで2ストリームのリリースサイクルを採用しています(開始時のお知らせをご覧ください)。  

  • Continuous delivery (CD) リリース —このリリースは、新機能を迅速に提供し、継続的に更新され、新機能を直ちに利用するアプリケーションの開発、およびデプロイに最適です。
  • Extended maintenance (EM) リリース — このリリースは、CDリリースよりも頻度は低いですが、メンテナンス・リリースの安定性を提供します。新機能をいち早く利用することよりも、メンテナンスリリースでの修正が容易であることが重要な大規模エンタープライズアプリケーションに最適です。

このアプローチについては非常に好意的なフィードバックをいただいており、人々は「鈍行列車(slow train)」と「快速列車(fast train)」という言葉を使うようになりました。 EMリリースは、大規模なオンプレミスの顧客基盤をs持つお客様やパートナーに好まれる「鈍行列車」です。 CDリリースは、最新かつ最高の機能を求めるお客様やパートナーに好まれる「快速列車」です。

他の多くのソフトウェアベンダーは、この2つのアプローチを採用しており、通常、「鈍行列車」をLTS(Long Term Support)と呼んでいます。

0
0 308
記事 Toshihiko Minamoto · 2月 3, 2022 12m read

キーワード: Pandasデータフレーム、IRIS、Python、JDBS

目的

PandasデータフレームはEDA(探索的データ分析)に一般的に使用されるツールです。 MLタスクは通常、データをもう少し理解することから始まります。 先週、私はKaggleにあるこちらのCovid19データセットを試していました。 基本的に、このデータは1925件の遭遇の行と231列で構成されており、タスクは、患者(1つ以上の遭遇レコードにリンク)がICUに入室するかどうかを予測するものです。 つまりこれは、いつものようにpandas.DataFrameを使用して、まず簡単にデータを確認する、通常の分類タスクです。  

現在では、IRIS IntegratedMLが提供されています。これには強力な「AutoML」のオプションに関する洗練されたSQLラッパーがあるため、従来型のMLアルゴリズムに対抗して、多様なデータフレームのステージをIRISデータベーステーブルに保存してから、IntegratedMLを実行する方法を頻繁に採用しています。  ただし、dataframe.to_sql()はまだIRISで機能しないため、実際には、ほとんどの時間を他のデータ保存手段をいじることに充てていました。

0
0 388
記事 Toshihiko Minamoto · 2月 1, 2022 5m read
これはIRIS 2020.2で動作するコーディングの例です
最新バージョンとは同期していません。
また、InterSystemsのサポートによるサービスはありません

動作中のデモを確認できるデモビデオを以下で公開しています。https://youtu.be/dSV-0RJ5Olg

 

皆さんこんにちは
完全に新しいIRISイメージと**たった4行**のDockerコマンドを使って実行するイメージを使ってマイクロサービスのデモを行いましょう。 
2020年6月1日 - rcc

すべてのパーツを1つのコンテナイメージにまとめたコンパクトなオールインワンバージョンが公開されました。
詳細はこちら: IRIS-NativeAPI-Nodejs-compact
2020年5月24日 - rcc

Dockerを使った簡易インストールを追加しました。コンテキストを参照
2020年5月25日 - rcc

Linux & Windowsに最適な検証済みの強化スクリプトはこちら

2020年5月26日 - rcc

このデモは、Caché用にすでに存在するNode.jsに基づくWebSocketクライアントを再設計したものです。 主に以下のような変更点があります。

  • 新しいIRIS Native API for Node.jsの使用。特にグローバル配列を操作する場合
  • 直接トリガーされたクライアントからサーバー設計への変更
  • マイクロサービス/マイクロサーバーの例として、結果を別のdockerイメージに配置
  • マイクロサービスの実行を制御するための単純なインターフェースをIRISに追加
0
0 358
記事 Toshihiko Minamoto · 1月 27, 2022 11m read

はじめに

バージョン2019.2より、InterSystems IRISは、高性能データアクセス手法としてPython用のネイティブAPIを提供してきました。 ネイティブAPIを使用すると、ネイティブのIRISデータ構造と直接対話することができます。

0
0 536
記事 Toshihiko Minamoto · 1月 25, 2022 9m read

キーワード: PyODBC、unixODBC、IRIS、IntegratedML、Jupyterノートブック、Python 3

 

目的

数か月前、私は「IRISデータベースへのPython JDBC接続」という簡易メモを書きました。以来、PCの奥深くに埋められたスクラッチパッドよりも、その記事を頻繁に参照しています。 そこで今回は、もう一つの簡易メモで「IRISデータベースへのPython ODBC接続」を作成する方法を説明します。

ODBCとPyODCBをWindowsクライアントでセットアップするのは非常に簡単なようですが、Linux/Unix系サーバーでunixODBCとPyODBCクライアントをセットアップする際には毎回、どこかで躓いてしまいます。

バニラLinuxクライアントで、IRISをインストールせずに、リモートIRISサーバーに対してPyODBC/unixODBCの配管をうまく行うための単純で一貫したアプローチがあるのでしょうか。

 

範囲

最近、Linux Docker環境のJupyterノートブック内でゼロからPyODBCデモを機能させるようにすることに少しばかり奮闘したことがありました。 そこで、少し冗長的ではありますが、後で簡単に参照できるように、これをメモに残しておくことにしました。  

範囲内 

このメモでは、以下のコンポーネントに触れます。

  • 0
    0 1231
    記事 Toshihiko Minamoto · 1月 18, 2022 3m read

    この短い記事では、マシンにPythonをセットアップしなくて済むように、dockerコンテナでYapeを実行する方法について説明します。

    このシリーズの前回の記事からしばらく時間が経っているため、簡単に振り返ってみましょう。

    まず、matplotlibで基本的なグラフを作成する方法について話しました。 そして、bokehを使った動的グラフについて紹介しました。 最後にパート3では、monlblデータを使ったヒートマップの生成について説明しました。

    フィードバックをさまざまなチャンネルを通じて受け取りましたが、これらを実行するための環境をセットアップするのが困難であるという、共通したテーマが見られました。 そこで、それを少しでも簡単に行えるよう、Murrayと協力して、Murrayの優れたYapeツール用のDockerfileを作成してみることにしました。 GitHubページ

    もちろん、これを行うには、マシンにdockerがインストールされている必要があります。

    Dockerfile

    公式のPythonイメージに基づく、どちらかと言えば単純なdocker定義:

    FROM python:3
    
    WORKDIR .
    
    COPY requirements.txt ./
    RUN pip install --no-cache-dir -r requirements.txt
    
    COPY . .
    0
    0 142
    お知らせ Toshihiko Minamoto · 1月 17, 2022
    0
    0 110
    お知らせ Toshihiko Minamoto · 1月 17, 2022
    開発者の皆さん
    こんにちは。
    こちらは 2021年に開発者コミュニティに投稿された記事のダイジェストです。
    2021 年も InterSystems コミュニティにご貢献いただき、ありがとうございました!
    全体統計
    418 件の投稿が公開 (2021 年):
        – 記事 327 件
        – アナウンス 76 件
        – 質問 14 件
        – 議論 1 件
    2,452 人のメンバーが開発者コミュニティに参加 (2021 年)
    656 件の投稿が公開 (全期間)
     登録者合計 10,287 名
    0
    0 82
    記事 Toshihiko Minamoto · 1月 11, 2022 3m read

    これまでに何度もコードカバレッジとコードのパフォーマンス最適化について説明してきたため、ほとんどの方はすでにSYS.MONLBLユーティリティについてご存知かと思います。 コードを視覚的に見る方が通常は、純粋な数値を見るよりもはるかに直感的に理解できます。これが、このシリーズの記事の大きなポイントです。 今回は、Pythonとそのツールから少し離れて、^%SYS.MONLBLレポートからヒートマップを生成する方法を探りたいと思います。

    簡単に言うと、ヒートマップは特定の値を色で表現してデータの要約を得ることに特化した視覚化ツールです。 このケースでは、データはコード行であり、コード行に掛けられた時間が色にマッピングされます。

    ^%SYS.MONLBL

    行ごとに監視するモニターの実行については、ドキュメントをご覧ください。 つまり、分析の完全な出力をCSVファイルとして操作します。 分析しようとしているコードのソースコードが実際にあれば、はるかに便利であるため、 kフラグ(ソースを保持)を使ってコードをコンパイルするようにしてください。

    出力の準備

    ターゲット出力として、準備されたhtmlファイルを使用することにします。 これには、非常に基本的なレイアウトと、最終的な色付けを行うための小さなJavaScript関数だけが含まれます。

    0
    0 206
    記事 Toshihiko Minamoto · 1月 6, 2022 9m read

    キーワード: Python、JDBC、SQL、IRIS、Jupyterノートブック、Pandas、Numpy、および機械学習 

    1. 目的

    これは、デモの目的で、Jupyterノートブック内でPython 3によってIRIS JDBCドライバーを呼び出し、SQL構文でIRISデータベースインスタンスにデータを読み書きする、5分程度の簡単なメモです。 

    昨年、私はCacheデータベースへのPythonバインディング(セクション4.7)について簡単に触れました。 そこで、Pythonを使ってIRISデータベースに接続し、そのデータをPandasデータフレームとNumPy配列に読み込んで通常の分析を行ってから、事前処理済みまたは正規化されたデータをML/DLパイプラインに通すためにIRISに書き込む作業においてのオプションと議論について要約しましょう。

    すぐに思い浮かぶ簡単なオプションがいくつかあります。

    1.    ODBC: Python 3とネイティブSQLを使ったPyODBCを使ってはどうでしょうか?
    2.    JDBC: Python 3とネイティブSQLを使ったJayDeBeApiはどうでしょうか?
    3.    Spark: PySparkとSQLを使ったら?
    4.    IRIS用PythonネイティブAPI: 前に使用したCache用Pythonバイディングを拡張してみたらどうでしょうか?
    0
    0 1068
    記事 Toshihiko Minamoto · 12月 21, 2021 7m read

    先週のディスカッションでは、1つのファイルのデータ入力に基づく単純なグラフを作成しました。 ご存知のように、解析して相関付けるデータファイルが複数あることがあります。 そこで今週は、perfmonデータを追加して読み込み、それを同じグラフにプロットする方法について学習しましょう。 生成したグラフをレポートやWebページで使用する可能性があるため、生成したグラフのエクスポート方法についても説明します。

    Windowsのperfmonデータを読み込む

    標準のpButtonsレポートから抽出されたperfmonデータは、少し独特なデータ形式です。 一見すると、かなり単純なCSVファイルで、 最初の行には列のヘッダーがあり、それ以降の行にはデータポイントが含まれています。 ただし、ここでの目的のために、値エントリーを囲む引用符をどうにかする必要があります。 標準的なアプローチを使用してファイルをPythonに解析すると、文字列オブジェクトの列ができてしまい、うまくグラフ化できません。

    perfmonfile="./vis-part2/perfmon.
    0
    0 219
    記事 Toshihiko Minamoto · 12月 15, 2021 2m read

    あるお客様の問題から、この短い記事を書くことにしました。 お客様はEnsembleを使用して、多数のシステムを統合しています。一部のシステムではプレーンファイルのみが使用されています。

    そのため、ターゲットファイルへの書き込みには、自然とFile Outbound Adapter を選択しました。 数年もの間すべてが順調に稼働していましたが、最近になって、ファイルに書き込まれるデータが数十メガバイトという大きなサイズに達するようになり問題が出てきました。オペレーションが完了するまでに約30分かかるようになり、プロセス内の後続の処理を待たせなければならないタイミングの問題が発生し始めたのです。当然、連携先のシステムはそれほど長く待つことを良しとしません。

    お客様のコードは、以下の疑似コードのようなものでした。

     set tResultSet=SQLStatement.Execute()
    
     // compose header based on resultset columns Describe()
    
     set tSC= .Adapter.PutLine(file,header)
    
    while tResultSet.%Next() {
    
     set line=. compose line of the resultset row data 
    
      set tSC=.
    0
    0 143
    お知らせ Toshihiko Minamoto · 12月 14, 2021

    皆さん、こんにちは。

    開発者コミュニティやGlobal Masters、Open Exchangeといった開発者Ecoシステムで、メールアドレス(ログインメール)を変更しても、アクティビティが失われないようにする必要があります。

    それは簡単です。私たちにお任せください!

    1. 1️⃣   古いDC(開発者コミュニティ)アカウントから新しいDCアカウントへ、あなたの情報をすべて正しく移行します。 あなたの投稿、コメント、メンション、「いいね!」などの情報はすべて新アカウントに保存されます。
    2. 2️⃣ Global Mastersのメンバーであれば、あなたのレベル、バッジ、ポイントなども新しいアカウントに移行されます。
    3. 3️⃣ Open Exchangeでのアプリケーションの移行も行います。
    4. 4️⃣ また、古いアカウントを解除するだけで(アクティビティを引き継がない)あれば、ワンクリックで完了します。

    DCのダイレクトメッセージやメールで @Iryna Podmazko (または @Toshihiko Minamoto)に連絡するだけです。

    • 古いアカウントへのリンクを送る (-s)
    • 新しいアカウントへのリンクを送る(-s)
    • 自分のアクティビティのどのリソース(DC/GM/OEX/すべてのリソース)を移したいのかを明記してください。

    それでは。

    0
    0 124
    記事 Toshihiko Minamoto · 12月 14, 2021 5m read

    着想: @Evgeny Shvarovとその記事より
    Deploying InterSystems IRIS Embedded Python Solutions with ZPM Package Manager
    このアイデアを発展させ、同じことを**Node.js.**のモジュールで行ってみました。
    このケースは、私の「IRIS Native API for Node.js」の例に基づいています。

    InterSystems IRIS はクライアントとしてネイティブでWebSocketsをサポートしているというわかりきった返答を期待して:
    その通りです。そして、私がその昔書いた関連記事OEXのサンプルへのリンクはこちらです。

    0
    0 185
    記事 Toshihiko Minamoto · 12月 9, 2021 23m read

    キーワード: IRIS、IntegratedML、機械学習、Covid-19、Kaggle 

    前のパート1の続き... パート1では、Kaggleに掲載されているこのCovid-19データセットにおける従来型MLのアプローチを説明しました。 

    今回のパート2では、IRISのIntegratedMLを使用して、可能な限り単純な形態で同じデータとタスクを実行しましょう。IntegratedMLは、バックエンドAutoMLオプション用に洗練された優れたSQLインターフェースです。 同じ環境を使用します。 

     

    IntegratedMLアプローチとは

    IRISにデータを読み込む方法

    integredML-demo-templateには、IRISにデータを読み込む様々な方法が定義されています。 たとえば、このCSV形式のxlsファイルに固有のカスタムIRISクラスを定義し、それをIRISテーブルに読み込むことができます。 大量のデータをより適切に制御することができます。 

    ただし、この記事では、単純化された怠惰な方法を使用します。データフレーム全体を私が作成したカスタムPython関数で読み込む方法です。

    0
    0 150
    記事 Toshihiko Minamoto · 12月 7, 2021 31m read

    キーワード: IRIS、IntegratedML、機械学習、Covid-19、Kaggle 

    目的

    最近、Covid-19患者がICU(集中治療室)に入室するかどうかを予測するKaggleデータセットがあることに気づきました。  231列のバイタルサインや観測で構成される1925件の遭遇記録が含まれる表計算シートで、最後の「ICU」列では「Yes」を示す1と「No」を示す0が使用されています。 既知のデータに基づいて、患者がICUに入室するかどうかを予測することがタスクです。

    このデータセットは、「従来型ML」タスクと呼ばれるものの良い例のようです。 データ量は適切で、品質も比較的適切なようです。 IntegratedMLデモキットに直接適用できる可能性が高いようなのですが、通常のMLパイプラインと潜在的なIntegratedMLアプローチに基づいて簡易テストを行うには、どのようなアプローチが最も単純なのでしょうか。

     

    範囲

    次のような通常のMLステップを簡単に実行します。

    • データのEDA(探索的データ分析) 
    • 特徴量の選択
    • モデルの選択
    • グリッド検索によるモデルパラメーターのチューニング

    上記との比較で、次を実行します。 

    • SQLを介したIntegratedMLアプローチ

    Docker-composeなどを使用して、AWS Ubuntu 16.04サーバーで実行します。

    0
    0 342
    記事 Toshihiko Minamoto · 12月 3, 2021 12m read

    キーワード: ディープラーニング、Grad-CAM、X線、COVID-19、HealthShare、IRIS

    目的

    イースターウィークエンド中に、Covid-19に感染した胸部X線画像分類とCT検出デモを実行するを触ってみました。  デモの結果は上出来で、このトピックに関するその頃の学術研究出版物に一致しているようでした。 でも、本当に「上出来」と言えるのでしょうか。 

    最近、「機械学習における説明可能性」に関するオンラインランチウェビナーを聴くことがあったのですが、たまたまその講演の最後でDonがこの分類結果について話していました。

    上図は研究論文にも示されています。『“Why Should I Trust You?” Explaining the Predictions of Any Classifier』という論文です。   分類器は実際に、ペットの犬か野生の狼に分類するための主な入力として、雪といった自然環境などの背景ピクセルを取るようにトレーニングされていることがわかります。 

    これを見て、私は以前から持っていた関心を思い出しました。このやり方に、確かに好奇心を掻き立てられます。

    • どのピクセルが実際に「Covid-19に感染した胸部」の結果に寄与しているかを知るには、一般的に「ブラックボックス」として提示されるこれらのCovid-19分類器をどのように「調べる」とよいのでしょうか。
    0
    0 581
    記事 Toshihiko Minamoto · 11月 30, 2021 16m read

    キーワード: COVID-19、医用画像、ディープラーニング、PACSビューア、HealthShare。

     

    目的

    私たちは皆、この前例のないCovid-19パンデミックに悩まされています。 現場のお客様をあらゆる手段でサポートする一方で、今日のAI技術を活用して、Covid-19に立ち向かうさまざまな前線も見てきました。 

    昨年、私はディープラーニングのデモ環境について少し触れたことがあります。 この長いイースターの週末中に、実際の画像を扱ってみてはどうでしょうか。Covid-19に感染した胸部X線画像データセットに対して簡単な分類を行うディープラーニングモデルをテスト実行し、迅速な「AIトリアージ」や「放射線科医の支援」の目的で、X線画像やCT用のツールがdockerなどを介してクラウドにどれほど素早くデプロイされるのかを確認してみましょう。     

    これは、10分程度の簡易メモです。学習過程において、最も単純なアプローチでハンズオン経験を得られることを願っています。   

         

    範囲

    このデモ環境では、次のコンポーネントが使用されます。 これまで見てきた中で最も単純な形式です。

    • 3タイプの小さな匿名加工オープンデータセット: Covid-19感染胸部、細菌性肺炎胸部、正常な胸部。
    0
    0 573
    記事 Toshihiko Minamoto · 11月 25, 2021 17m read

    キーワード:   Jupyterノートブック、TensorFlow GPU、Keras、ディープラーニング、MLP、HealthShare    

     

    1. 目的

    前回の「パート1」では、ディープラーニングデモ環境をセットアップしました。今回「パート2」では、それを使ってできることをテストします。

    私と同年代の人の中には、古典的なMLP(多層パーセプトロン)モデルから始めた人がたくさんいます。 直感的であるため、概念的に取り組みやすいからです。

    それでは、AI/NNコミュニティの誰もが使用してきた標準的なデモデータを使って、Kerasの「ディープラーニングMLP」を試してみましょう。 いわゆる「教師あり学習」の一種です。 これを実行するのがどんなに簡単かをKerasレベルで見ることにします。

    後で、その歴史と、なぜ「ディープラーニング」と呼ばれているのかについて触れることができます。流行語ともいえるこの分野は、実際に最近20年間で進化してきたものです。 

    HealthShareにも関連しているため、最終的には、少々実現的なユースケースを想像または予測できるようになることを願っています。

    2. 範囲と免責事項

    次のことを行います。 

    • tensorflow-gpu環境用に新しいJupyterカーネルをセットアップします。
    0
    0 206
    記事 Toshihiko Minamoto · 11月 18, 2021 13m read

    Python 3をHealthShareにバインディングした深層学習デモキット(パート1) キーワード:  Anaconda、Jupyterノートブック、TensorFlow GPU、ディープラーニング、Python 3、HealthShare    

    1. 目的

    この「パート1」では、Python 3をHealthShare 2017.2.1インスタンスにバインドして、「単純」かつ一般的なディープラーニングデモ環境をセットアップする方法を段階的に簡単に説明します。  私は手元にあるWin10ノートパソコンを使用しましたが、このアプローチはMacOSとLinuxでも同じように実装できます。

    先週、PYPL Indexにおいて、Pythonが最も人気のある言語としてJavaを超えたことが示されました。  TensorFlowも研究や学術の分野において非常に人気のある強力な計算エンジンです。 HealthShareは、ケア提供者に患者の統一介護記録を提供するデータプラットフォームです。

    これらを1つのキットにまとめることはできるでしょうか。また、これを実現する上での最も単純なアプローチは何でしょうか。  ここでは、このトピックの最初のステップを一緒に試してから、次に試すことのできるデモについて検討しましょう。  

    2.

    0
    0 315
    記事 Toshihiko Minamoto · 11月 16, 2021 4m read

    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を実装するための標準的な方法を提唱しています。
  • 0
    0 207
    お知らせ Toshihiko Minamoto · 11月 11, 2021

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

    普段お世話になっている皆さんへ、うれしいお知らせです!

    この度、なんと! 開発者コミュニティのメンバー登録が1万人に達しました! 🎊

    インターシステムズはコミュニティの力を信じています。この6年間の皆様のご協力に感謝するとともに、これからもよろしくお願いいたします。

    1
    0 106
    記事 Toshihiko Minamoto · 11月 11, 2021 8m read

    しばらく前、GitHubはGitHub Codespacesという新しい機能を発表しました。 ブラウザでVSCodeを実行する機能があります。マシンでローカルに実行するのとほぼ同じ性能がありますが、クラウドの能力も備わっているため、最大32CPU、64 GB RAMのマシンタイプを選択することが可能です。

    素晴らしいことですね。 でも、このことは、InterSystems IRISで駆動するプロジェクトで作業する上で、どのように役立つのでしょうか。 それをどのように構成するのか見てみましょう。

    0
    0 408
    記事 Toshihiko Minamoto · 11月 3, 2021 12m read

    この連載の最初の記事では、大きなチャンクのデータをHTTP POSTメソッドのRaw本体から読み取って、それをクラスのストリームクラスとしてデータベースに格納する方法を説明しました。 2つ目の記事では、ファイルとファイル名をJSON形式にラップして送信する方法を説明しました。 

    それでは、大きなファイルを分割してサーバーに送るという構想を詳しく見ていきましょう。 これを行うために使用できるアプローチにはいくつかあるのですが、 この記事では、Transfer-Encodingヘッダーを使用してチャンク転送を指示する方法を説明します。 Transfer-EncodingヘッダーはHTTP/1.1仕様で導入されたものです。RFC 7230第4.1項では説明されているものの、HTTP/2仕様からはその説明が無くなっています。 

    0
    0 1371
    記事 Toshihiko Minamoto · 11月 1, 2021 9m read

    この連載の第1回目の記事では、「大規模な」チャンクのデータをHTTP POSTメソッドのRaw本体から読み取って、それをクラスのストリームプロパティとしてデータベースに格納する方法について説明しました。 では、そのようなデータとメタデータをJSON形式で格納する方法について見てみましょう。

    残念ながら、Advanced REST Clientでは、バイナリーデータをキーの値としてJSONオブジェクトを作成することはできません(もしかすると、私がまだ知らないだけかもしれません)。そこで、サーバーにデータを送信する単純なクライアントをObjectScriptで記述することにしました。

    新しいRestTransfer.Clientというクラスを作成し、私のWebサーバーを指定するServer = "localhost"パラメーターとPort = 52773パラメーターをそれに追加しました。 そしてGetLinkクラスメソッドを作成しました。この中で、クラス%Net.HttpRequestの新しいインスタンスを作成し、プロパティを前述のパラメーターに設定します。 

    実際にPOSTリクエストをサーバーに送信するために、クラスメソッドSendFileDirectを作成しました。

    0
    0 523
    記事 Toshihiko Minamoto · 10月 28, 2021 8m read

    InterSystems開発者コミュニティにおいて、CachéアプリケーションへのTWAINインターフェースの作成の可能性に関する質問が上がりました。 Webクライアントの撮像装置からサーバーにデータを取得し、そのデータをデータベースに保管する方法について、素晴らしい提案がいくつかなされました。 

    しかし、こういった提案を実装するには、Webクライアントからデータベースサーバーにデータを転送し、受信データをクラスプロパティ(または質問のケースで言えばテーブルのセル)に格納できなければなりません。 この方法は、TWAINデバイスから受信した撮像データを転送するためだけでなく、ファイルアーカイブや画像共有などの整理といったほかのタスクにも役立つ可能性があります。 

    そこで、この記事では主に、HTTP POSTコマンドの本体から、raw状態またはJSON構造にラップしてデータを取得するRESTfulサービスを記述する方法を説明することにします。

    RESTの基本

    具体的な話に入る前に、まずREST全般と、IRISでRESTfulサービスがどのように作成されるかについて簡単に説明しましょう。

    Representational state transfer(REST)は、分散ハイパーメディアシステムのためのアーキテクチャスタイルです。

    0
    0 1311
    記事 Toshihiko Minamoto · 10月 26, 2021 10m read

    InterSystems IRISを初めて使用し始める際には、最低限のセキュリティレベルでのみシステムをインストールするのが通例です。 パスワードを入力する回数が少なくて済むため、初めて作業を始めるときに、開発サービスやWebアプリケーションの操作がより簡単になるからです。 また、開発済みのプロジェクトまたはソリューションをデプロイする際には、最小限のセキュリティを適用している方が便利な場合があります。 それでも、プロジェクトを開発環境から非常に敵対的な可能性のあるインターネット環境に移行する時が来れば、本番環境にデプロイされる前に、最大限のセキュリティ設定(つまり、完全なロックダウン状態)でテストしなければなりません。 これがこの記事の論点です。 InterSystems Caché、Ensemble、およびIRISにおけるDBMSセキュリティ問題をさらに包括的に説明した記事については、私の別の記事、「Recommendations on installing the InterSystems Caché DBMS for a production environment」(本番環境向けにInterSystems Caché DBMS をインストールするための推奨事項)をご覧ください。 InterSystems IRISのセキュリティシステムは、さまざまなカテゴリ(ユーザー、サービス、リソース、特権、およびアプリケーション)に異なるセキュリティ設定を適用する概念に基づいています。 ユーザーにはロールを割り当てることができます。 ユーザーとロールには、データベース、サービス、およびアプリケーションといったリソースに対し、さまざまな読み取り、書き込み、および使用の権限を付与することができます。 ユーザーとロールには、データベースのSQLテーブルに対するSQL特権も与えられます。

    0
    0 423
    記事 Toshihiko Minamoto · 10月 20, 2021 4m read

    インターネットを使うようになってから (1990年代後半)、PythonとIRIS グローバルを使ってブログを書いていますが、常にCMS (コンテンツ管理システム) でブログ、ソーシャルメディア、さらには企業ページに情報を簡単に投稿できるようにしていました。 数年後、自分がマークダウンファイルに収めて使ってきたすべてのコードをgithubに入れました。 ネイティブAPIでデータをIntersystems IRISに入れて永続化するのはとても簡単だったので、このアプリケーションを作成して少しSQLを忘れ、キー・バリュー・データベースモデルを受け入れることにしました! picture

    ブログとは?

    これはWEB LOGの略名で、基本的にはユーザーが書いてページに投稿、公開できるプラットフォームです。

    マークダウンフォーマットとは?

    マークダウンとは、フォーマットしたテキストを作成するマークアップ言語であり、HTMLより簡単で、多くのCMSプラットフォームで人気があります。

    例:

    # Header 1
    ## Header 2
    ### Header 3
    

    結果:

    Header 1

    Header 2

    Header 3


    IRISで作成するメリットとは?

    IRIS Globalsを使用して各投稿のデータを永続化しながら、各データコンサルタントはキー・バリュー・データベースとして動作するIRISのスピードというメリットを得ます。

    0
    0 253