検索

クリアフィルター
記事
Tomohiro Iwamoto · 2020年6月3日

InterSystemsデータプラットフォームとパフォーマンス – パート1 

アプリケーションがデプロイされ、すべてが問題なく動作しています。 素晴らしいですね! しかし、その後突然電話が鳴り止まなくなりました。アプリケーションが時々「遅くなる」というユーザーからの苦情の電話です。 これは一体どういうことなのでしょうか? なぜ時々遅くなるのでしょうか? このような速度低下を検出し、解決するにはどのようなツールと統計情報に注目すべきなのでしょうか? お使いのシステムのインフラはユーザーの負荷に対応できていますか? 本番環境を調べる前に、どのようなインフラ設計上の問題を問うべきなのでしょうか? 新しいハードウェアのキャパシティプランニングを、必要以上の設備投資を行うことなく自信を持って行うにはどうすればよいのでしょうか? どうすれば電話がかかってこなくなるのでしょうか? そもそも電話がかかってこないようにするには、どうすればよかったのでしょうか? このシリーズの他の記事のリストはこちら 長い道のりの始まり これは、システムパフォーマンスの監視、確認、トラブルシューティングに使用できるツールとメトリック、およびパフォーマンスに影響を与えるシステムとアーキテクチャの設計上の考慮事項について説明する連載の最初の投稿です。 途中、Caché、オペレーティングシステム、ハードウェア、仮想化、およびコメントのフィードバックで話題になっているその他の領域のパフォーマンスを理解するため、本題からそれる場面がかなりあります。 フィードバックグループに従い、パフォーマンスデータからデプロイ済みのアプリケーションとインフラのメリットと制限を詳しく確認し、その後に選りすぐれた設計とキャパシティプランニングに戻ります。 言うまでもなく、常にパフォーマンスメトリックを確認する必要があります。データに目を向けてさえいれば、ずっと前から分かっていたはずのパフォーマンスの問題に顧客が驚いているのは残念なことです。 しかし、当然ながらここではどのデータが原因なのかということが問題です。 まずは現在のシステムの健全性を感じ取れるよう、いくつかの基本的なCachéとシステムのメトリックを収集することから始めましょう。 後の投稿では、主なメトリックの意味について詳しく説明します。 システム監視には、Cachéの内外から利用できる多くのオプションがあります。この連載では、それらの多くについて説明します。 まずは、すべてのCachéシステムに最初からインストールされている継続的データ収集ツールである、^pButtonsを見てみましょう。 次の投稿を確認し、pButtonsの最新コピーがあることを確認してください。 https://community.intersystems.com/post/intersystems-data-platforms-and-performance-%E2%80%93-how-update-pbuttons システムパフォーマンスメトリックの収集 - ^pButtons Caché pButtonsユーティリティは、作成したログファイルから読み取り可能なHTMLパフォーマンスレポートを生成します。 pButtonsから出力されるパフォーマンスメトリックは、簡単に抽出、グラフ化、確認できます。 pButtons のhtmlファイルに収集されるデータには、次のものがあります。 Caché の設定:構成、ドライブの割り当てなど。 mgstat:Cachéのパフォーマンスメトリック - ほとんどの値は1秒あたりの平均です。 Unix:vmstatとiostat:オペレーティングシステムのリソースとパフォーマンスに関するメトリック。 Windows:パフォーマンスモニター:Windowsのリソースとパフォーマンスに関するメトリック。 その他の有用なメトリック。 pButtons によるデータ収集はシステムのパフォーマンスにほとんど影響を与えません。メトリックはすでにシステムによって収集されており、pButtonsは単にこれらをパッケージ化し、整理して転送しやすくするだけです。 ベースラインを維持し、傾向分析と問題解決に役立てるため、業務サイクル全体を通して毎日pButtonで24時間(午前0時から午前0時)のデータを収集することをお勧めします。 例えば、月末処理からデータを取得する場合など、業務サイクルが1カ月以上になる場合もあります。 他に外部パフォーマンス監視システムや収集システムを使用していない場合は、年間を通じてpButtonsを実行できます。 次の重要な点を考慮する必要があります。 ディスク容量がいっぱいにならないようにするため、ログディレクトリを本番データとは異なる場所に変更し、蓄積した出力ファイルをそちらに保管するようにしてください! オペレーティングシステムのスクリプトを実行するか、定期的にpButtonsのファイルを圧縮してアーカイブしてください。このファイルは肥大化する可能性があるため、これはWindowsでは特に重要です。 定期的にデータを確認してください! すぐに分析が必要な問題が発生した場合は、pButtonsのデータをプレビューすることができます(データはすぐに収集されます)が、メトリックは引き続き継続的に保存され、1日の終わりに収集されます。 プレビュー、実行の停止、独自のデータ収集の追加など、pButtonの詳細については、最新のCachéドキュメントの「Cachéモニタリングガイド」を参照してください。 http://docs.intersystems.com pButtonsのHTMLファイルデータは(CVSファイルなどに)分離・抽出可能で、スクリプトを作成したり、単にカットアンドペーストしたりして、グラフの描画やその他の分析に利用することができます。 次の投稿の後半では、出力例をグラフで確認します。 もちろん、パフォーマンスに緊急の問題がある場合は、WRCにご連絡ください。 pButtonsによる24時間のデータ収集をスケジュールする ^pButtonsはターミナルプロンプトから手動で開始するか、スケジュールすることができます。 毎日24時間の収集をスケジュールするには、以下の手順に従ってください。 1. pButtonsのファイル構造を準備するため、Cachéターミナルを起動して%SYSネームスペースに切り替え、pButtonsを手動で1回実行します。 %SYS>d ^pButtons Current log directory: /db/backup/benchout/pButtonsOut/ Available profiles: 1 12hours - 12 hour run sampling every 10 seconds 2 24hours - 24 hour run sampling every 10 seconds 3 30mins - 30 minute run sampling every 1 second 4 4hours - 4 hour run sampling every 5 seconds 5 8hours - 8 hour run sampling every 10 seconds 6 test - A 5 minute TEST run sampling every 30 seconds テストを行うには6番のオプションを選択してください。 30秒ごとにサンプリングする5分間のテスト実行です。 この番号は異なる場合がありますが、"test"というわかりやすい項目名になっています。 テスト中にCollect^pButtonsを実行すると(以下に例を示します)、runidを含む情報が表示されます。 この場合は、「20160303_1851_test」です。 %SYS>d Collect^pButtons Current Performance runs: 20160303_1851_test ready in 6 minutes 48 seconds nothing available to collect at the moment. %SYS> この5分間の実行が終わるまで、6分48秒かかることに注意してください。 ログを収集してhtml形式にまとめる時間を確保するため、pButtonsでは実行のたびに2分の猶予期間が追加されます。 2. 重要! pButtonsのログ出力ディレクトリを変更してください。デフォルトの出力先は <cache install path>/mgr フォルダーです。 UNIXの場合、ログディレクトリのパスは例えば次のようになります。 do setlogdir^pButtons("/somewhere_with_lots_of_space/perflogs/") Cachéにディレクトリへの書き込み権限があり、出力ファイルの蓄積に必要なディスク容量が確保されていることを確認してください。 3. 次のコマンドを実行し、30秒間隔で新しい24時間プロファイルを作成します。 write $$addprofile^pButtons("My_24hours_30sec","24 hours 30 sec interval",30,2880) pButtonsにプロファイルが追加されたことを確認してください。 %SYS>d ^pButtons Current log directory: /db/backup/benchout/pButtonsOut/ Available profiles: 1 12hours - 12 hour run sampling every 10 seconds 2 24hours - 24 hour run sampling every 10 seconds 3 30mins - 30 minute run sampling every 1 second 4 4hours - 4 hour run sampling every 5 seconds 5 8hours - 8 hour run sampling every 10 seconds 6 My_24hours_30sec- 24 hours 30 sec interval 7 test - A 5 minute TEST run sampling every 30 seconds select profile number to run: 注意:収集間隔は変更できます。通常の監視では30秒で十分です。 pButtonsは間隔ごとにデータを収集するため、出力ファイルが非常に大きくなる可能性があります。そのため、24時間定期的に実行する場合は5秒(…”,5,17280)未満の間隔を指定しないことをお勧めします。 特定の時刻を対象に問題を解決しようとしており、より詳細なデータが必要な場合は、デフォルトプロファイルのいずれかを使用するか、5秒間隔で1時間(…”,5,720)といったより短い期間で新しいカスタムプロファイルを作成してください。 pButtonsは複数同時に実行できるため、24時間のpButtonsと同時に5秒間隔の短いpButtonsを実行することができます。 4. ヒント UNIXサイトの場合は、diskコマンドを確認してください。 「iostat」コマンドで使用されるデフォルトのパラメーターには、ディスクの応答時間が含まれていない場合があります。 最初に、現在設定されているディスクコマンドを表示します。 %SYS>zw ^pButtons("cmds","disk") ^pButtons("cmds","disk")=2 ^pButtons("cmds","disk",1)=$lb("iostat","iostat ","interval"," ","count"," > ") ^pButtons("cmds","disk",2)=$lb("sar -d","sar -d ","interval"," ","count"," > ") ディスク統計を収集するには、適切なコマンドを使用し、運用中のUNIXに合わせて構文を編集してください。 末尾のスペースに注意してください。 以下にいくつかの例を示します。 LINUX: set $li(^pButtons("cmds","disk",1),2)="iostat -xt " AIX: set $li(^pButtons("cmds","disk",1),2)="iostat -sadD " VxFS: set ^pButtons("cmds","disk",3)=$lb("vxstat","vxstat -g DISKGROUP -i ","interval"," -c ","count"," > ") iostatコマンドとsarコマンドの両方を実行すると、非常に大きなpButton htmlファイルを作成できます。 筆者の場合、通常のパフォーマンスレビューではiostatのみを使用しています。 コマンドを1つだけ設定するには、以下のように記述します。 set ^pButtons("cmds","disk")=1 pButtonsの設定に関する詳細は、オンラインドキュメントを参照してください。 5. Management Portal > System Operation > Task Managerで、pButtonsを真夜中に起動するようにスケジュールします。 Namespace: %SYS Task Type: RunLegacyTask ExecuteCode: Do run^pButtons("My_24hours_30sec") Task Priority: Normal User: superuser How often: Once daily at 00:00:01 pButtonsデータの収集 InterSystemsデータプラットフォームのより新しいバージョンのpButtonsには、自動収集機能があります。 データを手動で収集してhtmlファイルにまとめるには、%SYSネームスペースで次のコマンドを実行し、未処理のpButtons html出力ファイルを生成します。 do Collect^pButtons htmlファイルは、手順2で設定したlogdirにあります(設定していない場合は、今すぐ設定してください!)。 設定していない場合、デフォルトの場所は <Caché install dir/mgr> になります。 ファイル名は <hostname_instance_Name_date_time_profileName.html> になります(例:vsan-tc-db1_H2015_20160218_0255_test.html)。 Windowsパフォーマンスモニターの考慮事項 オペレーティングシステムがWindowsの場合、Windowsパフォーマンスモニター(perfmon)を使用して、収集対象の他のメトリックと同期してデータを収集できます。 pButtonsの古いCachéディストリビューションでは、Windowsパフォーマンスモニターを手動で構成する必要があります。 この投稿のコメントで要望があれば、パフォーマンスカウンターを定義してpButtonsと同じ期間と間隔で監視とスケジュール実行を行うためのパフォーマンスモニター用のテンプレートを作成する方法について記事を書きます。 概要 この投稿により、考察すべきデータの収集が始まりました。 週の後半には、サンプルデータとその意味を見ていきます。 皆さんは自分のシステムで収集したデータを追跡できます。 それではまた。 http://docs.intersystems.com
記事
Tomohiro Iwamoto · 2020年6月4日

InterSystemsデータプラットフォームとパフォーマンス – パート2  

