Magic xpiトレーニングテキスト
22. Magic xpi のアーキテクチャー

22.1 フォルダ構成

【インストールフォルダ】

No. フォルダ/ファイル 役割
1 <インストール先>\DB 内部DBを作成するスクリプトの格納場所
2 <インストール先>\Help ヘルプ等各種ドキュメントの格納場所
3 <インストール先>\Runtime Magic xpi 4.13の実行環境
3-1 <インストール先>\Runtime\Config 実行時の設定ファイル格納場所
3-2 <インストール先>\Runtime\GigaSpaces-xpi GigaSpaces格納場所
3-3 <インストール先>\Runtime\ifclib Magic xpi 4.13コンポーネント(Magic xpaで開発されたもの)の格納場所
3-4 <インストール先>\Runtime\Java\lib Magic xpi 4.13コンポーネント(Javaで開発されたもの)の格納場所
3-5 <インストール先>\Runtime\JDK8x64 インストール時に指定した64bit Java 8へのジャンクション ※
3-6 <インストール先>\Runtime\JDK8x86 インストール時に指定した32bit Java 8へのジャンクション ※
3-7 <インストール先>\Runtime\logs 実行ログが格納されるフォルダ
3-8 <インストール先>\Runtime\Magic xpa Magic xpa 4.6-2のフォルダ
3-9 <インストール先>\Runtime\RTView Magicモニタ(RuntimeView)の格納場所
4 <インストール先>\Studio Magic xpiスタジオの格納場所

※ジャンクションとはショートカットのようなもの

 

【プロジェクトフォルダ(デフォルト) 】

No. フォルダ/ファイル 役割
1 <マイドキュメント>\Magic\Projects\<ソリューション名> ソリューションの最上位フォルダ
2 \<プロジェクト名> プロジェクトの最上位フォルダ
3 \mappergenerate マッピング情報をもとにMagic xpiが生成するデータ編集プログラムを格納するフォルダ

マッピング情報をもとにmagicxpimapping.ecf(Magic xpaプログラム)が生成される

4 \Resource\<リソース名> そのリソースに関連するxsdファイルやxpaプログラム等が格納される
5 \Service\<サービス名> そのサービスに関連するxsdファイルやjarファイル等が格納される
6 \Source Magic xpiスタジオで作成されたフローが格納されるフォルダ(作成ソースの格納先)
7 \<コンポーネント名>\XSD\<リソース名> Salesforce.com等、特定のアプリケーションと接続するコンポーネントが使用するxsdが格納される
8 \<プロジェクト名>.ibp Magic xpiスタジオでビルドを行った際に作成される各プロジェクトの実行形式ファイル

Magic xpiサーバはこのファイルとmagicxpimapping.ecf、ifclibフォルダ、Java\libフォルダ配下の各コンポーネントの実体を読み込んで処理を実行する

 

22.2 Magic xpi の各種設定ファイル

【各種設定ファイル】

No. ファイル名 主な設定内容 有効範囲
magic.ini 環境変数

使用するライセンス

全プロジェクト
ifs.ini 個々のプロジェクト
start.xml プロジェクト起動条件 個々のプロジェクト
projectsStartup.xml 全プロジェクト

【格納フォルダ】 

① <xpiインストールフォルダ>\Runtime\Magic xpa\
②、③ <プロジェクト配置フォルダ>\<ソリューションフォルダ>\<プロジェクトフォルダ>\
④ <xpiインストールフォルダ>\Runtime\Config\

 

【① magic.ini】

  • Magic xpi スタジオ、Magic モニタ、Magic xpi サーバ共通の設定ファイル。
  • [MAGIC_LOGICAL_NAMES]セクションで環境変数の値を設定する。
  • [MAGIC_ENV]セクションのLicenseFileの値に、License.datの配置場所を設定する。
  • [MAGIC_ENV]セクションのLicenseNameの値に、xpiスタジオライセンス(IBNPSTD)を設定する。

【② ifs.ini】

  • プロジェクトごとの設定ファイル。
  • [MAGIC_LOGICAL_NAMES]セクションで環境変数の値を設定する。
  • [MAGIC_ENV]セクションのLicenseNameの値に、xpiサーバライセンス(IBPRSRVI or IBNPSRV)を設定する。

 magic.iniファイル、ifs.iniファイルで同一の環境変数の値が設定されている場合、ifs.iniファイルで設定した値が優先されます。

 

【magic.iniファイル、ifs.iniファイルを編集する際の注意事項】

  • 修正を行う際は、 Magic xpi スタジオ、Magic モニタ、Magic xpi サーバを全て停止させる。
  • magic.iniにバックスラッシュを記述する場合はエスケープシーケンス不要。
  • ifs.iniにバックスラッシュを記述する場合はエスケープシーケンスが必要。
  • xpiの内部環境変数「%sl%」を使用することで、バックスラッシュの記述を統一できる。

 

