クリアフィルター
お知らせ
Seisuke Nakahashi · 2023年7月3日
2023.2がリリースされると同時に、IRIS ならびに IRIS for Health コンテナのタグと配布に関して少し変更を行います。
IRIS コンテナはこれまで、例えば 2023.1.0.235.1 のように、ビルド番号を付与したタグづけを行っていました。しかしお客様から、新製品がリリースされるたびに dockerfiles や Kubernetes ファイルを変更しなくていいよう、より安定的なタグに関するご要望をいただいてきました。 それを踏まえ、コンテナ・イメージのタグについて、以下のように変更を行います。
メジャー.マイナー タグ: コンテナのタグは、年とリリース番号でのみ記述され、ビルド番号は付きません。例えば、現在以下のように取得されるイメージは
containers.intersystems.com/intersystems/iris:2023.2.0.606.0
今後は以下のフォーマットに変わります。
containers.intersystems.com/intersystems/iris:2023.2
latest-em と latest-cd タグ: 最新の拡張メンテナンス (EM) と 継続的デリバリ (CD) のバージョンは、それぞれ latest-em 、 latest-cd とタグ付けされます。これにより、ドキュメントやサンプル、開発環境おいて、よりシンプルなタグ記述が可能となります。ただし、本番環境でこれらのタグを利用されることは推奨しません。
Preview: 開発者プレビュー製品には -preview タグが明示的に付与されます。これにより、本番環境で利用可能なコンテナとリリース前のコンテナが一目で区別できるようになります。最新のプレビュー版は、より分かりやすく latest-preview とタグ付けされます。
InterSystems コンテナのビルド番号情報は、ラベルとしてご確認いただけます。以下のように docker inspect command で取得できます。
docker inspect --format '{{ index .Config.Labels "com.intersystems.platform-version"}}' containers.intersystems.com/intersystems/iris:2023.1.0.235.1
コンテナは今後、WRC ダウンロードサイトからは入手いただけません。 もし WRC サイトからコンテナをダウンロードされていた場合、今後は InterSystems Container Registry (ドキュメント) をご利用くださいませ。
もう1点、現在 IRIS コンテナは マルチ・アーキテクチャ・マニフェストを採用しています。 つまり、2022.3 タグを指定して IRIS コンテナを pull すると、お客様のサーバ CPU (Intel/AMD や ARM) に対応したコンテナが自動的に指定されてダウンロードされます。
もし特定 CPU 向けのコンテナを入手したいときは、CPUを指定したコンテナタグをご利用ください。例えば、2022.3-linux-amd64 を指定すると Intel/AMD 向けコンテナがダウンロードされ、2022.3-linux-arm64v8 を指定すると ARM 向けコンテナがダウンロードされます。
このマルチ・アーキテクチャにより、適切なサーバに適切なコンテナを入手いただく手順が効率化されています。効率化の一環として、まもなく古い iris-arm64 レポジトリの配布を中止する予定です。
ご質問などございましたら、弊社カスタマーサポートまでお問合せくださいませ。
記事
Megumi Kakechi · 2020年10月29日
これはInterSystems FAQ サイトの記事です。
1変数に最大 3,641,144 文字まで格納できます。
この制限は、InterSystems IRIS上で取り扱う全ての文字列が対象となるため、ローカル変数やメソッドの引数・戻り値も対象となります。
最大文字について詳しくは、以下ドキュメントをご参照ください。
最大文字列長について
記事
Toshihiko Minamoto · 2021年3月15日
InterSystems IRIS では、情報を格納する「グローバル」というユニークなデータ構造をサポートしています。 基本的に、グローバルとは、マルチレベルのインデックスを持つ永続配列であり、トランザクションの実行やツリー構造のスピーディなトラバーサルといった機能が備えられているほか、ObjectScript として知られるプログラミング言語にも対応しています。
ここから先、少なくともコードサンプルについては、グローバルの基礎を理解されているという想定のもとに話しを進めていきます。
[グローバルはデータを保存するための魔法の剣です パート1 ](https://jp.community.intersystems.com/node/476486)
[グローバルはデータを保存するための魔法の剣ですパート2 - ツリー](https://jp.community.intersystems.com/node/477521)
[グローバルはデータを保存するための魔法の剣です パート3 - 疎な配列](https://jp.community.intersystems.com/node/477586)
グローバルは、普通のテーブルとは全く異なる構造でデータを格納し、OSI モデルの下位層で動作します。 それでは、グローバルを使ったトランザクションとはいかなるもので、どのような特性が見られるのでしょうか。
リレーショナルデータベースの理論では、ACID テスト ([Wikipedia で ACID を参照する](https://ja.wikipedia.org/wiki/ACID_(%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E7%A7%91%E5%AD%A6))) に合格するトランザクションこそが、適切に実装されたトランザクションとされています。
* _不可分性_: トランザクションで発生する変更内容がすべて記録されるか、そのいずれも記録されない。 [Wikipedia で不可分性 (データベースシステム) を見る](https://ja.wikipedia.org/wiki/ACID_(%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E7%A7%91%E5%AD%A6)#%E4%B8%8D%E5%8F%AF%E5%88%86%E6%80%A7(Atomicity))。
* _一貫性_: トランザクションが完了した後、データベース内部の論理状態が一貫している。 いろいろな意味で、この要件はプログラマーに適用されるものですが、SQL データベースの場合では、外部キーにも適用されます。
* _分離性_: 並列に実行されるトランザクションの結果はお互いを影響しない。
* _永続性 (あるいは持続性)_: トランザクションが完了した後に、OSI モデルの物理層の問題 (電源障害など) が発生しても、トランザクションで変更されたデータには影響しない。
グローバルは、非リレーショナルなデータ構造です。 メモリーフットプリントを最小限に抑えながらハードウェアの超高速作業をサポートできるようにデザインされています。 それでは、IRIS/docker-image を使って、トランザクションがグローバルに実装される仕組みを見てみましょう。
## 1. 不可分性
3 の値を一緒にデータベースに保存する必要があるが、そうならない場合はそのいずれも保存されないという状況について考えます。
不可分性を一番手っ取り早く確認するには、ターミナルで次のコードを入力します。
Kill ^a
TSTART
Set ^a(1) = 1
Set ^a(2) = 2
Set ^a(3) = 3
TCOMMIT
最後に次を入力します。
ZWRITE ^a
結果は以下のようになるはずです。
^a(1)=1
^a(2)=2
^a(3)=3
予想とおり、不可分性を確認できました。 では、わざとエラーを導入してタスクを少し複雑にします。トランザクションが部分的に保存されるのか、全く保存されないのかを見てみましょう。 まずは、先ほどと同じように不可分性を確認します。
Kill ^a
TSTART
Set ^a(1) = 1
Set ^a(2) = 2
Set ^a(3) = 3
今回は、ここで docker kill my-iris というコマンドを使い、コンテナを強制的に終了します。これにより SIGKILL (即座にプロセスを停止する) シグナルが送られるため、電源を強制的にオフにしているようなものです。 コンテナを再起動してから、グローバルの中身をチェックして、結果を確認します。 トランザクションは部分的に保存されているでしょうか?
ZWRITE ^a
何も表示されませんでした
いいえ、何も保存されませんでした。 これにより、アクシデントでサーバーが停止する場合、IRIS データベースでは不可分性が保証されることが分かりました。
では、変更内容を意図的にキャンセルするとしたらどうでしょう? 次のように rollback コマンドを使って試してみます。
Kill ^a
TSTART
Set ^a(1) = 1
Set ^a(2) = 2
Set ^a(3) = 3
TROLLBACK 1
ZWRITE ^a
Nothing got out
またしても、何も保存されませんでした。
## 2. 永続性
グローバルは、リレーショナルテーブルよりも低い層でデータを格納する構造であることを覚えていますか?また、グローバルデータベースでは、インデックスもグローバルとして格納されます。 従い、永続性の要件を満たすには、グローバルノードの値が変更される同じトランザクションにインデックの変更も含める必要があります。
例えば、^person というグローバルがあり、それに個人情報を格納するとします。キーにはソーシャルセキュリティ番号 (SSN) を使用します。
^person(1234567, 'firstname') = 'Sergey'
^person(1234567, ‘lastname’) = ‘Kamenev’
^person(1234567, ‘phone’) = ‘+74995555555
...
以下のように、^index というキーを作成し、ラストネームだけ、もしくはファーストネームとラストネームの組み合わせを使って、素早く検索できるようにしました。
^index(‘Kamenev’, ‘Sergey’, 1234567) = 1
データベースの永続性を維持するには、person を以下のように追加する必要があります。
TSTART
^person(1234567, ‘firstname’) = ‘Sergey’
^person(1234567, ‘lastname’) = ‘Kamenev’
^person(1234567, ‘phone’) = ‘+74995555555
^index(‘Kamenev’, ‘Sergey’, 1234567) = 1
TCOMMIT
従い、person を削除する場合は、以下のトランザクションを使う必要があります。
TSTART
Kill ^person(1234567)
Kill ^index(‘Kamenev’, ‘Sergey’, 1234567)
TCOMMIT
つまり、グローバルのような下位層の格納形式を使う場合、どのようなロジックを使ってアプリケーションの永続性の要件を満たすかは、プログラマー次第ということです。
幸い、IRIS にはトランザクションを整理して、アプリケーションの永続性を保証するためのコマンドが備えられています。 SQL が使用される場合、IRIS は内部でこれらのコマンドを実行して、INSERT、UPDATE、DELETE 式が実行されるときに、基となるグローバルのデータ構造を持続します。 もちろん、トランザクションを開始および停止する SQL コマンドは、IRIS SQL にも備えられているので、(SQL) アプリケーションロジックに活用することができます。
## 3. 分離性
ここからが本番です。 多くのユーザーが同時に同じデータベースにアクセスして、同じデータを変更するとしましょう。 多くのデベロッパーが同じコードリポジトリにアクセスし、多くのファイルの変更内容を同時にコミットしようと試みる状況に似ています。
データベースはすべてをリアルタイムに処理しなくてはいけません。 大手企業なら通常はバージョンコントロール (ブランチのマージや競合解決の管理など) の担当者がいて、かつ データベースはこれをリアルタイムに処理する必要があることを考えると、その問題の複雑さや、データベースとその機能を支えるコードを適切に設計することが大切なのは言うまでもありません。
データベースは、ユーザーの操作が意味することを理解できなければ、ユーザーが同じデータを操作する際に起こる競合を回避することもできません。 他のトランザクションと矛盾するトランザクションを 1 つキャンセルするか、それらを順番に実行することしかできません。
また、トランザクションの実行中 (コミットの前) は、データベースの状態の一貫性が失われている能性もあります。 一貫性を失ったデータベースの状態に他のトランザクションがアクセスできるのはよくありません。 しかし、リレーショナルデータベースでは、スナップショットを作成したり、複数バージョンの行を使用したりするなど、アクセスできてしまう方法がたくさんあります。
複数のトランザクションが並列に実行される場合は、お互いを干渉しないことが大切です。 それを確保するのが分離性です。
SQL では、分離性は分離する程度の順に 4 つのレベルで定義されます。 以下がその 4 つのレベルです。
* READ UNCOMMITTED
* READ COMMITTED
* REPEATABLE READ
* SERIALIZABLE
では、それぞれのレベルを一つずつ見ていきましょう。 各レベルの実装コストは、スタックを上がるにつれてほぼ指数関数的に増加していきますので、ご注意ください。
**READ UNCOMMITTED** は、分離の一番低いレベルですが、一番速いレベルでもあります。 トランザクションは、別のトランザクションによりコミットされた変更内容を読み取ることができます。
**READ COMMITTED** は、次の分離レベルで、譲歩することを意味します。 トランザクションは、コミットの前にお互いの変更を読み取ることはできませんが、コミットの後ならどの変更でも読み取ることができます。
長時間に渡って実行されるトランザクション (T1) があり、その間に T1 と同じデータを操作するトランザクション T2、T3 ... Tn がそれぞれでコミットしたとします。 このような場合は、T1 のデータをリクエストする度に異なる結果が得られる可能性があります。 これは Non-Repeatable Read (非再現リード) と呼ばれています。
次の分離レベルは、**REPEATABLE READ** です。データの読み取りをリクエストすると、その都度結果のスナップショットがとられるため、ここではもはや非再現リードは起りません。 同じトランザクションの実行中に同じデータがもう一度リクエストされることがあれば、スナップショットが使用されます。 但し、この分離レベルでは、ファンタムデータ (並列に実行されていた別のトランザクションによってコミットされた新しい文字列) が読み取られる可能性があります。
一番高い分離レベルは、**SERIALIZABLE** です。 トランザクションで使用 (読み取りまたは変更) されたデータに他のトランザクションがアクセスできるのは、最初のトランザクションが終了した後に限定されるという特徴があります。
まずは、トランザクションのあるスレッドとないスレッドとの間で操作が分離されているかどうかを確認してみましょう。 ターミナルを 2 つ開いて、以下を入力します。
Kill ^t Write ^t(1) 2
TSTART Set ^t(1)=2
分離はされていません。 片方のスレッドはトランザクションを開くと、もう片方のスレッドの動作を見ることができます。
それでは、異なるスレッドで実行中のトランザクションがお互いの中の状況を見れるかどうかを確認しましょう。 ターミナルウィンドウを 2 つ開き、2 つのトランザクションを並列に実行します。
Kill ^t TSTART Write ^t(1) 2
TSTART Set ^t(1)=2
画面に A 3 が表示されます。 ここでは、一番シンプルで一番速い分離レベル READ UNCOMMTTED が設定されています。
原則として、グローバルのような常にスピードを優先する下位層のデータ表現手段では、このレベルが主流となっています。 IRIS SQL では、トランザクションの異なる分離レベルを選択できますが、直接グローバルを操作する時にもっと高い分離レベルが必要になったらどうすればよいでしょう?
ここで、分離レベルの目的とそれぞれの仕組みについて考える必要があります。 例えば、低い分離レベルは、データベースを高速化するための譲歩を目的にしています。
最高の分離レベルを提供する SERIALIZABLE では、並列に実行されたトランザクションの結果がそれらを順に実行した場合の結果と同じになることが保証されます。 これにより、衝突を完全に防ぐことができます。 これは、ObjectScript で適切にロックを使用しても実現できる上に、適用方法も多数あります。 つまり、LOCK コマンドを使えば、普通のロックやインクリメンタルロックを作成したり、ロックを複数個作成することもできます。
それでは、ロックを使って異なる分離レベルを作る方法を見てみましょう。 ObjectScript では、[LOCK オペレーター](https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=RCOS_clock)を使います。 このオペレーターは、データを変更するのに必要な排他ロックに限らず、共有ロックと呼ばれるロックも許可します。 共有ロックは、複数のスレッドがデータを読み取る目的で同時にアクセスできるロックであり、そのデータが読み取りプロセス中に他のプロセスによって変更されることはありません。
ロック方式に関する詳細については、[「ロックと並行処理の制御」](https://docs.intersystems.com/irislatestj/csp/docbook/DocBook.UI.Page.cls?KEY=ALOCK)と題した記事をお読みください。 ツーフェーズロック方式の詳細については、Wikipedia で[「ツーフェーズロック」](https://ja.wikipedia.org/wiki/%E3%83%84%E3%83%BC%E3%83%95%E3%82%A7%E3%83%BC%E3%82%BA%E3%83%AD%E3%83%83%E3%82%AF)と題された記事をお読みください。
難しいのは、トランザクションの実行中に、データの状態の一貫性が失われ、そのデータが他のプロセスに表示されてしまうという点です。 これはどうすれば回避できるのか? この例では、ロックを使って、データベースの状態が一貫して持続される可視性ウィンドウを作成します。 可視性ウィンドウには、ロックを使ってアクセスします。
同じデータに使われているロックは、再利用できるほか、複数のプロセスによる取得が可能です。 これらのロックを使うことで、データが他のプロセスにより変更されるのを防ぎます。 つまり、データベースの状態を一貫させるためのウィンドウを形成するのに使用されるというわけです。
一方の排他ロックは、データを変更するときに使用されるもので、一度に 1 つのプロセスしか取得できません。
排他ロック方式を使用できるシナリオは、2 つあります。 1 つ目は、対象となるデータに対し他のプロセスがロックを取得していないため、どのプロセスでもアクセスできるという場合。 2 つ目は、対象となるデータに対し共有ロックを取得し、かつ排他ロックを最初にリクエストしたプロセスだけがそのデータにアクセスできるという場合。

可視性ウィンドウが狭ければ狭いほど、他のプロセスが待機する時間が長くなる一方で、その中にあるデータベースの状態の一貫性は高まります。
**READ COMMITTED** では、他のスレッドがコミットしたデータしか見えないようになります。 他のトランザクションのデータがまだコミットされていない場合は、古いバージョンが表示されます。 このおかげで、ロックがリリースされるのを待たずに、作業を並列化することができます。
IRIS では、データの古いバージョンを見るには、特殊な裏技が必要になるので、ロックで何とか対処するしかありません。 共有ロックを使って、一貫性が維持されているポイントでのみデータの読み取りを許可する必要があります。
例えば、複数のユーザー「^person」で構成されるデータベースがあり、ユーザー間で資金の送金が行われるとします。 以下のコードは、person 123 から person 242 に資金が送金されるポイントを示しています。
LOCK +^person(123), +^person(242)
TSTART
Set ^person(123, amount) = ^person(123, amount) - amount
Set ^person(242, amount) = ^person(242, amount) + amount
TCOMMIT
LOCK -^person(123), -^person(242)
金額が差し引かれる前の段階で、person 123 に送金のリクエストが出るポイントでは、(デフォルトで) 排他ロックが取得されている必要があります。
LOCK +^person(123)
Write ^person(123)
ですが、ユーザーの個人アカウントのアカウント状況を表示する必要がある場合は、共有ロックを使うか、ロックを一切使わないという選択肢があります。
LOCK +^person(123)#”S”
Write ^person(123)
LOCK -^person(123)#”S”
但し、データベースの操作がほぼ瞬間的に実行されることを許可するのであれば (グローバルはリレーショナルテーブルよりもずっと下位のレベルの構造であることをお忘れなく)、より高い分離レベルが優先されるのでこのレベルはさほど必要ではなくなります。
以下は、READ COMMITTED の完全な例です。
LOCK +^person(123)#”S”, +^person(242)#”S”
Read data (сoncurrent committed transactions can change the data)
LOCK +^person(123), +^person(242)
TSTART
Set ^person(123, amount) = ^person(123, amount) - amount
Set ^person(242, amount) = ^person(242, amount) + amount
TCOMMIT
LOCK -^person(123), -^person(242)
Read data (сoncurrent committed transactions can change the data)
LOCK -^person(123)#”S”, -^person(242)#”S”
**REPEATABLE READ** は、2 番目に高い分離レベルです。 このレベルでは、1 つのトランザクションでデータが複数回読み取られ、その都度同じ結果が出ること、かつ並列に実行されているトランザクションがそのデータを変更できることを許可します。
分離レベルを確実に REPEATABLE READ にするには、データに対し排他ロックを取得します。それにより、分離レベルは自動的に SERIALIZABLE に引き上げられます。
LOCK +^person(123, amount)
read ^person(123, amount)
その他の操作 (並列ストリームは ^person(123, amount) を変更しようと試みますができません)
change ^person(123, amount)
read ^person(123, amount)
LOCK -^person(123, amount)
ロックがコンマで区切られている場合は、連続的に取得されていることを意味します。 ですが、以下のようにリストアップされている場合は、一斉にアトミックに取得されます。
LOCK +(^person(123),^person(242))
SERIALIZABLE は、最も高い分離レベルであり、コストも一番高くなります。 上の例で行ったように、従来のロックを操作する場合は、同じデータを持つすべてのトランザクションが連続的に実行されるようにロックを設定する必要があります。 このアプローチでは、ほぼすべてのロックが排他ロックである必要があり、パフォーマンスを確保するためにグローバルの最も小さいフィールドに対し取得される必要もあります。
^person グローバルから金額を差し引くという場合、SERIALIZABLE 以外のレベルは使えません。 資金の消費は、あくまで連続的なアクションである必要があり、そうでなければ同じ金額が複数回も消費されることになります。
## 4. 永続性
docker kill my-iris コマンドを使い、コンテナの hard cut-off をテストしたところ、 データベースはこれらのテストに対して良い結果を出し、 問題は一切見られませんでした。
## グローバルとロックを管理するためのツール
IRIS Management ポータルでご紹介している以下のツールがお役に立つかもしれません:
[ロックを管理](http://localhost:52773/csp/sys/op/%25CSP.UI.Portal.Locks.zen)。
[グローバル](http://localhost:52773/csp/sys/exp/%25CSP.UI.Portal.GlobalList.zen?%24NAMESPACE=USER)。
## 結論
InterSystems IRIS は、グローバルを使ったアトミックかつ永続的なトランザクションをサポートしています。 データベースとグローバルの一貫性を確保するには、ある程度のプログラミングやトランザクションが必要です。それは、外部キーなどの複雑な構造が組み込まれていないためです。
ロックを取得せずにグローバルを使うのは、READ UNCOMMITTED の分離レベルを使うのと同じことですが、ロックを使えばそのレベルを SERIALIZABLE に引き上げることができます。 グローバルを使って実現可能な正確性およびトランザクションの処理速度は、プログラマーのスキルと意図によって大きく左右します。 データを読み取るときに、共有ロックが使用される幅が広ければ広いほど、それだけ分離レベルは高くなります。 また、排他ロックが使用される幅が狭ければ狭いほど、それだけトランザクションの処理速度も速くなります。
記事
Toshihiko Minamoto · 2021年1月28日
独自の組織データアーキテクチャを書き、InterSystems IRIS にマッピングする必要がある場合は、以下にご紹介するデータアーキテクチャダイアグラムおよび InterSystems IRIS ドキュメンテーションのリファレンスに記載されている内容を考慮してください。
.png)
## **アーキテクチャマッピング**
SQL データベース: https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=GSQL
管理されるファイル: https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=AFL_mft および https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=SETEDIGuides
IoT ブローカー、イベント、センサー: https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=EMQTT
メッセージ: https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=EMQS
NoSQL: https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=GDOCDB
API と Web サービス: https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=GREST, https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=GSOAP, https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=AFL_iam および https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=PAGE_interoperability
ETL: https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=SETAdapters, https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=EDTL, https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=EBPL および
EAI コネクタ: https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=SETAdapters
XEP イベント: https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=BJAVXEP, https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=BNETXEP,
ビッグデータの取り込み: https://docs.intersystems.com/irislatestj/csp/docbook/DocBook.UI.Page.cls?KEY=BSPK
AI: https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=PAGE_text_analytics, https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=APMML, https://docs.intersystems.com/irislatestj/csp/docbook/DocBook.UI.Page.cls?KEY=PAGE_python_native, https://www.intersystems.com/br/resources/detail/machine-learning-made-easy-intersystems-integratedml/
プロセス: https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=EBPL
コーポレートサービス: https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=EESB および https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=AFL_iam
メモリ内: https://docs.intersystems.com/irislatestj/csp/docbook/DocBook.UI.Page.cls?KEY=GSCALE_ecp
コンテンツ: https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=GDOCDB
文字列: https://docs.intersystems.com/irislatestj/csp/docbook/DocBook.UI.Page.cls?KEY=AFL_textanalytics
保護: https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=SETSecurity, https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=TSQS_Applications, https://docs.intersystems.com/irislatestj/csp/docbook/DocBook.UI.Page.cls?KEY=GCDI および https://docs.intersystems.com/irislatestj/csp/docbook/DocBook.UI.Page.cls?KEY=GCAS
インベントリ: https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=GSA_using_portal および https://docs.intersystems.com/irislatestj/csp/docbook/DocBook.UI.Page.cls?KEY=GOBJ_xdata
プライバシー: https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=GCAS_encrypt
IT ライフサイクル、バックアップ、復元: https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=GSA_using_portal, https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=GCDI_backup
アクセス管理:
https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=TSQS_Authentication, https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=TSQS_Authorization, https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=TSQS_Applications
レプリケーションおよび HA (高可用性): https://docs.intersystems.com/irislatestj/csp/docbook/DocBook.UI.Page.cls?KEY=PAGE_high_availability
モニタリング: https://docs.intersystems.com/sam/csp/docbook/DocBook.UI.Page.cls?KEY=ASAM および https://docs.intersystems.com/irislatestj/csp/docbook/DocBook.UI.Page.cls?KEY=PAGE_monitoring
IT オペレーション: https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=PAGE_platform_mgmt
* ## 視覚化: https://docs.intersystems.com/irislatestj/csp/docbook/DocBook.UI.Page.cls?KEY=PAGE_bi
記事
Hiroshi Sato · 2021年11月11日
これは InterSystems FAQ サイトの記事です。
設定内容によって、方法が異なります。
システム構成について管理ポータルの [システム管理] > [構成]
以下の設定については(※1)、パラメータファイル(InterSystems IRISは iris.cpf、Caché/Ensemble/HealthShareは cache.cpf) に格納されます。
このファイルはテキストファイルとなっていますのでこのファイルの一部を他のシステムにコピーして反映させることが可能です。 ただし、ディレクトリ名など各システム固有の情報が多く含まれるため、そのままファイル全体をコピーしても設定内容を反映させることはできません。 (※1) 【Caché/Ensemble2010.2以前】 [システム管理ポータル] > [構成] (システム構成) メニュー以下の設定が対象です。 パラメータ・ファイルの各項目については、以下ドキュメントをご参照ください。 InterSystems パラメータ・ファイル・リファレンスについて【IRIS】 Caché パラメータ・ファイル・リファレンスについて
セキュリティについて^SECURITY ユーティリティを使用してエクスポート/インポートすることが可能です。 ターミナルを起動し、%SYSネームスペースで以下のコマンドを実行してください。
%SYS>Do ^SECURITY
1) User setup2) Role setup3) Service setup4) Resource setup5) Application setup6) Auditing setup8) SSL configuration setup9) Mobile phone service provider setup10) OpenAM Identity Services setup11) Encryption key setup12) System parameter setup13) X509 User setup14) KMIP server setup15) ExitOption? 121) Edit system options2) Edit authentication options3) Edit LDAP options4) Display system options5) Export All Security settings <-- エクスポート6) Import All Security settings <-- インポート7) ExitOption? 5 または 6
注意) Caché/Ensemble 2011.1.0より前のバージョンでは、上記ツールで SQL TABLE のセキュリティ設定をエクスポート/インポートすることができません。 その場合は、%System.SQLクラスのクラスメソッドExport()を使用して行うことが可能です。 詳細は以下ドキュメントをご参照ください。 %SYSTEM.SQLのクラスリファレンスについて
開発機のサーバ接続リスト (優先接続サーバ)について こちらは、InterSystems製品でエクスポート/インポートする方法はご提供していません。
サーバの定義はWindowsシステムのレジストリに格納しています(全製品共通)。
32bitHKEY_LOCAL_MACHINE\SOFTWARE\InterSystems\Cache\Servers
64bit
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\InterSystems\Cache\Servers
お知らせ
Toshihiko Minamoto · 2021年4月24日
みなさん、こんにちは。今回はInterSystems Container Registryを発表できることをうれしく思います。 これはコンテナベースのリリースやプレビューにアクセスする新たな配布チャンネルです。すべてのコミュニティエディションのイメージはログイン不要の公開リポジトリにあります。すべてのリリースイメージ(IRIS, IRIS for Health, Health Connect, System Alerting and Monitoring, InterSystems Cloud Manager) やユーティリティイメージ(アービター、 Web Gateway、PasswordHash等) にはWRCアカウントの認証情報から生成されるログイントークンが必要です。
WRC配布サイトは当面の間、引き続きTar形式などのリリースイメージを提供します。しかしながら、CI/CDパイプラインを「docker pull」でInterSystems Container Registryから直接イメージを取得するよう設定できるようになりました。
レジストリにはhttps://containers.intersystems.comでアクセスできます。以下の内容やドキュメント (Using the InterSystems Container Registry) の使用方法をご参照ください。実行時の問題や共有したいフィードバックがありましたら、以下にコメント頂くか、jpnsup@intersystems.comまでご連絡ください。
--------------------------------------------------------------
InterSystems Container Registryの使い方
ここでは、https://containers.intersystems.comにあるInterSystems Container Registry (ICR)の使用手順を記載します。
ICRのイメージは以下の例のように docker pull コマンドでダウンロードできます。
docker pull containers.intersystems.com/intersystems/iris-community:2020.4.0.547.0
ダウンロードできるイメージの一覧は InterSystemsの利用可能なコンテナイメージ をご参照ください。
このドキュメントには以下の章に分かれています。
ICRへの認証
ICRの収録イメージ一覧
ICRへの認証
ICRには以下の手順でログインできます。
ブラウザより https://containers.intersystems.com/ にアクセスし、インターシステムズWRC認証情報でログインします。
Dockerログイントークンかログインコマンドを取得します。
取得した認証情報を使い、Dockerインターフェース(PowerShellウインドウやLinuxコマンドラインなど)でICRへの認証を行います。以下の例のように、表示されるDocker ログインコマンドをコピー、ペーストすることで認証できます。
docker login -u="bbinstoc" -p="provided_password" containers.intersystems.com
セキュリティの観点から、コマンド docker login containers.intersystems.com を入力しますと、Username プロンプトにユーザ名、Password プロンプトにパスワードを入力できます。
注意: 別のDockerレジストリにログインした場合、Dockerログインコマンドでエラーが発生することがあります。別のDockerレジストリをログアウトしてから、containers.intersystems.comにログインしてください。
以下の例のようにICRからイメージをpullすることができます。
docker pull containers.intersystems.com/intersystems/iris:2020.4.0.547.0
ICRでの収録一覧
Dockerレジストリにてイメージやタグで一覧を取得するAPIが利用できます。レジストリの内容を一覧するものとして利用できるオープンソースなサードパーティーユーティリティの一例としてdocker-ls があります。 https://github.com/mayflower/docker-ls より取得できます。
このユーティリティを入手する方法としては
様々なプラットホームに対応した コンパイルされた docker-ls バイナリ をダウンロードします。
プラットホーム上で直接ユーティリティをインストールします。例としてLinuxシステムでは以下のコマンドを使用します。
sudo snap install docker-ls
ユーティリティをインストールするLinuxプラットホームでイメージ carinadigital/docker-ls:latest をPull、実行します。
docker run --rm carinadigital/docker-ls:latest
docker-ls がインストールされると、ICRのリポジトリをリストする以下のコマンドが使用できます。
docker-ls repositories --registry https://containers.intersystems.com --user username --password password
注意: コマンドライン上にパスワードを含めるのではなく、パスワードの入力を促す --interactive-password オプションをご利用ください。
パブリックに利用できるイメージのみを一覧するには --user や --password オプションの引数として空文字("")を指定してください。以下はパブリックなInterSystems IRIS for Healthイメージを一覧する例です。
docker-ls tags --registry https://containers.intersystems.com --user "" --password "" intersystems/irishealth-community
パブリックでないイメージの一覧を見るには、containers.intersystems.comにログインしているかどうかにかかわらず、このユーティリティにユーザ名とパスワードを指定する必要があります。
その他の例は https://github.com/mayflower/docker-ls をご参照ください。
記事
Mihoko Iijima · 2021年9月7日
これは InterSystems FAQ サイトの記事です。
Windows システムにインストールされた InterSystems 製品を削除するには、コントロールパネルにあるプログラムの追加と削除(Windows 10の場合は、Windows の設定からアプリを選択)を使用します。
システムに変更を加えますので、管理者権限を持ったユーザでログインして作業を行う必要があります。
1) 管理者(Administrator)でシステムにログインします。
2) システムトレイから、アンインストールを行う InterSystems 製品インスタンスのランチャーを終了します(ランチャークリック → 終了)。
3)コントロールパネルにある プログラムの追加と削除 (Windows 10の場合は、Windows の設定からアプリを選択)で
<InterSystems製品> instance [xxxx] ( xxxx にはインスタンス名が表示されています) を削除します。
例:InterSystems IRIS instance [IRIS]
4) InterSystems 製品インストールディレクトリ(既定では C:\InterSystems\<InterSystems製品> )を Windows エクスプローラ等を使用して削除します。
上記手順ですべての InterSystems 製品インスタンスをシステムからアンインストールした後に、以下の手順で残った情報を削除することができます。
<完全削除>
a. 関連レジストリキーの削除
以下のレジストリキーを削除します(*)。
[HKEY_LOCAL_MACHINE\SOFTWARE\InterSystems]
[HKEY_CURRENT_USER\SOFTWARE\InterSystems]
[HKEY_USER\xxxxxxxx\SOFTWARE\InterSystems] (このキーがあればこちらも削除)
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Intersystems] (64bitシステムのみ)
注意:レジストリの操作を誤るとシステムに深刻な影響を及ぼす危険性があります。こちらの作業を行われる前に復元ポイントの作成などバックアップを行っておくことを強く推奨します。
b. 共通ファイルの削除
以下のフォルダにインスタンス共通ファイルが保存されていますので Windows エクスプローラ等を使用して削除します。
C:\Program Files\Common Files\Intersystems
c. IIS追加コンポーネントの削除
Windows システムに IIS(インターネットインフォメーションサービス)がインストールされており、IIS 用の追加コンポーネント(CSPゲートウェイ/Webゲートウェイ)がインストールされている場合は次のフォルダが存在しますので削除します。
C:\Inetpub\CSPGateway
d.VC++ランタイムライブラリの削除
他のアプリケーションで参照・使用していない場合、以下の再配布ランタイムライブラリを削除することができます。
Microsoft Visual C++ 2008 Redistributable - x86 xxxx
※Windows の設定のアプリと機能で削除します。
お知らせ
Mihoko Iijima · 2021年12月15日
開発者の皆さん、こんにちは!
InterSystems IRIS 2021.2 Preview 版 がリリースされました。新しい機能として LOAD DATA があります。
ということで、今回のコンテストでは、この新しい「LOAD DATA」をテストするコンテストにしてみたいと思います!
🏆 InterSystems Datasets Contest 🏆
応募期間: 2021年12月27日~2022年1月9日
💰 賞金総額: $9,450 💰
優勝特
1. Experts Nomination- 審査員から多く票を集めたアプリケーションには、以下の賞金が贈られます。
🥇 1位 - $4,000
🥈 2位 - $2,000
🥉 3 位 - $1,000
🌟 4-10 位 - $100
2. Community winners - 開発者コミュニティで多く票を集めたソリューションには、以下の賞金が贈られます。
🥇 1 位 - $1,000
🥈 2 位 - $500
🥉 3 位 - $250
複数の参加者が同数の票を獲得した場合、全参加者が勝者となり賞金は勝者間で分配されます。
参加資格
どなたでもご参加いただけます!(InterSystems 開発者コミュニティのアカウントを作成するだけでご応募いただけます)
👥 開発者がチームを組んで共同でアプリケーションを作成し、応募することもできます! 1チーム 2~5名 までご参加いただけます。
チームでご応募いただく場合は、アプリケーションの README にチームメンバー名の記載をお忘れなく!!(開発者コミュニティのプロファイルのリンクもお願いします)
コンテストのスケジュー
🛠 2021年12月27日~2022年1月9日 応募期間
✅ 2022年1月10日~15日 投票(1週間)
応募、投票期間中、アップロードしたアプリケーションは改良できます。
2022年1月16日 勝者発表(US時間に発表します)
コンテストのテーマ
これまでのプログラミングコンテストで最も議論された問題のひとつに、データセットがないことがあげられます。特定の分野や産業に関するプロジェクトのアイデアがあるたびに、関連するデータセットが必要となり、コンテストでの作業の一部に、データセットを見つける/準備する/ロードするための時間が必要になります。
ということで、データセットコンテストを開催することにしました!
そして、インターシステムズコミュニティに役立つデータセットをいくつか準備していきましょう!
どんなデータセットを用意したらいいでしょうか。
InterSystems IRIS のネームスペースにデータセットをロードするリポジトリをご用意ください。
1 つの方法として、ZPM パッケージを利用したプロジェクトの提供方法があります。ZPMパッケージを利用するとデータをパッケージ内に格納できます。また、パッケージは URL から IRIS インスタンスにデータをロードするメソッドを持つことができます。あなたの作成したプロジェクトがインストールされると、特定のトピック、テーマ、アイデア、産業などに関連するクラスとそのデータをインストール環境にロードすることができます。
プロジェクトは、SQLクエリ、REST API、または両方を使用したデータの利用方法を含める必要があります。
さらに、データの視覚化を行うことで、ボーナスポイントを獲得できます。データの視覚化とAPIを両方含めてプロジェクトとしてご応募いただいても良いですが、必須ではありません。
リポジトリへのデータの保存方法は問いません。例えば、以下のようなことが考えられます。
グローバルのエクスポート(GOF形式よりもXML形式が望ましいです)
データを作成するSQL文
IRIS内にデータを生成する ObjectScript コード(または Java、js、pythonなども可)
外部データの API との連携
プロジェクトの例は以下の通りです。
Dataset-titanic,
Dataset-countries,
Posts and tags,
Synthea
応募条件:
クラスの命名規則について: クラス名は、dc.data.あなたのプロジェクトの名称.クラス名 としてください。例)トレーディングデータに関するデータセットがある場合、クラス名は次のようになります: dc.data.finance.transaction, dc.data.finance.instrument
データ参照元の提示:インターネット上から取得したデータセットを使用して InterSystems IRIS 用に加工した場合は、そのソースへのリンクを提示してください。オリジナルデータである場合は、その使用許諾を記入してください。
ZPMパッケージは、dataset-countries, dataset-titanicのように、"dataset-"で始まる名前でなければなりません。
また、いつものように、docker、デモの用意、記事の公開、ZPMパッケージでの提供、ビデオ公開 などのテクニカルボーナスを用意する予定です。
データセットのライセンスを提供してください。
👉 データセットの一般的なライセンスタイプ (the source)
Spoiler
Common licenses in order of most open to most restrictive:
PUBLIC DOMAIN MARK - PUBLIC DOMAIN
Dedicate your dataset to the public domain: This isn’t technically a license since you are relinquishing all your rights in your dataset by choosing to dedicate your dataset to the public domain. To donate your work to the public domain, you can select “public domain” from the license menu when creating your dataset.
OPEN DATA COMMONS PUBLIC DOMAIN DEDICATION AND LICENSE - PDDL
This license is one of the Open Data Commons licenses and is like a public domain dedication. It allows you, as a dataset owner, to use a license mechanism to surrender your rights in a dataset when you might not otherwise be able to dedicate your dataset to the public domain under applicable law.
CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL CC-BY
This license is one of the open Creative Commons licenses and allows users to share and adapt your dataset so long as they give credit to you.
COMMUNITY DATA LICENSE AGREEMENT – CDLA PERMISSIVE-2.0
This Community Data License Agreement is similar to permissive open source licenses such as the MIT license. It allows users to use, modify and adapt your dataset and the data within it, and to share it. The CDLA-Permissive-2.0 terms explicitly do not impose any obligations or restrictions on results obtained from users’ computational use of the data. The 2.0 version is significantly shorter, uses plain language to express the grant of permissions and requirements. The only obligation is to "make available the text of this agreement with the shared Data," including the disclaimer of warranties and liability.
OPEN DATA COMMONS ATTRIBUTION LICENSE - ODC-BY
This license is one of the Open Data Commons licenses and allows users to share and adapt your dataset so long as they give credit to you.
CREATIVE COMMONS ATTRIBUTION-SHAREALIKE 4.0 INTERNATIONAL - CC-BY-SA
This license is one of the open Creative Commons licenses and allows users to share and adapt your dataset so long as they give credit to you and distribute any additions, transformations or changes to your dataset under this license. We consider this license (a.k.a a viral license) problematic since others may decide not to work with your CC-BY-SA licensed dataset if there is risk that by doing so their work on your dataset will need to be shared under this license when they would rather use another license.
COMMUNITY DATA LICENSE AGREEMENT – CDLA-SHARING-1.0
This license is one of the Community Data License Agreement licenses and was designed to embody the principles of "copyleft" in a data license. It allows users to use, modify and adapt your dataset and the data within it, and to share the dataset and data with their changes so long as they do so under the CDLA-Sharing and give credit to you. The CDLA-Sharing terms explicitly do not impose any obligations or restrictions on results obtained from users’ computational use of the data.
OPEN DATA COMMONS OPEN DATABASE LICENSE - ODC-ODBL
This license is one of the Open Data Commons licenses and allows users to share and adapt your dataset so long as they give credit to you and distribute any additions, transformation or changes to your dataset under this license. We consider this license (a.k.a a viral license) problematic since others may decide not to work with your ODC-ODbL licensed dataset if there is risk that by doing so their work on your dataset will need to be shared under this license when they would rather use another license.
CREATIVE COMMONS ATTRIBUTION-NONCOMMERCIAL 4.0 INTERNATIONAL - CC BY-NC
This license is one of the more restrictive Creative Commons licenses. Users can share and adapt your dataset if they give credit to you and do not use your dataset for any commercial purposes.
CREATIVE COMMONS ATTRIBUTION-NODERIVATIVES 4.0 INTERNATIONAL - CC BY-ND
This license is one of the more restrictive Creative Commons licenses. Users can share your dataset if they give credit to you, but they cannot make any additions, transformations or changes to your dataset under this license.
CREATIVE COMMONS ATTRIBUTION-NONCOMMERCIAL-SHAREALIKE 4.0 INTERNATIONAL - CC BY-NC-SA
This license is one of the most restrictive Creative Commons licenses. Users can share your dataset only if they (1) give credit to you, (2) do not use your dataset for any commercial purposes, and (3) distribute any additions, transformations or changes to your dataset under this license. We consider this license a viral license since users will need to share their work on your dataset under this same license and any users of the adapted dataset would likewise need to share their work on the adapted dataset under this license and so on for any other changes to those modified datasets.
CREATIVE COMMONS ATTRIBUTION-NONCOMMERCIAL-NODERIVATIVES 4.0 INTERNATIONAL - CC BY-NC-ND
This license is one of the most restrictive Creative Commons licenses. Users can share only your unmodified dataset if they give credit to you and do not share it for commercial purposes. Users cannot make any additions, transformations or changes to your dataset under this license.
ADDITIONAL LICENSE COVERAGE OPTIONS
If a license is not listed in the data.world menu options, you may select Other and specify the details in the summary of your dataset.
NO LICENSE SPECIFIED
No one can use, share, distribute, re-post, add to, transform or change your dataset if you have not specified a license.
These descriptions are only summaries of these licenses. For the actual text of the licenses, which we strongly encourage you to read, click on the links provided.
Summary of common license types:
PUBLIC DOMAIN
The work has been dedicated to the public domain by waiving all rights to the work worldwide under copyright law, including all related and neighboring rights, to the extent allowed by law.
ATTRIBUTION
You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
SHARE-ALIKE
If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original.
NON-COMMERCIAL
You may not use the material for commercial purposes.
DATABASE ONLY
License applies to the database only and not its contents or data.
NO DERIVATIVES
No Derivative Works. You may not alter, transform, or build upon this work.
All licenses that begin with CC-BY in the table above refer to version 4.0 of those licenses.
一般的な応募条件:
応募可能なアプリケーション
Open Exchange アプリケーションの新規作成、または既存アプリケーションであっても大幅に改善されているものであればご応募いただけます。
コミュニティの担当チームは、コンテストへの応募を承認する前に申請された全アプリケーションをレビューします。
全てのアプリケーションは IRIS Community Edition 、 IRIS for Health Community Edition 、 IRIS Advanced Analytics Community Edition のいずれかで動作する必要があります。
アプリケーションはオープンソースであり、GitHubで公開されている必要があります。
アプリケーションの README ファイルは、英語で記述してください(日本語で記述したものがあればそのまま掲載いただき、英文の追記をお願いします)。また、インストール手順や、アプリケーションがどのように動作するかの説明、またはビデオデモを含めてください。
Helpful resources
1. InterSystems IRIS を初めて利用される方向け
Build a Server-Side Application with InterSystems IRIS
Learning Path for beginners
【はじめての InterSystems IRIS】セルフラーニングビデオ 索引
その1:InterSystems IRIS Community Edition をインストールしてみよう!
その2:InterSystems IRIS で開発をはじめよう!
その3:IRIS でクラス定義を作ろう(オブジェクト操作の練習)
2. 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
3. コンテストへの応募方法
4. その他:
InterSystems IRIS 2021.2 Preview
LOAD DATA
審査及び投票ルール
投票ルールは近日公開します。
皆様からの✨素敵な✨プロジェクトをお待ちしております!コミュニティのコーディングマラソンに参加して、優勝を目指しましょう!(ง`0´)ง
❗️ コンテスト規約については、こちらをご参照ください。❗️
ご応募方法について
以下の応募方法ビデオをご参照ください。
以下、コンテストに応募する迄の手順をご説明します。
コンテスト応募までの流れは以下の通りです(※ビデオでは、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 · 2022年1月17日
開発者の皆さん、こんにちは!
InterSystems データセットコンテスト の投票結果が発表されました!この記事ではコンテスト受賞者を発表します!
受賞された開発者の皆さん、👏おめでとうございます!🎊
🏆 Experts Nomination -- 特別に選ばれた審査員によって選出されました。
🥇 1位 - $4,000 は、Medical Datasets を開発された @Muhammad.Waseem さんに贈られました。
🥈 2位 - $2,000 は、iris-kaggle-socrata-generator を開発された @José.Pereira さんと @Henrique.GonçalvesDias さんに贈られました。
🥉 3位 - $1,000 は、Health Dataset を開発された @Yuri.Gomes さんに贈られました。
さらに!
🏅 $100 - ApacheLog-Dataset を開発された @Evgeniy.Potapov さんに贈られました。
🏅 $100 - exchange-rate-cbrf を開発された @MikhailenkoSergey さんに贈られました。
🏅 $100 - dataset-finance を開発された @Oliver.Wilms さんに贈られました。
🏅 $100 - openflights_dataset を開発された @Andreas.Schneider さんに贈られました。
🏅 $100 - iris-python-faker を開発された @Dmitry.Maslennikov さんに贈られました。
🏅 $100 - Dataset OEX reviews を開発された @Robert.Cemper1003 さんに贈られました。
🏅 $100 - Dataset Lightweight M:N を開発された @Robert.Cemper1003 さんに贈られました。
🏅 $100 - dataset-covid19-fake-news を開発された @Henry.HamonPereira さんに贈られました。
🏆 Community Nomination - 最も多くの票を獲得したアプリケーションに贈られます。
🥇 1位 - $1,000 は、 iris-kaggle-socrata-generator を開発された @José.Pereira さんと @Henrique.GonçalvesDias さんに贈られました
🥈 2位 - $500 は、Medical Datasets を開発された @Muhammad.Waseem さんに贈られました
🥉 3位 - $250 は、iris-python-faker を開発された @Dmitry.Maslennikov さんに贈られました
🎊 受賞者の皆様、おめでとうございます!👏
今回も、コンテストにご注目いただきありがとうございました!
記事
Toshihiko Minamoto · 2021年10月26日
InterSystems IRISを初めて使用し始める際には、最低限のセキュリティレベルでのみシステムをインストールするのが通例です。 パスワードを入力する回数が少なくて済むため、初めて作業を始めるときに、開発サービスやWebアプリケーションの操作がより簡単になるからです。 また、開発済みのプロジェクトまたはソリューションをデプロイする際には、最小限のセキュリティを適用している方が便利な場合があります。 それでも、プロジェクトを開発環境から非常に敵対的な可能性のあるインターネット環境に移行する時が来れば、本番環境にデプロイされる前に、最大限のセキュリティ設定(つまり、完全なロックダウン状態)でテストしなければなりません。 これがこの記事の論点です。
InterSystems Caché、Ensemble、およびIRISにおけるDBMSセキュリティ問題をさらに包括的に説明した記事については、私の別の記事、「[Recommendations on installing the InterSystems Caché DBMS for a production environment](https://community.intersystems.com/post/recommendations-installing-intersystems-cach%C3%A9-dbms-production-environment)」(本番環境向けにInterSystems Caché DBMS をインストールするための推奨事項)をご覧ください。 InterSystems IRISのセキュリティシステムは、さまざまなカテゴリ(ユーザー、サービス、リソース、特権、およびアプリケーション)に異なるセキュリティ設定を適用する概念に基づいています。 
ユーザーにはロールを割り当てることができます。 ユーザーとロールには、データベース、サービス、およびアプリケーションといったリソースに対し、さまざまな読み取り、書き込み、および使用の権限を付与することができます。 ユーザーとロールには、データベースのSQLテーブルに対するSQL特権も与えられます。
# セキュリティレベルの違い
InterSystems IRISをインストールするときに、最小、通常、またはロックダウンというセキュリティレベルを選択できます。 レベルは、ユーザーエンゲージメントの程度、使用可能なロールとサービス、およびサービスとアプリケーションの認証方法の構成に違いがあります。 詳細については、『InterSystems IRISのインストール準備』ガイドの「[InterSystemsセキュリティの準備](https://docs.intersystems.com/irislatestj/csp/docbook/Doc.View.cls?KEY=GCI_prepare_install#GCI_security)」セクションをご覧ください。
ドキュメントには、レベルごとのセキュリティ設定を説明する、以下の表が含まれています。 この設定の変更は、システム管理ポータルのインターフェースで行えます。
## ユーザーセキュリティの初期設定
| セキュリティ設定 | 最小限 | 通常 | ロックダウン |
| --------------------- | ------- | ------- | ------- |
| パスワードのパターン | 3.32ANP | 3.32ANP | 8.32ANP |
| 非アクティブになる期間 | 0 | 90日 | 90日 |
| _SYSTEMユーザーの有効化 | 可 | 可 | 不可 |
| UnknownUserに割り当てられるロール | %All | なし | なし |
## サービスの初期プロパティ
| サービスプロパティ | 最小限 | 通常 | ロックダウン |
| ---------- | ---- | ---- | ------ |
| パブリック許可を使用 | はい | はい | いいえ |
| 認証が必要 | いいえ | はい | はい |
| 有効化されたサービス | ほとんど | いくつか | 最小限 |
## 初期設定で有効にされているサービスの設定
| サービス | 最小限 | 通常 | ロックダウン |
| -------------------- | --- | -- | ------ |
| %Service_Bindings | 有効 | 有効 | 無効 |
| *%Service_CSP | 有効 | 有効 | 有効 |
| %Service_CacheDirect | 有効 | 無効 | 無効 |
| %Service_CallIn | 有効 | 無効 | 無効 |
| %Service_ComPort | 無効 | 無効 | 無効 |
| %Service_Console | 有効 | 有効 | 有効 |
| %Service_ECP | 無効 | 無効 | 無効 |
| %Service_MSMActivate | 無効 | 無効 | 無効 |
| %Service_Monitor | 無効 | 無効 | 無効 |
| %Service_Shadow | 無効 | 無効 | 無効 |
| %Service_Telnet | 無効 | 無効 | 無効 |
| %Service_Terminal | 有効 | 有効 | 有効 |
| %Service_WebLink | 無効 | 無効 | 無効 |
*InterSystems IRISの場合、%Service_CSPは%Service_WebGatewayを適用します。
使用されるサービスは、オペレーティングシステムごとにわずかに異なります。
# セキュリティを向上させるには
有効なサービスごとに、適切な認証方法(非認証、パスワード、Kerberos、または委任)を選択する必要があります。
また、システムで使用されていないWebアプリケーションを無効にする必要もあります。 有効になっているWebアプリケーションについては、正しい認証方法(認証済み、パスワード、Kerberos、委任、ログイン、またはcookie)を選択する必要があります。
もちろん、プロジェクトは顧客の要件に従って機能できるように、管理者がプロジェクトやソリューションごとにセキュリティ設定を選択するため、 ユーザーが作業を実際に行えるようにシステムの利便性を十分に維持しながら、侵入者を寄せ付けないように十分なセキュリティを保つバランスを常に取らなければなりません。 ご承知のとおり、最も安全なシステムは無効化されたシステムです。
システムのセキュリティレベルを何度も手動で引き上げる必要があるのであれば、それは、そういった問題を解決するソフトウェアモジュールを記述する必要があるという兆候に違いありません。 実際、InterSystems Open Exchangeには、セキュリティの向上に役立つロックダウンプログラムがあります。 プログラムのソースコードは、InterSystems [isc-apptools-lockdown](https://openexchange.intersystems.com/package/isc-apptools-lockdown)ページのリポジトリにあります。 LockDownプログラムは以下のことを行います。
### まず、プレインストールされた以下のユーザーのパスワードを変更します。
- Admin
- CSPSystem
- IAM
- SuperUser
- UnknownUser
- _Ensemble
- _SYSTEM
### 次に、以下を除くすべてのサービスを無効にします。
- %%service_webゲートウェイ
- %service_console
- %service_login
- %service_terminal
### さらに、以下を含むすべてのWebアプリケーションにパスワード保護を設定します。
- /csp/ensdemo
- /csp/samples
- /csp/user
- /isc/studio/usertemplates
- /csp/docbook
- /csp/documatic
- /isc/studio/rules
- /isc/studio/templates
### 最後に、以下のようなシステムワイドのセキュリティパラメーターを設定します。
- パスワードの複雑さ「8.32 ANP」
- 90日間の非利用アカウント制限
- 監査およびすべてのセキュリティ関連イベント LockDownプログラムは、GitHubから[LockDown.cls](https://github.com/SergeyMi37/isc-apptools-lockdown/blob/master/src/cls/App/Security/LockDown.cls)をダウンロードして、システムにインストールできます。 そして、ターミナルモードで、以下を入力します。
```
USER>zn “%SYS”
%SYS>do $system.OBJ.Load("/home/irisusr/LockDown.cls","ck")
```
または、以下のコマンドを使用して、パブリックレジスタからZPMバッチマネージャを使ってインストールすることも可能です。
```
USER>zn “%SYS”
%SYS> zpm “install isc-apptools-lockdown”
```
# ロックダウンの実行
ロックダウンを実行する前に、バックアップを作成しておくことを強くお勧めします。 LockDownプログラムは、%SYS領域から実行する必要があります。 プレインストールされたすべてのユーザーのパスワードを変更しない場合は、最初のパラメーターを空のままにします。 IRIS Studio、Atelier、またはVSCodeを使ってプログラムとクラスを編集する機能を維持する場合は、%Service_Bindingsサービスを無効にしないでください。 これを確実に機能させるには、バインディング引数を1に設定する必要があります。 次に例を示します。
`do ##class(App.Security.LockDown).Apply("New Password 123",.msg,1)`
このモジュールには、システムパスワードが改ざんされた場合やロックダウンを実行せずにプレインストールされたすべてのアカウントを入れ替える必要がある場合に役立つ関数も含まれています。 次のようにして実行することができます。
`do ##class(App.Security.LockDown).Change Password("New Password 123", "Admin,CSPSystem,IAM,SuperUser,Unknown User, _Ensemble,_SYSTEM")`
ほとんどの場合、ロックダウンを実行した後は、アプリケーションあまたはプロジェクトが動作しなくなります。 これを修正するには、いくつかのセキュリティ設定を元の状態に復元する必要があります。 これは、管理ポータルインターフェース(セキュリティセクション)またはプログラムで実行できます。
# ロックダウン後のセキュリティ設定の変更
ロックダウン後、Webアプリケーションがパスワード以外の認証方法を使用している場合、それらを有効にする必要があります。 [zpm-registry-test-deployment](https://github.com/intersystems-community/zpm-registry-test-deployment/blob/master/Installer.cls)というソフトウェアモジュールを実行することをお勧めします。これには、ZPM-registryプロジェクト向けのLockDownの使用例が含まれています。 次のコードは、インストールの最後に適用されています。 プロジェクトは、最小限のセキュリティレベルでIRISにインストールされました。 以下は、コードが実行する必要のあった項目です。
- プレインストールされたすべてのユーザーのパスワードを変更する。
- このプロジェクトで使用されていないすべてのサービスを無効にする。
- Webアプリケーション/レジストリ(許可されていないユーザーはレジストリのパッケージのリストを取得できます)を除く、システム上の全アプリケーションのパスワード保護を有効にする。
- レジストリに新しいパッケージを公開する権限を持つ新しいユーザーを作成する。 このユーザーには、IRISAPPデータベースのプロジェクトテーブルに対する書き込み権限が必要です。
新しいユーザーを作成します。
```
set tSC= ##class(App.Security.LockDown).CreateUser(pUsername, "%DB_"_Namespace, pPassword, "ZMP registry user",Namespace)
If $$$ISERR(tSC) quit tSC
write !,"Create user "_pUsername
```
新しいユーザーと許可されていないユーザーの特権を追加します。
```
set tSC=##class(App.Security.LockDown).addSQLPrivilege(Namespace, "1,ZPM.Package", "s", "UnknownUser")
set tSC=##class(App.Security.LockDown).addSQLPrivilege(Namespace, "1,ZPM.Package", "s", pUsername)
set tSC=##class(App.Security.LockDown).addSQLPrivilege(Namespace, "1,ZPM.Package_dependencies", "s", pUsername)
set tSC=##class(App.Security.LockDown).addSQLPrivilege(Namespace, "1,ZPM_Analytics.Event", "s", pUsername)
set tSC=##class(App.Security.LockDown).addSQLPrivilege(Namespace, "9,ZPM.Package_Extent", "e", pUsername)
set tSC=##class(App.Security.LockDown).addSQLPrivilege(Namespace, "9,ZPM_Analytics.Event_Extent", "e", pUsername)
If $$$ISERR(tSC) quit tSC
write !,"Add privileges "
```
LockDownプログラムを実行します。
```
set tSC= ##class(App.Security.LockDown).Apply(NewPassSys)
If $$$ISERR(tSC) quit tSC
Change the settings for the web app so that an unknown user can log in:
set prop("AutheEnabled")=96
set tSC=##class(Security.Applications).Modify("/registry",.prop)
If $$$ISERR(tSC) quit tSC
write !,"Modify /registry "
Change the settings for the %service_terminal service, changing the authorization method to Operating System, Password:
set name="%service_terminal"
set prop("Enabled")=1
set prop("AutheEnabled")=48 ; Operating System,Password
set tSC=##class(Security.Services).Modify(name,.prop)
If $$$ISERR(tSC) quit tSC
write !,"Modify service terminal"
```
# まとめ
この記事では、システムのセキュリティレベルを引き上げる理由とこれをプログラムで実行する方法を説明し、InterSystems LockDownプログラムを使った例を紹介しました。
最初にシステム内のすべてを終了する方法を使用しました(つまり、最大セキュリティレベルを設定しました)。 次に、プロジェクトが機能するのに必要なサービスとアプリケーションのみを開いて、セキュリティを緩和しました。 他の方法やベストプラクティスが必ず存在すると思っています。コミュニティによるこの記事のディスカッションの一環として、それらについてぜひ聞かせてください。
お知らせ
Mihoko Iijima · 2021年11月2日
開発者の皆さん、こんにちは!
次の InterSystems オンラインプログラミングコンテストが決定しました!
お題は・・・・ 🏆 InterSystems Security Contest 🏆
応募期間は 2021年11月15日~11月28日 です!
💰 賞金総額: $9,450 💰
優勝特典
1. Experts Nomination- 審査員から多く票を集めたアプリケーションには、以下の賞金が贈られます。
🥇 1位 - $4,000
🥈 2位 - $2,000
🥉 3位 - $1,000
🌟 NEW PRIZES: 4位-10位 places - $100
2. Community winners - 開発者コミュニティで多く票を集めたソリューションには、以下の賞金が贈られます。
🥇 1st place - $1,000
🥈 2nd place - $500
🥉 3rd place - $250
複数の参加者が同数の票を獲得した場合、全参加者が勝者となり賞金は勝者間で分配されます。
参加資格
どなたでもご参加いただけます!(InterSystems 開発者コミュニティのアカウントを作成するだけでご応募いただけます)
👥 開発者がチームを組んで共同でアプリケーションを作成し、応募することもできます! 1チーム 2~5名 までご参加いただけます。
チームでご応募いただく場合は、アプリケーションの README にチームメンバー名の記載をお忘れなく!!(開発者コミュニティのプロファイルのリンクもお願いします)
コンテストのスケジュール
🛠 11月15日~28日 応募期間
✅ 11月29日~12月5日 投票(1週間)
応募、投票期間中、アップロードしたアプリケーションは改良できます。
12月6日 勝者発表(US時間に発表します)
コンテストのテーマ
今回のセキュリティコンテストでは、InterSystems IRIS および InterSystems IRIS for Health に関連するセキュリティタスクの実行方法を示すソリューションを開発者に提供いただきます。
InterSystems セキュリティモデルの「認可」と「認証」に関連するタスクをご応募ください。
以下のようなタスクが考えられます
OAuth/OpenID/SAML/LDAP 認証の実装
PKI の実装
REST API のアクセス管理:アプリケーションレベルのセキュリティ、ロール/ユーザレベルのセキュリティ
データへのアクセス管理:データベース上のテーブル、列、行レベルのアクセス管理
Interoperabilityコンポーネントへのアクセス
IRIS BI コンポーネントへのアクセス:キューブ、ピボット、ダッシュボードなど
認可(ユーザー、ロール、リソース)と認証(OAuth)の設定に関するDevOpsの疑問
認証と認可に関連する開発とサポート
あなたのアイデア!
応募要件は以下の通りです。
1. 応募可能なアプリケーション
Open Exchange アプリケーションの新規作成、または既存アプリケーションであっても大幅に改善されているものであればご応募いただけます。
コミュニティの担当チームは、コンテストへの応募を承認する前に申請された全アプリケーションをレビューします。
2.アプリケーションは IRIS Community Edition または IRIS for Health Community Edition 、IRIS Advanced Analytics Community Editionのいずれかで動作するものとしてください。
3.アプリケーションはオープンソースとして、GitHub で公開する必要があります。
4.アプリケーションの README ファイルは、英語で記述してください(日本語で記述したものがあればそのまま掲載いただき、英文の追記をお願いします)。また、インストール手順や、アプリケーションがどのように動作するかの説明、またはビデオデモを含めてください。
Helpful resources
1. InterSystems IRIS を初めて利用される方向け
Build a Server-Side Application with InterSystems IRIS(オンラインラーニング:英語)
Learning Path for beginners
【はじめての InterSystems IRIS】セルフラーニングビデオ 索引
その1:InterSystems IRIS Community Edition をインストールしてみよう!
その2:InterSystems IRIS で開発をはじめよう!
その3:IRIS でクラス定義を作ろう(オブジェクト操作の練習)
2. 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
3. コンテストへの応募方法
4. ドキュメント/コース/ビデオ
セキュリティ管理(ドキュメント)
コース:InterSystems Server システム管理2(セキュリティ管理)
Video: Active Directory Integration with LDAP
Video: Configuring a Web Server for IIS for Better Performance and Security
Video: Webinar: Securing the Management Portal
Video: Advances in Security
IRIS for Health 上でFHIR リポジトリ+OAuth2 認可サーバ/リソースサーバ構成を構築する パート1
InterSystems IRIS Open Authorization Framework(OAuth 2.0)の実装 - パート1
Article: Protect your REST API applying OWASP Top Ten
5. サンプルアプリケーション
ご期待ください!
審査及び投票ルール
投票ルールは近日公開します。
皆様からの✨素敵な✨プロジェクトをお待ちしております!コミュニティのコーディングマラソンに参加して、優勝を目指しましょう!(ง`0´)ง
❗️ コンテスト規約については、こちらをご参照ください。❗️
ご応募方法について
以下の応募方法ビデオをご参照ください。
以下、コンテストに応募する迄の手順をご説明します。
コンテスト応募までの流れは以下の通りです(※ビデオでは、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 · 2021年11月24日
開発者の皆さん、こんにちは!
今年 2 回目となる「InterSystems 技術文書ライティングコンテスト」の開催が決定しました!👏
いつもの「IRIS プログラミングコンテスト」とは異なり、このコンテストでは、InterSystems のテクノロジに関連するあらゆるトピックについての記事を投稿いただくコンテストです!
🎄 InterSystems 技術文書コンテスト:クリスマスエディション 🎄
応募期間:2021年11月25日~2021年12月25日
今回は、応募期間中に投稿いただいた方 全員 に 賞品 をご用意しています。
特賞:Apple AirPods Max / Oculus Quest 2 (VR Headset) / Amazon Kindle / Apple AirPods Pro / Raspberry Pi
月間 55,000人 以上の読者が訪れるインターシステムズ開発者コミュニティに記事を投稿してみませんか?
詳細は以下の通りです。
賞品
1. InterSystems 技術文書ライティングコンテストでは、応募者全員が勝者となりますり!コンテスト期間中に記事を投稿した方には、特別な賞品が贈られます。
🎁 InterSystems Tシャツ
🎁 InterSystems コーヒーカップ ☕
2. エキスパートアワード – InterSystems のエキスパートにより審査されます。
🥇 1位: Apple AirPods Max
🥈 2位: Oculus Quest 2 (VR Headset)
🥉 3位: Amazon Kindle 8G Paperwhite / Apple AirPods Pro / Raspberry Pi 4 8GB with InterSystems IRIS Community Edition ARM installed
(当選者は、獲得した賞品より低い順位の賞品と交換することができます)
3. 開発者コミュニティアワード – 「いいね!」が最も多かった記事に贈られます。受賞者は、以下の賞品の中から1つを選ぶことができます。
🎁 Apple AirPods Pro
🎁 Amazon Kindle 8G Paperwhite
🎁 Raspberry Pi 4 8GB with InterSystems IRIS Community Edition ARM installed
※ 著者は 1ノミネートに対して1つの賞品を獲得できます(一人の著者は、エキスパートノミネートで1賞品、コミュニティノミネートで1賞品 の合計 2 つの賞品を獲得することができます)。
参加資格
どなたでもご参加いただけます!(InterSystems 開発者コミュニティのアカウントを作成するだけでご応募いただけます)
コンテストのスケジュール
📝 2021年11月25日~2021年12月25日: この期間にコミュニティへの記事の投稿と投票が行われます。
期間中に記事を公開してください。
開発者コミュニティメンバーは、公開された記事に「いいね!」をつけることで「開発者コミュニティアワード」の投票を行ったことになります。
《注意》記事の公開が早ければ早いほど、「いいね!」を集める期間が長くなります。
🎉 2021年12月26日: 勝者発表!
応募条件
❗️ コンテスト期間中に書かれた記事で、以下の条件を満たすものは、自動的にコンテストに参加することができます。
InterSystems の技術に関連する記事を投稿してください。
英語での投稿をお願いします。
記事は、新しい記事で投稿してください(既存の記事の続編でも構いません)。
盗用や翻訳された記事は無効です(自分の記事を翻訳したものは有効です)。
1000文字以上の記事を投稿してください(リンクは文字数にカウントされません)。
チームの投稿ではなく、個人投稿のみを対象とします(同一著者による複数応募も可)
どんな記事を書いたらいい?
❗️ InterSystems の技術に関連した技術的な内容の記事を投稿してください。
🎯 NEW BONUS: 以下トピック一覧に含まれる内容で記事を公開した場合、5 エキスパート投票を獲得できます(エキスパートが1位を選択すると3票獲得できます)。
以下の表は、投稿内容についての参考情報です。あくまで例なので、投稿する記事の内容は自由にご選択ください。
#
Topic
詳細
1
Embedded Python Introduction(Embedded Python 紹介)
Embedded Python は、InterSystems IRIS のエキサイティングな新機能で、開発者はPythonでメソッドやSQLプロシージャを記述することができます。
2
Embedded Python from Interoperability(Interoperability の観点からの Embedded Python)
Interoperability(相互運用性)の観点から、Embedded Python がどのように活用できるかを探ります。
3
Embedded Python: Translating by Language Constructs(Embedded Python:言語構成による翻訳)
InterSystems は Embedded Python のシームレスな統合を目指していますが、スムーズに行うためにいくつかのヒントやコツがあります(アンダースコアのメソッド、dictionary、list など)。
ObjectScript から Python の機能を呼び出す最良の方法は何か、について探ります。
4
Intro to InterSystems Reports Designer(InterSystems Reports デザイナー紹介)
この記事の続きで、以下の内容をカバーします。
Catalog の作成方法
ベーシックレポートタイプの作成
グラフ (bar, pie, line, gauge, heatmap, ...)
テーブル(サマリや詳細)
クロス集計
レポートサーバへレポートを発行する。
スケジュールの作成
参考になるチュートリアル: Getting Started with InterSystems Reports
5
Calling Reports from Interoperability/IRIS(Interoperability / IRIS から InterSystems Reports を呼び出す方法)
InterSystems Reports を IRIS や Interoperability のプロダクションで実行(取得)する方法についての記事
6
Map Reports with InterSystems(InterSystems と地図レポート)
地理空間データを使用した InterSystems Reports によるレポートの作成方法について説明します。(HoleFoods データセットには、販売地の情報が含まれています。)
7
How to do CI/CD with InterSystems IRIS (InterSystems IRIS で CI/CD を行うには)
–
8
Change Data Capture with Kafka Connect(Kafka Connect での データ変更キャプチャ)
Kafka Connectをセットアップし、Kafal Connect JDBCコネクタを介してSQLデータをエクスポート&インポートする方法を示す例など。
9
Applying analytics / ML to the SQL Statement Index(Analytics / ML をSQL文インデックスに適用する)
–
10
My favorite maintenance tasks, automated(私の好きなメンテナンスタスク、自動化)
–
11
Leveraging the Audit database(監査データベースの活用)
–
12
The three steps to set up GitHub Actions that make your app invincible(アプリを無敵にする GitHub Actions の設定3手順)
–
13
OAuth2 authorization in IRIS instance(IRIS インスタンスでの OAuth2 認証)
–
14
Setup mirroring on K8s(K8s でのミラーリングセットアップ)
–
15
Using %MDX and %KPI instead of Subject Area in IRIS Analytics(IRIS Analytics でサブジェクト領域の代わりに%MDXと%KPIを使用する)
–
16
Trying External Language Gateways / compare to the gateways of old(外部の言語ゲートウェイへの挑戦/旧ゲートウェイとの比較)
例
17
Streaming events to Kafka from IAM(IAMからKafkaへのイベントストリーミング)
–
18
IntegratedML walkthrough
–
19
Exporting requests to Excel using Python(Pythonを使用してリクエストをExcelにエクスポートする)
–
20
Integrating cloud services with productions(クラウドサービスとプロダクションの連携)
例:MS Azure Cognitive ServicesやAmazon Rekognitionなど。
21
Working with IKO(IKOの仕事)
–
22
IKO IRIS on AWS Kubernetes with Hugepages
–
23
Incorporating backups with IKO(IKOでバックアップを組み込む)
–
24
IKO – Create a cluster with compute nodes, SAM, and no sharding(IKO - コンピュートノード、SAM、シャーディング無しのクラスタを構成する)
CPFファイルを含めて、私たちのベストプラクティスを設定します。
25
Data Science shared workgroup setup with ECP(ECPとデータサイエンス共有ワークグループの設定)
データサーバーがあり、各データサイエンティストはデスクトップ上にコンピュートノードを持っています。接続を切ってもデータは利用でき、再接続すると同期します。
26
クラウド導入時のストレージの選択肢(ローカルストレージ、ブロックストレージなどのパフォーマンスの違い)やトレードオフ(ブロックストレージを使用する場合はミラーが不要な場合があるなど)について解説した記事。
–
27
Building IRIS images with Docker Build Mounts(Docker Build Mounts によるIRIS image の構築)
Details
28
InterSystems IRIS CUDA image
コンテナ内からGPU/CUDAを使用する方法があります。CUDAをサポートした InterSystems IRISイメージを構築する方法を説明します。
注)同じテーマでも、著者が異なる記事はOKです。
この記事のコメント欄に、あなたのトピックのアイデアを自由にお寄せください。
皆さんの✨素敵✨な記事をお待ちしています! 皆さんこんにちは!2 回目の技術文書ライティングコンテストが始まりました💨
投稿は「英語」の指定がありますが、日本のコミュニティに「日本語」でぜひ投稿してください!
開発者コミュニティチームで(翻訳ツールを使いながら)翻訳させていただきます。
12月25日(US時間)までに投稿された方全員に🎁プレゼント🎁がありますので、ぜひこの機会に投稿してみください!お待ちしてます! 現時点で以下の記事が投稿されいます!
InterSystems Tech Article Contest: Christmas Edition 🎄!
A program to prohibit the use of old passwords. by @Sergey Mikhailenko
Changes to the security level of the system by @Sergey Mikhailenko
Deploying solutions without source code from ZPM by @Sergey Mikhailenko
Data anonymization, introducing iris-Disguise by @Henry Pereira
The power of XDATA applied to the API Security by @YURI MARX GOMES
Leveraging the Audit database by @YURI MARX GOMES
Traditional Debugging in ObjectScript by @Robert Cemper
VSCode-ObjectScript on GitHub by @Dmitry Maslennikov
Why? How? What's zap-api-scan-sample? by @Henrique Dias
OAuth2 and Basic Authentication, Authorization AND Auditing by code from Web Application by @Muhammad Waseem
How secure is password? by @Dmitry Maslennikov
Previewing Server Manager 3.0 for VS Code by @John Murray
Server Manager now showcasing VS Code's new support for pre-release extensions by @John Murray
ObjectScript REST API Cookbook by @YURI MARX GOMES
OAuth2 Authentication with GitHub account from IRIS Web Application by @Muhammad Waseem
Invite the FHIR® Accelerator Service to your Kubernetes Microservice Party by @Ron Sweeney
投票(をクリック)はこちらのページから行えます。
これだ!と思う記事を見つけたらをクリックして作者を応援しましょう!📢
そして、ぜひオリジナルの記事を日本のコミュニティに投稿してください!(もちろん日本語で!)
皆様からの投稿 🎅お待ちしてます🎄
お知らせ
Mihoko Iijima · 2022年1月28日
開発者の皆さん、こんにちは!
次の InterSystems プログラミングコンテストのお題が発表されました!次は、Python です!
🏆 InterSystems Python Contest 🏆
応募期間: 2022年2月7日~20日
💰 賞金総額: $10K 💰 + さらに賞品を用意予定です!
優勝特
1. Experts Nomination- 審査員から多く票を集めたアプリケーションには、以下の賞金が贈られます。
🥇 1位 - $4,000
🥈 2位 - $2,000
🥉 3位 - $1,000
🌟 4~15位 - $100
2. Community winners - 開発者コミュニティで多く票を集めたソリューションには、以下の賞金が贈られます。
🥇 1st place - $1,000
🥈 2nd place - $750
🥉 3rd place - $500
複数の参加者が同数の票を獲得した場合、全参加者が勝者となり賞金は勝者間で分配されます。
参加資格
どなたでもご参加いただけます!(InterSystems 開発者コミュニティのアカウントを作成するだけでご応募いただけます)
👥 開発者がチームを組んで共同でアプリケーションを作成し、応募することもできます! 1チーム 2~5名 までご参加いただけます。
チームでご応募いただく場合は、アプリケーションの README にチームメンバー名の記載をお忘れなく!!(開発者コミュニティのプロファイルのリンクもお願いします)
コンテストのスケジュー
🛠 2022年2月7日~2022年2月20日 応募期間
✅ 2022年2月21日~27日 投票(1週間)
応募、投票期間中、アップロードしたアプリケーションは改良できます。
2022年2月28日 勝者発表!(US時間に発表します)
コンテストのテーマ
最近リリースされた InterSystems IRIS 2021.1 には、新機能の Embedded Python が含まれ、IRIS のサーバ側コードを Python で記述することもできるようになりました! 今回のコンテストテーマは「Python」です。開発者の皆さん、ぜひ新機能の Embedded Python を使ってみてください!
もちろん、Native API for Python や PEX for Python を利用したアプリケーションの投稿も大歓迎です!
InterSystems IRIS または InterSystems IRIS for Health で Embedded Python または Native API for Python または PEX for Python を使用したオープンソースアプリケーションを投稿してください。
一般的な応募条件:
応募可能なアプリケーション
Open Exchange アプリケーションの新規作成、または既存アプリケーションであっても大幅に改善されているものであればご応募いただけます。
コミュニティの担当チームは、コンテストへの応募を承認する前に申請された全アプリケーションをレビューします。
全てのアプリケーションは IRIS Community Edition 、 IRIS for Health Community Edition 、 IRIS Advanced Analytics Community Edition のいずれかで動作する必要があります。
アプリケーションはオープンソースであり、GitHubで公開されている必要があります。
アプリケーションの README ファイルは、英語で記述してください(日本語で記述したものがあればそのまま掲載いただき、英文の追記をお願いします)。また、インストール手順や、アプリケーションがどのように動作するかの説明、またはビデオデモを含めてください。
Helpful resources
1. Developing Python Applications with InterSystems IRIS:
Learning Path Writing Python Application with InterSystems
Embedded Python ドキュメント(英語)
Native API for Python の使用法
PEX Documentation
日本語ドキュメント(日本語ドキュメントには PEX for Pythonはまだ含まれていません)
Embedded Pythonを簡単にご紹介します
Embedded Python 試してみました
2. 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
3. コンテストへの応募方法
4. アプリケーション例
interoperability-python
pex-demo
python-examples
WebSocket
AOC2021
Python Faker
Native APIを使った例(キーバリュー形式で Python / Node.js / Java から IRIS にアクセスできるテンプレート(グラフ構造によくある人物相関図を IRIS で表現しています)
5. ビデオ:
Introduction to Embedded Python
Embedded Python: Bring the Python Ecosystem to Your ObjectScript App
Embedded Python for ObjectScript Developers: Working with Python and ObjectScript Side-By-Side
Embedded Python with Interoperability
InterSystems IRIS Native Python API in AWS Lambda
動画:Python エンジニアが IRIS を使う場合の2つの方法と今後の計画
2021年2月に開催された「InterSystems Japan Virtual Summit 2021」のアーカイブです。PyODBC、Native API、EmbeddedPython の例をご紹介しています(15分45秒~EmbeddedPythonについて解説しています。少し古いバージョンでのご紹介の為、バージョン2021.2で利用できる機能については含まれていません)。
審査及び投票ルール
投票ルールは近日公開します。
皆様からの✨素敵な✨プロジェクトをお待ちしております!コミュニティのコーディングマラソンに参加して、優勝を目指しましょう!(ง`0´)ง
❗️ コンテスト規約については、こちらをご参照ください。❗️
ご応募方法について
以下の応募方法ビデオをご参照ください。
以下、コンテストに応募する迄の手順をご説明します。
コンテスト応募までの流れは以下の通りです(※ビデオでは、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」ボタンが表示されるので、クリックすると応募が完了します。
Python コンテスト、始まりました 💨
↓紹介記事も追加されています↓是非チェックしてみてください。
Embedded Pythonを簡単にご紹介します
Embedded Python 試してみました
今回のコンテストですが、ObjectScript を使わず Python だけで開発されたアプリケーションには 5ポイントのボーナスポイント が付与されます!(詳しくは、テクノロジーボーナス紹介ページをご参照ください)