今回は、InterSystems IRIS に特有のことではなく、職場で Windows 10 Pro または Enterprise を搭載した PC またはノートパソコンがサーバーとして使用されている環境で Docker を使用する場合に重要と思われる点について触れたいと思います。

ご存知かと思いますが、コンテナテクノロジーは基本的に Linux の世界で生まれ、最近では Linux のホストで使用されており、その最大のポテンシャルを伺わせています。 Windows を普段から使用するユーザーの間では、Microsoft と Docker 両社によるここ数年の重大な試みにより、Windows のシステムで Linux イメージを基にコンテナを実行することがとても簡単になったと理解されています。しかし、生産システムでの使用がサポートされておらず、それが大きな問題となっています。特に、Windows と Linux のファイルシステムに大きな違いがあるため、安心してホストシステム内でコンテナの外に持続データを保管するということができないのです。 ついには、コンテナを実行するために、Docker for Windows 自体で Linux の小さな仮想マシン (MobiLinux) が使用されるようになり、Windows ユーザーに対しては透過的に実行されます。また、先ほど述べたように、データベースの存続がコンテナよりも短くて構わないのであれば、パーフェクトに動作します。

では、何が言いたいかというと、問題を回避して処理を単純化するには、完全な Linux システムが必要になるが、Windows ベースのサーバーを使用していると、仮想マシンを使用する以外に方法がない場合が多い、ということです。 少なくとも、Windows の WSL2 がリリースされるまでの話ですが、それはまた別の機会に触れたいと思います。もちろん、十分堅牢に動作するまでは時間がかかるでしょう。

この記事では、必要に応じて、Windows サーバーの Ubuntu システムで Docker コンテナを使用できる環境をインストールする方法について分かりやすく説明します。 それでは、始めましょう。

00
0 0 224

この文書では、インターシステムズの製品の中で、InterSystems CachéおよびIRIS data platformに関するライセンスポリシーを説明します。


インターシステムズのライセンスポリシーは、ソリューション・パートナー契約の際の契約書一式あるいはエンドユーザーに直接販売する際の契約書一式に含まれる製品とライセンスタイプ(この文書は製品別に存在します)という文書で規定されています。

 

なおこの文書は一般には公開していません。

 

ここでは、CachéおよびIRIS data platformのライセンスポリシーについてこの文書に書かれていることを要約および補足して説明します。

 

まずCachéシステムおよびIRIS data platformはこの文書で規定されているライセンスポリシーにでき得る限り忠実にそうようにライセンスチェック機構を実装しています。

 

しかしながら様々な技術的な制約によりライセンスポリシーとこれら製品のライセンスシステムを完全に一致させることはできません。

 

00
0 0 91
記事
Hiroshi Sato · 2020年12月16日 2m read
SQLインジェクションに対する対策

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

SQLインジェクションに関しては、様々なWebサイトで対策等が公開されていますが、InterSystems SQLを使ったアプリケーションでも、他のRDBMSと同様にそれらの対策を適切に実施することで、SQLインジェクションは防げると考えられます。

さらに、InterSystems Data Platform(以下IRIS)の場合、一般的なRDBMSに比較して、SQLインジェクションを実行しづらい、幾つかの施策が組み込まれています。

00
0 0 19

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

InterSystems OpenExchangeのVS Code用のプラグインを利用することでVS Code上でクラス定義の編集が可能です。

(今後は、AtelierではなくVS Codeの使用を推奨しています。)


詳細は、以下ページをご参照ください。


vscode-objectscript

 

また、逆にテーブル定義からクラス定義を生成することも可能です。

方法①として、他社RDBMS用に作成したDDL文をインターシステムズ製品上で実行、またはインポートする方法があります。


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

00
0 0 47

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

%SYSTEM.SQL クラスの Purge* メソッドを使用して削除することが可能です。

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

%SYSTEM.SQLクラスについて【IRIS】

%SYSTEM.SQLクラスについて

 

00
0 0 25
記事
Mihoko Iijima · 2020年12月15日 2m read
IIS で REST を動かす場合の設定

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

REST のベース URL を /rest とした場合の IIS と Webゲートウェイの設定内容は以下の通りです。

 

IIS の設定内容

