...

オブジェクト指向システムと オブジェクト指向DBMS

by user

on
Category: Documents
2

views

Report

Comments

Transcript

オブジェクト指向システムと オブジェクト指向DBMS
オブジェクト指向システムと
オブジェクト指向DBMS
事業化技術センター 副所長
細川 努
[email protected]
オブジェクト指向開発の今
オブジェクト指向方法論
オブジェクト指向の概念発生してから30年
開発方法論として急成長したのは7年前から
開発環境の充実
Java(J2EE、モバイル)
.NET
何を実現するのか
ビジネスとITの一体ソリューション
システム統合、ビジネス統合
1
オブジェクト指向とは
オブジェクト指向とは
「オブジェクト」という単位でシステム構築を考えるアプローチ
①「構造化手法」
アルゴリズムを構造化・分割
設計することによってシステム
を構築するアプローチ
②「データ中心アプローチ」
③「オブジェクト指向」
システムが処理するデータ構造を
設計してから、処理機能を構築
するアプローチ
オブジェクトを単位としてシステムを構築
→オブジェクト同士が協調して
動作するシステムとなる
main()
顧客
マスタ
メンテ
プログラム
sub1()
商品
マスタ
メンテ
プログラム
sub2()
データ構造(E/R図)
顧客
商品
1
n
1
n
売上
1
n
売上明細
オブジェクト指向の歴史
オブジェクト指向言語の基盤確立
※抽象データ型
オブジェクト
指向言語
の歴史
Simula
CLU
Ada
※クラスの概念
C++
Java
Smalltalk
C#
Eiffel
※オブジェクト指向
の
基本概念確立
FLAVORS
概念の転用
※多重継承
オブジェクト指向手法の基盤確立
オブジェクト指向以前の手法
オブジェクト
指向手法
の歴史
ワーニエ法
ER
JSD法
リレーショナル
オブジェクト指向手法
Shlaer&
OOIE
Mellor
Coad& Fusion
Yourdon
意味
データモデル
構造化
設計
OMT
影響
Booch
UML
UML2.0
OOSE
1960
1970
1980
1990
2000
2
UML(Unified Modeling Language)
オブジェクト指向における統一モデリング表記法
MitumoriModel
S
order_info.jsp
(from order)
<<Non-Identifying>>
0..*
0..*
Order
order_id : String
customer_id : String
order_dt : Date
amount : Integer
OrderModel
find()
checkOrderValue()
addOrder()
modifyOrder()
deleteOrder()
find()
prev()
next()
selectDetail()
add()
delete()
cancel()
order_list.jsp
T_Order
order_id : INTEGER
customer_id : SMALLINT
order_dt : DATE
amount : SMALLINT
E
OrderCommand
orderVaule : OrderValue
orderList : ValueList
message : MessageList
(from order)
getValue()
setValue()
getLineValue()
setLineValue()
E
T_Customer
customer_id : SMALLINT
name : VARCHAR(30)
address : VARCHAR(50)
1
<<PK>> PK_T_Order()
<<FK>> FK_T_Order7()
1
<<Identifying>>
OrderLine
order_id : String
item_id : String
item_num : Integer
amount : Integer
order_serach.jsp
(from order)
getValue()
setValue()
<<PK>> PK_T_Customer()
0..1
0..1
T_OrderLine
order_id : INTEGER
line_num : SMALLINT
item_id : SMALLINT
quantity : SMALLINT
price : SMALLINT
受注業務
顧客
0..*
0..*
1
1
(from Business Actors)
<<Non-Identifying>>
見積
0..n
販売
1
受注
0..n
<<PK>> PK_T_Item()
<<PK>> PK_T_OrderLine()
<<FK>> FK_T_OrderLine()
<<FK>> FK_T_OrderLine8()
受注残
ApplicationServer
Client
0..1
1
T_Item
item_id : SMALLINT
name : VARCHAR(20)
<<EJBPrimaryKey>>
OrderPk
OrderValue
Internet
Order
OrderLineValue
<<EJBPrimaryKey>>
OrderLinePk
手動
WebSphere
Apatch
<<EJB-JAR>>
OrderJAR
Item
Custom
er
オブジェクト指向開発の全体像
業務分析から実装・テストまでを一貫して分析・設計
ビジネス
モデリング
ドメインモデル
ビジネスオブジェクトモデル
ビジネス
ユースケース
実現
顧客
受注業務
顧客
参照
オーダー
1
見積
在庫
販売担当
(from Business Actors)(from 販売部門)
0..n
販売
1
在庫引当て
0..1
1
受注
0..n
(from 在庫部門)
(from Business Actors)
要求
受注残
ユーザーインターフェース
プロトタイプ
システム
ユースケース
(システム化範囲の絞込み)
商品を販売する
販売担当者
自動化
(from Actors)
分析オブジェクトモデル
実現
システム
分析
販売登録画面
販売エンティティ
販売登録
アーキテクチャ&パターン適用
システム
設計
論理データモデ
ル
MitumoriM odel
設計オブジェクトモデル
S
order_inf o.jsp
E
OrderComm and
(from ord er)
orderVaul e : Or derVal ue
orderList : Val ueList
message : Messa geList
Order
next()
selectDet ail()
add()
delete()
cancel()
<<Non-Ide ntifyi ng>>
T_Order
order_id : INTE GER
customer_ id : S MALLIN T
order_dt : DATE
amount : SMALLI NT
T_Custome r
*.0
0..*
1
<<PK>> PK _T_Ord er()
<<FK>> FK _T_Ord er7()
order_id : Stri ng
customer_ id : S tring
OrderMode l
customer_ id : S MALLIN T
name : VA RCHAR( 30)
address : VARCH AR(50)
<<PK>> PK _T_Cus tomer( )
1
<<Identif ying>>
order_dt : Date
amount : Intege r
find()
checkOrde rValue ()
addOrder( )
modifyOrd er()
deleteOrd er()
find()
prev()
order_lis t.jsp
(from ord er)
getValue( )
setValue( )
getLineVa lue()
setLineVa lue()
1.0
0..1
T_OrderLi ne
E
OrderLine
order_ser ach.js p
order_id : Stri ng
item_id : Strin g
item_num : Inte ger
amount : Intege r
(from ord er)
order_id : INTE GER
line_num : SMAL LINT
item_id : SMALL INT
quantity : SMAL LINT
price : S MALLIN T
<<PK>> PK _T_Ord erLine ()
<<FK>> FK _T_Ord erLine ()
<<FK>> FK _T_Ord erLine 8()
<<Non-Ide ntifyi ng>>
*.0
0..*
1
T_Item
item_id : SMALL INT
name : VA RCHAR( 20)
<<PK>> PK _T_Ite m()
getValue( )
setValue( )
実装モデル
配置図・コンポーネント図
実装
ApplicationServer
Client
<<EJBPri maryKe y>>
OrderPk
<<EJBPri maryKe y>>
OrderLine Pk
実装
JSP
<<EJB-JA R>>
OrderJAR
手動
WebSphere
Apatch
OrderValu e
OrderLine Value
Order
Internet
フレーム
ワーク
EJB EJB
物理
データモデル
J2EE
Item
Custom
er
テストモデル
テスト
検証
テスト
3
オブジェクト指向開発環境
統合開発環境の進化
− 従来、オブジェクト指向CASE、プログラミング、ビルド管理、
自動テスト、構成管理等の各種ツールは別々の環境
− 最近、オープンソースのIDE(統合開発環境)に各種ツール
をプラグイン化する傾向に
プラグイン
Eclipse WorkBench
Rational
XDE
Together
CC
Ant ,etc
jUnit ,etc
オブジェクト指向開発プラットフォーム
J2EE(Java2 Platform Enterprise Edition)
ミッションクリティカルなシステムを構築するための
サーバーサイドJava環境
●Servlet・JSP
-JavaによるWebアプリを構築する機能
●EJB
-業務機能(ビジネスロジック・データ)
を部品化するコンポーネント技術
●RMI-IIOP、JavaIDL、JNDI
-分散連携に関する技術
●JDBC
-リレーショナルDBへの接続
●JCA
-EAIアダプタへの接続
●JMS
-非同期メッセージング
●JTA、JTS
-トランザクションサービス
●JAXP、JAXB、JAXM
JAX-RPC、JAXR
-XMLおよびWebサービス関連機能
4
オブジェクト指向開発プラットフォーム
Microsoft .NET
新しいオブジェクト指向プログラミング環境(※)や
XML技術、WebServiceを積極的に活用
※複数の言語(C#、J#、etc)を中間言語に変換し
共通言語実行環境(CLR)で実行
オブジェクト指向が目指すもの
デザインパターン
オブジェクト指向における良い設計のお手本
- GOFのデザインパターン
- J2EEパターン
J2EEパターン(Service To Walker)
ServletEngine
request()
Helper
Client
processRequest()
Command
exec ute()
Controller
: Client
: ServletEngine
: Controller
: Dispatcher
: View
: Helper
: Command
request( )
Dispatcher
<<Servlet>>
ServletFront
<<JSP>>
JSPFront
delegateRequest()
View
processRequest( )
exec ute( )
dispatch()
delegateRequest( )
dispatch( )
5
オブジェクト指向が目指すもの
UMLの未来
- より複雑なモデル記述への対応
- MDA(Model Driven Architecture)
2003
UML 2.0 (MDA)
今後
現在のUML
2002
2001
UML
UML 1.4.1
1.4.1
UML
UML 1.4
1.4 (action
(action semantics)
semantics)
1998
UML
UML 1.3
1.3 (extensibility)
(extensibility)
1997
UML 1.1 (OMG Standard)
1996
Rumbaugh
Booch
Jacobson
Foundations
Nygaard,, Goldberg,
((Nygaard,
Foundations of
of OO
OO (Nygaard
Goldberg, Meyer,
Meyer,
Stroustrup,
-Brock, Reenskaug,
,…)
Stroustrup
Harel
Wirfs
Reenskaug
Stroustrup,, Harel,
Harel,, WirfsWirfs-Brock,
Reenskaug,…)
1967
オブジェクト指向が目指すもの
ビジネスモデリング
オブジェクト指向は、ビジネスプロセスやビジネス構造を
分析する際にも大きな威力を発揮
企業ビジネスプロセス・構造をオブジェクト指向でモデル化
販売部門
在庫物流部門
仕入部門
仕入計画業務
見積業務
仕入業務
棚卸業務
販売業務
受入れ業務
仕入先
納入業務
在庫担当
販売担当
0..1
受注
1
仕入担当
1
1
見積
0..n
0..n
0..n
1..n
入庫
1
0..n
1..n
在庫
棚卸
0..1
0..*
0..n
仕入計画
受注残
仕入発 注
販売
出庫
6
現代のデータマネジメント
情報の多様化
現代においては、ビジネスや社会生活で取り扱うデータが
複雑化+高度化+大量化しつつある
ゲノムデータ
Business Intelligence
オブジェクト?
部品データ
XMLデータ
オブジェクト指向におけるデータマネジメント
オブジェクトデータの格納
オブジェクトモデルをそのまま、関係、依存性を維持したまま
データ格納するのが理想形(オブジェクト指向データベース)
オブジェクト実行環境
オブジェクトデータストア
7
なぜオブジェクトデータか?
情報管理の柔軟性
・オブジェクトデータは他のデータモデルにも柔軟に対応
・データ抽象化によってオブジェクトの振る舞いを隠蔽
マルティメディアデータ
XMLインスタンス
<?xml version=“1.0”? >
<!—Team.xml -->
<DOCTYPE Team SYSTEM “Team.dtd” >
<team team_id=“1234”>技術コンサルティング
<member member_id = “3001”> 細川 努</member>
<member member_id = “3002”>木下 恵一</member>
<member member_id = “3003”>鈴村 幸太郎</member>
</team>
リレーショナルデータ
オブジェクトデータベース
メリット
デメリット
- オブジェクトデータ管理として理想的
- 検索は効率的
- 大量一括処理に弱い
- 更新に関するミッションクリティカル性が低い
(残念ながら)リレーショナルデータベースほど普及せず
オブジェクト実行環境
オブジェクトデータベース
キャッシュ
8
リレーショナルデータベースのオブジェクト拡張
オブジェクトリレーショナル
-
リレーショナルデータベースをオブジェクト拡張
他テーブルの行インスタンスに対する参照
テーブルTYPEの継承/拡張
複雑なデータは扱えるようになったがオブジェクトの振る舞いを
データベースに実装することには限界がある。
社員テーブル
所属
部門テーブル
リレーショナルデータベースのオブジェクト拡張
オブジェクトリレーショナルに対して各種エクステンションで拡張
XPERANTO:オブジェクトリレーショナルに対してXML格納・アクセスを実現
XPERANTO
QueryTransaction
XML View Services
XML-QL Parser
XMLスキーマ
Query Rewrite
XML Schema Generator
SQL Translation
XML Instance
XML結果
オブジェクトリレーショナルデータベース(DB2)
SQL Query Processor
データストア
システムカタログ
9
EJBコンポーネント
EJB(企業システム向けのJavaコンポーネントモデル)
リレーショナルデータベースに対して、オブジェクトをマッピング
複雑な振舞いはコンポーネント側に実装
J2EE アプリケーションサーバー
IBM WebSphere、Fujitsu InterStage
BEA WebLogic、Hitachi Cosminexus
EJB2.0でのオブジェクト-リレーションマッピング
EJB(J2EEの分散コンポーネントモデル)
例) 社員が複数部門への兼任がある組織データの実装
EJBコンテナ
社員
EntityBeans
関連
CMR
社員テーブル
社員x部門関連テーブル
EntityBeans
部門テーブル
部門
10
EJBによる企業システム構築
EJBによる業務機能オブジェクトの部品化
一般的な企業システムも、オブジェクトの構造としては複雑
データベース側を複雑にするのでなく、EJBコンポーネント
側でオブジェクト指向システムとして構築
SessionBean
見積
EntityBeans
見積
顧客
見積明細
受注
注文
注文明細
EJB
I/F
JDBC
在庫
出荷
商品
出荷
出荷明細
オブジェクト指向データ管理のまとめ
オブジェクト指向データ管理の多様化
データストアだけのオブジェクト化でなく、
周辺環境(エクステンション、コンポーネント)
のオブジェクト指向化も進む
エクステンション
利用者
データストア
XML
TEXT
Etc
コンポーネント
・オブジェクトデータストア
・オブジェクトリレーショナル
・リレーショナル
11
さらにグローバルなオブジェクトデータ管理へ
今後、もっと大きな単位でのデータ管理が必要
−システム間統合
−企業統合
A社
販売・物流
メイン
フレーム
(A社)
会計
R/3
FI
新会社
販売・物流
B社
販売・物流
メイン
フレーム
(B社)
統合
会計
R/3
FI
会計
メイン
フレーム
(A社)
R/3
FI
メイン
フレーム
(B社)
SFA
販売・物流
販売支援
SFA
販売支援
他企業
統合技術の進化
システム間の機能的連携
従来のシステム統合は、システム間を単に連携させることを目的としていたが
これからは、業務機能間での機能的連携が必要に。
第一世代
第二世代
独自技術統合
第三世代
ミドルウェア中心統合
コンポーネント型統合
EAI:Enterprise Application Integration
サーバー(UNIX、LINUX、Windows)
サーバー(UNIX、LINUX、Windows)
IBM WebSphere
フロント
処理
EAI
データ変換
業務機能の拡張
ワークフロー
データ統合
ワークフロー
統合連携
勘定系A
勘定系B
SFA
SD(販売)
FI(財務)
SFA
SD(販売)
FI(財務)
12
Javaにおける統合技術①
JDO(JavaDataObject)
データベースだけでなく、外部システム自体をオブジェクトとしてアクセス可能
Serv
let
EJB
JDO
JDBC
RDBMS
PersistenceManager
XML
DBMS
CMP
Persistene
Capable
OODBMS
JMS
外部システム
JCA
・メインフレーム
・R/3、People
JCA
アダプタ
Javaにおける統合技術②
Webサービス(WSDL)による統合
柔軟性の高い統合を実現
Serv
let
EJB
JDO
JDBC
RDBMS
PersistenceManager
XML
DBMS
CMP
Persistene
Capable
OODBMS
WSDL
JMS
外部システム
WSDL
JCA
・メインフレーム
・R/3、People
JCA
アダプタ
13
これからのシステム開発
もっと拡張性があり、インテリジェンスなシステム構築
オブジェクト
リレーション
コンポーネント
統合技術
エクステンション
オブジェクト指向
UML
14
Fly UP