前回の投稿では、pButtonsを使用してパフォーマンスメトリックを24時間収集する処理をスケジュールしました。 この投稿では、収集対象の主なメトリックのいくつかと、それらの土台となるシステムハードウェアがどのように関連しているかを見ていきます。 また、Caché(または任意のInterSystemsデータプラットフォーム)メトリックとシステムメトリックの関係についても調べます。 さらに、これらのメトリックを使用してシステムの毎日の健全性を把握し、パフォーマンスの問題を診断する方法もご紹介します。 このシリーズの他の記事のリストはこちら 2016年10月に編集... pButtonsデータを .csv ファイルに抽出するスクリプトの例はこちらで確認できます。 2018年3月に編集... 画像が消えていましたが、元に戻しました。 ハードウェア食品グループ この連載を読み進めていくと、パフォーマンスに影響を与えるサーバーコンポーネントを次のように分類できることが分かってきます。 - CPU - メモリ - ストレージIO - ネットワークIO これらのコンポーネントのいずれかに負荷がかかっている場合、システムのパフォーマンスとユーザーエクスペリエンスが低下する可能性があります。 これらのコンポーネントはすべて相互に関連しているため、1つのコンポーネントに対する変更が別のコンポーネントに影響する可能性があり、予期しない結果が生じることがあります。 私はストレージアレイのIOボトルネックを解消するとCPU使用率が100%に跳ね上がり、ユーザーエクスペリエンスがさらに悪化した例を見たことがあります。これは、システムが突然自由に作業量を増やせるようになったものの、ユーザー活動とスループットの増加に対応するためのCPUリソースがなかったために発生したものです。 また、Cachéシステムの動作がサーバーコンポーネントにどのように直接影響を与えるかも説明します。 ストレージのIOリソースが限られている場合はシステムメモリを増やし、Cachéグローバルのバッファーに割り当てるメモリを増やすことで、好ましい変化をもたらすことが可能になります。これにより、システムストレージの読み取りIOを減らすことができます(ただし、CPU負荷が上がる可能性があります!)。 定期的に、あるいはユーザーが問題を報告したときに確認すべき最も分かりやすいシステムメトリックの1つにCPUの使用率が挙げられます。 top や nmon(LinuxやAIXの場合)、またはWindowsパフォーマンスモニターを見てみましょう。 ほとんどのシステム管理者はCPUデータを定期的に確認しているため、特にそのデータがグラフィカルに表示されている場合などは一目でシステムの現在の状態を把握できます。要はそのシステムが正常であるか、潜在的な異常動作によって突発的に負荷が上がっているか、あるいは問題が発生しているかということです。 この投稿ではCPUメトリックをざっと確認しますが、Cachéメトリックを集中して取り上げます。まずは mgstat のデータを参照し、グラフィカルに表示したデータからシステムの正常性を一目で把握できることを確認します。 mgstatの概要 mgstatはpButtonsに含まれ、その中で実行されるCachéコマンドの1つです。 mgstatは、システムの正常性を把握するのに役立つ基本的なパフォーマンスメトリックを収集するのに最適なツールです。 この記事ではpButtonsを24時間実行して収集したmgstatのデータを確認しますが、pButtonの外部でデータを取り込みたい場合は、mgstatを必要に応じて対話形式で実行するか、Cachéターミナルからバックグラウンドジョブとして実行することができます。 オンデマンドで、%SYS名前空間からmgstatを実行するには、一般的に次の形式を使用します。 do mgstat(sample_time,number_of_samples,"/file_path/file.csv",page_length) 例えば、5秒のサンプル期間で1時間実行するバックグラウンドジョブを実行し、csvファイルに出力する場合は次のようになります。 job ^mgstat(5,720,"/data/mgstat_todays_date_and_time.csv") 一部のカラムを省略して結果を画面に表示する場合は、次のようにdsp132エントリを使用します。 出力の違いについては、実際に皆さんで確かめてみてください。 do dsp132^mgstat(5,720,"",60) mgstat の出力結果のカラムに関する詳細は、次のCachéの最新ドキュメントの「Caché監視ガイド」をご確認ください: InterSystemsオンラインドキュメント mgstatデータの参照 pButtonsは目的のデータを探しやすくし、パフォーマンスの問題を診断するWRCのサポート担当者に送信するためのパッケージ化を行うため、収集したデータを単一のHTMLファイルにまとめます。 ただし、pButtonsを手動で実行してデータをグラフィカルに表示したい場合は、コマンドラインスクリプトや単純なカットアンドペーストを駆使してデータをcsvファイルに再分割し、Excelなどでグラフ化することができます。 この投稿では、mgstatメトリックのいくつかを掘り下げ、データを一目見ただけでシステムのパフォーマンスが優れているか、ユーザーエクスペリエンスに影響を与える発生中の問題や潜在的な問題が存在するかどうかを確認できることをご説明します。 GlorefsとCPU 次のグラフは、病院向けアプリケーションを高い処理頻度で実行しているサイトのデータベースサーバーのCPU使用率を示しています。 多くの外来診療所では朝に活動のピークが訪れ、使用率は昼休みに急激に下がり、その後午後から夕方にかけて次第に低下していることが分かります。 この例では、Windowsパフォーマンスモニターの「(_Total)\% Processor Time」(グラフの形状が稼働日の分布測定に適しています)からデータを取得しました。異常な山や谷が見つからないため、このサイトではこのデータは正常であると考えられます。 皆さんもご自身のサイトに対して同じことを行えば、「正常時」のベースラインを取得することができます。 大幅な急上昇、特に異常な急上昇は問題が存在することを示している可能性があります。今後の投稿では、CPUに注目します。 参考までに、このデータベースサーバーは2つのE5-2670 8コアプロセッサーを搭載したDell R720であり、サーバーには128 GBのメモリが搭載され、48 GBのグローバルバッファーが割り当てられています。 次のグラフでは、CPUのグラフと同じ日のmgstat — Glorefs(グローバル参照)またはデータベースアクセス数のデータをより詳細に示しています。 Glorefsはその時点の負荷を代表するものとして、発生している作業量を示します。グローバルが参照されるとCPU時間が消費されますが、Cachéはグローバルメモリバッファプールを使用しているため、物理的な読み取り操作などの、他のシステムリソースが消費されるとは限りません。 一般的なCachéアプリケーションでは、GlorefとCPU使用率の間に非常に強い相関があります。 このCPUとglorefのデータを別の視点から見た場合、glorefsを減らすとCPU使用率が減り、コア数の少ないサーバーにデプロイしたり、既存システムをさらに拡張したりできるようになるということが分かります。 アプリケーションをさらに効率化することで、グローバル参照を削減する方法もありそうです。この考えは後の投稿で再検討します。 PhyRdsとRdratio mgstatのデータをグラフ化したPhyRds(物理的読み込み)とRdratio(読み込み比率)はシステムパフォーマンスから予想される詳細な情報を把握し、キャパシティプランニングを立てるのに役立ちます。 今後の投稿では、CachéのストレージIOについて詳しく説明します。 PhyRdsはディスクからCachéデータベースへの単純な物理読み取りIOPS(I/O毎秒)で、論理ディスクと物理ディスクに対応するオペレーティングシステムのメトリックに反映されているものと同じ値が表示されます。 ただし、オペレーティングシステムのIOPSにはCaché以外のアプリケーションに起因するIOPSも表示されている可能性があります。 予想されるIOPSを考慮せずにストレージのサイジングを行うと確実に失敗することになります。適切なキャパシティプランニングを行うには、システムがピークに達している状態でのIOPSを知る必要があります。 次のグラフは、午前0:00から15:30までのPhyRdsを示しています。 05:30から10:00の間に物理的読み込みが大幅に増加していることに注目してください。 その他には11:00と14:00になる直前に短めのピークが発生しています。 これらの原因は何だと思いますか? 皆さんのサーバーではこのようなピークが見られますか? Rdratioからは、より興味深い結果を得ることができます。このグラフは物理ブロックの読み取りに対する論理ブロックの読み取りの比率を表しています。 つまり、メモリからのグローバルバッファ(論理ブロック)からの読み取り回数と、桁違いに遅いディスクからの読み取り回数の比率を表しています。 Rdratioが高いほうが望ましく、長時間にわたってほぼゼロ近くまで低下するのは望ましくありません。 読み込みが多い時間帯に合わせてRdratioがゼロ近くに低下していることが分かります。 私はこのサイトについて、システムが長時間にわたって重くなっているとの電話連絡がユーザーからIT部門に入り始めたため、調査するように依頼されました。 私がシステムの調査を依頼された最初の数週間は、この現象はランダムに発生しているように思われました。 しかし、私は比較的簡単にこのような高いPhyRdsと低いRdratioのパターンとサポートへの問い合わせ回数に相関関係があることを発見しました。pButtonsが毎日24時間実行されるようにスケジュールされていたおかげで、数週間前のデータに遡って調査することができたからです。 さらなる分析を続けた結果、新しいシフト勤務者が適切なインデックスを使用しない劣悪なクエリと「不正な」パラメーターを組み合わせて入力するレポートをいくつか実行し、データベースの読み込みを増やしていたことを突き止めました。 それが、一見ランダムに見える遅延の原因だったのです。 これらの実行時間の長いレポートはデータをグローバルバッファに読み込んでいるため、対話ユーザーのデータはメモリではなく物理ストレージから取得されています。その結果、読み取りを処理するストレージに負荷がかかっています。 PhyRdsとRdratioを監視すれば、システムの健全性に関する情報を取得できます。また、劣悪なレポートやクエリの存在を突き止めることもできるかもしれません。 高いPhyRdsには妥当な原因があると思われます。そのような場合は、レポートを決まった時間に実行する必要があるでしょう。 物理メモリ容量が大きい最新の64ビットオペレーティングシステムとサーバーを使えば、本番システムのPhyRdsを最小化できるはずです。 お使いのシステムでPhyRdsが高い値を示している場合は、次のようないくつかの対策を検討することができます。 - データベースの(グローバル)バッファ数(およびシステムメモリ)を増やしてパフォーマンスを向上させる。 - 実行時間の長いレポートや抽出処理を営業時間外に実行するようにする。 - 実行時間の長い読み取り専用レポート、バッチジョブ、データ抽出処理を別のシャドウサーバーか非同期ミラーで実行し、対話ユーザーへの影響を最小限に抑え、CPUやIOPSなどのシステムリソースの利用負荷をオフロードする。 一般的に低いPhyRdsは望ましく、それはシステムをサイジングする際の目標でもあります。 ただし、PhyRdsが低くてもユーザーがパフォーマンスに不満を抱いている場合は、ストレージがボトルネックではないことを確かめるため、他にもチェックできることがあります。システムが必要なサービスを提供できなくなっていることが原因で、読み取りが少なくなっている可能性があります。 ストレージについては、今後の記事で詳しく見ていきます。 概要 この投稿では、pButtonsで収集されたメトリックをグラフ化し、システムの健全性を一目で確認する方法について説明しました。 今後の投稿では、システムメトリックとCachéメトリックの関係に加えて、これらを使用して将来の計画を立てる方法について詳しく説明します。
お知らせ
Mihoko Iijima · 2023年6月12日

テクノロジーボーナス詳細:InterSystems グランプリ・コンテスト 2023

