記事 Toshihiko Minamoto · 2021年1月5日 9m read データ変更の追跡 - 監査ログ(1/2) はじめに 多くのアプリケーションに共通する要件は、データベース内のデータ変更のログ記録です。どのデータが変更されたか、誰がいつ変更したかをログに記録する必要があります(監査ログ)。 このような質問について書かれた記事は多く存在し、Caché で行う方法の切り口もさまざまです。 そこで、データ変更を追跡して記録するためのフレームワークを実装しやすくする仕組みを説明することにします。 これは、永続クラスが「監査抽象クラス」(Sample.AuditBase)から継承すると「objectgenarator」メソッドを介してトリガーを作成する仕組みです。 永続クラスは Sample.AuditBase から継承されるため、永続クラスをコンパイルすると、変更を監査するためのトリガーが自動的に生成されます。 監査クラス 次は、変更が記録されるクラスです。 #ObjectScript #オブジェクトデータモデル #ベストプラクティス #Caché 0 0 0 231
記事 Toshihiko Minamoto · 2020年12月30日 5m read ESP8266で取得した気象データをMQTTブローカーに送信する 皆さん、こんにちは 前回のつづきとしてESP8266からMQTTブローカーに接続し、データを送信する部分の内容ついて説明したいと思います。 今回は温度湿度センサーのDHT11と気圧センサーのBME180を使って気温、湿度、気圧を計測し、1分に1回、MQTTブローカーに送信しています。 ハードウェア 回路図は以下のようにDHT11のDATAピンはGPIO、BMP180のSDA,SCLピンはそれぞれGPIO2,GPIO5に接続しました。電源は紆余曲折の末、単純にmicro USBから供給し、NodeMCUのボードから出力されている3.3Vをそれぞれのセンサーで使用しています。 #IoT #相互運用性 #InterSystems IRIS 0 0 0 2.2K
お知らせ Toshihiko Minamoto · 2020年12月27日 グローバルマスターズリワード_ InterSystems のエキスパートから受ける 1 時間半のコンサルテーション コミュニティの皆さん、こんにちは! もうご存知かと思いますが、グローバルマスターズでは、InterSystems IRIS、IRIS for Health、Interoperability (Ensemble)、IRIS Analytics (DeepSee)、Caché、HealthShare など、InterSystems のどの製品に関しても InterSystems のエキスパートによるコンサルテーションをご利用いただけます。 そして、皆さまに嬉しいお知らせがあります。このコンサルテーションが 英語、ポルトガル語、ロシア語、ドイツ語、フランス語、イタリア語、スペイン語、日本語、中国語でご利用いただけるようになりました。 さらに、 時間も 1 時間半に拡大され、お好きなトピックについて細かくご相談いただけるようになりました。 #Global Masters 0 0 0 104
記事 Toshihiko Minamoto · 2020年12月25日 8m read Docker for Windows で InterSystems IRIS コンテナを使用する InterSystems は自社が提供する InterSystems IRIS の Dockerイメージについて、Linux 環境での使用のみをサポートしています。 Docker for Windows は Linux プラットフォームのようにコンテナをネイティブプロセスとして実行するのではなく、Windows の仮想化機能である Hyper-V で実行される Linux VM を作成してコンテナをホストします。 このような追加レイヤーによって複雑度が増しているため、InterSystems は現時点で Docker for Windows をサポートすることができません。 #Docker #Microsoft Windows #コンテナ化 #デプロイ #InterSystems IRIS 0 0 0 613
記事 Toshihiko Minamoto · 2020年12月24日 6m read MQTTを使ったIRISとデバイスとの通信 皆さんこんにちは。 IRIS 2020.1からMQTTアダプタが新たに追加されました。MQTTはPublish/Subscribe型のシンプルで軽量なメッセージングプロトコルです。帯域が低いネットワーク環境やArduinoやRaspberry PIといったワンボードマイコンやシングルボードコンピュータなどでも動作できます。今回はクラウド上のUbuntuサーバにIRISをインストールし、MQTTアダプタを使いEsp8266というマイコンで取得した温度、湿度、気圧データをIRIS上のデータベースに登録する方法について説明したいと思います。 アーキテクチャ 今回のアーキテクチャは以下の通りです。 #IoT #相互運用性 #InterSystems IRIS 1 0 0 1.6K
記事 Toshihiko Minamoto · 2020年12月23日 3m read 動的SQLの新旧対照表 新しい動的 SQL クラス(%SQL.Statement および %StatementResult)のパフォーマンスは %ResultSet より優れてはいますが、%ResultSet の使用方法をせっかく学習したので、しばらくの間新しい方を使用せずにいましたが、 やっとチートシートを作ったので、新しいコードを書いたり古いコードを書き直す際に役立てています。 皆さんのお役に立てればいいなと思っています。 次に示すのは、私のチートシートの詳細版です。 #Code Snippet #SQL #ベストプラクティス #Caché 0 0 0 207
記事 Toshihiko Minamoto · 2020年12月22日 13m read HealthShare の Apache HTTPD Web サーバー構成 HealthShare の理想的な Apache HTTPD Web サーバー構成に関するお問い合わせをよくいただいています。 この記事では、真っ先に推奨される HealthShare 製品の Web サーバー構成について概要を説明します。 何よりもまず第一に、Apache HTTPD バージョン 2.4.x(64ビット)を使用することをお勧めします。 2.2.x のような旧バージョンも使用できますが、HealthShare のパフォーマンスとスケーラビリティを確保するにはバージョン 2.2 はお勧めできません。 #Red Hat Enterprise Linux (RHEL) #SOAP #インターシステムズビジネスソリューションとアーキテクチャ #システム管理 #パフォーマンス #HealthShare 0 0 0 1.2K
記事 Toshihiko Minamoto · 2020年12月21日 9m read $LIST のフォーマットと%DynamicArray 、%DynamicObject クラス $LIST のフォーマットと%DynamicArray、%DynamicObject クラス IRIS には、様々なデータ値を含むシーケンスを作成する方法がいくつかあります (以前は Cache にもありました)。 長年に渡り使用されているデータシーケンスの 1 つに $LIST の文字列があります。 より最近のデータシーケンスには %DynamicArray クラスと %DynamicObject クラスがあり、両者ともに JSON の文字列表現に対応する IRIS サポートの一部となっています。 これら 2 つのシーケンスにはそれぞれ非常に異なるトレードオフがあります。 $LIST の文字列形式 $LIST 形式は、かつてメモリアドレスのスペースが小さいだけでなく、ディスクドライブも小さく、読み取り速度が遅かった時代に考案されました。 $LIST の形式は、複数の異なるデータ型で構成されるシーケンスをバイト数を可能な限り抑えながら 8 ビットの一般的な文字列にパッキングするためにデザインされました。 $LIST のシーケンスは、ObjectScript の $LISTBUILD 関数を使って作成します。 #JSON #ObjectScript #ベストプラクティス #Caché #InterSystems IRIS 0 0 0 881
お知らせ Toshihiko Minamoto · 2020年12月21日 InterSystems のビジネス向けデジタルサービス コミュニティの皆さん、こんにちは! グローバルマスターズにビジネスサービスリワードを導入したことにより、お客様のアプリケーション、ソリューション、サービスの概要を開発者コミュニティや当社のソーシャルメディアに掲載していただけるようになったほか、OEX アプリケーションの宣伝に Google AdWords のキャンペーンをご利用いただけるようになりました! #Global Masters 0 0 0 86
お知らせ Toshihiko Minamoto · 2020年12月21日 グローバルマスターレベルの説明 コミュニティの皆さん、こんにちは! この記事では、開発者コミュニティと InterSystems Global Mastersアドボケート・ハブのレベルに関する情報を掲載しています。 お知らせ:現在、これらのバッジの多くは変更中です。この表も近日中に更新される予定です。 すべての Global Masters メンバー(アドボケイト)は、開発者コミュニティへの貢献と Global Masters での活動に応じてさまざまなレベルのアドボカシーを達成できます。 新しいレベルに移行するたびに、新しいタイプのチャレンジ/タスクと新しいタイプの報酬が開始されます。 レベルアップするには、次のレベルからいくつかのバッジを獲得する必要があります。 バッジは Global Master でさまざまなチャレンジを完了すると獲得できます。 現在は 6 つのレベルがあります。 1. インサイダー 2. アドボケイト 3. スペシャリスト 4. エキスパート 5. アンバサダー 6. VIP ➡ バッジの上にマウスカーソルを移動すると、獲得方法を確認できます。 #Global Masters 0 0 1 141
記事 Toshihiko Minamoto · 2020年12月16日 1m read TLS/SSL で OS の証明書ストアを使用する Windows と Mac で InterSystems IRIS 2019.1 (および 2018.1.2) の SSL/TLS 設定に認証局 (CA) の証明書を簡単に追加する新しい方法ができました。 IRIS にオペレーティングシステムの証明書ストアを使用することを要求するために、 %OSCertificateStore を "信頼された証明書機関 X.509 証明書を含むファイル" のフィールドに入力します。 以下はポータルでそれを実行する方法を示した画像です。 また、これについて説明したドキュメントへのリンクはこちらです。 "信頼された証明書機関の証明書を含むファイル" のオプションの中を探してください。 #SSL #セキュリティ #ヒントとコツ #ベストプラクティス #InterSystems IRIS 0 0 0 247
記事 Toshihiko Minamoto · 2020年12月16日 17m read Windows10 ホストで実行される Hyper-V Ubuntu 仮想マシンで Docker を使用できるように環境を設定する 今回は、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 コンテナを使用できる環境をインストールする方法について分かりやすく説明します。 それでは、始めましょう。 #Docker #Microsoft Windows #Ubuntu #システム管理 #ヒントとコツ #開発環境 #InterSystems IRIS #Open Exchange #ドキュメント 0 0 0 2.5K
お知らせ Toshihiko Minamoto · 2020年12月13日 グローバルマスターズ・アドボケート・ハブ - ここからスタート! コミュニティの皆さん、こんにちは! InterSystems のグローバルマスターズ・ゲーミフィケーションプラットフォームにすべての DC メンバーを招待いたします。最新情報を把握し、DC への貢献によるポイントや賞品をゲットしていただけます! 本記事を読んで参加方法と概要をご確認ください! ▶️ グローバルマスターズとは? グローバルマスターズはゲーミフィケ―ションプラットフォームで、ISC テクノロジーに関するチャレンジ (タスク) を完了させたり、バッジやポイントを獲得したり、そのポイントを様々な賞品に交換したりすることができます。 #Global Masters 1 0 0 197
記事 Toshihiko Minamoto · 2020年12月8日 4m read DeepSee: データベース、ネームスペース、マッピング(1/5) インスタンスのデータに基づくビジネスインテリジェンスを実装しようと計画中です。 DeepSee を使うには、データベースと環境をどのようにセットアップするのがベストですか? #マッピング #チュートリアル #デプロイ #データベース #ベストプラクティス #分析 #初心者 #InterSystems IRIS BI (DeepSee) 0 0 0 265
記事 Toshihiko Minamoto · 2020年12月7日 10m read Arduino と RFID を使用したユーザー認証 以前の記事では Arduino を使い始め、最終的には気象観測所のデータを表示できるようになりました。 この記事ではさらに掘り下げ、InterSystems Caché アプリケーションに対して RFID カードと Arduino を介した認証をセットアップします。 #セキュリティ #ターミナル #アクセス制御 #認証 #Caché 0 0 0 963
記事 Toshihiko Minamoto · 2020年12月4日 5m read SOAP(Web)サービスでの OAuth2 の使用 みなさん、こんにちは。 数日前、SOAP(Web)サービスを使用して、REST に基づく新しいアプリケーション API と同じ認証を使用できるように、既存のレガシーアプリケーションを拡張したい、とお客様から伺いました。 新しいアプリケーションは OAuth2 を使用しているため、課題は明らかでした。SOAP リクエストを含むアクセストークンをどのようにしてサーバーに渡すか、ということです。 Google でしばらく調べてみたところ、SOAP エンベロープにヘッダー要素を追加してから、アクセストークンを検証するために必要なことを Web サービス実装が実行できるようにするのが 1 つの実現方法であることがわかりました。 #SOAP #セキュリティ #ベストプラクティス #Caché #InterSystems IRIS 0 0 0 744
記事 Toshihiko Minamoto · 2020年12月2日 3m read %GlobalBinaryStreamにあるテキストデータを漢字コード変換する方法 皆さん、こんにちは。ストリームデータをデータベースに格納する場合、ファイルなどから読み取る際に漢字コード変換を行い、Unicode形式で%GlobalCharacterStreamに格納されるかと思いますが、時々、バイナリのままで読み込んでしまい、漢字コード変換を行わないといけない状況があるかと思います。 ファイルストリームでしたら%FileCharacterStreamクラスのTranslateTableプロパティに元の漢字コードを指定すれば、以下のようにコード変換しながら読みだすことは可能です。 #ObjectScript #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 1 446
記事 Toshihiko Minamoto · 2020年12月1日 6m read SSH 接続する %Net.SSH.Session の使用とデバッグ方法 %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 つがあります。 #FTP #デバッグ #ベストプラクティス #Caché #Ensemble #InterSystems IRIS 0 0 0 1.7K
記事 Toshihiko Minamoto · 2020年11月26日 17m read CircleCI ビルドで GKE の作成を自動化する 前回は GKE サービスを使用して IRIS アプリケーションを Google Cloud 上で起動しました。 また、クラスターを手動で(または gcloud を介して)作成するのは簡単ですが、最新の Infrastructure-as-Code(IaC)手法では、Kubernetesクラスターの説明もコードとしてリポジトリに格納する必要があります。 このコードの記述方法は、IaC に使用されるツールによって決まります。 Google Cloud の場合は複数のオプションが存在し、その中には Deployment Manager と Terraform があります。 どちらが優れているかにつては意見が分かれています。詳細を知りたい場合は、この Reddit のスレッド「Opinions on Terraform vs. Deployment Manager?」と Medium の記事「Comparing GCP Deployment Manager and Terraform」を参照してください。 #DevOps #Docker #Google Cloud Platform (GCP) #Kubernetes #クラウド #コンテナ化 #InterSystems IRIS #Open Exchange Open Exchange app 0 0 0 786
記事 Toshihiko Minamoto · 2020年11月19日 9m read InterSystems IRIS 用の Power BI コネクタ パート I 企業は変化の激しい業界で競争力を維持するため、イノベーションを起こす必要があります。 この製品は企業が迅速かつ安全な意思決定を行い、より正確な将来の実績を目指せるようにします。 ビジネスインテリジェンス(BI)ツールは、企業が試行錯誤に頼ることなくインテリジェントな意思決定を行うのに役立ちます。 このようなインテリジェントな決定は市場で成功するか失敗するかを決定付けます。 Microsoft Power BI は業界をリードするビジネスインテリジェンスツールの 1 つです。 Power BI では数回クリックするだけでマネージャーやアナリストが企業のデータを簡単に探索できます。 これは重要なことです。容易にデータにアクセスして視覚化できれば、それがビジネス上の意思決定に使用される可能性が高くなるからです。 #分析 #InterSystems IRIS 0 0 0 426