いまさら人には聞けない DI×AOP入門

Size: px
Start display at page:

Download "いまさら人には聞けない DI×AOP入門"

Transcription

1 いまさら人には聞けない DI AOP 入門 小森裕介 1

2 はじめまして! 名前 : 小森裕介 Blog: こもりん日記 所属 : ウルシステムズ株式会社 ( 主な仕事 : 各種 IT コンサルティング 各種 SI 支援 教育 各種執筆活動 : 日経ソフトウエア とことん作って覚える! Java 入門 連載 なぜ あなたは Java でオブジェクト指向開発ができないのか Seasar2 とのかかわり Uruma コミッタ S2Container コミッタ S2JMS コミッタ 2

3 はじめに DI AOP が世に出て早数年 Seasar や Spring をなんとなく使ってるけど なにが良いの? と聞かれてもうまく説明できない 自分の開発現場にも導入したいのだけど 上司や同僚を納得させる自信がない そんなアナタに DI AOP の本質をお伝えします! 3

4 アジェンダ 1. 依存性 の問題点 2. 依存性 との戦いの歴史 3. POJOによる 継承関係 実装関係の依存 からの脱却 4. DIによる オブジェクト利用の依存 からの脱却 5. DIによる 実装クラスへの依存 からの脱却 6. AOPはなぜ必要か 7. AOPの考え方 8. AOPの実現方法 4

5 DI AOP の必要性 DI AOPはなぜ必要か? それは 依存性からの脱却 を促進するため 5

6 1. 依存性 の問題点依存性とはなにか オブジェクト指向における 依存性 は 3 種類ある 継承関係 実装関係の依存 ClassA ClassB InterfaceC ClassD オブジェクト指向における 依存性 オブジェクト利用の依存 ClassB ClassA ClassC ClassA 実装クラスへの依存 InterfaceB Creates ClassB ClassC 6

7 1. 依存性 の問題点継承関係 実装関係の依存 (1/2) 継承関係 実装関係による依存 フレームワークの提供するクラス インタフェースを利用 例 1 Struts の Action クラス 例 2 EJB2 の SessionBean Action Interface SessionBean EmployeeAction フレームワークの世界 StockFinder ユーザアプリの世界 Struts Action EmployeeAction FW 既知のクラス インタフェースでないと呼び出せない FW 側で実施する前処理等 ユーザ本来の処理 このシーケンス図は模式的なものであり 実際の Struts の動作とは異なります 7

8 1. 依存性 の問題点継承関係 実装関係の依存 (2/2) 継承関係 実装関係の依存 の問題点 フレームワークにロックオンされる 継承 実装関係があるため ユーザが作成したコードを他のフレームワーク下でそのまま利用できない クラス単体でテストがしにくい フレームワークがインスタンス生成をしていると単体テスト時にインスタンス作成できず テストが困難 EJB 環境 Interface SessionBean StockFinder 非 EJB 環境 Interface SessionBean StockFinder 再利用性の低下 品質の低下 他の環境ではソースコード修正無しに再利用不可能 8

9 1. 依存性 の問題点オブジェクト利用の依存 (1/2) あるオブジェクトが他のオブジェクト利用する場合 BookFinder StockFinder Logger DataSource JNDI からのルックアップ Factory からの取得 public class BookFinder { private StockFinder stockfinder; private DataSource datasource; private Logger logger; public BookFinder(StockFinder stockfinder) { this.stockfinder = stockfinder; Context ctx = new InitialContext(); DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/MySQL"); this.logger = LoggerFactory.getLogger(this.getClass()); public List<Book> findbook(condition cond) {... コンストラクタ経由の参照渡し 9

10 1. 依存性 の問題点オブジェクト利用の依存 (2/2) オブジェクト利用の依存 の問題点 学習量が多い インスタンス取得のための様々な作法を知らなくてはならない コード量が多くなる オブジェクト組み立て のための本質的ではない大量のコード記述が必要 生産性の低下 保守性の低下 private Logger logger; public BookFinder(StockFinder stockfinder) { this.stockfinder = stockfinder; Context ctx = new InitialContext(); DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/MySQL"); this.logger = LoggerFactory.getLogger(this.getClass()); 10

11 1. 依存性 の問題点実装クラスへの依存 (1/2) あるオブジェクト内部で他のオブジェクトを new している場合 BookFinder Interface StockFinder Creates DBStockFinder RemoteStockFinder public class BookFinder { private StockFinder stockfinder; public BookFinder() { this.stockfinder = new DBStockFinder(); 利用側で実装クラスを直接 new している public class BookFinder { private StockFinder stockfinder; public BookFinder() { this.stockfinder = new RemoteStockFinder(); 実装クラスを変更するためには 利用側のコードを書き換えなければならない 11

12 1. 依存性 の問題点実装クラスへの依存 (2/2) 実装クラスへの依存 の問題点 仕様と実装の分離 を徹底できない せっかくインタフェースで仕様を分離しているのに インスタンス生成のために実装クラスへ依存している モックオブジェクトへの差し替えが難しい テスト用のモックオブジェクトを使用するにはテスト対象コードの変更が必要 保守性の低下 品質の低下 public class BookFinder { private StockFinder stockfinder; public BookFinder() { this.stockfinder = new DBStockFinder(); 利用側で実装クラスを直接 new している public class BookFinder { private StockFinder stockfinder; public BookFinder() { this.stockfinder = new RemoteStockFinder(); 実装クラスを変更するためには 利用側のコードを書き換えなければならない 12

13 2. 依存性 との戦いの歴史 依存性 の権化 EJB2.0 高度な機能を提供するため とても複雑になった インターフェースが特殊なので EJB 環境以外では再利用できない クライアント EJB にアクセスするための手続きが面倒 EJBコンテナ EJB EJB EJB EJBコンテナ EJB EJB EJB Web ブラウザ Web サーバ EJB コンテナがないとテストできない 分散オブジェクトはあまり使わない EntityBean は重い DB サーバ もっと簡単にコンポーネント技術を利用する方法はないの? 13

14 2. 依存性 との戦いの歴史なぜこの状況が放置されたのか? Java のエンタープライズ利用は Web アプリケーションが主流となった Struts をはじめとする Web アプリケーションフレームワーク が台頭 中 小規模のシステム開発では EJB の提供する機能がなくてもあまり困らなかった フレームワークの軽量化で使い方は簡単になった Web/AP サーバ Hibernate など O/R マッピングツールの普及で楽になった Action Logic DAO Web ブラウザ AP サーバ上でなければテストできない Action と Logic が分離されないこともある 再利用の妨げに 依存するオブジェクトが用意できないとテストできない DB サーバ 本質的な問題は未解決 大規模システムでは影響が顕著に 14

15 POJO with DI AOP による依存性からの脱却 依存性 が生み出す様々な問題を POJO with DI AOP で解決しよう!! Plain Old Java Object ( ポジョ ) Dependency Injection コード量が多い Aspect Oriented Programming ( 依存性注入 ) ( アスペクト指向プログラミング ) 依存性 15

16 3.POJO による 継承関係 実装関係の依存 からの脱却 Before POJO POJO(Plain Old Java Object) という考え方 FW 特有の I/F 親クラスを持たない 昔ながらのただの Java オブジェクト Before POJO 例 1 Struts の Action クラス 例 2 EJB2 の SessionBean Action Struts が提供する親クラス Interface SessionBean EJB 仕様の規定するインタフェース EmployeeAction 子クラスから利用できるメソッド ( 機能 ) を提供 StockFinder Struts の API に依存する EJB として利用するために特定メソッドの実装が強制される 自由な再利用や Junit による単体テストの妨げになった 16

17 3.POJO による 継承関係 実装関係の依存 からの脱却 After POJO POJO(Plain Old Java Object) という考え方 FW 特有の I/F 親クラスを持たない 昔ながらのただの Java オブジェクト After POJO 例 1 Struts の Action クラス 例 2 EJB2 の SessionBean Action フレームワーク固有のクラスを継承しない Interface SessionBean フレームワーク固有のインタフェースを実装しない EmployeeAction StockFinder 簡単にかける! どこでも使える! フレームワーク利用者の記述するコードは POJO にする フレームワークの影響を受けず再利用が可能再利用性の向上 クラス単体でのテストがしやすくなる品質の向上 17

18 4.DI による オブジェクト利用の依存 からの脱却 Before DI 依存性注入 (Dependency Injection) という考え方 必要なオブジェクトは DI コンテナが生成して注入する Before DI StockFinder Client BookFinder Logger DataSource public class BookFinder { private StockFinder stockfinder; private DataSource datasource; private Logger logger; public BookFinder(StockFinder stockfinder) { this.stockfinder = stockfinder; Context ctx = new InitialContext(); DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/MySQL"); this.logger = LoggerFactory.getLogger(this.getClass()); public List<Book> findbook(condition cond) { logger.log( 書籍検索を開始します ); List<Book> books = datasource.select(); logger.log( 書籍検索を終了しました ); return books; オブジェクトの組み立てが大変だった 大量のオブジェクト組み立てコード ビジネスロジック本来の処理 18

19 4.DI による オブジェクト利用の依存 からの脱却 After DI 依存性注入 (Dependency Injection) という考え方 必要なオブジェクトは DI コンテナが生成して注入する After DI Client BookFinder オブジェクトくださいな へい おまちっ! 出でよ! BookFinder! おぶじぇくとぉ ~ いんじぇくしょぉ ~~ ん!! あいよっ! BookFinder DI コンテナ + stockfinder + datasource + logger StockFinder DataSource Logger 19

20 4.DI による オブジェクト利用の依存 からの脱却 After DI 依存性注入 (Dependency Injection) という考え方 必要なオブジェクトは DI コンテナが生成して注入する After DI StockFinder Client BookFinder DataSource public class BookFinder { public StockFinder stockfinder; public DataSource datasource; public Logger logger; public List<Book> findbook(condition cond) { logger.log( 書籍検索を開始します ); List<Book> books = datasource.select(); logger.log( 書籍検索を終了しました ); return books; 依存するオブジェクトがどこで生成されるかは気にしなくてよい! ビジネスロジック本来の処理 Logger 学習量が減る コード量が減る 生産性の向上 保守性の向上 20

21 5.DI による 実装クラスへの依存 からの脱却 Before DI DI による実装クラスの外部定義 インタフェースに対する実装クラス外部定義化 生成は DI コンテナが行う Before DI 利用時はインタフェースのみ参照 BookFinder Creates DBStockFinder Interface StockFinder RemoteStockFinder public class BookFinder { private StockFinder stockfinder; public BookFinder() { this.stockfinder = new DBStockFinder(); 利用側で実装クラスを直接 new している public class BookFinder { private StockFinder stockfinder; public BookFinder() { this.stockfinder = new RemoteStockFinder(); 実装クラスを変更するためには 利用側のコードを書き換えなければならない 仕様と実装の分離 が徹底できなかった 21

22 5.DI による 実装クラスへの依存 からの脱却 After DI DI による実装クラスの外部定義 インタフェースに対する実装クラス外部定義化 生成は DI コンテナが行う After DI Seasar2 では dicon ファイル public class BookFinder { public StockFinder stockfinder; <component class= DBStockFinder /> BookFinder Interface StockFinder コンポーネント定義ファイル 実装クラスを変更する場合 コンポーネント定義を修正する コンポーネント定義にしたがい DIContainer がインスタンスを生成 実装クラスに依存しなくてよい DBStockFinder Creates DIContainer 仕様と実装 が完全に分離できる テスト用のモックオブジェクトが導入しやすい 保守性の向上 品質の向上 22

23 6.AOP はなぜ必要か POJO 化によるクラス拡張の欠落 フレームワーク利用者のコードを POJO 化すると フレームワーク側からの機能追加ができなくなる Before POJO After POJO Action フレームワークが提供するスーパークラスで 共通機能を提供できた Action POJO 化により 共通機能が提供できなくなった EmployeeAction EmployeeAction フレームワークの世界 ユーザアプリの世界 Struts Action EmployeeAction FW 側で実施する前処理等 ユーザ本来の処理 このシーケンス図は模式的なものであり 実際の Struts の動作とは異なります 23

24 6.AOP はなぜ必要か複数クラスから呼び出される共通機能への依存 例 : ロギング処理で発生する問題 BookFinder ロギング処理をなくしたい! BookFinder 利用側にロギング処理呼び出しコードが残ってしまう +getbooklist() +getbooklist() CDFinder +getcdlist() Logger +log() ロギング処理で利用 CDFinder +getcdlist() 共通コンポーネント を利用すると 各所に呼び出しコードが混ざってしまう Logger +log() ロギングコンポーネントの再利用は簡単 24

25 6.AOP はなぜ必要か非機能要件はモジュール単独分離が難しい 非機能要件に関する処理は 全機能に影響するため モジュールとして分離しにくい ロギング処理も非機能要件の一つ 非機能要件 システムの本来の機能とは関係ないが 信頼性や保守性 使いやすさを向上させるための要件 機能要件 A 機能要件 B 機能要件 C 機能要件 D 非機能要件 Ⅰ 非機能要件 Ⅰ 非機能要件 Ⅰ 非機能要件 Ⅰ 非機能要件 Ⅱ 非機能要件 Ⅱ 非機能要件 Ⅱ 非機能要件 Ⅱ 非機能要件 Ⅲ 非機能要件 Ⅲ 非機能要件 Ⅲ 非機能要件 Ⅲ 非機能要件 Ⅳ 非機能要件 Ⅳ 非機能要件 Ⅳ 非機能要件 Ⅳ 各機能に共通する処理をモジュール化する方法はないの? 25

26 7.AOP の考え方アスペクト指向は関心事の分離から システムを 2 種類の要件に分け 横断的関心事を分離するのがアスペクト指向の考え方 ビジネス A ビジネス B ビジネス C ビジネス D セキュリティ ( アクセス制御 情報隠蔽 承認 完全性 ) 中心的関心事 (Core concern) 信頼性 ( バックアップ 分散 冗長性の確保 ) 運用情報 ( 監視 稼働状況 負荷管理 障害状況 ) マイグレーション ( 配備 設定 保守 開発計画 ) 横断的関心事 (Cross cutting concern) 出典 Seasar2 で学ぶ DI と AOP (arton 著 技術評論社 )p20 26

27 7.AOP の考え方ジョインポイントとアドバイス アスペクト指向では 機能の中にジョインポイントを定義し アドバイスをウィービングする ビジネス A ビジネス B ビジネス C ビジネス D アドバイス (Advice) 追加される処理 セキュリティ ( アクセス制御 情報隠蔽 承認 完全性 ) 信頼性 ( バックアップ 分散 冗長性の確保 ) 運用情報 ( 監視 稼働状況 負荷管理 障害状況 ) マイグレーション ( 配備 設定 保守 開発計画 ) ジョインポイント (Joinpoint) 処理を追加する場所 ウィービング (Weaving) 処理を追加すること 27

28 8.AOP の実現方法アスペクトコンパイラによる AOP の実現 AOP の実現には専用のコンパイラが必要だった Before DI AOP Java ソースコード Java クラスファイル アスペクト (Aspect) アスペクトコンパイラ アドバイスとポイントカットを記述したもの コンパイルと同時にウィービングを行ってクラスファイルを出力する ポイントカット ジョインポイントとアドバイスの結びつきを定義したもの こいつぁ 面倒だ 28

29 8.AOP の実現方法 DI コンテナと連携した AOP の実現 DI コンテナで生成時にウィービングを実施 After DI AOP Client BookFinder オブジェクトくださいな へい おまちっ! おぶじぇくとぉ ~ いんじぇくしょ ~ ん! あすぺくとぉ ~ うぃ ~ びんぐ!! 出でよ! BookFinder! あいよっ! BookFinder DI コンテナ + dao BookDao ロギング処理ウィービング完了 DI AOP で自動ウィービングが可能に! LogIntercepter 29

30 DI AOP の効果 POJO の良さを生かしながら フレームワークによるユーザコードの機能拡張を実現 ロギング処理 S2Container(TraceInterceptor) 例外処理 S2Container(ThrowsInterceptor) セッションオブジェクト管理 S2Container(Remove/InvalidateSessionInterceptor) tostring() メソッドの自動実装 S2Container(ToStringInterceptor) トランザクション処理 S2Tx リモートオブジェクト化 S2Remoting Web アプリケーションでのログイン状態チェック 独自実装で可能 30

31 DI コンテナに対する 5 つのギモン 依存関係はどうやって判断するの? Seasar2 なら インターフェースに基づいて自動判断します 結局設定ファイルをたくさん書くのでは? Seasar2 なら AutoRegister でカンタンに登録! More Info! More Info! 設定ファイルのデバッグが大変? Kijimuna( キジムナ ) で記述の誤りをチェックできます! 結局はリフレクションでしょ 遅くないの? 独自のキャッシュ機構で速度低下はほとんどありません More Info! More Info! Setter を書くのが面倒くさい! public フィールドインジェクションで setter いらず! More Info! 31

32 どうやって使っていったらよいの? DI コンテナのメリットはなんとなくわかった でも 開発現場でどう役立てればいいの? DI コンテナの機能をフルに使い切って設計するのは けっこうムズカシイ! そこで まずは S2Container を 100% 生かして作られた周辺プロダクトを使ってください! まずは SAStruts Teeda S2JDBC S2Dao がオススメです! 32

33 本日のまとめ 依存性 の持つ問題点を理解した 継承関係 実装関係の依存 オブジェクト利用の依存 実装クラスへの依存 POJO with DI AOP による 依存性からの脱却 方法と そこから得られるメリットを理解した 生産性の向上 保守性の向上 拡張性の向上 品質の向上 再利用性の向上 33

34 お勧め書籍 Seasar2 AOP について もっと知りたい方へ (1/2) Seasar 入門 ~ はじめての DI&AOP~ 監修 : ひがやすを著 : 須賀幸次他 価格 :3,570 円 出版社 : ソフトバンククリエイティブ ISBN: DI AOP のキホンをきっちり学習 Seasar2 で学ぶ DI と AOP アスペクト指向による Java 開発 著 :arton アスペクト指向入門 -Java オブジェクト指向から AspectJ プログラミングへ 著 : 千葉滋 価格 : 2,480+ 税 出版社 : 技術評論社 ISBN: 価格 :3,360 円 出版社 : 技術評論社 ISBN: アスペクト指向の考え方をしっかり身につけたい方へ DI AOP の考え方と Web アプリ開発について理解 (S2JSF+S2Dao) 34

35 お勧め書籍 Seasar2 AOP について もっと知りたい方へ (2/2) Seasar2 によるスーパーアジャイルな Web 開発 著 : ひがやすを 価格 :2,499 円 出版社 : 技術評論社 ISBN: Teeda+S2Dao による Web アプリケーション開発について解説 Seasar2 入門 Java によるはじめての Web アプリケーション開発 著 : ひがやすを 価格 :2,730 円 出版社 : ソフトバンククリエイティブ ISBN: SAStruts+S2JDBC による Web アプリケーション開発について解説 35

36 ご静聴 ありがとうございました 36

今さら人には聞けないAOP入門

今さら人には聞けないAOP入門 今さら人には聞けない AOP 入門 2006.11.12 エスエムジー株式会社小森裕介 ([email protected]) 1 はじめに えっ!?AOP って もう 今さら聞けない の? そんなことはない! と思います でも AOP が開発の中で一般的になりつつあるのもまた事実 そろそろ 知らない って言えなくなってきたアナタに AOPの基礎を50 分で伝授します! 2 はじめまして! 名前 :

More information

Seasar.NET入門

Seasar.NET入門 2007 Spring Seasar.NET 入門 2007.5.27 Seasar.NET 杉本和也 2007 Spring Copyright 2004-2007 The Seasar Foundation and the others. All rights reserved. 1 杉本和也と申します 高知県の株式会社アイビスに勤務しています プログラミング歴 6 年 オープンソース歴 2 年

More information

アスペクトの相互作用を解消するアスペクトの提案

アスペクトの相互作用を解消するアスペクトの提案 アスペクトの相互作用を解消する アスペクトの提案 武山文信千葉滋東京工業大学大学院情報理工学研究科数理 計算科学専攻 2009/03/11 武山文信, 千葉滋, アスペクトの相互作用を解消するアスペクトの提案 @PPL2009 in 高山 1/21 アスペクト指向プログラミング (AOP) 横断的関心事をアスペクトとしてモジュール化 オブジェクト指向 (OOP) では上手く分離できない クラス階層に

More information

intra-mart im-JavaEE Framework

intra-mart im-JavaEE Framework intra-mart im-javaee Framework Version 6.1 Seasar2 連携ガイド 第四版 2008 年 5 月 30 日 > 変更年月日変更内容 2007/7/31 初版 2007/8/31 第二版 2.1.1 jta.diconの設定誤字 脱字の修正 2007/10/19 第三版 2.1.1.3 UserTransactionの設定を追加 2008/5/30

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 5 月 Java 基礎 1 タイトル Java 基礎 2 日間 概要 目的 サーバサイドのプログラミング言語で最もシェアの高い Java SE の基本を習得します 当研修ではひとつの技術ごとに実用的なアプリケーションを作成するため 効果的な学習ができます Java SE の多くの API の中で 仕事でよく利用するものを中心に効率よく学びます 実際の業務で最も利用される開発環境である Eclipse

More information

早分かりS2Dao

早分かりS2Dao 2008 Spring 早分かり S2Dao Seasar プロジェクトコミッタ ( 株 ) エルテックス 大中浩行 2008 Spring Copyright 2004-2008 The Seasar Foundation and the others. All rights reserved. 1 アジェンダ はじめに S2Dao とは? S2Dao に必要なもの S2Dao を動かしてみる 挿入

More information

(Microsoft PowerPoint - ClickFramework.ppt [\214\335\212\267\203\202\201[\203h])

(Microsoft PowerPoint - ClickFramework.ppt [\214\335\212\267\203\202\201[\203h]) Click Framework ~Simple is the Best~ NTT データ先端技術 竹添直樹 [email protected] 1 自己紹介 竹添直樹 ( たけぞう ) NTT データ先端技術所属 OSS 関連 Project Amaterasオーナー Click Framework コミッタ Seasarプロジェクトコミッタ FreeStyle Wiki 2 3 仕事で使っているフレームワークは何ですか?

More information

目次 はじめに 4 概要 4 背景 4 対象 5 スケジュール 5 目標点 6 使用機材 6 第 1 章 C# 言語 7 C# 言語の歴史 7 基本構文 8 C 言語との違い 9 Java 言語との違い 10.Netフレームワーク 10 開発資料 10 第 2 章 Mono 11 Monoの歴史 1

目次 はじめに 4 概要 4 背景 4 対象 5 スケジュール 5 目標点 6 使用機材 6 第 1 章 C# 言語 7 C# 言語の歴史 7 基本構文 8 C 言語との違い 9 Java 言語との違い 10.Netフレームワーク 10 開発資料 10 第 2 章 Mono 11 Monoの歴史 1 ポリテクセンター埼玉セミナー資料 組込み技術者のための C# Monoを用いたマルチプラットフォームアプリケーション開発技術 第 1.2 版 2018 年 8 月 Microbrains Inc. 渋谷 目次 はじめに 4 概要 4 背景 4 対象 5 スケジュール 5 目標点 6 使用機材 6 第 1 章 C# 言語 7 C# 言語の歴史 7 基本構文 8 C 言語との違い 9 Java 言語との違い

More information

03_さらなる開発生産性向上へ.pptx

03_さらなる開発生産性向上へ.pptx 2011 icec SAStruts+S2JDBC e Builder ApplicaDon Producer SAStruts Super Agile Struts(SAStruts )Struts Super Agile S2JDBC S2JDBC10 Seasar2 O/R Mapper HP(hJp://s2container.seasar.org/) hjp://localhost/imart/foo/bar/

More information

Load-time weaveingで広がるAOPの可能性

Load-time weaveingで広がるAOPの可能性 Load-time weavingで 広 がるAOPの 可 能 性 1 自 己 紹 介 名 前 : 木 村 聡 (きむら さとし) Seasarプロジェクトコミッタ: S2Struts S2Mai 舞 姫 仕 事 ( 株 )フルネス フレームワーク 自 動 生 成 ツール 2 これまで 書 いたものとか 書 籍 : Eclipseで 学 ぶはじめてのJava Seasar 入 門 ~はじめてのDI&AOP~

More information

Javaの作成の前に

Javaの作成の前に メディアプロジェクト演習 1 参考資料 Javaとは JavaScript と Java 言語の違い オブジェクト指向 コンストラクタ サーブレット 本資料内のページ番号は, 以下の参考書のページを引用している 高橋麻奈 : やさしい Java, ソフトバンククリエイティブ (2,625 円 ) はじめに プログラミング言語とは? オブジェクト指向とは? Java 言語とは? JavaとJavaScriptの違いとは?

More information

S2DaoでもN:Nできます

S2DaoでもN:Nできます S2Dao でも N:N できます 1 自己紹介 名前 : 木村聡 ( きむらさとし ) Seasarプロジェクトコミッタ : S2Struts S2Mai 舞姫 仕事 ( 株 ) フルネス フレームワーク 自動生成ツール 2 これまで書いたものとか 書籍 : Eclipse で学ぶはじめての Java Seasar 入門 ~ はじめての DI&AOP~ 雑誌 Web 記事 CodeZine DB

More information

メディプロ1 Javaプログラミング補足資料.ppt

メディプロ1 Javaプログラミング補足資料.ppt メディアプロジェクト演習 1 Javaプログラミング補足資料 l Javaとは l JavaScript と Java 言語の違い l オブジェクト指向 l コンストラクタ l 継承 抽象クラス 本資料内のページ番号は, 以下の参考書のページを引用している高橋麻奈 : やさしい Java, ソフトバンククリエイティブ (2,625 円 ) はじめに l プログラミング言語とは? l オブジェクト指向とは?

More information

rcp-add-01:アーキテクチャ設計書

rcp-add-01:アーキテクチャ設計書 Web 注文管理システム ( サンプル ) 履歴 バージョン 改訂内容 改訂者 改訂日 0.1 新規作成 山下 2010/11/1 目次 1. はじめに 1.1 本文書の目的 1.2 参照資料 / 文献 2. 概説 2.1 アーキテクチャ要件 2.3 対象とする機能要件 ( ユースケース ) 2.4 アーキテクチャ設計方針 2.4 仮定と依存 3. 構造及び構成 3.1 物理配置図 3.2 実行環境

More information

全部まとめてHOT deploy

全部まとめてHOT deploy 全部まとめて HOT deploy ~ ドン引き?~ 1 自己紹介 名前 : 木村聡 ( きむらさとし ) Seasarプロジェクトコミッタ : S2Struts S2Mai 舞姫 仕事 ( 株 ) フルネス フレームワーク 自動生成ツール これまで書いたものとか 書籍 : Eclipse で学ぶはじめての Java Seasar 入門 ~ はじめての DI&AOP~ 雑誌 Web 記事 CodeZine

More information

WebOTX V6 J2EEアプリケーションのトラブルシューティング

WebOTX V6 J2EEアプリケーションのトラブルシューティング WebOTX V6 J2EE アプリケーションのトラブルシューティング ( リソース参照 EJB 参照 ) 2006 年 11 月初版 改版履歴 i 目次 1 はじめに...1 2 リソース参照 EJB 参照について...1 3 リソース参照 EJB 参照の設定に問題がある時のエラーと対処方法について...2 4 設定方法...2 4.1 リソース参照...3 4.1.1 WebOTX 配備ツールを使用する場合...3

More information

パフォーマンス徹底比較 Seasar2 vs Spring 2006/04/12 株式会社電通国際情報サービスひがやすを株式会社アークシステム本間宏崇 Copyright the Seasar Foundation and the others all rights reserved.

パフォーマンス徹底比較 Seasar2 vs Spring 2006/04/12 株式会社電通国際情報サービスひがやすを株式会社アークシステム本間宏崇 Copyright the Seasar Foundation and the others all rights reserved. パフォーマンス徹底比較 Seasar2 vs Spring 2006/04/12 株式会社電通国際情報サービスひがやすを株式会社アークシステム本間宏崇 1 目的 DI コンテナの実装によるパフォーマンスの違いを明らかにする DI コンテナが行う処理の中で どこに時間が掛かるのかを明らかにする 2 ベンチマーク測定環境 ハードウェア HP ProLiant DL360 G4p CPU: Intel Xeon

More information

Microsoft PowerPoint - JavaFesta.ppt

Microsoft PowerPoint - JavaFesta.ppt DI コンテナ Spring Framework による 次世代 Java EE アプリケーション開発 河村嘉之 日立ソフト研究部技師 / ソリューションアーキテクト Copyright Hitachi Softweare 2005 Engineering Hitachi Co., Software Ltd. 2004 Engineering All rights reserved. Co., Ltd.

More information

スライド 1

スライド 1 WindowsForm サンプル解説 S2Container.NET, S2Dao.NET コミッタ 藤井宏明 1 S2Container.NET の Examples フォルダに付属する WindowsSample の解説です 概要 アプリケーション アーキテクチャー ソリューション構成 プロジェクト概要 サンプル説明 2 Ⅰ. アプリケーション アーキテクチャー 3 アプリケーション アーキテクチャー

More information

Javaセキュアコーディングセミナー2013東京第1回 演習の解説

Javaセキュアコーディングセミナー2013東京第1回 演習の解説 Java セキュアコーディングセミナー東京 第 1 回オブジェクトの生成とセキュリティ 演習の解説 2012 年 9 月 9 日 ( 日 ) JPCERT コーディネーションセンター脆弱性解析チーム戸田洋三 1 演習 [1] 2 演習 [1] class Dog { public static void bark() { System.out.print("woof"); class Bulldog

More information

た場合クラスを用いて 以下のように書くことが出来る ( 教科書 p.270) プログラム例 2( ソースファイル名 :Chap08/AccountTester.java) // 銀行口座クラスとそれをテストするクラス第 1 版 // 銀行口座クラス class Account String name

た場合クラスを用いて 以下のように書くことが出来る ( 教科書 p.270) プログラム例 2( ソースファイル名 :Chap08/AccountTester.java) // 銀行口座クラスとそれをテストするクラス第 1 版 // 銀行口座クラス class Account String name クラス ( 教科書第 8 章 p.267~p.297) 前回は処理をまとめる方法として メソッドについて学習した 今回はメソッドとその処理の対象となるデータをまとめるためのクラスについて学習する このクラスはオブジェクト指向プログラミングを実現するための最も重要で基本的な技術であり メソッドより一回り大きなプログラムの部品を構成する 今回はクラスにおけるデータの扱いとクラスの作成方法 使用方法について説明していく

More information

SystemDirector Developer's Studio(V3.2) 適用ガイド

SystemDirector Developer's Studio(V3.2) 適用ガイド 目次 4. フ ロク ラミンク と開発 1 Eclipse 編...2 4.1. Eclipse サポート範囲... 2 4.1.1. CVSを使ったチーム開発...2 4.1.2. Antを使用したビルド...2 4.1.3. JUnitを使ったテスト...2 4.1.4. Javaエディター...2 4.1.5. デバッグ機能...2 4.2. Eclipse サポートしていない機能... 2

More information

DIコンテナ 前 回 ご 説 明 したSpring DIコンテナに 共 通 するこ とは 依 存 を 注 入 することによってシステム 内 に 存 在 するオブジェクト 同 士 の 結 びつきを 緩 くすることで あり そのための 仕 組 み 提 供 を 意 味 する [Spring のDIコンテナ

DIコンテナ 前 回 ご 説 明 したSpring DIコンテナに 共 通 するこ とは 依 存 を 注 入 することによってシステム 内 に 存 在 するオブジェクト 同 士 の 結 びつきを 緩 くすることで あり そのための 仕 組 み 提 供 を 意 味 する [Spring のDIコンテナ SpringとStruts Struts 連 携 トラストサービス 2006/05/27 DIコンテナ 前 回 ご 説 明 したSpring DIコンテナに 共 通 するこ とは 依 存 を 注 入 することによってシステム 内 に 存 在 するオブジェクト 同 士 の 結 びつきを 緩 くすることで あり そのための 仕 組 み 提 供 を 意 味 する [Spring のDIコンテナはBean

More information

Struts Action Form Request Processor Action HTTP strutsconfig.xml JSP Taglib Web Java Java Injection SpringFramework Web F/W JMX AOP ORM Hibernate Java save AOP insert DB hbm.xml WebAP DB FW Struts EJB

More information

intra-mart Accel Platform — 外部ソフトウェア接続モジュール 仕様書   第3版  

intra-mart Accel Platform — 外部ソフトウェア接続モジュール 仕様書   第3版   Copyright 2012 NTT DATA INTRAMART CORPORATION 1 Top 目次 改訂情報はじめに本書の目的対象読者本書の構成概要外部ソフトウェア接続モジュールとは仕様外部ソフトウェア接続モジュールの構成サンプルプログラムサンプル内容動作に必要な環境構築プログラムソースログイン セキュリティ環境の構築外部ソフトウェア連携時の認可設定 2 改訂情報 変更年月日 変更内容 2012-12-21

More information

スライド 1

スライド 1 レガシーシステムを刷新するモダナイゼーションの効果的 / 効率的なアプローチについて 自動マイグレーション サービス i Renaissance のご紹介 自動マイグレーション サービス i Renaissance とは i RenaissanceはRPG/COBOL/CLから 元言語に寄せたJavaへの自動変換 サービスを提供します i Renaissanceは下記の3つフェーズから構成されます

More information

プログラミング基礎I(再)

プログラミング基礎I(再) 山元進 クラスとは クラスの宣言 オブジェクトの作成 クラスのメンバー フィールド 変数 配列 メソッド メソッドとは メソッドの引数 戻り値 変数の型を拡張したもの 例えば車のデータベース 車のメーカー 車種 登録番号などのデータ データベースの操作 ( 新規データのボタンなど ) プログラムで使う部品の仕様書 そのクラスのオブジェクトを作ると初めて部品になる 継承 などの仕組みにより カスタマイズが安全

More information

ファイナライザを理解する ~ ファイナライザに起因するトラブルを避けるために ~ 2013 年 11 月 25 日 橋口雅史 Java アプリケーションでファイナライザ (finalize() メソッド ) を使用したことがあるプログラマーは多いと思います しかし ファイナライザの仕組みや注意点につ

ファイナライザを理解する ~ ファイナライザに起因するトラブルを避けるために ~ 2013 年 11 月 25 日 橋口雅史 Java アプリケーションでファイナライザ (finalize() メソッド ) を使用したことがあるプログラマーは多いと思います しかし ファイナライザの仕組みや注意点につ ファイナライザを理解する ~ ファイナライザに起因するトラブルを避けるために ~ 2013 年 11 月 25 日 橋口雅史 Java アプリケーションでファイナライザ (finalize() メソッド ) を使用したことがあるプログラマーは多いと思います しかし ファイナライザの仕組みや注意点について 理解したうえで使っているでしょうか? アプリケーション プログラムでファイナライザを使用する場合は

More information

プログラミング実習I

プログラミング実習I プログラミング実習 I 05 関数 (1) 人間システム工学科井村誠孝 [email protected] 関数とは p.162 数学的には入力に対して出力が決まるもの C 言語では入出力が定まったひとまとまりの処理 入力や出力はあるときもないときもある main() も関数の一種 何かの仕事をこなしてくれる魔法のブラックボックス 例 : printf() 関数中で行われている処理の詳細を使う側は知らないが,

More information

intra-mart WebPlatform/AppFramework

intra-mart WebPlatform/AppFramework intra-mart WebPlatform/AppFramework Ver.7.0 Seasar2 連携プログラミングガイド 2010/11/30 第 3 版 > 変更年月日変更内容 2008/07/07 初版 2009/02/27 第 2 版 3.1.2.1.1 im_hotdeploy.diconの設定 を追加 2010/11/30 第 3 版 3.1.2.2 Hot deploy

More information

アナリシスパターン勉強会 責任関係事例紹介 株式会社オーエスケイ小井土亨 (CBOP COM 分科会主査 ) 2000/07/19 1

アナリシスパターン勉強会 責任関係事例紹介 株式会社オーエスケイ小井土亨 (CBOP COM 分科会主査 ) 2000/07/19 1 アナリシスパターン勉強会 責任関係事例紹介 株式会社オーエスケイ小井土亨 (CBOP COM 分科会主査 ) 2000/07/19 1 Agenda システム開発概要 事例説明 システム要件 ( 画面イメージ ) 組織型データ管理フレームワーク詳細 人事情報管理システム詳細 フレームワーク利用カタログ 略語説明 FW フレームワーク CS カスタマイズシステム ( 実行可能な具体システム ) IF

More information

JUnit 概要 2015/4/16 版今泉俊幸 2015 bbreak Systems 1

JUnit 概要 2015/4/16 版今泉俊幸 2015 bbreak Systems 1 JUnit 概要 2015/4/16 版今泉俊幸 1 目次 1. 手動テストと自動テスト 2. JUnitの機能 3. 検証用メソッド 4. 基本的なJUnitテストケース 5. 実践的なJUnitテストケース 6. よく使う検証用メソッド 7. テストクラスの命名 配置など 2 手動テスト 手動テストと自動テスト テスト仕様書に基づいて 人手で値を入力 結果を検証する プログラム修正の度に実施するのはコストが高い

More information

Microsoft PowerPoint - chap10_OOP.ppt

Microsoft PowerPoint - chap10_OOP.ppt プログラミング講義 Chapter 10: オブジェクト指向プログラミング (Object-Oriented Programming=OOP) の入り口の入り口の入り口 秋山英三 F1027 1 例 : 部屋のデータを扱う // Test.java の内容 public class Test { public static void main(string[] args) { double length1,

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション BRMS への取り組みと導入事例 2013 年 11 月 15 日 ( 金 ) SCSK 株式会社 IT エンジニアリング事業本部ミドルウェア部 本日の内容 BRMS 適用のポイント BRMS の可能性 Page 1 Page 2 アプリケーション連携基盤 SCSKのRed Hat JBoss / ミドルウェア技術に関する取り組みの取り組み 世界のオープンソース コミュニティーから製品化されたソフトウェア

More information

intra-mart WebPlatform/AppFramework

intra-mart WebPlatform/AppFramework intra-mart WebPlatform/AppFramework Ver.7.2 Seasar2 連携プログラミングガイド 2010/04/01 初版 変更年月日 2010/04/01 初版 > 変更内容 目次 > 1 はじめに...1 1.1 目的...1 1.2 Seasar2 プロダクト...1 2 セットアップ...2 2.1 トランザクションマネージャとデータソース...2

More information

Dolteng Scaffoldに対する機能追加とマスタ-ディテールScaffoldの紹介

Dolteng Scaffoldに対する機能追加とマスタ-ディテールScaffoldの紹介 Dolteng Scaffold に対する機能追加 とマスタ - ディテール Scaffold の紹介 せいいち (takao) 2009/03/07 目次 Dolteng Scaffold に対する機能追加 Scaffold に関して Ruby on Rails の Scaffold RoR Scaffold と Dolteng Scaffold の比較 Scaffold のデモ Scaffold

More information

2

2 プログラミング応用演習 b 10 月 5 日演習課題 2016/10/05 PAb 演習課題 プログラム仕様書作成課題 課題クラスを読み 次に示すクラスの仕様書を完成させよ なお 仕様書は クラス 1 つに付き 1 つ作成す る 加えて 図 1 のようなクラス継承の模式図を作成せよ < クラス名 のプログラム仕様書 > 作成者 : 学籍番号 名前 (1) クラスクラス名 : クラス名 説明 : クラスが何を表現しているか

More information

T2でつなごう! -つなぐつながるWebフレームワーク「T2」の紹介

T2でつなごう! -つなぐつながるWebフレームワーク「T2」の紹介 T2 でつなごう! - つなぐつながる Web フレームワーク T2 の紹介 T2 プロジェクト 米林正明 片山暁雄 自己紹介 名前 米林正明 ID id:yone098 所属 株式会社 Abby 代表取締役社長 自己紹介 名前 片山 暁雄 ID id:c9katayama 所属 株式会社キャピタルアセットプランニング Agenda T2の概要 T2の基本姿勢 T2の目指す所 機能紹介 DIコンテナ非依存

More information

Spring Framework 2.0  デファクトスタンダードDIコンテナの現在と未来

Spring Framework 2.0  デファクトスタンダードDIコンテナの現在と未来 Spring Framework 2.0 DI [email protected] Java Web Struts/Spring/iBATIS ibatis Spring 2 Spring 2.0: The Spring Experience 2006: 3 Seasar2 DIxAOP POJO XML 4 2.0 XML AspectJ AOP 1.x 5 DI Bean 1. singleton

More information

LightSwitch で申請システム Windows ストアアプリで受付システムを構築してみた 情報政策グループ技術職員金森浩治 1. はじめに総合情報基盤センターでは 仮想サーバホスティングサービスや ソフトウェアライセンス貸与といった さまざまなエンドユーザ向けサービスを行っている 上記のよう

LightSwitch で申請システム Windows ストアアプリで受付システムを構築してみた 情報政策グループ技術職員金森浩治 1. はじめに総合情報基盤センターでは 仮想サーバホスティングサービスや ソフトウェアライセンス貸与といった さまざまなエンドユーザ向けサービスを行っている 上記のよう LightSwitch で申請システム Windows ストアアプリで受付システムを構築してみた 情報政策グループ技術職員金森浩治 1. はじめに総合情報基盤センターでは 仮想サーバホスティングサービスや ソフトウェアライセンス貸与といった さまざまなエンドユーザ向けサービスを行っている 上記のようなサービスを利用する際 エンドユーザは利用申請を行うが 利用申請手段はメールや紙となっている そのため

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション オブジェクト指向 プログラミング演習 第 4 回継承 オーバーライド ポリモルフィズム 今日のお題 継承 オーバーライド ポリモルフィズム 継承 (inherit) あるクラス c のサブクラス s を定義する : このとき s は c を継承していると言う 何かの下位概念を表すクラスは その上位概念を表すクラスの属性や機能を ( 基本的には ) 使える 継承の例 大学生 長崎県立大学の学生 大学生を継承する概念

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション NEC モバイルバックエンド基盤入門応用編 ver 7.5.0 2018 年 10 月 1 日 日本電気株式会社 Push 通知 クライアントへの Push 通知 : APNs / FCM Android / ios で使用可能 ユーザがアプリを起動していなくても サービス提供側からスマートフォンやタブレットにメッセージを送る仕組み モバイル機器はプラットフォーム毎に Push 通知の仕組みが提供されています

More information

PowerPoint Presentation

PowerPoint Presentation ソフトウェア演習 B GUI を持つ Java プログラムの 設計と実装 4.1 例題 :GUI を持った電卓を作ろう プロジェクトCalculator パッケージ名 :example ソースファイル : Calculator.java GUI.java EventProcessor.java 2 4.2 GUI とイベント処理 GUI の構成 :Swing GUI の場合 フレーム JFrame:

More information

Java知識テスト問題

Java知識テスト問題 Java 知識テスト SDAS プログラマ(Java 編 ) 運営事務局 このテストは J2EE プログラマとしての Java の知識を評価するものです 問題は 30 問, テスト時間は J2EE 知識テストとあわせて 90 分です 問題は全て択一式です 選択肢から 1 つだけ選択してください 資料の閲覧は禁止です テストが終わり次第 答案用紙を提出していただいてかまいません テスト終了後, 本テストの内容を他の方に話さないでください

More information

JPA & Kuina-Dao入門

JPA & Kuina-Dao入門 2007 Autumn JPA & Kuina-Dao 入門 2007.11.11 The Seasar Project 中村年宏 (taedium) 1 自己紹介 中村年宏 ブログ http://d.hatena.ne.jp/taedium/ hatena ne メールアドレス [email protected] コミッタとして関わっているプロダクト S2Container

More information

JBoss と Arquillian で実現する 究極のテスト環境 レッドハット株式会社 JBoss サービス事業部 コンサルタント 山 田義和

JBoss と Arquillian で実現する 究極のテスト環境 レッドハット株式会社 JBoss サービス事業部 コンサルタント 山 田義和 JBoss と Arquillian で実現する 究極のテスト環境 レッドハット株式会社 JBoss サービス事業部 コンサルタント 山 田義和 Who am I? Hi, I m glad to see you! 2 Arquillian??? インテグレーションテストのための テスティングプラットフォーム http://www.jboss.org/arquillian.html 3 テスティングプラットフォーム?

More information

Oracle Un お問合せ : Oracle Data Integrator 11g: データ統合設定と管理 期間 ( 標準日数 ):5 コースの概要 Oracle Data Integratorは すべてのデータ統合要件 ( 大量の高パフォーマンス バッチ ローブンの統合プロセスおよ

Oracle Un お問合せ : Oracle Data Integrator 11g: データ統合設定と管理 期間 ( 標準日数 ):5 コースの概要 Oracle Data Integratorは すべてのデータ統合要件 ( 大量の高パフォーマンス バッチ ローブンの統合プロセスおよ Oracle Un お問合せ : 0120- Oracle Data Integrator 11g: データ統合設定と管理 期間 ( 標準日数 ):5 コースの概要 Oracle Data Integratorは すべてのデータ統合要件 ( 大量の高パフォーマンス バッチ ローブンの統合プロセスおよびSOA 対応データ サービスへ ) を網羅する総合的なデータ統合プラットフォームです Oracle

More information

PHP 開発ツール Zend Studio PHP アフ リケーションサーハ ー Zend Server OSC Tokyo/Spring /02/28 株式会社イグアスソリューション事業部

PHP 開発ツール Zend Studio PHP アフ リケーションサーハ ー Zend Server OSC Tokyo/Spring /02/28 株式会社イグアスソリューション事業部 PHP 開発ツール Zend Studio PHP アフ リケーションサーハ ー Zend Server ご紹介 @ OSC Tokyo/Spring 2015 2015/02/28 株式会社イグアスソリューション事業部 アジェンダ Eclipse ベースの PHP 開発ツール Zend Studio 11 日本語版によるアプリケーション開発について PHP アプリケーションサーバー Zend Server

More information

IBM i ユーザーの課題 モバイルや IOT に対応した新しい開発案件への対応 RPG COBOL など既存アプリのメンテナンス 要員の確保 属人化しない運用 管理体制 2

IBM i ユーザーの課題 モバイルや IOT に対応した新しい開発案件への対応 RPG COBOL など既存アプリのメンテナンス 要員の確保 属人化しない運用 管理体制 2 Arcad ご紹介資料 三和コムテック株式会社 IBM i ユーザーの課題 モバイルや IOT に対応した新しい開発案件への対応 RPG COBOL など既存アプリのメンテナンス 要員の確保 属人化しない運用 管理体制 2 情報資産の継承と継続 24h365d 監視運用保守 Power プラットフォーム & クラウド Web インターフェースの利用モバイル対応 逆コンパイルソースコンバージョン 既存業務アプリケーション

More information

ETOS 画面の Web 化 / 帳票印刷のオープン化体験お試し変換サービスのご紹介 ACOS-4 システムの業務改善提案

ETOS 画面の Web 化 / 帳票印刷のオープン化体験お試し変換サービスのご紹介 ACOS-4 システムの業務改善提案 ETOS 画面の Web 化 / 帳票印刷のオープン化体験お試し変換サービスのご紹介 システムの業務改善提案 お客様業務の改善を提案します オンライン業務の改善 a.etos 画面のビュー改善 : 画面のオープン化を体験してみませんか! b. オープンプリンタへの印刷 : 帳票印刷のオープン化を体験してみませんか! Web アプリケーションお試し変換サービス をご利 ください ( 次ページ以降でご紹介

More information

個人依存開発から組織的開発への移行事例 ~ 要求モデル定義と開発プロセスの形式化 による高生産性 / 高信頼性化 ~ 三菱電機メカトロニクスソフトウエア ( 株 ) 和歌山支所岩橋正実 1

個人依存開発から組織的開発への移行事例 ~ 要求モデル定義と開発プロセスの形式化 による高生産性 / 高信頼性化 ~ 三菱電機メカトロニクスソフトウエア ( 株 ) 和歌山支所岩橋正実  1 個人依存開発から組織的開発への移行事例 ~ 要求モデル定義と開発プロセスの形式化 による高生産性 / 高信頼性化 ~ 三菱電機メカトロニクスソフトウエア ( 株 ) 和歌山支所岩橋正実 [email protected] [email protected] 1 改善効果 品質 : フロントローディングが進み流出不具合 0 継続生産性 : 平均 130% 改善 工数割合分析

More information

第 2 章インタフェース定義言語 (IDL) IDL とは 言語や OS に依存しないインタフェース定義を行うためのインタフェース定義言語です CORBA アプリケーションを作成する場合は インタフェースを定義した IDL ファイルを作成する必要があります ここでは IDL の文法や IDL ファイ

第 2 章インタフェース定義言語 (IDL) IDL とは 言語や OS に依存しないインタフェース定義を行うためのインタフェース定義言語です CORBA アプリケーションを作成する場合は インタフェースを定義した IDL ファイルを作成する必要があります ここでは IDL の文法や IDL ファイ 第 2 章インタフェース定義言語 (IDL) IDL とは 言語や OS に依存しないインタフェース定義を行うためのインタフェース定義言語です CORBA アプリケーションを作成する場合は インタフェースを定義した IDL ファイルを作成する必要があります ここでは IDL の文法や IDL ファイルの作成方法 コンパイル方法について説明します IDL ファイルの作成にあたっては INTERSTAGE

More information