記事 Toshihiko Minamoto · 2021年3月15日 16m read InterSystems IRIS のグローバルを使ったトランザクション。 InterSystems IRIS では、情報を格納する「グローバル」というユニークなデータ構造をサポートしています。 基本的に、グローバルとは、マルチレベルのインデックスを持つ永続配列であり、トランザクションの実行やツリー構造のスピーディなトラバーサルといった機能が備えられているほか、ObjectScript として知られるプログラミング言語にも対応しています。 ここから先、少なくともコードサンプルについては、グローバルの基礎を理解されているという想定のもとに話しを進めていきます。 グローバルはデータを保存するための魔法の剣です パート1 グローバルはデータを保存するための魔法の剣ですパート2 - ツリー グローバルはデータを保存するための魔法の剣です パート3 - 疎な配列 #グローバル #データベース #データベースのトランザクション処理 #Caché #InterSystems IRIS 0 0 0 773
記事 Toshihiko Minamoto · 2021年3月10日 9m read ZPM モジュールの構造: InterSystems ソリューションのパッケージ化。 デベロッパーの皆さん、こんにちは! 最近、当社は InterSystems Package Manager (ZPM) をリリースしました。 ZPM を開発した理由の 1 つは、ソリューションをパッケージ化して ZPM レジストリに提出することにより、そのデプロイを「install xxx package」のようなコマンドを実行するだけの単純な作業にするためです。 これを行うには、InterSystems IRIS パッケージの中身を説明する module.xml ファイルをリポジトリに導入する必要があります。 この記事では、module.xml ファイルの異なる構成要素を説明し、独自のファイルを作成する方法をご紹介します。 まずは、samples-objectscript パッケージから始めます。以下のコマンドを実行すれば、IRIS に ObjectScript のサンプルアプリケーションがインストールされます。 zpm: USER>install samples-objectscriptおそらく、これほどシンプルなパッケージはないと思います。以下は、パッケージの中身を説明する module.xml です。 <Export generator="Cache" version="25"> <Document name="samples-objectscript.ZPM"> <Module> <Name>samples-objectscript</Name> <Version>1.0.0</Version> <Packaging>module</Packaging> <SourcesRoot>src</SourcesRoot> <Resource Name="ObjectScript.PKG"/> </Module> </Document> </Export> #InterSystems Package Manager (IPM) #チュートリアル #初心者 #InterSystems IRIS #Open Exchange Open Exchange app 1 0 0 162
記事 Toshihiko Minamoto · 2021年3月9日 16m read セマフォを使用した共有リソースへの同時アクセスの実装 これまで Caché のリソースアクセスを制御する方法が存在するかどうかを疑問に思っていた方の悩みを解決しました。 バージョン 2014.2 では、開発者がセマフォを操作できるようにする特別なクラスが追加されました。 #チュートリアル #ヒントとコツ #Caché 0 0 0 2.5K
記事 Toshihiko Minamoto · 2021年3月4日 10m read グローバルをクラスにマッピングする技術 (5/3) マッピングの例 三連載で 4 記事目を書いてしまったら、これまでのハイライトとして 5 記事目を書かないわけにはいかないでしょう! 注意: 何年か前に Dan Shusman 氏が私に「グローパルのマッピングは芸術だ」と言いました。 そのやり方に正解も不正解もありません。 どのようなマッピングを行うかは、データをどう解釈するかで決まります。 例のごとく、最終的な結論を出す方法は 1 つに限られません。 ここでご紹介する例の中には、同じ型のデータを異なる方法でマッピングする例がいくつかあります。 この記事の最後には、私が長年お客様のために書いてきたマッピングの例をまとめた zip ファイルをご用意しています。 過去 4 つの記事で触れた内容をまとめたハイライトとして、いくつか例を挙げていきたいと思います。 この記事は単なるハイライトですので、過去 4 記事ほどの詳細はカバーいたしません。 不明な点があれば、遠慮なくご連絡ください。もっと詳しく説明させていただきます。 #マッピング #SQL #オブジェクトデータモデル #Caché 2 0 0 146
記事 Toshihiko Minamoto · 2021年3月1日 11m read グローバルをクラスにマッピングする技術 (4/3) グローバルをクラスにマッピングする技術 (4/3) 三連載のはずが 4 記事目に突入してしまいました。『銀河ヒッチハイク・ガイド』のファンという方はいませんか? 古くなった MUMPS アプリケーションに新たな生命を吹き込みたいとお考えですか? 以下にご紹介するステップを実行すれば、グローバルをクラスにマッピングし、美しいデータを Object や SQL に公開できます。 上の内容に馴染みが無い方は、以下の記事を初めからお読みください。 グローバルをクラスにマッピングする技術 (1/3) グローバルをクラスにマッピングする技術 (2/3) グローバルをクラスにマッピングする技術 (3/3) #マッピング #SQL #オブジェクトデータモデル #グローバル #Caché 0 0 0 168
記事 Toshihiko Minamoto · 2021年3月1日 6m read IRISのInteroperability機能を使ったWindows共有フォルダでのファイル連携 開発者の皆さんこんにちは。Windows共有しているリモートサーバに出力されたファイルでデータ連携する際、セキュリティ上、資格情報が必要となるケースが良くあるかと思います。いままでCachéで連携していた時には%ZSTARTルーチンや常駐プロセスのルーチンにて「net useコマンド」を実行されていたかと思いますが、IRISではInteroperability機能が使用できますので、前回の記事で作成したビジネスサービスクラスを元に、資格情報を使ってWindows共有フォルダにアクセスできる機能を追加したいと思います。 仕組み ビジネスサービスが起動、停止する際に呼び出されるOnInit()、OnTearDown()メソッドにnet useコマンドを埋め込み、指定されている資格情報を使ってnet useコマンドで共有フォルダへの接続、切断を行います。 #Microsoft Windows #ObjectScript #相互運用性 #InterSystems IRIS 1 0 0 469
記事 Toshihiko Minamoto · 2021年2月25日 9m read グローバルをクラスにマッピングする技術 (3/3) 古くなった MUMPS アプリケーションに新たな生命を吹き込みたいとお考えですか? 以下にご紹介するステップを実行すれば、グローバルをクラスにマッピングし、美しいデータを Object や SQL に公開できます。 上の内容に馴染みが無い方は、以下の記事を初めからお読みください。 グローバルをマッピングする技術 1 グローバルをマッピングする技術 2 この記事の例では、典型的な親子構造をマッピングする方法をお見せします。 前回と同じ免責事項: これらの記事を読んでもグローバルがよく理解できないという方は、WRC (Support@InterSystems.com) までメールでお問い合わせください。喜んでサポートさせていただきます。 #マッピング #SQL #グローバル #Caché 1 0 0 162
記事 Toshihiko Minamoto · 2021年2月23日 6m read Java Business Host から PEX への移行 Java Business Host から PEX への移行 InterSystems IRIS 2020.1 および InterSystems IRIS for Health 2020.1 で PEX がリリースされ、Java Business Host を使うよりも優れたかたちで Java プログラムをプロダクション環境に取り込めるようになりました。 PEX は、相互運用性のコンポーネントを構築するための API をすべて提供するほか、Java と .NET の両方で使用できます。 Java Business Host は非推奨となり、今後のリリースで廃止される予定です。 PEX を使うメリット #.NET #Java #相互運用性 #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 179
記事 Toshihiko Minamoto · 2021年2月22日 4m read IRIS Interoperability機能を使ったファイル連携 皆さん、こんにちは。他のシステムとファイル連携を行う場合、Cachéでは、Jobコマンドを使った常駐プロセスやタスクを作成し、特定のディレクトリにあるファイルを定期的に監視、データを取り込むといった機能を手作りされていたかと思います。これにはファイルの監視や、常駐プロセスの監視、プロセスの制御(起動、停止)を行う機能を用意する必要がありましたが、IRISではInteroperability機能が使えますので、そのようなプログラムを省略することが可能です。 今回は、既にファイル読込処理を行うルーチンが存在し、ルーチン呼出時の引数にファイル名があるという前提で、その処理をInteroperability機能を使ってどのように呼び出すかについて説明したいと思います。 手順 作業手順は以下の通りとなります。 #ObjectScript #相互運用性 #InterSystems IRIS 0 3 0 382
記事 Toshihiko Minamoto · 2021年2月18日 9m read グローバルをクラスにマッピングする技術 (2/3) 古くなった MUMPS アプリケーションの新たな生命を吹き込みたいとお考えでしたら、以下にご紹介するステップを実行すれば、グローバルをクラスにマッピングし、美しいデータを Object や SQL に公開できます。 今回ご紹介する例には、パート 1 ではカバーしなかった内容を 4 つないし 5 つ程度盛り込んでいます。 その後は親子マッピングの例を紹介して完結となります。それを修得したらマッピングはもう完璧でしょう。 前回と同じ免責事項: これらの記事を読んでもグローバルがよく理解できないという方は、WRC (Support@InterSystems.com) までメールでお問い合わせください。喜んでサポートさせていただきます。 グローバルをクラスにマッピングするステップ。 #マッピング #SQL #グローバル #Caché 1 0 0 226
記事 Toshihiko Minamoto · 2021年2月16日 8m read グローバルをクラスにマッピングする技術 1/3 グローバルをクラスにマッピングする技術 (1/3) グローバルをクラスにマッピングする技術 (1/3) 古くなった MUMPS アプリケーションに新たな生命を吹き込みたいとお考えですか? 以下にご紹介するステップを実行すれば、既存のグローバルをクラスにマッピングし、美しいデータを Object や SQL に公開できます。 本記事を含む合計 3 回の連載を通じてご紹介する簡単なステップを使えば、すべてのグローバル (特殊なものは除く) を Caché のクラスにマッピングできるようになります。 特殊なものについては、私が長年に渡って集めた様々な種類のマッピングを zip ファイルにまとめて提供いたします。 これは新しいデータを対象としたステップではありません。グローバルがないという方は、デフォルトのストレージをお使いください。 #SQL #グローバル #マッピング #Caché 3 1 1 327
記事 Toshihiko Minamoto · 2021年2月11日 27m read InterSystems IRIS デプロイガイド - AWS CloudFormation テンプレート InterSystems IRIS デプロイガイド - AWS CloudFormation テンプレート #AWS #Mirroring #インターシステムズビジネスソリューションとアーキテクチャ #クラウド #デプロイ #データベース #InterSystems IRIS 0 0 0 408
記事 Toshihiko Minamoto · 2021年2月8日 10m read Caché データベースブロックの内部構造、パート 3。 これで 3 記事目になります (パート 1 と パート 2 をご覧ください) が、引き続き Caché データベースの内部構造をご紹介いたします。 今回は、興味深い内容をいくつかご紹介し、私の Caché Blocks Explorer プロジェクトを使って作業の生産性をアップさせる方法について説明します。 #システム管理 #データベース #Caché 1 0 1 144
記事 Toshihiko Minamoto · 2021年2月4日 6m read InterSystems ObjectScript Package Manager のご紹介 開発者の皆さん、こんにちは! InterSystems ObjectScript でライブラリやツール、パッケージなどを開発していると、「このパッケージはどうすればターゲットマシンに展開できるのか?」という疑問がよく浮かびます。 また、私たちは、既に別のライブラリがインストールされていることを想定したり、その特定のバージョンのことを考慮したりしながらパッケージを開発しています。 JavaScript や Python などでコーディングを行うと、依存関係を管理しながらパッケージを展開するのに パッケージ管理システム が必要になります。 これを踏まえ、 InterSystems ObjectScript Package Manager のリリースを発表したいと思います! #ObjectScript #InterSystems Package Manager (IPM) #オープンソース #リリース #InterSystems IRIS #Open Exchange Open Exchange app 0 0 0 273
記事 Toshihiko Minamoto · 2021年2月2日 9m read Caché データベースブロックの内部構造、パート 2 この記事は Caché データベースの内部構造を説明したこちらの記事の続編です。 そちらの記事では、様々なブロックタイプ、それぞれのつながりやグローバルとの関係について説明しました。 純粋に理論を述べた記事でした。 ブロックツリーを視覚化するのに役立つプロジェクトを作成しましたので、この記事ではその仕組みを詳しく説明します。 #システム管理 #データベース #Caché 0 0 0 257
記事 Toshihiko Minamoto · 2021年1月28日 4m read InterSystems IRIS ドキュメンテーションをコーポレートデータにマッピングする場合について。 独自の組織データアーキテクチャを書き、InterSystems IRIS にマッピングする必要がある場合は、以下にご紹介するデータアーキテクチャダイアグラムおよび InterSystems IRIS ドキュメンテーションのリファレンスに記載されている内容を考慮してください。 #インターシステムズビジネスソリューションとアーキテクチャ #データモデル #InterSystems IRIS #ドキュメント 0 0 0 184
記事 Toshihiko Minamoto · 2021年1月26日 7m read InterSystems IRIS における AWS Glue の使用について 2019年 10月 17日 Anton UmnikovInterSystems シニアクラウドソリューションアーキテクトAWS CSAA、GCP CACE AWS Glue は、完全に管理された ETL (抽出、変換、読み込み) サービスです。データの分類、クリーンアップ、強化、そして様々なデータストア間でデータを確実に移動させるという作業を簡単にかつコスト効率の良いかたちで行えるようにするものです。 #AWS #Python #SQL #クラウド #データベース #ビッグデータ #InterSystems IRIS 0 0 0 582
記事 Toshihiko Minamoto · 2021年1月21日 9m read Caché データベースブロックの内部構造、パート 1 InterSystems Caché のグローバルは、デベロッパーにとって非常に便利な機能を提供します。 しかし、グローバルが高速な上に効率が良いのはなぜでしょう? 理論 基本的に、Caché データベースとは、データベースと同じ名前を持ち、CACHE.DAT ファイルを含んだカタログのことです。 Unix システムでは、このデータベースを普通のディスクパーティションにすることもできます。 #システム管理 #データベース #Caché 1 0 1 407
記事 Toshihiko Minamoto · 2021年1月19日 6m read 2個のBME280で気象データを取得する みなさん、こんにちは。 前回の記事では1個のBME280で気象データを取得したのですが、気温のブレが大きかったので基板からただ、基板につけたBME280のはんだを外すのが大変なので、別のBME280を外付けすることにしました。当初、ESP8266の別のIO端子と接続することを考えていたのですが、Wire.hが複数のバスに対応していないため、以下の配線図のようにカスケード接続することにしました。 #IoT #InterSystems IRIS 0 0 0 811
記事 Toshihiko Minamoto · 2021年1月19日 5m read 気象データを取得するセンサーをBME280に変更する 皆さん、こんにちは。寒い日が続きますね。前々回の記事でDHT11とBMP180を使って作成したのですが、実際に外に置いて計測してみると、氷点下の場合、12~13℃となってしまい、正しく計測できませんでした。(先にデータシートを確認しておけばよかったのですが、DHT11、BMP180共に0℃以上になっていました...)そこで代わりのセンサーが無いか探していたところ、BME280というセンサーが見つかりました。-40℃から85℃まで測れ、BMP180と同じBosch製で値段も数百円。 #IoT #InterSystems IRIS 0 0 0 632