アプリケーション /rest を作成し、ハンドラーマッピングで * = CSPms を定義します。

ハンドラーマッピングの設定手順は以下の通りです。

IIS > Default Website > アプリケーション /rest > "ハンドラーマッピング" をダブルクリック > モジュールマップの追加

00
0 0 92

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

 

デフォルトでは、セキュリティ脆弱性対応の観点でウェブサービス用テストページの実行を許可していません。

テスト目的等で利用する場合は、テストページへのアクセスを有効にする必要があり、以下グローバル変数のセットを %SYS ネームスペースで実行する必要があります。

set ^SYS("Security","CSP","AllowClass",0,"%SOAP.WebServiceInvoke")=1
set ^SYS("Security","CSP","AllowClass",0,"%SOAP.WebServiceInfo")=1

 

詳細については、以下のドキュメントもご参照下さい。

カタログおよびテスト・ページについて【IRIS】

00
0 0 20

優れた執筆者は、題名で読者を引き込み、答えを記事のどこかに隠すべきだと考えられています。  だとすると、私は出来の悪い執筆者ということになってしまいます。私の自尊心は見知らぬインターネットユーザーの皆さんのご意見にかかっていますので、お手柔らかにお願いします。

00
0 0 47

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

%ZSTARTルーチンを インスタンス開始時に起動しないように構成設定用ファイルを手動で変更します。

【注意】
インスタンスの起動環境の変更は、通常管理ポータルで行うものなので、以下に説明する方法は、%ZSTART の SYSTEM ラベルの動作を無効化する方法以外では利用しないようにしてください(別のパラメータを誤って修正してしまった場合、起動できなくなる可能性がありますのでご注意ください)。

1. インスタンス のインストールディレクトリ以下にある構成設定用ファイル(cache.cpf/iris.cpf)をテキストエディタで開きます。
 ※構成ファイルは、事前にバックアップ(コピー)していただくことを推奨します。

2. [Startup]セクションにあるSystemStartの値を0に変更し、保存します。

3. ファイル変更後、一旦 インスタンスを通常の方法で停止し、再度開始してください。

00
0 0 11

この記事は、GitHub Actions を使って GKE に InterSystems IRIS Solution をデプロイするの継続記事で、そこではGitHub Actions パイプラインを使って、 Terraform で作成された Google Kubernetes クラスタにzpm-registry をデプロイしています。 繰り返しにならないよう、次の項目を満たしたものを開始点とします。

訳者注) 上記の記事を読まれてから、本記事に進まれることをお勧めしますが、GKE上のサービスにドメイン名を紐づける方法を解説した単独記事としてもお読みいただけます。

00
0 0 44

以前紹介した記事 (お読みいただいたでしょうか) では、GitHub とパーフェクトに統合する CircleCI のデプロイシステムについてカバーしました。 なのにどうしてさらに掘り下げる必要があるのか? それは、GitHub には GitHub Actions という独自の CI/CD プラットフォームがあり、詳しく見ておく価値があるからです。 GitHub Actions を使えば、外部のサービスを使用する必要はありません。

この記事では、GitHub Actions を使って InterSystems Package Manager のサーバー部分である ZPM-registry を Google Kubernetes Engine (GKE) にデプロイする、ということを試したいと思います。

00
0 0 61

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

連番を生成する関数($INCREMENT)を使用してユニークな番号を自動付番することができます。

 

SQLのSELECT文で使用する場合には OracleのSequence相当の機能を実装したクラスを利用する方法があります。

 

サンプルを以下のGitHubリポジトリより取得することができます。

 

OracleのSequence機能を実装するサンプル

 

00
0 0 22

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

$SYSTEM.Process.TerminalPrompt() を使用してターミナルのプロンプトを変更できます。

プロンプトの表示形式は、以下情報の組み合わせで指定できます。

  1.  ホスト名
  2. 現在のネームスペース
  3. 構成名
  4. 現在の時刻
  5. PID: オペレーティングシステム上でのプロセスID
  6. ユーザーネーム
  7. 最後のコマンドを実行してからの経過時間

例えば、Do $SYSTEM.Process.TerminalPrompt(1,3) ではホスト名と構成名をターミナルのプロンプトとして表示します。 