開発者の皆さん、こんにちは! InterSystems グランプリコンテスト2023 では、InterSystems IRIS data platform を使用する機能であればどんな内容でもご応募いただけます。 以下の機能を含めた場合、ボーナスポイントを獲得できます。 詳細は以下の通りです。 LLM AI や LangChain の使用:Chat GPT、Bard など - 6ポイント InterSystems FHIR SQL Builder- 5ポイント InterSystems FHIR - 3ポイント IntegratedML - 4ポイント Native API - 3ポイント Embedded Python - 4ポイント Interoperability - 3ポイント Production EXtension(PEX) - 2ポイント Adaptive Analytics (AtScale) のキューブの利用 - 3ポイント Tableau, PowerBI, Logi の利用 - 3ポイント InterSystems IRIS BI - 3ポイント Docker container の利用 - 2ポイント ZPM Package によるデプロイ - 2ポイント オンラインデモ - 2ポイント ユニットテスト - 2ポイント InterSystems Community Idea に投稿された内容の実装 - 4ポイント コミュニティ(USコミュニティ)に記事を投稿する(最初の記事) - 2ポイント コミュニティ(USコミュニティ)に2つ目の記事を投稿する - 1ポイント Code Qualityをパスする - 1ポイント はじめてチャレンジされた方 - 3ポイント YouTubeにビデオを公開- 3ポイント LLM AI や LangChain の使用:Chat GPT、Bardなど - 6ポイント ChatGPT、Bard やPaLM, LLaMA などの他のAIエンジンを使用したLangChain ライブラリ や Large Language Models (LLM)を使用したソリューションを構築すると6ポイントのボーナスポイントを獲得できます。AutoGPTの使用もカウントされます。 Open Exchangeでは、iris-openai、chatGPT telegram botなど、いくつかの例があります。 InterSystems FHIR SQL Builder - 5ポイント InterSystems FHIR SQL Builder は、InterSystems IRIS for Health の機能で、FHIRリソースをSQLテーブルへマッピングし、アプリケーションでSQLクエリを介してFHIRリソースにアクセスできるよう手助けをするツールです。 FHIR SQLビルダーについて(日本語):21:13~ ドキュメントはこちら オンラインコースはこちら Open Exchangeのサンプル 注意: InterSystems FHIR SQL Builderをコンテスト応募作品に含める場合、InterSystems FHIR as a ServiceおよびIRIS For Healthのボーナス3ポイントは含まれません。 InterSystems FHIR as a Service and IRIS For Health - 3 ポイント InterSystems FHIR Server (FHIRaaS) を使用した新しいアプリケーションの構築や既存のアプリケーションのテストを行う開発者の皆様を募集します。ポータルにサインインしデプロイメントを行い、プログラミングコンテストのアプリケーション用にAWS上のInterSystems FHIRサーバーの使用してください。 また、InterSystems IRIS for Health、docker版を使用してFHIRアプリケーションを構築することができます。dockerイメージ構築時にFHIRサーバーを準備するIRIS-FHIR-Templateも使用できます。FHIR API 4.0.1のドキュメントはこちらです。詳しくは、InterSystems IRIS for Healthのドキュメントをご覧ください。 IntegratedML の使用 - 4ポイント 1. あなたのAI/MLソリューションにInterSystems IntegratedMLを使用してください。以下の開発環境テンプレートもご利用いただけます。(テンプレートの使い方については「開発環境テンプレート(IRIS プログラミングコンテストで使用していたテンプレート)の一覧」もご参照ください) InterSystems IntegratedMLテンプレート 2. データインポートツールの使用: テキストファイルからのデータのインポート(管理ポータル利用) CSVGEN - ZPMパッケージを利用して使用するCSVインポートユーティリティ CSVGEN-UI - ZPMパッケージを利用して使用するCSVGENの専用WebUI 3. ドキュメント: IntegratedMLの使用 4. オンラインラーニング&ビデオ オンラインラーニング:Learn IntegratedML in InterSystems IRIS オンラインラーニング:Preparing Your Data for Machine Learning オンラインラーニング:Predictive Modeling with the Machine Learning Toolkit オンラインラーニング:IntegratedML Resource Guide IntegratedML ー SQLから始める機械学習 IntegratedML と DataRobot の連携デモ InterSystems Native API usage - 3 ポイント InterSystems Native APIオプションを使用したフルスタックアプリケーションを開発された場合、3ポイント獲得できます。 Native APIオプションはこちら👉: .NET, Java, Python, Node.js. Learn more InterSystems Native APIについて Embedded Python - 4 ポイント Embedded Python をあなたのアプリケーションに使用した場合、ボーナスポイントを4ポイント獲得できます。(IRIS 2021.2以降のバージョンをご利用ください) 注意:Native API for Pythonも使用している場合は、Embedded Pythonのボーナスポイントのみカウントします。 Interoperability Productions にBPLやDTLを使用した場合 - 3ポイント IRIS Interoperability プロダクションの主要な特徴の1つに、ビジネス・プロセス言語 (BPL)で記述可能なビジネスプロセスがあげられます。 ドキュメント:ビジネス・プロセスの定義 ビジネス・ルールは Interoperabilityプロダクションで使用するビジネス・プロセス内の処理フローの分岐に利用するような値を開発コードから分離して保存しておくことができる定義で、ルールが変更されても開発コード(ビジネス・プロセス)に影響を与えないため、変更に強い環境を提供できます。InterSystems IRISでは、ルールエディタ/ObjectScript どちらを利用してもルールの開発が行えます。 あなたのアプリケーションがInteroperabilityプロダクションでビジネス・プロセス、またはビジネス・ルールを使用している場合、ボーナスポイントを獲得できます。 Business Rule の例(クラス定義) ビジネス・ルールの開発 2023.1以降では、ルールエディタが新しいGUIに変わりました。新しいGUIでの利用方法については英語ドキュメントをご参照下さい。 Production EXtension (PEX) の使用 - 2ポイント PEX は、Interoperability プロダクションのPython、Java、.NET用エクステンションです。 PEXのデモ PEX : 外部言語によるプロダクションの開発 InterSystems IRIS は、Python Pex モジュールもあり、PythonからInterSysetms IRIS Interoperabilityのプロダクションを開発することができます。これを使用するとボーナスポイントを3ポイント獲得できます。 また、Guillaume Ronguier氏によって紹介された代替のpython.pexホイールも使用可能です。 Python Interoperability は、@Guillaume.Rongier7183 が提供する Python上のInterSystems IRIS用PEXアドオンモジュールです。 この他、PEXの記事もあります。PEXの例 Adaptive Analytics (AtScale) キューブを使用した場合 - 3ポイント InterSystems Adaptive Analytics は、分析ソリューションに AtScale キューブを作成し使用するオプションを提供しています。 コンテスト用に用意したAtScaleサーバー(URLと認証情報はDiscord Channelで収集可能)を使ってキューブを使うか、新規に作成してJDBCでIRISサーバーに接続することが可能です。 AtScaleを使ったAnalyticsソリューションの可視化レイヤーは、Tableau、PowerBI、Excel、Logiで作成することができます。 InterSystems IRIS Adaptive Analytics、AtScale documentation オンラインラーニング Tableau, PowerBI, Logi を使用した場合 - 3ポイント Tableau、PowerBI、Logiで作成したビジュアライゼーションについて、それぞれ3ポイント獲得できます。 ビジュアライゼーションは、IRIS BIサーバーの直接接続、またはAtScaleとの接続を介して行うことができます。 Logiは、InterSystems Reportsソリューションの一部として利用可能です。InterSystems WRCでコンポーザーをダウンロードできます。一時的なライセンスは、discord channelで収集することができます。 オンラインラーニング InterSystems IRIS BI - 3ポイント InterSystems IRIS Business Intelligence は IRIS の機能で、IRIS の永続的なデータに対して BI キューブやピボットを作成し、インタラクティブなダッシュボードを使用してユーザーに情報を提供することができる機能です。 InterSystems IRIS Business Intelligence の概要 基本のテンプレート: iris-analytics-template には、IRIS BIキューブ、ピボット、ダッシュボードの例が含まれています。 また、以下のOpen Exchangeにある公開ソリューションもあります。 Samples BI Covid19 analytics Analyze This Game of Throne Analytics Pivot Subscriptions Error Globals Analytics 開発テンプレート(IRIS Analytics Template)の使い方のご紹介(第8回 InterSystems IRIS Analytics コンテスト) サンプルキューブの解説、ピボットの作成、ダッシュボードの作成方法の解説が含まれています Creating InterSystems IRIS BI Solutions Using Docker & VSCode (video) The Freedom of Visualization Choice: InterSystems BI (video) InterSystems BI(DeepSee) Overview (online course) InterSystems BI(DeepSee) Analyzer Basics (online course) Docker コンテナの使用 - 2ポイント アプリケーションは、Docker コンテナで動作する InterSystems IRIS を使用する場合、「Docker コンテナ」ボーナスが獲得できます。最もシンプルなテンプレートから開始することもできます。 テンプレートについての解説は、「IRISを手軽に使う3つの方法」(12:28~)をご参照ください。 ZPM Package によるデプロイ - 2ポイント 以下のようにデプロイできる ZPM(InterSystems Package Manager)であなたのFull Stackアプリケーションを公開するとボーナスポイントを獲得できます。 zpm "install your-multi-model-solution" 上記コマンドをZPMクライアントがインストールされたIRISで実行します。 ZPM について/ZPM Documentation あなたのプロジェクトをオンラインデモで公開した場合 - 2ポイント オンラインデモとしてアプリケーションをクラウドにプロビジョニングすると、2ポイント獲得できます。開発環境テンプレートやその他のデプロイメントオプションを使用することができます。例サンプルアプリケーションの使用方法についてはビデオをご参照ください。 ユニットテストを使用した場合 - 2ポイント InterSystems IRISコードにユニットテストを含めたアプリケーションは、ボーナスポイントを獲得できます。 ObjectScriptのユニットテストについては、ドキュメント:%UnitTest チュートリアル や コミュニティのテストタグをご参照ください。 InterSystems IdeaのCommunity Opportunity を実装された場合 - 4 ポイント InterSystems Ideaポータルに投稿されている"Community Opportunity" statusのアイデアを実装された場合、4ポイント獲得できます! Developer Communityに記事を初めて投稿する - 2ポイント コミュニティに応募したアプリケーションの概要を説明する記事を投稿すると2ポイントを獲得できます。 Developer Communityに2つ目の記事を投稿する - 1ポイント 2つ目の記事を投稿する、または投稿したアプリケーション概要の翻訳記事を投稿することで、さらボーナスポイントを獲得できます。(3記事以降はポイントが加算されません。) Code quality をパスしてBug 0件 を表示させる - 1ポイント コードの静的制御のためのcode quality Github actionを組み込み、ObjectScriptの Bug 0件 と表示させるとボーナスポイントを獲得できます。 初めてチャレンジされた方 - 3ポイント InterSystems Open Exhangeコンテストに初めて参加された場合、3ポイント獲得できます! Video on YouTube - 3 points 開発した作品の動画を作成し、YouTube に掲載した場合、3ポイント獲得できます。 ※ ボーナスポイントについては、変更される可能性もあります。予めご了承ください。 ぜひ、コンテストにチャレンジしてみてください!
記事
Toshihiko Minamoto · 2020年11月19日

InterSystems IRIS 用の Power BI コネクタ パート I

