Chinese | English

03-3510-1616 受付時間 9:00〜17:00(土日除く)

お問い合わせ 資料請求

 

  • HOME
  • コラム
  • 第2回 『XA FrameManager Platformの実行基盤』

コラム

XA FrameManager編

第2回 『XA FrameManager Platformの実行基盤』

XA FrameManager編

前回は「MCFrame XAのシステム基盤」と題して、MCFrame XAを構成する「業務アプリケーション」・「XA FrameManager Developer(開発ツール)」・「XA FrameManager Platform(システム基盤)」について、概要をご説明しました。

今回から数回に渡って、このうちの「XA FrameManager Platform」についてご説明していきたいと思います。業務アプリケーションの土台となるこのXA FrameManager Platformは、Java EEを利用した業務アプリケーションの開発・実行のための4つの層からなる機能群と、それらの層の上で動作するアプリケーション管理機能から構成されています。

 XA FrameManager編

<XA FrameManager Platform の構成>

一番下の階層の「実行基盤」は、文字通りMCFrame XAのアプリケーション実行に不可欠な環境です。クライアント側とサーバ側に配置されるアプリケーションは、必ずこの環境上で実行・制御されます。どのような構成、どのような仕様のアプリケーションであっても、業務システムとして必要となる機能がこの実行基盤に揃っています。2番目の階層の「開発部品」は、画面のGUI部品群や、業務データの演算処理・クエリ処理のライブラリなど、アプリケーションの仕様に応じて選択して利用する「部品」です。

3番目・4番目の階層の「開発フレームワーク」「開発テンプレート」は「開発部品」を利用した「プログラムのひな型」です。どちらも似ていますが、「開発フレームワーク」は「実行基盤」寄りの機能群からなり、目的別のアプリケーション構造を提供します。「開発テンプレート」は「業務アプリケーション」寄りの機能群からなり、業務アプリケーションで良く使われる機能を提供します。これら「開発フレームワーク」「開発テンプレート」を使わなくてもMCFrame XAのアプリケーションを作ることは技術的に可能ですが、試行錯誤することなく一定のルールに沿ってアプリケーションを効率的に開発するためには、このような仕組みが必ず必要になります。

一番上の階層の「アプリケーション管理」は業務システムに付きもののユーザ管理や権限管理などのシステム管理系機能の階層です。MCFrame XAは、XA FrameManager Platformに「アプリケーション管理」機能を配置しているため、アプリケーションの種類に関係なくそれらの機能を利用することができる構造になっています。これらの5つの階層の機能を組み合わせて使用することにより短納期・低コストによるMCFrame XAの開発が行えるのです。

それでは、今回のコラムではまず「実行基盤」についてご説明していきたいと思います。

クライアント実行基盤

XA FrameManager編<クライアント実行基盤>

XA FrameManager Platform上で稼働するアプリケーションの画面は、クライアント側の実行基盤であるアプリケーション共通のデスクトップに表示されます。デスクトップは、JavaプログラムをクライアントPC上で稼働させるリッチクライアントのベース部分であり、図にあるようなメニューのボタンから複数のアプリケーション画面を自由に開いて、同時に参照しながら操作するといったことができます。

デスクトップはメニューやアプリケーション画面の表示などの目に見える機能の他に、画面表示の制御、イベント処理、キー操作制御、サーバ通信などのクライアント側の動作に関するあらゆる処理を一元管理します。

サーバ実行基盤

クライアント実行基盤に対してサーバにも実行基盤が存在します。サーバ側の実行基盤は業務アプリケーションを管理して稼働させることを目的としており、クライアント側の画面操作に基づいて発生する処理要求を受信して制御しながら、サーバ側に配置された業務ロジック(処理)を実行してデータベースへのアクセスを行い、処理結果をクライアント側へ送信する、といった一連のプロセスを一元管理します。

XA FrameManager編<MCFrame XA 3層稼働イメージ>