*実行例は、ホスト名="HOST1"、構成名="IRIS"*

USER>Do $SYSTEM.Process.TerminalPrompt(1,3)
HOST1:IRIS>

 

00
0 0 26

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

SELECT ... FOR UPDATE は明示的な行ロック取得の方法として多くの RDBMS で実装されているため、この機能を使われているケースも多いと思います。

このシンタックスは InterSystems 製品ではエラーにはなりませんが、期待されるような行ロックの取得は行われません。

この記事では同等の機能を実現する方法をご紹介します。

DECLARE CURSOR C1 IS
SELECT Name FROM Person WHERE Name LIKE 'A%' FOR UPDATE
OPEN C1
LOOP FETCH C1 INTO name 
... name を表示
... 終了ならLOOPをEXIT
END LOOP
CLOSE C1

 

上記のようなSQL文は、下記のSQL文で代替可能です。

00
0 0 44

Python から InterSystems IRIS へ接続する方法の1つである「PyODBC」(※)の利用方法をご説明します。

※ Python からのアクセスは、PyODBCの他に、Native API を利用した接続方法もあります。Native APIを利用してIRISのグローバル変数にアクセスする方法については、別の記事でご説明します。

00
0 1 90

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

第8回 Analytics コンテスト続報 📣 の「テクノロジーボーナス」について紹介します。

  • InterSystems IRIS BI(旧DeepSee)
  • InterSystems IRIS NLP
  • IntegratedML
  • 実データの利用
  • ZPM を利用したパッケージの開発
  • Docker コンテナの利用

ボーナス詳細は以下ご参照ください。

00
0 0 26

みなさん、こんにちは。

 

数日前、SOAP(Web)サービスを使用して、REST に基づく新しいアプリケーション API と同じ認証を使用できるように、既存のレガシーアプリケーションを拡張したい、とお客様から伺いました。 新しいアプリケーションは OAuth2 を使用しているため、課題は明らかでした。SOAP リクエストを含むアクセストークンをどのようにしてサーバーに渡すか、ということです。

Google でしばらく調べてみたところ、SOAP エンベロープにヘッダー要素を追加してから、アクセストークンを検証するために必要なことを Web サービス実装が実行できるようにするのが 1 つの実現方法であることがわかりました。

00
0 0 31

これまでさまざまなストレージ技術とそのパフォーマンス特性の例を紹介してきましたが、今回は新しい HPE Cloudline 3150 Gen10(AMD プロセッサベースのシングルソケットサーバーで 3.2TB の Samsung PM1725a NVMe ドライブを 2 台搭載)など、内部コモディティベースのサーバーストレージの活用が増加傾向にあることを確認しました。  

00
0 0 39

皆さん、こんにちは。

ストリームデータをデータベースに格納する場合、ファイルなどから読み取る際に漢字コード変換を行い、Unicode形式で%GlobalCharacterStreamに格納されるかと思いますが、時々、バイナリのままで読み込んでしまい、漢字コード変換を行わないといけない状況があるかと思います。


ファイルストリームでしたら%FileCharacterStreamクラスのTranslateTableプロパティに元の漢字コードを指定すれば、以下のようにコード変換しながら読みだすことは可能です。

00
1 0 38

%Net.SSH.Session クラスを使用すると、SSH を使ってサーバーに接続することができます。 一般的にはSFTP、特に FTP インバウンドアダプタとFTPアウトバウンドアダプタで使用されています。

この記事では、簡単な例を示しながら、このクラスを使用して SSH サーバーに接続する方法、認証のオプションを記述する方法、そして問題が発生した場合のデバッグ方法について説明します。

次は接続を行う例です。

Set SSH = ##class(%Net.SSH.Session).%New()
Set return=SSH.Connect("ftp.intersystems.com")​

上記のコードは新しい接続を作成してから、ftp.intersystems.com の SFTP サーバーにデフォルトのポートで接続します。 この時点で、クライアントとサーバーは暗号化アルゴリズムとオプションを選択済みですが、ユーザーはまだログインしていません。

接続したら、認証方法を選択できます。 選択できるメソッドには次の 3 つがあります。

00
0 0 121

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