企業は変化の激しい業界で競争力を維持するため、イノベーションを起こす必要があります。 この製品は企業が迅速かつ安全な意思決定を行い、より正確な将来の実績を目指せるようにします。 ビジネスインテリジェンス(BI)ツールは、企業が試行錯誤に頼ることなくインテリジェントな意思決定を行うのに役立ちます。 このようなインテリジェントな決定は市場で成功するか失敗するかを決定付けます。 Microsoft Power BI は業界をリードするビジネスインテリジェンスツールの 1 つです。 Power BI では数回クリックするだけでマネージャーやアナリストが企業のデータを簡単に探索できます。 これは重要なことです。容易にデータにアクセスして視覚化できれば、それがビジネス上の意思決定に使用される可能性が高くなるからです。 ![](/sites/default/files/inline/images/images/image5.jpg) Power BI には、さまざまなグラフ、チャート、表、マップが含まれています。 そのため、常にデータに合った視覚化を見つけることができます。   ただし、BI ツールの有効性はそれを裏付けるデータによって決まります。 Power BI は多くのデータソースをサポートしており、最近になって InterSystems IRIS がサポート対象のソースに最近追加されました。 Power BI では IRIS に格納されているデータを刺激的な新しい方法で探索できるため、ここではこれら 2 つのすばらしいツールを一緒に使用する方法を取り上げます。   この記事では実際のデータに基づいて IRIS テーブルと Power BI を一緒に使用する方法を説明します。 後続の記事では、IRIS キューブで Power BI を使用する方法について説明します。   プロジェクトの前提条件とセットアップ 開始するには、次のものが必要です。   InterSystems IRIS Data Platform Microsoft Power BI Desktop(2019 年 4 月リリース以降) InterSystems Sample-BI データ   この記事では InterSystems IRIS Data Platform を使用するため、続行するには IRIS のインストール環境にアクセスする必要があります。 必要に応じて InterSystems Web サイトから試用版をダウンロードできます。   Microsoft Power BI Desktop のインストール方法は 2 つです。 インストーラをダウンロードするか、Microsoft Store 経由でインストールしてください。 InterSystems IRIS をインストールしたマシン以外のマシンから Power BI を実行している場合は、そのマシンに InterSystems IRIS ODBC ドライバーを個別にインストールする必要があります。   Power BI でダッシュボードを作成するには、いくつかのデータが必要です。 この記事では InterSystems がこちらの GitHub で提供している HoleFoods データセットを使用します。 続行するには、このリポジトリをクローンするかダウンロードしてください。   私は IRIS で SamplesBI というネームスペースを作成しました。 これは必須ではありませんが、新しいネームスペースを作成する必要がある場合は、IRIS Management Portal で [System Administration] > [Configuration] > [System Configuration] > [Namespace] に移動し、[New Namespace] をクリックしてください。 名前を入力し、データファイルを作成するか既存のファイルを使用します。   InterSystems IRIS ターミナルで、データをインポートする先のネームスペースを入力します。 この場合は SamplesBI を入力しています。     buildsample/Build.SampleBI.cls のフルパスと "ck" コンパイルフラグを指定して $System.OBJ.Load() を実行します。     次のように Build.SampleBI クラスの Build メソッドを実行し、サンプルファイルを含むディレクトリのフルパスを入力します。   Power BI と IRIS の接続 次に、Power BI を IRIS に接続します。 Power BI を開き、[データの取得] をクリックします。 [データベース] を選択すると、InterSystems IRIS コネクタが表示されます。     ホストアドレスを入力します。 ホストアドレスは InterSystems IRIS インスタンス(私の場合は localhost)のホストの IP アドレスであり、ポートはインスタンスのスーパーサーバーポート(IRIS のデフォルトは 57773)であり、ネームスペースは HoleFoods データが配置されている場所です。   常に最新のデータを表示できるよう、[データ接続モード] では「DirectQuery」を選択します。   ![](/sites/default/files/inline/images/images/image6.jpg)   次に、ユーザー名とパスワードを入力して IRIS に接続します。 デフォルトは「_SYSTEM」と「SYS」です。   ![](/sites/default/files/inline/images/images/image2.jpg) IRIS で作成したテーブルとキューブの両方をインポートできます。 まずはいくつかのテーブルをインポートしましょう。   [テーブル] の HoleFoods の下にある以下の項目を確認します。   Country Outlet Product Region SalesTransaction     あともう少しです! テーブル間のリレーションシップについて Power BI に通知するため、[リレーションシップの管理] をクリックします。     次に、[新規] をクリックします。     「SalesTransaction」と「Product relationship」の 2 つのリレーションシップを作りましょう。   上にある「SalesTransaction」テーブルを選択し、「Product」列をクリックします。 次に「Product」テーブルを選択し、「ID」列をクリックします。 [基数] が自動的に「多対一 (*:1)」に変わったことを確認できます。     次の組み合わせでこの手順を繰り返します。   「SalesTransaction(Outlet)」と「Outlet(ID)」 「Outlet(Country)」と「Country(ID)」 「Country(Region)」と「Region(ID)」     これらのリレーションシップは、外部キーと表現されている場合は自動的にインポートされています。   Power BI にはリレーションシップのスキーマビューアーも備わっています。 アプリケーションの左側にあるボタンをクリックすると、データモデルが表示されます。 ![](/sites/default/files/inline/images/images/image24.jpg)   ダッシュボードの作成 これで、ダッシュボードを作成するために必要なものがすべて揃いました。   まずは左側のボタンをクリックし、スキーマビューからレポートビューに切り替えましょう。 [ホーム] タブの [挿入] グループにある [テキストボックス] をクリックしてタイトルを追加します。   [挿入] グループには、レポートを拡張するために使用できるテキスト、図形、画像などの静的要素が含まれています。     最初の視覚化を追加しましょう! [フィールド] ペインで、「Product」の「名前」と「SalesTransaction」の「UnitsSold」を確認します。     次に [スタイル] に移動し、[太字のヘッダー] を選択します。     次に、データ変換を行います。 [フィールド] ペインの [SalesTransaction] の横にある省略記号をクリックします。     次に [クエリの編集] をクリックします。 「Power Query Editor」が開きます。     「DateOfSale」列を選択し、「重複する列」をクリックします。     この新しい列の名前を「Year」に変更し、「日付」をクリックして「年」を選択します。     これらの変更を適用します。 次に新しい列を選択し、[モデリング] タブで [既定の概要] を [集計しない] に変更します。     「折れ線グラフ」視覚化を追加してから Year を軸にドラッグし、「Name」を「Region」から凡例にドラッグし、「AmountOfSale」を「SalesTransaction」から「値」にドラッグします。     HoleFoods の営業チームが 2000 台の販売を目標としていると想定してください。 この場合、チームが目標を達成しているかどうかをどのように判断できますか?   この質問に答えるため、メトリックと目標値のビジュアルを追加しましょう。   [フィールド] ペインの「SalesTransaction」で、「UnitsSold」をオンにして、[ゲージ] グラフをクリックします。 [スタイル] プロパティで [最大値] を 3000 に、[目標値] を 2000 に設定します。     KPI(主要業績評価指標)は有用な意思決定ツールであり、Power BI では便利な KPI ビジュアルを使用できます。   これを追加するには「SalesTransaction」で「AmountOfSale」をオンにし、[視覚化] で [KPI] を選択します。 次に、「Year」を [トレンド軸] にドラッグします。     すべてのグラフとビジュアルの位置を揃えるには、ビジュアルをクリックしてドラッグしてください。エッジまたは中心が別のビジュアルまたはビジュアル一式のエッジまたは中心と位置が揃いそうになると、赤い破線が表示されます。     [表示] タブに移動して、[枠線の表示] と [描画オブジェクトをグリッドにスナップ] を有効にすることもできます。     最後に、HoleFoods のグローバルプレゼンスを示すマップを追加します。 [モデリング] タブで、「Outlet」の Longitude と Latitude を[要約しない] に設定します。     マップツールは、[視覚化] ペインにあります。 マップを追加した後、Latitude フィールドと Longitude フィールドを Outlet からマップ上のそれぞれのプロパティにドラッグします。 また、SalesTransaction から AmountOfSale を [サイズ] プロパティにドラッグし、UnitsSold を [ヒント] にドラッグします。     そして、最終的にダッシュボードが完成しました。   ダッシュボードは Power BI サービスに公開すると共有できます。 そのためには、Power BI アカウントにサインアップする必要があります。 まとめ わずか数分で Power BI を InterSystems IRIS に接続し、素晴らしくインタラクティブな視覚化を行うことができました。   開発者としては、これを素晴らしいことだと思っています。 管理者向けのダッシュボードの開発に数時間や数日を費やすことなく、数分で作業を完了できるからです。 さらに素晴らしいのは、マネージャーが自分でレポートをすばやく簡単に作成する方法を示すことができることです。   開発者は往々にして視覚化の開発を業務の一環として行いますが、普通はその時間をミッションクリティカルなアーキテクチャとアプリケーションの開発に費やしたほうがよいでしょう。 IRIS と Power BI を一緒に使用すると、開発者が時間を効率的に使用できるようになり、マネージャーはダッシュボードの開発、テスト、本番環境への展開を数週間も待つことなく、データにすぐにアクセスして視覚化できるようになります。  
お知らせ
Mihoko Iijima · 2020年10月26日

第7回 InterSystems IRIS プログラミングコンテスト(Interoperability コンテスト)