図の左にあるクライアントPCでは画面(ここでは「販売物流画面」)がクライアント実行基盤の上で動いています。ここから検索処理や登録処理といった業務ロジックのトリガとなるボタンを操作すると、クライアント実行基盤の機能によって、画面に入力されている検索条件や登録情報を元に「電文」が作成されアプリケーションサーバに送信されます。(1)
図の中央のアプリケーションサーバではクライアントPCから送られてきた「電文」を受信し、サーバ実行基盤を経由して、処理を行う業務ロジックを起動します。(2)
業務ロジックからデータベース操作をする場合にもサーバ実行基盤を経由します。(3)
特にこの実行基盤のうちの業務ロジックを呼び出すエンジン部分を「サーバフロー」と呼んでおり、煩雑になりがちなDBアクセスの実装や処理を簡素化するためのDAOと組み合わせて動くことで、クライアントの認証、権限チェック、業務ロジックの並行処理制御、トランザクション管理、例外制御などを行います。

SOA対応アーキテクチャ

MCFrame XAは、アプリケーションサーバ上に作成した業務ロジックを、プログラム変更なしに、Webサービス化できる機能を装備しています。これはサーバ実行基盤で行っている通信機能がWebサービスの通信プロトコルであるSOAPにも対応することによって可能になる機能です。

XA FrameManager編<SOA対応アーキテクチャ>

例えば、図にあるように「在庫情報照会」の業務ロジックは、通常、MCFrame XAクライアントからの電文通信により照会処理を行いますが、サーバ実行基盤のSOAPコンバータを利用することによりWebService通信可能なクライアントからの在庫照会依頼も受け付けられるようになります。(="WebService Server機能")

このようにWebService Server機能により、MCFrameのビジネスロジックを他システムに公開でき、ESB等のミドルウェアとの連携も容易に行えるようになるのです。また仕入先企業が納期情報をWebServiceで公開している場合、MCFrame XAからApacheAXIS2ライブラリを使用して、これらの外部のWebServiceを利用することができるため、仕入先企業の納期情報をより正確に回答できる「購入品納期照会」の業務ロジックを容易に作ることができます。(="WebServiceClient機能")

マルチカンパニー対応アーキテクチャ

MCFrame XAはマルチカンパニーのモデルに対応しており、同一システム上(シングルインスタンスのデータベース)で、複数法人のデータを分離した形で取り扱うことが出来ます。これにより、グループ企業間取引のようなモデルを早期に実現することができるのです。また、分社や統合などの組織の変化についても、マルチカンパニーと組織に関わるマスタ設定の変更により、素早い対応が取れます。

XA FrameManager編<マルチカンパニー対応したデータベースのイメージ>

MCFrame XAのマスタ及びトランザクションを格納するデータベースのテーブルは会社コードを保持するようになっており、図にあるように各テーブルのデータには会社ごとに分離したアクセスが可能です。また会社コードが保持されている各テーブルへのデータアクセスにはデータベースのビューを利用する仕組みを取っており、かつこの全体の枠組みをXA FrameManager Platformが管理・統制しているため、新規に開発する業務アプリケーションでは会社コードを意識した実装を行う必要がありません。

そのデータアクセスのためのビューのWHERE句には会社コードの抽出条件がありますが、業務アプリケーションがデータアクセスするときは、XA FrameManager Platformの機能に従って、そこにログインユーザの会社コードが自動的にセットされます。この動きにより、開発者はマルチカンパニーを特別に意識する必要がなく容易に複数法人データの取り扱いが可能になる訳です。

いかがでしたでしょうか。今回は「XA FrameManager Platform」の「実行基盤」を中心にご説明しました。次回は引き続き「XA FrameManager Platform」の「開発フレームワーク」のご説明をしたいと思います。

第3回コラム 『XA FrameManager Platformの開発フレームワーク(1)』 に続く

新規CTA
樋口 亮平
樋口 亮平
プロダクト事業本部 コンサルティングサービス部 部長。 システム好きのプラントエンジニアが、インターネット黎明期のネットワーク技術に夢中になり、勢いでITの世界へ転身。これまでに、TRADEX、Oracle EBS、MCFrameなどのシステム導入プロジェクトに従事。最近はXA FrameManagerの伝道師になりつつある。
猪上太
猪上 太
新商品開発本部 商品開発本部 商品開発1部 システムスペシャリスト。malltalkがやりたくてBENG分社前のTECに入社して、MCFrame に触ってから早10年。今はJavaエンジニアですが、いつかは"Smalltalker"に戻る日を夢見て頑張ってます。 「健全なコードは健全な肉体に宿る」を信じて、毎日昼休みは会社の近所をジョギングしてます。