Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ユーザモジュールと依存関係

 ユーザモジュールと依存関係

iCEC2014資料

intramart_dev

April 23, 2014
Tweet

More Decks by intramart_dev

Other Decks in Technology

Transcript

  1. intra-mart accelerates your business. 情報種別:公開 会社名:NTTデータイントラマート 情報所有者:開発本部 ©2014 NTT DATA

    INTRAMART CORPORATION ユーザモジュールと依存関係 ㈱NTTデータイントラマート 開発本部 2014/04/23
  2. intra-mart accelerates your business. 情報種別:公開 会社名:NTTデータイントラマート 情報所有者:開発本部 ©2014 NTT DATA

    INTRAMART CORPORATION アジェンダ • ユーザモジュールって何? • 依存関係の設定
  3. intra-mart accelerates your business. 情報種別:公開 会社名:NTTデータイントラマート 情報所有者:開発本部 ©2014 NTT DATA

    INTRAMART CORPORATION サーバ What’s the User Module?? ユーザモジュールって何? モジュールとは? 一定の基準でつくられた部品のまとまり、機能群の こと。 Accel Platformやそのうえで動作する アプリケーションのモジュールを 組み合わせてサーバ上に展開。 こうして業務システムを構築していく。 intra-mart Accel Platform IM 共通 マス タ IM- Work flow IM- Box IM- Forma Design er
  4. intra-mart accelerates your business. 情報種別:公開 会社名:NTTデータイントラマート 情報所有者:開発本部 ©2014 NTT DATA

    INTRAMART CORPORATION What’s the User Module?? ユーザモジュールって何? ・基盤上で動くアプリケーションを開発したい ・業務要件に合わせて機能をカスタマイズしたい。 →自身の手で開発・カスタマイズした 機能を作って提供する。 →その機能を1つにまとめたものが ”ユーザモジュール” intra-mart Accel Platform IM 共通 マスタ IM- Work flow IM- Box IM- Forma Design er User Mod ule User Mod ule
  5. intra-mart accelerates your business. 情報種別:公開 会社名:NTTデータイントラマート 情報所有者:開発本部 ©2014 NTT DATA

    INTRAMART CORPORATION What’s the User Module?? Web Platform(Ver.7.2 以前)での適用 1. インストーラでintra-martのみでの環境を作成 2. 作ったJavaのソース→独自でjarファイルを作成 or classファイルを手動 で配置 3. 作ったjsspソース→ResourceServiceに手動で配置 4. 作った設定ファイル→独自で配置すべき場所に配置 5. 再起動 ◦作成したファイルをそれぞれ別個に適切な箇所に配置してもらう必要があり、 何かしらの修正があった場合に、配置ミスなどが発生して、反映されていない、 違うファイルを上書きしてしまったなどのミスが発生する。 ◦修正したファイルの調査等において、どのファイルが自作なのかの調査が大 変 ◦いらない機能のソースも入ってしまう。 ◦サーバの台数分構築作業が必要になったり、パッチの適用の順番が複雑で構 築ミスが発生しやすい
  6. intra-mart accelerates your business. 情報種別:公開 会社名:NTTデータイントラマート 情報所有者:開発本部 ©2014 NTT DATA

    INTRAMART CORPORATION What’s the User Module?? モジュールを利用することのメリット ・IMの機能と同一の方法で環境構築が可能 →作成した機能を適用する際に、配置ミスや設定ミスの手順を少なくする。 ・影響範囲をモジュール単位でカプセル化。分割しておく。 →何か修正があった場合に、確認が必要な範囲がわかる。 ・可搬性の向上 →特定のAプロジェクトで利用した機能を他のプロジェクトでも利用したい時、 機能の粒度でモジュール化することで再利用しやすくする。 ・機能の選択制 →モジュール化することで利用機能の選択ができて、不必要なソースが残らない
  7. intra-mart accelerates your business. 情報種別:公開 会社名:NTTデータイントラマート 情報所有者:開発本部 ©2014 NTT DATA

    INTRAMART CORPORATION What’s the User Module?? Accel Platform(Ver.8.0.X)での適用 1. ユーザモジュールを作成 2. intra-martのモジュールとユーザモジュールからWARを作成 3. Resin上にWARファイルを展開 ◦作成したソースをモジュールとして提供することによって、配置ミスも 少なく、 必要最低限の環境構築で済むため、利用しない機能に対する設定も しなくていい。 ◦Intra-martと同じ方法でインストールするという手順の統一ができる。 ◦パッチ、機能間のつながり、ユーザモジュールにて作りこんだ部分を “依存関係”という形で、関連性をすべて内部で管理できる。 ◦同一環境を1つのwarファイルを利用することによって、作成可能。 1つ1つにアプリケーションを実行するための設定が必要なくなる。
  8. intra-mart accelerates your business. 情報種別:公開 会社名:NTTデータイントラマート 情報所有者:開発本部 ©2014 NTT DATA

    INTRAMART CORPORATION What’s the User Module?? ユーザモジュールの構造 ディレク トリ 想定用途 対象例 generate d 自動生成されたJavaファイルを格納します。 *.java java Javaファイルを格納します。 *.java resource Javaファイル以外でプログラム中に利用す るファイルを格納します。 *.properties、*.xml conf モジュールの動作を制御する設定ファイ ルを格納します。 *.properties、*.xml jssp スクリプト開発用のソースを格納します。 *.html、*.js plugin プラグインとして利用する設定ファイルを 格納します。 *.properties、*.xml public Webコンテンツで静的コンテンツを格納し ます。 *.html、*.css、*.swf 等 schema 設定ファイルに関するXMLスキーマファイ ルを格納します。 *.xsd storage/ public StorageのPublicStorageにて管理される ファイルを格納します。 *.* storageに格納する全ファイ ル storage/s ystem StorageのSystemStorageにて管理される ファイルを格納します。 *.* storageに格納する全ファイ ル webapp Webコンテンツで動的コンテンツを格納し ます。 *.jsp、WEB-INF/に配置するファ イル diconファイル等
  9. intra-mart accelerates your business. 情報種別:公開 会社名:NTTデータイントラマート 情報所有者:開発本部 ©2014 NTT DATA

    INTRAMART CORPORATION What’s the User Module?? ユーザモジュール定義の肝 module.xml <id> <name> <version> <vender> <description>
  10. intra-mart accelerates your business. 情報種別:公開 会社名:NTTデータイントラマート 情報所有者:開発本部 ©2014 NTT DATA

    INTRAMART CORPORATION What’s the User Module?? ユーザモジュール定義の肝 module.xml モジュールID (id) ユーザモジュールの識別ID バージョン (version) ユーザモジュールのバージョン情報 モジュール名(name)・ベンダー(vender) ・説明(descripion) モジュールの情報。 プロジェクト内のpropertiesで 設定を記述 → jugglingのビューに表示される。
  11. intra-mart accelerates your business. 情報種別:公開 会社名:NTTデータイントラマート 情報所有者:開発本部 ©2014 NTT DATA

    INTRAMART CORPORATION What’s the User Module?? ユーザモジュール定義の肝 module.xml 依存関係 (dependencies) モジュールの依存関係について設定 ◦依存関係とは? 一言でいうと「機能間の関連の表現」。 ※抜粋 <dependencies> <dependency> <module-id>jp.co.intra_mart.j2ee_framework</module-id> <verified-version>8.0.2</verified-version> </dependency> </dependencies>
  12. intra-mart accelerates your business. 情報種別:公開 会社名:NTTデータイントラマート 情報所有者:開発本部 ©2014 NTT DATA

    INTRAMART CORPORATION What’s the User Module?? ユーザモジュール定義の肝 module.xml 依存関係 (dependencies) モジュールの依存関係について設定 ◦依存関係とは? 一言でいうと「機能間の関連の表現」。 ※抜粋 <dependencies> <dependency> <module-id>jp.co.intra_mart.j2ee_framework</module-id> <verified-version>8.0.2</verified-version> </dependency> </dependencies> ◦module-id 依存するモジュールのID ◦verified-version 依存するモジュールのバージョン情報
  13. intra-mart accelerates your business. 情報種別:公開 会社名:NTTデータイントラマート 情報所有者:開発本部 ©2014 NTT DATA

    INTRAMART CORPORATION What’s the User Module?? ユーザモジュール定義の肝 module.xml ユーザモジュールにこのAモジュールを使いたい!! 依存関係にAモジュールの情報を記述する。 依存関係 (dependencies) モジュールの依存関係について設定 ◦依存関係とは? 一言でいうと「機能間の関連の表現」。
  14. intra-mart accelerates your business. 情報種別:公開 会社名:NTTデータイントラマート 情報所有者:開発本部 ©2014 NTT DATA

    INTRAMART CORPORATION What’s the User Module?? ユーザモジュール定義の肝 module.xml 依存関係 (dependencies) モジュールの依存関係について設定 ◦依存関係とは? 一言でいうと「機能間の関連の表現」。 今回はこの部分についての疑問を 解説していきます。 色々設定することがあるけど、どうすればいいのか 良くわからない。 ・どう設定すればいいの? ・どうやって開発していけばいいの?
  15. intra-mart accelerates your business. 情報種別:公開 会社名:NTTデータイントラマート 情報所有者:開発本部 ©2014 NTT DATA

    INTRAMART CORPORATION How To Set Up Module Dependencies Q.依存関係って何を設定すればいいの? A. 以下のモジュールを依存関係に設定してください。 ・利用しているフレームワークのモジュール ・利用している機能のモジュール ・カスタマイズ元となるモジュール
  16. intra-mart accelerates your business. 情報種別:公開 会社名:NTTデータイントラマート 情報所有者:開発本部 ©2014 NTT DATA

    INTRAMART CORPORATION How To Set Up Module Dependencies Q.依存関係って何を設定すればいいの? Case1. 利用しているフレームワークのモジュール 開発するフレームワーク 対象となるモジュール スクリプト開発モデル 名称:スクリプト開発モデル ID:jp.co.intra_mart.im_jssp JavaEEフレームワーク開発モデル 名称:im-JavaEE Framework ID:jp.co.intra_mart.j2ee_framework SAStruts+S2JDBC開発モデル 名称:SAStruts Framework on Accel Platform ID:jp.co.intra_mart.imart_sastruts Terasoluna Grobal フレームワーク開発モデル 名称:TERASOLUNA Global Framework Common module on Accel Platform ID:jp.co.intra_mart.im_tgfw_common
  17. intra-mart accelerates your business. 情報種別:公開 会社名:NTTデータイントラマート 情報所有者:開発本部 ©2014 NTT DATA

    INTRAMART CORPORATION How To Set Up Module Dependencies Q.依存関係って何を設定すればいいの? Case2. 利用している機能のモジュール 例) IM-WorkflowとIM共通マスタ IM-WorkflowはIM共通マスタを利用している。 IM-Workflowのmodule.xmlの一部抜粋 <dependency> <module-id>jp.co.intra_mart.im_master</module-id> <verified-version>8.0.3</verified-version> </dependency> IM-workflowのmodule.xmlに IM共通マスタの依存関係を 設定している
  18. intra-mart accelerates your business. 情報種別:公開 会社名:NTTデータイントラマート 情報所有者:開発本部 ©2014 NTT DATA

    INTRAMART CORPORATION How To Set Up Module Dependencies Q.依存関係って何を設定すればいいの? Case2. 利用している機能のモジュール Jugglingのモジュールプロパティービューで 選択したモジュールに設定されている 依存関係が参照できる。 IM-共通マスタを依存関係に設定 →IM共通マスタが依存関係に 設定している機能が利用可能になる。
  19. intra-mart accelerates your business. 情報種別:公開 会社名:NTTデータイントラマート 情報所有者:開発本部 ©2014 NTT DATA

    INTRAMART CORPORATION How To Set Up Module Dependencies Q.依存関係って何を設定すればいいの? Case3. カスタマイズ元となるモジュール 含まれているファイルの確認方法について記述する。 ex. WEB-INF/conf/viewcreator-function-config.xml についてカスタマイズ ファイルが存在するモジュールの確認方法 開発元の環境においてjuggling使って、excelファイルを出力すると、 配置されるリソースの一覧が取得可能
  20. intra-mart accelerates your business. 情報種別:公開 会社名:NTTデータイントラマート 情報所有者:開発本部 ©2014 NTT DATA

    INTRAMART CORPORATION How To Set Up Module Dependencies Q.依存関係って何を設定すればいいの? Case3. カスタマイズ元となるモジュール 手順 1. juggling.imエディタ上から ビルドウィザードを起動 2. 「モジュール構成Excel出力」 を選択し、出力先を指定 3. 実行 4. モジュール構成を記録した Excelファイルが出力 されます。 Excelサンプル(一部抜粋) viewcreaterのシートにある。 →viewcreatorのモジュールを 設定することが必要
  21. intra-mart accelerates your business. 情報種別:公開 会社名:NTTデータイントラマート 情報所有者:開発本部 ©2014 NTT DATA

    INTRAMART CORPORATION How To Set Up Module Dependencies Q. WARファイルにユーザモジュールで 含んだファイルが適用されていないんですが? A. 以下の2点を確認しましょう。 1. 依存関係に設定されていない同一パスのファイルはありますか? 2. Jugglingプロジェクト上に同一パスのファイルは存在しません か? 上記の設定によって、WAR展開時に反映されるファイルが決まります。
  22. intra-mart accelerates your business. 情報種別:公開 会社名:NTTデータイントラマート 情報所有者:開発本部 ©2014 NTT DATA

    INTRAMART CORPORATION How To Set Up Module Dependencies Q. WARファイルにユーザモジュールで 含んだファイルが適用されていないんですが? WARファイル展開時に適用されるファイルの優先順位 1.Jugglingプロジェクト上に直接配置されているファイル。 2.モジュールプロジェクトの依存関係において 依存元となっているモジュールのファイル ex. 「IM-共通マスタ」の展開例 IM共通マスタはジョブスケジューラに依存 → ジョブスケジューラのモジュール展開後 IM共通マスタのモジュールが展開される。 Rule 依存先がすべて展開されていないければ依存元のモジュールは展開されない。 依存先が多いモジュールほど後の方で展開される。
  23. intra-mart accelerates your business. 情報種別:公開 会社名:NTTデータイントラマート 情報所有者:開発本部 ©2014 NTT DATA

    INTRAMART CORPORATION How To Set Up Module Dependencies Q. 依存関係に指定できないモジュールって ありますか? A. 以下のモジュールは指定しないでください。 1. 循環参照 モジュールは自分自身を依存関係として設定できません。 設定した場合、jugglingでwarを作成するときなどに依存関係の循環参照を起こし、 正常に動作しません。 この点に関しては改善を検討しております。
  24. intra-mart accelerates your business. 情報種別:公開 会社名:NTTデータイントラマート 情報所有者:開発本部 ©2014 NTT DATA

    INTRAMART CORPORATION Generalization モジュールについて ・モジュールとは何か ・なぜモジュールを使うことにしたのか ・モジュールを利用するのに必要な設定 ・モジュールの依存関係について 依存関係について ・何を依存関係に設定すればいいのか ・Jugglingで作成したWARの展開の仕組み ・依存関係に設定できないモジュールについて