開発者の皆さんこんにちは!IRIS プログラミングコンテスト 7 回目のテーマが発表されました! 今回のコンテストのテーマは ⚡️ InterSystems Interoperability(相互運用性) Contest ⚡️ です! 日本からのご応募お待ちしております! 応募期間は 2020年11月2日~15日 です! (投票期間は 2020年11月16日~22日、勝者発表は 11月23日を予定しています) 優勝特典 1、審査員から多く票を集めたアプリケーションには、以下の賞金が贈られます。 🥇 1位 - $2,000 🥈 2位 - $1,000 🥉 3位 - $500 2、Developer Community で多く票を集めたソリューションには、以下の賞金が贈られます。 🥇 1位 - $1,000 🥈 2位 - $500 複数の参加者が同数の票を獲得した場合、全参加者が勝者となり賞金は勝者間で分配されます。 参加資格 どなたでもご参加いただけます!(InterSystems 開発者コミュニティのアカウントを作成するだけでご応募いただけます) コンテストのスケジュール 11月2日~15日 応募期間(Open Exchange へ作成されたアプリケーションをアップロードいただける期間=2週間です。この期間内であればアップロード後も自由に編集できます。) 11月16日~22日 投票(1週間) 11月23日 優秀者発表(US時間に発表します) コンテストのテーマ 💡 InterSystems IRIS / IRIS for Health を使用した Interoperability(相互運用性)ソリューションの開発 💡 InterSystems IRIS または InterSystems IRIS for Health を使用した Interoperability(相互運用性)ソリューションの開発または、メンテナンスを支援するソリューションを開発します。 アプリケーションは、IRIS Community Edition、IRIS for Health Community Edition、IRIS Advanced Analytics Community Edition のいずれかで動作する必要があります。 アプリケーションはオープンソースであり、GitHubで公開されている必要があります。 アプリケーションに特別な技術実装を導入すると、技術的なボーナスを獲得できます。ボーナスの詳細については、後日発表します! Helpful resources 1. アプリケーションの例(Open Exchange のアプリケーション) ETL-Interoperability-Adapter HL7 and SMS Interoperability Demo Twitter Sentiment Analysis with IRIS Healthcare HL7 XML RabbitMQ adapter 2. Interoperabilityを使ってみよう!(日本語) Interoperabilityの動作の仕組みやどんな開発が必要になるのか、などを7つの記事でご紹介しています。 3.コンテスト応募方法(このページ末尾のビデオをご参照ください) 4. オンラインコース(無料でお試しいただける learning.intersystems.com 上にあるコース) Interoperability for Business Interoperability QuickStart Interoperability Resource Guide - 2019 5. ビデオ Intelligent Interoperability Interoperability for Health Overview 審査及び投票ルール(英語) インターシステムズ社のプロダクトマネージャ、Developer Communityのモデレータ、グローバルマスターアドボケイト(VIPレベル)等、Developer Community 内での投票も行われます。 コンテストの審査および投票ルールについて詳細はこちらをご覧ください。 ご応募方法について 以下の応募方法ビデオをご参照ください。 以下、コンテストに応募する迄の手順をご説明します。 コンテスト応募までの流れは以下の通りです(※ビデオでは、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」ボタンが表示されるので、クリックすると応募が完了します。 テクノロジーボーナスについて追記しています。 詳細は、こちらの記事をご参照ください! Interoperability機能を使った常駐プロセスの作り方 (日本語記事)もあります。 ぜひご参照ください!
お知らせ
Mihoko Iijima · 2020年11月24日

★受賞者発表!★第7回 InterSystems IRIS プログラミングコンテスト(Interoperabilityコンテスト)

開発者の皆さんこんにちは! 第7回 InterSystems IRIS プログラミングコンテスト(Interoperabilityコンテスト) への応募、投票が全て終了しました。コンテストへのご参加、またご興味をお持ちいただきありがとうございました。 今回のお知らせでは、見事受賞されたアプリケーションと開発者の方々を発表します! 🏆 審査員賞 - 特別に選ばれた審査員から最も多くの票を獲得したアプリケーションに贈られます。 🥇 1位 - $2,000 は Open API Client Gen を開発された Lorenzo Scalese さんに贈られました! 🥈 2位 - $1,000 は OCR Service を開発された YURI MARX GOMES さんに贈られました! 🥉 3位 - $250 は IRIS Interoperability Message Viewer を開発された Henrique Gonçalves Dias さんに贈られました! 🥉 3位 - $250 は interoperability-integratedml-adapter を開発された José Roberto Pereira さんに贈られました! 🏆 開発者コミュニティ賞 - 最も多くの票を獲得したアプリケーションに贈られます。 🥇 1位 - $1,000 は OCR Service を開発された YURI MARX GOMES さんに贈られました! 🥈 2位 - $500 は IRIS Interoperability Message Viewer を開発された Henrique Gonçalves Dias さんに贈られました! 🥉 3位 - $250 は Open API Client Gen を開発された Lorenzo Scalese さんに贈られました! 🎊 受賞者の皆様、おめでとうございます!👏 今回の Interoperability コンテストにご注目いただきありがとうございます! さて、次回のコンテストは・・・・・・? InterSystems Analytics コンテストです! 詳細については近日公開します!お見逃しなく!
お知らせ
Mihoko Iijima · 2020年11月24日

第8回 InterSystems IRIS プログラミングコンテスト(Analytics コンテスト)

開発者の皆さんこんにちは!IRIS プログラミングコンテスト 第7回の勝者が発表されたばかりですが、第8回のテーマが発表されました! 今回のコンテストのテーマは 🏆 InterSystems Analytics Contest 🏆 です! さぁ、年内最後のコンテストです!日本からのご応募お待ちしております! 応募期間は 2020年12月7日~20日 です! (投票期間は 2020年12月21日~27日、勝者発表は 12月28日を予定しています) 優勝特典 1、審査員から多く票を集めたアプリケーションには、以下の賞金が贈られます。 🥇 1位 - $2,000 🥈 2位 - $1,000 🥉 3位 - $500 2、Developer Community で多く票を集めたソリューションには、以下の賞金が贈られます。 🥇 1位 - $1,000 🥈 2位 - $500 複数の参加者が同数の票を獲得した場合、全参加者が勝者となり賞金は勝者間で分配されます。 参加資格 どなたでもご参加いただけます!(InterSystems 開発者コミュニティのアカウントを作成するだけでご応募いただけます) コンテストのスケジュール 12月7日~20日 応募期間(Open Exchange へ作成されたアプリケーションをアップロードいただける期間=2週間です。この期間内であればアップロード後も自由に編集できます。) 12月21日~27日 投票(1週間) 12月28日 優秀者発表(US時間に発表します) コンテストのテーマ 💡 InterSystems IRIS を使用した分析ソリューションの開発 💡 1つ以上の InterSystems IRIS 分析機能(IRIS BI、IRIS NLP、IntegratedML、InterSystems Reports)を使用して、シンプルで説得力のある明確な可視化やストーリーを開発してください。 アプリケーションは、IRIS Community Edition、IRIS for Health Community Edition、IRIS Advanced Analytics Community Edition のいずれかで動作する必要があります。 また、アプリケーションはオープンソースであり、GitHubに公開していることも条件の一つです。 アプリケーションに特別な技術実装を導入した場合、技術的なボーナスを獲得できます。ボーナス詳細については後日発表します。 Helpful resources 1. アプリケーションの例(Open Exchange のアプリケーション) IRIS Analytics Template(テンプレートの使い方 日本語解説+ビデオはこちら!) Samples BI Covid19 analytics Analyze This Game of Throne Analytics Pivot Subscriptions Samples Aviation Set Analysis Error Globals Analytics 2.コンテスト応募方法(このページ末尾のビデオをご参照ください) 3. オンラインコースや資料など(英語) DeepSee Overview DeepSee Analyzer Basics InterSystems Reports Resource guide iKnow First Look 4. ビデオ(英語) Creating InterSystems IRIS Analytics Solutions Using Docker & VSCode The Freedom of Visualization Choice: InterSystems BI A look at InterSystems Reports 5. サンプルデータ Adventure Works Synthea 審査及び投票ルール(英語) インターシステムズ社のプロダクトマネージャ、Developer Communityのモデレータ、グローバルマスターアドボケイト(VIPレベル)等、Developer Community 内での投票も行われます。 コンテストの審査および投票ルールについて詳細はこちらをご覧ください。 ご応募方法について 以下の応募方法ビデオをご参照ください。 以下、コンテストに応募する迄の手順をご説明します。 コンテスト応募までの流れは以下の通りです(※ビデオでは、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年1月11日

テクノロジーボーナス詳細:第9回 InterSystems IRIS プログラミングコンテスト(マルチモデルコンテスト)

開発者の皆さん、こんにちは! 第9回のマルチモデルコンテストの 続報 📣 の「テクノロジーボーナス」についてご紹介します。 InterSystems Globals (key-value) InterSystems SQL InterSystems Objects Your data model ZPM Package deployment Docker container usage 詳細は以下ご参照ください。 InterSystems Globals (key-value) - 2 points InterSystems グローバルは、InterSystems IRIS に任意のデータを格納するために使用される多次元スパース配列です。各グローバル・ノードはキーとみなされ、値(バリュー)を設定することができます。InterSystems IRIS は、グローバルを管理するための ObjectScript のコマンドや Native API を含む一連の API を提供しています。 ObjectScript または Native API を介してグローバルを使用すると、2 ポイント獲得できます。 ツール: 管理ポータルでのグローバルの管理 ドキュメント: 多次元ストレージの使用法 (グローバル) グローバルの使用法 記事: グローバルはデータを保存するための魔法の剣です パート1 The art of mapping Globals to Classes ビデオ: Globals QuickStart InterSystems SQL (iKnow) - 2 points InterSystems IRISは、ObjectScript、REST API、xDBCを介してデータへのSQLアクセスを提供します。 アプリケーションで InterSystems SQL を使用すると、2 ポイント獲得できます。 ツール: VSCode SQL Tools DBeaver 管理ポータルの SQL インタフェースの使用法 Other SQL tools ドキュメント: SQL Access InterSystems SQL リファレンス 記事: InterSystems IRIS のクラスクエリ Your data model - 2 points InterSystems IRISは、独自のデータモデル API を公開するデータプラットフォームとして使用することができます。ObjectScript、REST API、Native API を利用して、時系列、空間、グラフ、RDF/トリプル、カラムストア、ドキュメントストアなどの特殊なデータモデルを提供する独自の API を公開することができます。 新しいデータモデル API を開発すると、2 ポイント獲得できます。 ZPM Package deployment - 2 points フルスタックアプリケーション用の ZPM(ObjectScript Package Manager) パッケージをビルドして公開し、それを使用してデプロイできるようにすると、2 ポイント獲得できます。 以下のコマンド実行例は、 IRIS に ZPM クライアントをインストールしパッケージをインストールしている例です。 zpm "install your-multi-model-solution" 詳しくは、ZPM client や ドキュメント をご参照ください。 Docker container usage - 2 points docker コンテナで動作する InterSystems IRIS を使用すると「Docker コンテナ」のボーナスポイントを獲得できます。 以下の docker コンテナを利用した開発環境テンプレートを使用しても、ボーナスポイントを獲得できます。 IRIS Interoperability Template Interoperability(相互運用性)については、Interoperabilityを使ってみよう!(日本語)の記事もぜひご参照ください(Interoperabilityの動作の仕組みやどんな開発が必要になるのか、などを7つの記事でご紹介しています)。 上記に掲載されている技術の使用方法についてご質問がありましたら、お気軽にコミュニティまでご質問ください! コンテストへのご参加、お待ちしてます! 注意:現在のテクノロジーボーナスリストはコンテスト開始前に変更される可能性もあります。予めご了承ください。
お知らせ
Mihoko Iijima · 2021年1月25日

★投票開始★ 第9回 InterSystems IRIS プログラミングコンテスト(マルチモデルコンテスト)

開発者の皆さん、こんにちは。 第9回 IRIS プログラミングコンテスト(マルチモデルコンテスト)の投票が開始されました! 🔥 これだ!と思う一押し作品に投票お願いします! 🔥 投票期間:1月25日~31日 (1週間) 投票方法は?Expert Nomination または Community Nomination を選択いただき、どの作品がどの順位になるかを指定しながら投票します。 Community Leaderboard: 順位 ポイント 1位 3点 2位 2点 3位 1点 そして、エキスパートノミネーションからの投票は以下の通りです(エキスパートのレベルが上がると獲得できるポイントも増えます!)。 Experts Leaderboard: エキスパートレベル 順位 1位 2位 3位 GM、モデレーター、プロダクトマネージャーのVIPレベル 9点 6点 3点 グローバルマスターズのエキスパートレベル 6点 4点 2点 グローバルマスターズのスペシャリストレベル 3点 2点 1点 エキスパートリーダーボードの投票はコミュニティリーダーボードにもポイント(1位3点、2位2点、3位1点)が加算されます。 投票方法について 投票は Open Exchange コンテストページで行われ、Open Exchange にサインインする必要があります。 投票期間であれば、一度投票した後も別のアプリケーションへ投票し直すこともできます(投票期間は1週間あります)。 なお、コンテスト参加者は投票週間の間にバグの修正やアプリケーションの改善を行うことができますので、アプリケーションのリリース情報についてもお見逃しなく!(サブスクリプション登録が行えます) ➡️ InterSystems オンラインコンテストの新しい投票ルールについて詳細はこちらをご参照ください。
お知らせ
Mihoko Iijima · 2021年2月1日

★受賞者発表!★第9回 InterSystems IRIS プログラミングコンテスト(マルチモデルコンテスト)

開発者の皆さんこんにちは! 第9回 InterSystems IRIS プログラミングコンテスト(マルチモデルコンテスト) への応募、投票が全て終了しました。コンテストへのご参加、またご興味をお持ちいただきありがとうございました。 今回のお知らせでは、見事受賞されたアプリケーションと開発者の方々を発表します! 🏆 Experts Nomination - 特別に選ばれた審査員から最も多くの票を獲得したアプリケーションに贈られます。 🥇 1位 - $2,000 は iris-image-index-demo を開発された @José Roberto Pereira さんに贈られました! 🥈 2位 - $1,000 は zapm を開発された @Sergey Mikhailenk さんに贈られました! 🥉 3位 - $500 は iris-multimodel-suite を開発された @Renato Banzai さんに贈られました! 🏆 Community Nomination - 最も多くの票を獲得したアプリケーションに贈られます。 🥇 1位 - $1,000 は HealthInfoQueryLayer を開発された @Botai Zhang さんに贈られました! 🥈 2位 - $500 は ris-vaccine-tracker を開発された @Henrique Gonçalves Dias さんに贈られました! 🥉 3位 - $250 は iris-image-index-demo を開発された @José Roberto Pereira さんに贈られました! 🎊 受賞者の皆様、おめでとうございます!👏 今回も、コンテストにご注目いただきありがとうございます! さて、次回のコンテストは・・・・・・? InterSystems グランプリ・プログラミングコンテストの開催が発表されました!! なんと、賞金総額ですが 過去最高の 16,000ドル! です!ぜひ、チャレンジしてみてください! ご応募、お待ちしております!☺
記事
Toshihiko Minamoto · 2021年1月13日

Docker コンテナ内で InterSystems IRIS と Package Manager を併用する場合について。

デベロッパーの皆さん、こんにちは! InterSystems Package Manager (ZPM) は、素晴らしいツールですが、インストールせずにすぐ使用できたら、さらに便利です。 それを実現する方法はいくつかあります。以下に dockerfile を使って ZPM をビルドした IRIS コンテナを用意する方法をご紹介します。 [リポジトリ](https://github.com/intersystems-community/objectscript-zpm-template)を作成し、その[dockerfile に数行のコード](https://github.com/intersystems-community/objectscript-zpm-template/commit/6c1018312ca3214048dbed1b7c4307a65fa8563f)を記述しました。これを使えば、最新バージョンの ZPM をダウンロードし、インストールできます。  IRIS コミュニティエディション用のあなたの dockerfile にこれらのコマンドを追加すれば、ZPM がインストールされ、使用できるようになります。 最新の ZPM クライアントをダウンロードするコマンドは以下の通り。 RUN mkdir -p /tmp/deps \ && cd /tmp/deps \ && wget -q https://pm.community.intersystems.com/packages/zpm/latest/installer -O zpm.xml IRIS に ZPM をインストールするコマンドは以下の通り。 " Do \$system.OBJ.Load(\"/tmp/deps/zpm.xml\", \"ck\")" \ これで完了です! このリポジトリで ZPM を試すには、以下を実行します $ git clone https://github.com/intersystems-community/objectscript-zpm-template.git リポジトリをビルドして実行します $ docker-compose up -d Open IRIS terminal: $ docker-compose exec iris iris session iris USER> ZPM を読み出します USER>zpm zpm: USER> ウェブターミナルをインストールします zpm: USER>install webterminal webterminal] Reload START [webterminal] Reload SUCCESS [webterminal] Module object refreshed. [webterminal] Validate START [webterminal] Validate SUCCESS [webterminal] Compile START [webterminal] Compile SUCCESS [webterminal] Activate START [webterminal] Configure START [webterminal] Configure SUCCESS [webterminal] Activate SUCCESS zpm: USER> 是非ご活用ください! ![](/sites/default/files/inline/images/images/Screenshot%202019-09-06%2012_46_59.png) 全体のプロセスはこちらの GIF をご覧ください。 ![](/sites/default/files/inline/images/images/webterm2.gif)  
記事
Tomohiro Iwamoto · 2021年2月16日

InterSystems IRIS デプロイガイド - AWS CloudFormation テンプレート - Windows編

## 目的 CloudFormationの記事は、Linux系のものが多いですが、Windowsでも自動化したいという需要がありそうですので、[オリジナル記事](https://jp.community.intersystems.com/post/intersystems-iris-%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4%E3%82%AC%E3%82%A4%E3%83%89-aws-cloudformation-%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88-%C2%A0)を元に、CloudFormationを使用してミラークラスターをWindowsサーバにデプロイする例を実装してみました。また、簡単な実行例も追加しました。 ソースコード一式はこちらの[Gitレポジトリ](https://github.com/IRISMeister/AWSIRISDeployment)にあります。 更新: 2021年3月1日 ワンライナーで踏み台ホスト経由でWindowsに公開鍵認証する方法を追記しました 更新: 2022年11月29日 [QuickStart](https://aws.amazon.com/jp/quickstart/architecture/intersystems-iris/)の形式に合わせて大幅に変更しました。以前の内容は[こちら](https://github.com/IRISMeister/AWSIRISDeployment/releases/tag/v0.1)に保存してあります。 更新: 2022年12月21日 踏み台ホストの使用を止め、代わりにAWS System Manager(SSM)を有効化しました。プライベートサブネット上のインスタンスへのアクセスが簡素化されます。以前の内容は[こちら](https://github.com/IRISMeister/AWSIRISDeployment/releases/tag/v0.2)に保存してあります。 ## 事前準備 [QuickStart](https://aws.amazon.com/jp/quickstart/architecture/intersystems-iris/)のデプロイ方法に従います。 非公開のS3バケットにIRISのキット及びライセンスキーをアップロードします。 - IRISをWindowsにデプロイする場合 ```bash S3BucketName= aws s3 mb s3://$S3BucketName aws s3 cp iris.key s3://$S3BucketName aws s3 cp ISCAgent-2022.1.0.209.0-lnxrh7x64.tar.gz s3://$S3BucketName aws s3 cp IRIS-2022.1.0.209.0-win_x64.exe s3://$S3BucketName ``` - IRISをLinux(AmazonLinuxあるいはRedHat7/x64)にデプロイする場合 ```bash S3BucketName= aws s3 mb s3://$S3BucketName aws s3 cp iris.key s3://$S3BucketName aws s3 cp ISCAgent-2022.1.0.209.0-lnxrh7x64.tar.gz s3://$S3BucketName aws s3 cp IRIS-2022.1.0.209.0-lnxrh7x64.tar.gz s3://$S3BucketName ``` - IRISをLinux(Ubuntu/x64)にデプロイする場合 ```bash S3BucketName= aws s3 mb s3://$S3BucketName aws s3 cp iris.key s3://$S3BucketName aws s3 cp ISCAgent-2022.1.0.209.0-lnxrh7x64.tar.gz s3://$S3BucketName aws s3 cp IRIS-2022.1.0.209.0-lnxubuntu2004x64.tar.gz s3://$S3BucketName ``` > このテンプレートは、AmazonLinuxを使用しています。RedHat7もしくはUbuntuを利用する場合は、別途「[カスタマイズ候補](#linux)」のチャプターの作業が必要です また、事前にAWS上に用意されているテンプレートではなく、カスタマイズを行ったテンプレートを使用するので、下記を実行します。 > QSS3BucketNameはS3BucketNameと同じでも、異なっていても構いません。 ```bash $ git clone https://github.com/IRISMeister/AWSIRISDeployment.git --recursive $ cd AWSIRISDeployment ``` Windowsにデプロイする場合 ```bash QSS3BucketName= aws s3 cp quickstart-intersystems-iris-windows s3://$QSS3BucketName/quickstart-intersystems-iris-windows --recursive aws s3 cp submodules/quickstart-aws-vpc/templates s3://$QSS3BucketName/quickstart-intersystems-iris-windows/submodules/quickstart-aws-vpc --recursive aws s3 cp submodules/quickstart-linux-bastion/templates s3://$QSS3BucketName/quickstart-intersystems-iris-windows/submodules/quickstart-linux-bastion --recursive aws s3 cp submodules/quickstart-linux-bastion/scripts s3://$QSS3BucketName/quickstart-intersystems-iris-windows/submodules/quickstart-linux-bastion --recursive ``` Linuxにデプロイする場合 ```bash QSS3BucketName= aws s3 cp quickstart-intersystems-iris s3://$QSS3BucketName/quickstart-intersystems-iris --recursive aws s3 cp submodules/quickstart-aws-vpc/templates s3://$QSS3BucketName/quickstart-intersystems-iris/submodules/quickstart-aws-vpc --recursive aws s3 cp submodules/quickstart-linux-bastion/templates s3://$QSS3BucketName/quickstart-intersystems-iris/submodules/quickstart-linux-bastion --recursive aws s3 cp submodules/quickstart-linux-bastion/scripts s3://$QSS3BucketName/quickstart-intersystems-iris/submodules/quickstart-linux-bastion --recursive ``` ## 実行例 以下、既存VPCにWindows版IRISのミラー構成をデプロイする際の実行例です。 > VPCを新規作成する場合は、下記の[VPC関連の事前準備](#VPC関連)は不要です。 ### 事前準備 #### VPC関連 既存VPC上に、以下のリソースを事前に用意しました。 > デプロイ実行時にNATゲートウエイが無いと、スタックの作成に失敗します。必ず用意してください。 - パブリックサブネット ![image](/sites/default/files/inline/images/cfwindows_pub_subnet.png) - プライベートサブネット ![image](/sites/default/files/inline/images/cfwindows_subnet.png) - ルートテーブル/ルート ![image](/sites/default/files/inline/images/cfwindows_route_0.png) - ルートテーブル/サブネットの関連付け ![image](/sites/default/files/inline/images/cfwindows_route-assoc_0.png) - NATゲートウエイ ![image](/sites/default/files/inline/images/cfwindows_natgw.png) #### S3への各種ファイルのアップロード ```bash S3BucketName=iwamoto-cf-templates aws s3 mb s3://$S3BucketName aws s3 cp ISCAgent-2022.1.0.209.0-lnxrh7x64.tar.gz s3://$S3BucketName aws s3 cp iris.key s3://$S3BucketName aws s3 cp IRIS-2022.1.0.209.0-win_x64.exe s3://$S3BucketName git clone https://github.com/IRISMeister/AWSIRISDeployment.git cd AWSIRISDeployment # キットファイル格納先と同じbucketを使用しています QSS3BucketName=iwamoto-cf-templates aws s3 cp quickstart-intersystems-iris-windows s3://$QSS3BucketName/quickstart-intersystems-iris-windows --recursive aws s3 cp submodules/quickstart-aws-vpc/templates s3://$QSS3BucketName/quickstart-intersystems-iris-windows/submodules/quickstart-aws-vpc --recursive aws s3 cp submodules/quickstart-linux-bastion/templates s3://$QSS3BucketName/quickstart-intersystems-iris-windows/submodules/quickstart-linux-bastion --recursive aws s3 cp submodules/quickstart-linux-bastion/scripts s3://$QSS3BucketName/quickstart-intersystems-iris-windows/submodules/quickstart-linux-bastion --recursive ``` このような内容になります。 ``` aws s3 ls s3://$QSS3BucketName --recursive 2022-06-15 07:48:57 675737136 IRIS-2022.1.0.209.0-win_x64.exe 2022-10-12 01:09:57 16139988 ISCAgent-2022.1.0.209.0-lnxrh7x64.tar.gz 2022-03-29 07:11:24 546 iris.key 2022-11-25 09:15:50 0 quickstart-intersystems-iris-windows/ 2022-11-25 09:16:05 0 quickstart-intersystems-iris-windows/scripts/ 2022-11-28 05:34:49 6008 quickstart-intersystems-iris-windows/scripts/MirrorInstaller.xml 2022-11-28 13:34:52 0 quickstart-intersystems-iris-windows/submodules/ 2022-11-28 13:34:52 0 quickstart-intersystems-iris-windows/submodules/quickstart-aws-vpc/ 2022-11-28 13:34:52 0 quickstart-intersystems-iris-windows/submodules/quickstart-aws-vpc/templates/ 2022-11-28 13:34:52 59966 quickstart-intersystems-iris-windows/submodules/quickstart-aws-vpc/templates/aws-vpc.template.yaml 2022-11-28 13:34:52 0 quickstart-intersystems-iris-windows/submodules/quickstart-linux-bastion/ 2022-11-28 13:34:52 0 quickstart-intersystems-iris-windows/submodules/quickstart-linux-bastion/scripts/ 2022-11-28 13:34:52 531 quickstart-intersystems-iris-windows/submodules/quickstart-linux-bastion/scripts/auditing_configure.sh 2022-11-28 13:34:52 881 quickstart-intersystems-iris-windows/submodules/quickstart-linux-bastion/scripts/banner_message.txt 2022-11-28 13:34:52 11763 quickstart-intersystems-iris-windows/submodules/quickstart-linux-bastion/scripts/bastion_bootstrap.sh 2022-11-28 13:34:52 0 quickstart-intersystems-iris-windows/submodules/quickstart-linux-bastion/templates/ 2022-11-28 13:34:52 24068 quickstart-intersystems-iris-windows/submodules/quickstart-linux-bastion/templates/linux-bastion.template 2022-11-25 09:16:16 0 quickstart-intersystems-iris-windows/templates/ 2022-11-28 09:35:42 6059 quickstart-intersystems-iris-windows/templates/iris-cluster-arbiter-node.template.yaml 2022-11-28 09:35:42 21529 quickstart-intersystems-iris-windows/templates/iris-cluster-iris-node.template.yaml 2022-11-28 09:35:42 13736 quickstart-intersystems-iris-windows/templates/iris-cluster-main.template.yaml 2022-11-28 09:35:43 10403 quickstart-intersystems-iris-windows/templates/iris-entrypoint-new-vpc.template.yaml ``` ### (オプション)全パラメータ設定済みyamlの編集 繰り返し実行することを考慮して、パラメータを全て指定した状態のテンプレートを作成しておくと便利です。 ```bash vi test-iris-cluster-main-windows.yaml ``` > 編集後のファイルをうっかり公開してしまわないよう注意してください 編集時の注意 - BastionSubnetIdParameterには、異なるAZに属する2つのpublic subnetを指定してください。 - InstanceSubnetIdParameterには、異なるAZに属する3つのsubnetを指定してください。はじめの2つがIRISホスト、最後に指定したサブネットがArbiterホストが稼働するサブネットになります。 - IRISをインストールするホストは、インストール作業の際にインターネットへのアクセスを行います。具体的にはs3アクセスのためにaws cliが必要(amazon linuxと違ってUbuntuにはプリインストールされていません)なのですが、その他にもchocolateyを使用してaws cliをインストールしています。NATゲートウェイ等を構成済みのプライベートサブネットを構築済みで無い場合は、[こちら](NATGW.yaml)を参考にして一時的に追加してください。 > NATゲートウェイは存在するだけでコストが発生します。(VM起動直後のS/Wインストール時など)必要な時に作成し、不要になったらすぐ削除したかったので、別のCFテンプレートにしています。 ### コンソールからCloudFormationの実行 1. スタックを「新しいリソースを使用」して作成します。 テンプレートソースには「テンプレートファイルのアップロード」を選択し、先ほど編集したファイル(test-iris-cluster-main-windows.yaml)を指定します。 「スタックの詳細を指定」画面でパラメータを設定します。 |パラメータ|設定値例| | --- | --- | |BastionSubnetIdParameter|subnet-0f7c4xxxxxxxxxxxx,subnet-05b42xxxxxxxxxxxx| |IRISPasswordParameter|SYS1| |InstanceSubnetIdParameter|subnet-0180bxxxxxxxxxxxx,subnet-03272xxxxxxxxxxxx,subnet-08e8fxxxxxxxxxxxx| |QSS3BucketName|iwamoto-cf-templates| |QSS3BucketRegion|ap-northeast-1| |QSS3KeyPrefix|quickstart-intersystems-iris-windows/| |S3BucketNameParameter|iwamoto-cf-templates| |SshKeyParameter|aws| |VpcIdParameter|vpc-0e538xxxxxxxxxxxx| 「スタックオプションの設定」画面に特に設定はありません。実行がうまくいかない場合は、スタックの作成オプションの「失敗時のロールバック」を無効にしておくと、作成された環境がロールバックされずに残りますので、問題の解析がしやすくなります(不要になったら、忘れずに削除すること)。 「レビュー」画面で、「The following resource(s) require capabilities:」で、下記にチェックをいれる必要があります。 - AWS CloudFormation によって IAM リソースがカスタム名で作成される場合があることを承認します。 - AWS CloudFormation によって、次の機能が要求される場合があることを承認します: CAPABILITY_AUTO_EXPAND 「スタックの作成」ボタンを押します。複数のネストされたスタックの作成が開始されます。 2. 出力内容を確認します。 スタックのステータスがCREATE_COMPLETEになるまで待機します(15分ほどかかりました)。 スタック(アップロードしたスタックではなく、ネストされたxxx-IRISStack-xxxx)の出力を表示します。ギアアイコンで行の折り返し指定が出来ます。 |Stack|キー|値|説明| | --- | --- | --- | --- | |IRIStack|JDBCEndpoint|jdbc:IRIS://xxxx-NLB-xxxxx.elb.ap-northeast-1.amazonaws.com:51773/DATA| JDBC Connection String| |IRIStack|Node01InstanceId|i-xxxxxxxxxx|Node 01 Instance ID| |IRIStack|Node01PrivateIP|10.0.12.85|Node 01 Private IP| |IRIStack|Node02InstanceId|i-xxxxxxxxxx|Node 02 Instance ID| |IRIStack|Node02PrivateIP|10.0.10.159|Node 02 Private IP| これらの出力値を記録しておいてください。 ### IRIS管理ポータルへのアクセス Node01ホスト(ミラープライマリサーバ)の管理ポータルに接続します。下記のコマンドを実行します。 - 踏み台ホストを使用しない場合 セッションマネージャのポート転送を利用します。事前に[AWS CLIのインストール・構成](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html)と[SSMプラグインのインストール](https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html)が必要です。私はWindows10+WSL2(Ubuntu)を使用していますので、下記を実行しました。 ``` $ curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/ubuntu_64bit/session-manager-plugin.deb" -o "session-manager-plugin.deb" $ sudo dpkg -i session-manager-plugin.deb ``` ``` $ export instanceid=i-xxxxxxxxxx $ aws ssm start-session --target $instanceid \ --document-name AWS-StartPortForwardingSession \ --parameters '{"portNumber":["52773"],"localPortNumber":["52773"]}' ``` > [SSHトンネルを作成する方法](https://aws.amazon.com/jp/premiumsupport/knowledge-center/systems-manager-ssh-vpc-resources/)もあります。 - 踏み台ホストを使用する場合 ```bash BastionPublicIP=54.168.xxx.xxx Node01PrivateIP=10.0.12.85 ssh -i aws.pem -L 52773:$Node01PrivateIP:52773 ec2-user@$BastionPublicIP ``` この時点で、http://localhost:52773/csp/sys/UtilHome.csp で管理ポータルにアクセスできます。アカウントはSuperUser、パスワードはスタックのパラメータで指定したものを使用します。ミラーの状態を確認するために、管理ポータルのホーム画面の右端に「ミラー・モニターを表示」というリンクがありますので、クリックします。以下の画面のように表示されていれば正常です。 ![image](/sites/default/files/inline/images/cfwindows_mirror_0.png) ### WindowsへのRDP接続 RDP接続する場合は、(推奨に従って)Node01をプライベートサブネットに作成している場合、ssh同様、RDPも直接接続できません。フリートマネージャーをRDPの代替えとして利用可能です。 ![image](/sites/default/files/inline/images/fleet-manager_1.png) フリートマネージャーを使しない場合は、下記のようなコマンドをローカルで実行し、localhostから転送する必要があります。 - 踏み台ホストを使用しない場合 ``` $ export instanceid=i-xxxxxxxxxx $ aws ssm start-session --target $instanceid \ --document-name AWS-StartPortForwardingSession \ --parameters '{"portNumber":["3389"],"localPortNumber":["33389"]}' ``` - 踏み台ホストを使用する場合 ``` ssh -i aws.pem -L 33389:$Node01PrivateIP:3389 ec2-user@$BastionPublicIP ``` Windowsのパスワードは、AWSコンソールからのRDP接続方法で取得します。 その上で、RDPでlocalhost:33389に接続し、Administrator/取得したパスワード、でログインします。 ### Linuxへの接続 - 踏み台ホストを使用しない場合 SSMのセッションマネージャを使用します。 ![image](/sites/default/files/inline/images/session-manager_0.png) あるいは、~/.ssh/configを[設定する](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started-enable-ssh-connections.html)ことで、SSM経由でSSHアクセスすることも可能です。 ``` $ export instanceid=i-xxxxxxxxxx $ ssh -i aws.pem ec2-user@$instanceid ``` - 踏み台ホストを使用する場合 ```bash BastionPublicIP=54.168.xxx.xx Node01PrivateIP=10.0.12.85 ssh -i aws.pem -L 52773:$Node01PrivateIP:52773 ec2-user@$BastionPublicIP ssh -i aws.pem -L 33389:$Node01PrivateIP:3389 ec2-user@$BastionPublicIP ssh -i aws.pem -oProxyCommand="ssh -i aws.pem -W %h:%p ec2-user@$BastionPublicIP" ec2-user@$Node01PrivateIP or ssh -i aws.pem -oProxyCommand="ssh -i aws.pem -W %h:%p ec2-user@$BastionPublicIP" ubuntu@$Node01PrivateIP ``` > BastionPublicIPは、事前に用意した踏み台ホストの公開IPです。 ### 動作確認 - 外部ロードバランサ経由のアクセス この時点で、JDBC経由でアクセス可能になっているはずです。JDBCEndpointを使用してアクセスします。 > 手順は省略します。実行にはJDBCドライバが必要です。 ## カスタマイズ候補 ### Windows iris-cluster-iris-node.template.yamlでPSファイル等を作成しています。下記の箇所は、環境・目的に応じて変更してください。 - Windows環境のローカライズ(timezone, firewall設定) - c:\cfn\scripts\Setup-config.ps1 ***注意) firewallを無効に設定しています*** - ドライブの作成、割り当て - Resourcesセクション ``` Resources: NodeInstance: Properties: BlockDeviceMappings: ``` - c:\cfn\scripts\drives.diskpart.txt - IRISインストール先など - c:\cfn\scripts\Install-IRIS.ps1 ``` $irisdir="h:\InterSystems\IRIS" $irissvcname="IRIS_h-_intersystems_iris" $irisdbdir="I:\iris\db\" $irisjrndir="J:\iris\jrnl\pri" $irisjrnaltdir="K:\iris\jrnl\alt" ``` このpsファイルは、実行時に作成される/temp/envs.ps1と組み合わせれば、IRISの無人インストール用のスクリプトとして機能します。 - プリインストールするソフトウェア - c:\cfn\scripts\Install-choco-packages.ps1 s3からファイルを入手する場合、awscliは必須です。利便性のためnotepadplusplus, google chromeを追加インストールしています。 ### Linux - O/Sの指定 現在、O/Sは利便性によりAmazon Linuxを指定してあります。 O/SをRedHatに変更するには下記ファイルの内容を変更してください。 quickstart-intersystems-iris\templates\iris-cluster-iris-node.template.yaml ``` LatestAmiIdParameter: Type: AWS::EC2::Image::Id Default: ami-0be4c0b05bbeb2afd ``` O/SをUbuntuに変更するには下記ファイルの内容を変更してください。 quickstart-intersystems-iris\templates\iris-cluster-iris-node.template.yaml ``` LatestAmiIdParameter: Type: 'AWS::SSM::Parameter::Value' Default: /aws/service/canonical/ubuntu/server/focal/stable/current/amd64/hvm/ebs-gp2/ami-id ``` ``` IRISKitNameParameter: Type: String Default: IRIS-2022.1.0.209.0-lnxubuntu2004x64 ``` ## オリジナル(quickstart)との差異 デプロイ先をWindowsに変更する際に、Linux版との互換性を維持したままで、いくつかの修正を加えました。 - Windowsの起動に時間がかかるため、デフォルトのInstance typeをm5.largeからm5.xlargeに変更。gp2をgp3に変更。IOPSを指定。 - LatestAmiIdForIRISParameterパラメータを新設。Windowsのキット(日本語版、英語版等)の指定。 - IRISKitNameParameterパラメータを新設。キット名の指定。 - RDPアクセス用にSecurityGroupIngress(ポート:3389)を追加 - SE.ShardInstallerクラス修正 - CreateMirrorSet(), JoinAsFailover()を変更 \#\#class(SYS.Mirror).CreateMirrorSet(),JoinAsFailover()実行時のECPAddressのデフォルト($system.INetInfo.LocalHostName())が、Windowsでは"EC2AMAZ-F1UF3QM"のようなWindowsホスト名になる。このホスト名では他のホストからDNSで名前解決できないので、JoinMirrorAsFailoverMember()がエラーになる。そのため、下記を追加。 CreateMirrorSet() ``` set mirror("ECPAddress") = hostName // Windows on AWS need this ``` JoinAsFailover() ``` set MirrorInfo("ECPAddress") = hostName // Windows on AWS need this ``` - Roleを追加 ``` キット用S3バケットに対するs3:GetObject ec2:Describe* ec2:DeleteRoute ec2:CreateRoute ec2:ReplaceRoute セッションマネージャ有効化のため AmazonSSMManagedInstanceCore ``` - Linux用のcloud-initのUserData(初回起動時に実行されるshell)にO/SがUbuntu,RedHat7の場合分けを追加 - 踏み台ホストをデプロイしない代わりにAWS System Managerを有効化 ## その他 ### 1. LBのヘルスチェック値 LBのヘルスチェックのデフォルト値を使用しています。quickstart-intersystems-iris-windows\templates\iris-cluster-main.template.yamlのコメントを解除して適切な値に調整してください。 ``` #HealthCheckTimeoutSeconds: 10 #HealthCheckIntervalSeconds: 10 #UnhealthyThresholdCount: 3 ``` ### 2. テンプレートとAWSリソースの関係 以下、テンプレートと作成されるAWSリソースの関係です。 |テンプレート名|作成されるリソース| | --- | --- | |iris-cluster-iris-node.template.yaml|スタンドアロン| |iris-cluster-iris-main.template.yaml|ミラー環境| |iris-entrypoint-new-vpc.template.yaml|VPC+ミラー環境| AWS System Managerを有効化しているため、いずれも踏み台ホストは作成しません。必要であれば、この[テンプレート](BastionNode.yaml)を参考にして作成しください。 ### 3. テンプレートのデフォルト値 環境の明滅を繰り返し実行する可能性がある場合、パラメータを全て指定した状態のテンプレートを別途作成しておくと便利です。 |テンプレート名|O/S|用途| | --- | --- | --- | |test-iris-cluster-iris-node-linux.yaml|Linux| スタンドアロン| |test-iris-cluster-iris-node-windows.yaml|Windows| スタンドアロン| |test-iris-cluster-iris-main-linux.yaml|Linux| ミラー環境| |test-iris-cluster-iris-main-windows.yaml|Windows| ミラー環境| |test-iris-entrypoint-new-vpc-linux.yaml|Linux| VPC+ミラー環境| |test-iris-entrypoint-new-vpc-windows.yaml|Windows| VPC+ミラー環境| 例えば、スタンドアローン構成でIRISを起動したい場合は、下記のファイルを編集します。 ```bash $ #デプロイするサブネット(InstanceSubnetIdParameterの値)には既存のパブリックサブネットを指定してください $ vi test-iris-cluster-iris-node-linux.yaml ``` スタック作成時に、test-iris-cluster-iris-node-windows.yamlを指定すれば、スタンドアローン構成でIRISを起動することが出来ます。 ### 3. WindowsへのSSH SSMのセッションマネージャを使用します。 > 踏み台ホストの使用を止めたため、下記内容は無効になりました。下記の方法を試す場合は、別途、[こちらのような](BastionNode.yaml)テンプレートを利用して踏み台ホストを作成してください。 IRIS稼働ホストにOpenSSHをインストールすれば、踏み台ホスト経由で、IRISホストにSSHする事が可能です。ただし、Linux版に比べて、Windows版のIRISではCLIで実行できることが限られているため、効果は限定的です。 IRIS稼働ホストで実行。 ```powershell PS C:\Users\Administrator> Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 PS C:\Users\Administrator> Start-Service sshd ``` Windowクライアントからアクセスする際には、Windows版OpenSSHクライアント固有の問題「posix_spawn: No such file or directory」を回避するために、Git同梱のBashを使用しました。 ```bash user@DESKTOP-XXXX MINGW64 ~ ssh -oProxyCommand="ssh -i aws.pem -W %h:%p ec2-user@54.95.xxx.xxx" Administrator@10.0.0.62 Administrator@10.0.0.62's password: RDP接続の際に取得したパスワード ``` (load pubkey "aws.pem": invalid format が出ますが無視) また、ひと手間いりますが、踏み台ホストの.ssh/authorized_keys(パブリックキー)を、デプロイ先のWindowsにコピーすれば、ワンライナーで公開鍵認証できます。 ```bash user@DESKTOP-XXXX MINGW64 ~ ssh -i aws.pem -oProxyCommand="ssh -i aws.pem -W %h:%p ec2-user@54.95.xxx.xxx" Administrator@10.0.0.62 ``` Adminグループには特別の設定が必要でした。[こちら](https://www.concurrency.com/blog/may-2019/key-based-authentication-for-openssh-on-windows )のConfiguring the Serverを参考にしました。 ### 4. cfn-init.logにPythonのエラーが出る場合 cfn-init.logに下記のようなエラーが出ることがあるようです。 ``` 2021-02-12 02:50:32,957 [ERROR] -----------------------BUILD FAILED!------------------------ 2021-02-12 02:50:32,957 [ERROR] Unhandled exception during build: 'utf8' codec can't decode byte 0x83 in position 8: invalid start byte ``` 回避されることを期待して、Install-IRIS.ps1に、以下の命令を追加しています。 ``` [Console]::OutputEncoding = [System.Text.Encoding]::UTF8 ``` ## 参考にしたサイト 下記のサイトを参考にしています。 - https://aws.amazon.com/jp/quickstart/architecture/intersystems-iris - https://dev.classmethod.jp/articles/about-windows-cfn-init-non-ascii-encoding-error/ - https://dev.classmethod.jp/articles/aws-cloudformation-setup-windows-server-2016/ - https://aws.amazon.com/jp/premiumsupport/knowledge-center/cloudformation-drive-letters-windows/ - https://www.concurrency.com/blog/may-2019/key-based-authentication-for-openssh-on-windows
お知らせ
Mihoko Iijima · 2021年3月16日

第11回 InterSystems IRIS プログラミングコンテスト(開発者ツール)開催!

開発者の皆さん、こんにちは! 世界中の開発者からの熱いご要望により、新たなコンテストの開催が決定しました! 🏆 InterSystems IRIS プログラミングコンテスト: 開発者ツール 🏆 応募期間は 2021年3月29日~4月18日 です! 💰 賞金総額: $8,500 💰 (投票期間は 2021年4月19日~25日、勝者発表は 4月26日を予定しています) InterSystems IRIS を使用して、開発の迅速化、より質の高いコードの提供、テスト、デプロイ、サポート、またはソリューションの監視を支援するアプリケーションやツールを開発し、ご応募ください! 優勝特典 1、審査員から多く票を集めたアプリケーションには、以下の賞金が贈られます。 🥇 1位 - $4,000 🥈 2位 - $2,000 🥉 3位 - $1,000 2、開発者コミュニティで多く票を集めたソリューションには、以下の賞金が贈られます。 🥇 1位 - $750 🥈 2位 - $500 🥉 3位 - $250 複数の参加者が同数の票を獲得した場合、全参加者が勝者となり賞金は勝者間で分配されます。 参加資格 どなたでもご参加いただけます!(InterSystems 開発者コミュニティのアカウントを作成するだけでご応募いただけます) 👥 開発者がチームを組んで共同でアプリケーションを作成し、応募することもできます! 1チーム 2~5名 までご参加いただけます。 チームでご応募いただく場合は、アプリケーションの README にチームメンバー名の記載をお忘れなく!!(開発者コミュニティのプロファイルのリンクもお願いします) コンテストのスケジュール 3月29日~4月18日 応募期間(Open Exchange へ作成されたアプリケーションをアップロードいただける期間=3週間です。この期間内であればアップロード後も自由に編集できます。) 4月19日~25日 投票(1週間) 4月26日 勝者発表(US時間に発表します) コンテストのテーマ 💡 InterSystems IRIS 開発者ツール 💡 このコンテストでは、IRIS を使用する開発者のエクスペリエンスを向上させ、より迅速な開発を可能にし、より質の高いコードを提供し、InterSystems IRIS を使用したソリューションのテスト、デプロイ、サポート、またはモニタリングが行えるアプリケーションをご応募ください。 応募要件は以下の通りです。 テーマとするアプリケーションの種類:フレームワーク、IDE、データベース管理、モニタリング、デプロイメント・ツールなど。 アプリケーションの動作環境:IRIS Community Edition、IRIS for Health Community Edition、IRIS Advanced Analytics Community Edition のいずれかで動作すること 公開方法:アプリケーションはオープンソースとして GitHub で公開してください。 READMEの記述について:インストール手順の記載と、アプリケーションがどのように動作するのかを説明するビデオ、または説明を記載してください。 ※上記要件は変更される場合があります。 Helpful resources アプリケーション例は以下の通りです。 iris-rad-studio - RAD for UI cmPurgeBackup - backup tool errors-global-analytics - errors visualization objectscript-openapi-definition - open API generator Test Coverage Tool - test coverage helper その他 開発環境テンプレートは以下の通りです(1から環境を作成せずにすむのでお勧めです!)。 日本語で解説を付けたページもご用意しています。詳細はこちらの記事をご参照ください。 objectscript-docker-template rest-api-contest-template native-api-contest-template iris-fhir-template iris-fullstack-template iris-interoperability-template iris-analytics-template コンテスト応募方法(このページ末尾のビデオをご参照ください) 審査及び投票ルール(英語) インターシステムズ社のプロダクトマネージャ、Developer Communityのモデレータ、グローバルマスターアドボケイト(VIPレベル)等、Developer Community 内での投票も行われます。 コンテストの審査および投票ルールについて詳細はこちらをご覧ください。 ❗️ コンテスト規約については、こちらをご参照ください。❗️ ご応募方法について 以下の応募方法ビデオをご参照ください。 以下、コンテストに応募する迄の手順をご説明します。 コンテスト応募までの流れは以下の通りです(※ビデオでは、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年3月29日

テクノロジーボーナス詳細:第11回 InterSystems IRIS プログラミングコンテスト(開発者ツール編)

開発者の皆さん、こんにちは! 第11回 IRIS プログラミングコンテスト - 開発者ツール編 の 続報 📣 の「テクノロジーボーナス」についてご紹介します。 今回のコンテストも、チームで開発した作品もご応募いただけます!ぜひコンテスト詳細ページもご確認ください! Docker container usage - 2 points アプリケーションがコンテナ版 IRIS を使用している場合「Docker container」ボーナスを獲得できます! シンプルな開発環境テンプレートをご用意しています。ぜひご利用ください。 ZPM Package deployment - 2 points フルスタックアプリケーション用の ZPM(ObjectScript Package Manager) パッケージをビルドして公開し、それを使用してデプロイできるようにすると2ポイント獲得できます。 以下のコマンド実行例は、 IRIS に ZPM クライアントをインストールしパッケージをインストールしている例です。 zpm "install your-multi-model-solution" 詳しくは、ZPM client や ドキュメント をご参照ください。 Unit Testing - 2 points InterSystems IRIS のユニットテストを実施しているアプリケーションは、ボーナスポイントを獲得できます。 ObjectScript のユニットテストの詳細については、ドキュメントと開発者コミュニティを参照してください。 Online Demo of your project - 3 points オンラインデモとしてプロジェクトをクラウドにプロビジョニングすると、さらに3点のボーナスポイントを獲得できます! このテンプレートやその他のデプロイメントオプションを使用することができます。デプロイメントについて詳細は、2021年03月30日(火) 00:00 開始(EDT 米国東部標準時:2021年03月29日(月) 11:00)のキックオフウェビナーをご参照ください。 Code quality analysis with zero bugs - 2 points コード管理用に code quality Github action を含め、ObjectScriptのバグが 0 の場合、ボーナスポイントを獲得できます。 詳細については、2021年03月30日(火) 00:00 開始(EDT 米国東部標準時:2021年03月29日(月) 11:00)のキックオフウェビナーをご参照ください。 Article on Developer Community - 2 points 作成したアプリケーション/プロジェクトの概要を開発者コミュニティの記事として投稿した場合、1 記事に対して 2 ポイント獲得できます。 また、他言語へ記事を翻訳し、掲載した場合も同様にポイントを獲得できます。 Video on YouTube - 3 points 開発した作品の動画を作成し、YouTube に掲載した場合、3ポイント獲得できます。 ※ ボーナスポイントについては、変更される可能性もあります。予めご了承ください。
お知らせ
Mihoko Iijima · 2021年4月19日

★投票開始!★第11回 InterSystems IRIS プログラミングコンテスト(開発者ツール)

開発者の皆さん、こんにちは! 第11回 InterSystems IRIS プログラミングコンテスト: 開発者ツール の投票が開始されました! 🔥 これだ!と思う一押し作品に投票お願いします! 🔥 投票期間:4月19日~26日 (1週間) 投票方法は? コミュニティメンバーはどなたでも投票いただけます! 投票種別は、Expert Nomination と Community Nomination に分かれています。コミュニティメンバーは、Community Nomination を選択いただき、どの作品がどの順位になるかを指定しながら投票してください! Community Leaderboard: 開発者コミュニティのメンバーは、お好みのアプリケーションに対して1位~3位を指定しながら投票できます。 開発者コミュニティでのあなたの状態 順位 1位 2位 3位 開発者コミュニティに記事を掲載したり、OpenExchange(OEX)にアプリをアップロードしたことがある方 9点 6点 3点 開発者コミュニティに1つの記事を掲載した、または 1アプリケーションを OEX にアップロードしたことがある方 6点 4点 2点 開発者コミュニティへコメントや質問を投稿したことがある方 3点 2点 1点 Experts Leaderboard: エキスパートノミネーションでは、エキスパートのレベルが上がると獲得できるポイントも増えます! エキスパートレベル 順位 1位 2位 3位 グローバルマスターズの VIP レベル または、InterSystems Product Managers 15点 10点 5点 グローバルマスターズの Ambassador レベル 12点 8点 4点 グローバルマスターズの Expert レベル または DC モデレーター 9点 6点 3点 グローバルマスターズの Specialist レベル 6点 4点 2点 グローバルマスターズの Advocate レベル または インターシステムズの従業員 3点 2点 1点 エキスパートリーダーボードの投票権をお持ちの方は、コミュニティリーダーボードにも自動的にポイントが加算されます。 投票方法 詳細 Open Exchange にログインします(開発者コミュニティのアカウントでログインできます)。 投票ボタンは、開発者コミュニティ内で、質問/回答/記事の掲載/投稿に対するコメント など 記載いただいた方に対して有効になります。 ボタンが押せない場合は、コミュニティへのコメントやオリジナルの記事など、書き込みお願いします! 詳細は、こちらの記事をご参照ください。 世界の IRIS 開発者が作成した ✨素敵なアプリ✨ が公開されています!ぜひ 🔥これだ🔥 と思う作品に投票お願いします! 投票期間であれば、一度投票した後も別のアプリケーションへ投票し直すこともできます(投票期間は1週間あります)。 なお、コンテスト参加者は投票週間の間にバグの修正やアプリケーションの改善を行うことができますので、アプリケーションのリリース情報についてもお見逃しなく!(サブスクリプション登録が行えます) ➡️ InterSystems オンラインコンテストの新しい投票ルールについて詳細はこちらをご参照ください。