以下の例では Test.Class2 クラスの Images プロパティに画像ファイルが保存できるように定義しています。
input() メソッドを利用して画像ファイルを Images プロパティに登録し、データベースに保存したとします。

00
0 0 36

みなさん、こんにちは。 今回は ML モデルを IRIS Manager にアップロードしてテストしようと思います。

注意: Ubuntu 18.04、Apache Zeppelin 0.8.0、Python 3.6.5 で以下を実行しました。

はじめに

最近では実にさまざまなデータマイニングツールを使用して予測モデルを開発し、これまでにないほど簡単にデータを分析できるようになっています。 InterSystems IRIS Data Platform はビッグデータおよび高速データアプリケーション向けに安定した基盤を提供し、最新のデータマイニングツールとの相互運用性を実現します。

00
0 0 31

前回は GKE サービスを使用して IRIS アプリケーションを Google Cloud 上で起動しました。

また、クラスターを手動で(または gcloud を介して)作成するのは簡単ですが、最新の Infrastructure-as-Code(IaC)手法では、Kubernetesクラスターの説明もコードとしてリポジトリに格納する必要があります。 このコードの記述方法は、IaC に使用されるツールによって決まります。

Google Cloud の場合は複数のオプションが存在し、その中には Deployment ManagerTerraform があります。 どちらが優れているかにつては意見が分かれています。詳細を知りたい場合は、この Reddit のスレッド「Opinions on Terraform vs. Deployment Manager?」と Medium の記事「Comparing GCP Deployment Manager and Terraform」を参照してください。 

00
0 0 77

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

InterSystemsの製品には同時ユーザー数でライセンスの容量を決定する製品とサーバーのCPUコア数で容量を決定する製品の2種類があります。

同時ユーザー数ライセンスタイプの場合、CPUコア数により使用可能なライセンスのグレードに制限があります。

物理サーバーの場合には、そのサーバーが保持しているCPUコア数の総数をカウントします。

そして、その総数が該当グレードの最大CPUコア数を超えている場合には、その上位グレードを使用しなければなりません。

サーバー仮想化ソフトウェア(VMWare、Hyper-Vなど)を利用する場合には、その仮想サーバーに割り当てられたCPUコア数をカウントします。

同様にその総数が該当グレードの最大CPUコア数を超えている場合には、その上位グレードを使用しなければなりません。

CPUコア数ライセンスタイプの場合、コア数によりライセンスの容量が決まります。

00
0 0 34

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

以下に当てはまる場合、差分バックアップではなくフルバックアップが取られます。

・リストの中に1つでもフルバックアップを取っていないデータベース(DB)が含まれるとき
・リストの中に読み込み専用のDBが含まれるとき
 →読込専用DBはバックアップが取れないため、対象リストのDBは毎回フルバックアップが取られます

ReadOnlyマウントしたDBをバックアップしようとすると、以下のようなログが出力されます。

WARNING - the following directories could not be backed up 
 c:\intersystems\ensemble\mgr\xxx\ (Database is readonly)


読込専用DBはバックアップリストから除く必要があります。

もし、読込専用DBをバックアップする場合は、別途バックアップする必要があります。

 

00
0 0 18

開発者の皆さんこんにちは!IRIS プログラミングコンテスト 第7回の勝者が発表されたばかりですが、第8回のテーマが発表されました!

今回のコンテストのテーマは 🏆 InterSystems Analytics Contest 🏆 です!

さぁ、年内最後のコンテストです!日本からのご応募お待ちしております!

応募期間は 2020年12月7日~20日 です!

(投票期間は 2020年12月21日~27日、勝者発表は 12月28日を予定しています)

00
0 0 61

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

(a) 現在使用中のライセンス数:現時点のライセンスユニット使用数です。

(b) 最大ライセンス使用:インスタンスが起動した後、現在に至るまでで最もライセンス使用の大きかった時点の
            "現在使用中のライセンス数"です。

(c) 許可されたライセンス数(Cache.Key/iris.keyの値):該当システムで許可されている最大ライセンスユニット数です。

(d) 現在の接続:現時点のクライアントからの接続数です。

(e) 最大接続:インスタンスが起動した後、現在に至るまでで最も接続数の大きかった時点の"現在の接続"です。

00
0 0 35