記述方法 magic.ini ifs.ini
C:\Magic xpi 4.13\ ×
C:\\Magic xpi 4.13\\ ×
C:%sl%Magic xpi 4.13%sl%

 

【③ start.xml】

  • プロジェクト起動時のインスタンス数、ワーカスレッド数などを定義する設定ファイル。
  • ファイルが存在しない場合のみ、ビルド時にstart.xml.triggersを元に作成される。

start.xml

 

【④ projectsStartup.xml】

  • GigaSpaces起動時に、プロジェクトを自動起動するための設定ファイル。
  • ひな型ファイル「projectsStartup.xml.example」をコピーして作成する。

projectsStartup.xml

 

【start.xmlおよびprojectsStartup.xmlの設定項目】

No. 項目名 説明 備考
Name プロジェクト名を指定
ProjectsDirPath ソリューションフォルダのパスを指定
Host サーバ名を指定 代替サーバはalternateHostsに指定する
NumberOfWorkers Magic xpiサーバ内で生成するワーカースレッド数(同時処理数)を指定
NumberOfInstance Magic xpiサーバ(MgxpiServer.exe)を起動する数を指定
Triggers load このサーバでトリガーを使用するか否かを指定 true / falseで指定
Scheduler load このサーバでスケジューラを使用するか否かを指定 true / falseで指定
AutoStart load このサーバで自動起動を使用するか否かを指定 true / falseで指定

※projectsStartup.xmlで複数のプロジェクトを起動する場合は上記セットを複数記述する。

22.3 Magic xpi のサーバアーキテクチャー概要

【外部リクエストと内部リクエスト】

【外部リクエスト】

①ブラウザからのHTTPリクエストがIISおよびWebリクエスタを経由してGigaSpacesに書き込まれる。

②他システムからのSOAPリクエストがSoap ServiceおよびSOAPリクエスタを経由してGigaSpacesに書き込まれる。

【内部リクエスト】

③Magic xpi スタジオで作成したプロジェクトのトリガー情報(スケジューラ、ディレクトリスキャナ、メールトリガー等)がGigaSpacesに書き込まれる。

外部リクエストと内部リクエスト

 

【GigaSpacesとxpiサーバ】

【GigaSpaces】

④外部リクエストと内部リクエストをキューにストアする。

⑤Magic xpi の実行に必要なライセンス情報をLicense.datから読み込む。

【xpi サーバ】

⑥Magic xpi スタジオで作成したプロジェクトのフロー情報を読み込み、GigaSpaces内のキューにリクエストが書き込まれたら処理を実行する。

⑦実行結果のログをGigaSpaces経由で内部DBに書き込む。

GigaSpacesとxpiサーバ

 

【GigaSpacesとxpiサーバ】

【GigaSpaces】

内部のキューにストアしたリクエストはFIFO(先入れ先出し)で処理。

【xpi サーバ】

xpi サーバはマルチスレッドで動作し、同時に多数のリクエストを処理できる。

同時に起動できるスレッド数は、購入ライセンスによって異なる。

GigaSpacesとxpiサーバ

 

【GigaSpacesのPULL型実行アーキテクチャー】

GigaSpacesのPULL型実行アーキテクチャー

22.4 IMDGとクラスタリング

  • インメモリ・データグリッドとは、大量のデータを複数のサーバのメモリ上で分散して管理する技術のこと。データをメモリ上に置くことで、高速なデータアクセスを実現している。アプリケーションからは全てのデータが仮想的な1つのメモリ空間に置かれているように見える。

IMDGとクラスタリング

 

【データグリッド・クラスタリング】

  • 基本的に複数のHWで構成する
  • プライマリに対してバックアップを構成し、プライマリとバックアップ間は自動同期

データグリッド・クラスタリング

 

【データグリッド・クラスタリング】

  • 障害発生時、バックアップがプライマリに昇格
  • いずれかの筐体が正常稼働する限り停止しない

データグリッド・クラスタリング

 

【サーバ構成例】

サーバ構成例

 

22.5 Magic xpi サーバ動作メカニズムの長所

【Magic xpi サーバ 動作メカニズムの長所】

  • Magic xpi サーバプロセスはCGIなどと異なり、一度起動されるとそのまま使用されるので、Hardwareリソースを効率よく使用でき、プロセスのロードに要する時間も最初の一回だけなのでレスポンスが向上しやすい。
  • Magic xpi サーバプロセスはDBMSに対する接続もプロセス単位でプールするため、DBMSへの接続に要する時間を短縮でき、レスポンスが向上しやすい。
  • リクエストはすべてGigaSpaces内のキューに書き込まれ、GigaSpacesの冗長構成により、リクエストを全くロストしない。