オブジェクト指向システムと オブジェクト指向dbms ·...

14
オブジェクト指向システムと オブジェクト指向DBMS 事業化技術センター 副所長 細川 [email protected] オブジェクト指向開発の今 オブジェクト指向の概念発生してから30オブジェクト指向方法論 JavaJ2EE、モバイル) 開発環境の充実 .NET ビジネスとITの一体ソリューション 何を実現するのか システム統合、ビジネス統合 開発方法論として急成長したのは7年前から

Upload: others

Post on 20-May-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

1

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

事業化技術センター 副所長細川 努

[email protected]

オブジェクト指向開発の今

オブジェクト指向の概念発生してから30年オブジェクト指向方法論

Java(J2EE、モバイル)開発環境の充実.NET

ビジネスとITの一体ソリューション何を実現するのかシステム統合、ビジネス統合

開発方法論として急成長したのは7年前から

2

オブジェクト指向とは

①「構造化手法」アルゴリズムを構造化・分割設計することによってシステムを構築するアプローチ

main()

sub1()

sub2()

②「データ中心アプローチ」システムが処理するデータ構造を設計してから、処理機能を構築

 するアプローチ

データ構造(E/R図)

顧客マスタメンテプログラム

顧客 商品

売上

売上明細

1n 1

n

1n

商品マスタメンテプログラム

③「オブジェクト指向」オブジェクトを単位としてシステムを構築

 →オブジェクト同士が協調して   動作するシステムとなる 

オブジェクト指向とは「オブジェクト」という単位でシステム構築を考えるアプローチ

オブジェクト指向の歴史

オブジェクト指向手法の歴史

1960 1970 1980 1990 2000

Simula

Smalltalk

CLU C++

EiffelJava C#

Shlaer&Mellor

OMT

Booch

Coad&Yourdon

UML

OOSE

ERワーニエ法

JSD法

リレーショナル

構造化設計

オブジェクト指向以前の手法 オブジェクト指向手法

Ada

UML2.0

※クラスの概念

※オブジェクト指向の  基本概念確立

※抽象データ型

FLAVORS※多重継承

OOIE

Fusion意味データモデル

オブジェクト指向言語の歴史

オブジェクト指向言語の基盤確立

オブジェクト指向手法の基盤確立

影響

概念の転用

3

UML(Unified Modeling Language)

オブジェクト指向における統一モデリング表記法

OrderCommand

orderVaule : OrderValueorderList : ValueListmessage : MessageList

find()prev()next()selectDetail()add()delete()cancel()

S

OrderModel

find()checkOrderValue()addOrder()modifyOrder()deleteOrder()

Order

order_id : Stringcustomer_id : Stringorder_dt : Dateamount : Integer

getValue()setValue()getLineValue()setLineValue()

E

OrderLine

order_id : Stringitem_id : Stringitem_num : Integeramount : Integer

getValue()setValue()

E

MitumoriModel

order_info.jsp(from order)

order_list.jsp(from order)

order_serach.jsp(from order)

T_Customercustomer_id : SMALLINTname : VARCHAR(30)address : VARCHAR(50)

<<PK>> PK_T_Customer()

T_Orderorder_id : INTEGERcustomer_id : SMALLINTorder_dt : DATEamount : SMALLINT

<<PK>> PK_T_Order()<<FK>> FK_T_Order7()

0..*

10..* 1

<<Non-Identifying>>

T_OrderLineorder_id : INTEGERline_num : SMALLINTitem_id : SMALLINTquantity : SMALLINTprice : SMALLINT

<<PK>> PK_T_OrderLine()<<FK>> FK_T_OrderLine()<<FK>> FK_T_OrderLine8()

0..1

1

0..1

1<<Identifying>>

T_Itemitem_id : SMALLINTname : VARCHAR(20)

<<PK>> PK_T_Item()

0..*

10..* 1

<<Non-Identifying>>

見積

受注残

受注

0..1

受注業務顧客

(from Business Actors)1 0..11

0..n

1

0..n

1

販売

0..n

1

0..n

1

ApplicationServer

手動

WebSphereApatch

InternetClient Order

OrderJAR<<EJB-JAR>>

OrderLinePk<<EJBPrimaryKey>>

OrderPk<<EJBPrimaryKey>>

OrderLineValue

OrderValue

Item

Customer

オブジェクト指向開発の全体像

業務分析から実装・テストまでを一貫して分析・設計

受注業務顧客(from Business Actors)

ビジネスユースケース

ビジネスオブジェクトモデル

システムユースケース

ユーザーインターフェースプロトタイプ

販売担当者

(from Actors)

商品を販売する

販売エンティティ販売登録販売登録画面

(システム化範囲の絞込み)

分析オブジェクトモデル

設計オブジェクトモデル OrderCommand

orderVaule : OrderValue

orderList : ValueList

message : MessageList

find()

prev()

next()

selectDetail()

add()

delete()

cancel()

S

OrderModel

find()

checkOrderValue()

addOrder()

modifyOrder()

deleteOrder()

Order

order_id : String

customer_id : String

order_dt : Date

amount : Integer

getValue()

setValue()

getLineValue()

setLineValue()

E

OrderLine

order_id : String

item_id : String

item_num : Integer

amount : Integer

getValue()

setValue()

E

MitumoriModel

order_info.jsp

(from order)

order_list.jsp

(from order)

order_serach.jsp

(from order)

T_Customer

customer_id : SMALLINT

name : VARCHAR(30)address : VARCHAR(50)

<<PK>> PK_T_Customer()

T_Order

order_id : INTEGER

customer_id : SMALLINT

order_dt : DATE

amount : SMALLINT

<<PK>> PK_T_Order()<<FK>> FK_T_Order7()

0..*

10..* 1

<<Non-Identifying>>

T_OrderLine

order_id : INTEGER

line_num : SMALLINT

item_id : SMALLINT

quantity : SMALLINT

price : SMALLINT

<<PK>> PK_T_OrderLine()

<<FK>> FK_T_OrderLine()

<<FK>> FK_T_OrderLine8()

0..1

1

0..1

1<<Identifying>>

T_Item

item_id : SMALLINT

name : VARCHAR(20)

<<PK>> PK_T_Item()

0..*

10..* 1

<<Non-Identifying>>

論理データモデル

見積

受注残

受注

0..11 0..11

0..n

1

0..n

1

販売

0..n

1

0..n

1

ドメインモデル

アーキテクチャ&パターン適用

JSP EJB EJBフレームワーク

J2EE

ビジネスモデリング

要求

システム分析

実装

システム設計

実現

在庫(from 在庫部門)

販売担当(from 販売部門)

在庫引当て

顧客(from Business Actors)

オーダー実現

自動化

参照

実装

テスト

実装モデル 物理データモデル

検証

テストモデル

テスト

ApplicationServer

手動

WebSphereApatch

InternetClient

配置図・コンポーネント図

Order

OrderJAR<<EJB-JAR>>

OrderLinePk<<EJBPri maryKey>>

OrderPk<<EJBPri maryKey>>

OrderLineValue

OrderValue

Item

Customer

4

オブジェクト指向開発環境

RationalXDE

TogetherCC

Ant ,etc

jUnit ,etc

プラグイン Eclipse WorkBench

統合開発環境の進化

- 従来、オブジェクト指向CASE、プログラミング、ビルド管理、自動テスト、構成管理等の各種ツールは別々の環境

- 最近、オープンソースのIDE(統合開発環境)に各種ツール  をプラグイン化する傾向に

オブジェクト指向開発プラットフォーム

J2EE(Java2 Platform Enterprise Edition)

●Servlet・JSP -JavaによるWebアプリを構築する機能●EJB -業務機能(ビジネスロジック・データ)  を部品化するコンポーネント技術●RMI-IIOP、JavaIDL、JNDI -分散連携に関する技術●JDBC -リレーショナルDBへの接続●JCA -EAIアダプタへの接続●JMS -非同期メッセージング●JTA、JTS -トランザクションサービス●JAXP、JAXB、JAXM  JAX-RPC、JAXR -XMLおよびWebサービス関連機能

ミッションクリティカルなシステムを構築するためのサーバーサイドJava環境

5

オブジェクト指向開発プラットフォーム

Microsoft .NET新しいオブジェクト指向プログラミング環境(※)やXML技術、WebServiceを積極的に活用

※複数の言語(C#、J#、etc)を中間言語に変換し 共通言語実行環境(CLR)で実行

オブジェクト指向が目指すもの

デザインパターンオブジェクト指向における良い設計のお手本- GOFのデザインパターン- J2EEパターン

: Client : ServletEngine : Control ler : Command : Dispatcher : View : Helper

request( )

delegateRequest( )

dispatch( )

processRequest( )execute( )

Client

ServletEngine

request()

JSPFront<<JSP>>

ServletFront<<Servlet>>

View

dispatch()

Dispatcher

delegateRequest()

Controller

Helper

processRequest()

Command

execute()

J2EEパターン(Service To Walker)

6

オブジェクト指向が目指すもの

UMLの未来- より複雑なモデル記述への対応- MDA(Model Driven Architecture)

1967

Foundations of OO (Nygaard, Goldberg, Meyer,Stroustrup, Harel, Wirfs-Brock, Reenskaug,…)

Foundations of OO (Foundations of OO (NygaardNygaard, Goldberg, Meyer,, Goldberg, Meyer,StroustrupStroustrup, , HarelHarel, , WirfsWirfs--Brock, Brock, ReenskaugReenskaug,,……))

JacobsonJacobsonBoochBoochRumbaughRumbaugh

UML 1.1 (OMG Standard)UML 1.1 (OMG Standard)UML 1.1 (OMG Standard)

UML 1.3 (extensibility)UML 1.3 (extensibility)UML 1.3 (extensibility)

UML 1.4 (action semantics)UML 1.4 (action semantics)UML 1.4 (action semantics)UML 1.4.1UML 1.4.1UML 1.4.1

1996

1997

1998

20012002

2003

UML 2.0 (MDA)UML 2.0 (MDA)UML 2.0 (MDA)

現在のUML

今後

オブジェクト指向が目指すもの

ビジネスモデリングオブジェクト指向は、ビジネスプロセスやビジネス構造を分析する際にも大きな威力を発揮

販売部門 在庫物流部門 仕入部門

販売業務

棚卸業務

仕入先

納入業務

見積業務

仕入計画業務

仕入業務

受入れ業務

在庫担当仕入担当

仕入計画 仕入発注

0..1 0..*0..1 0..*

販売担当

販売受注残

受注

0..n

1

0..n

1

0..n

1

0..n

1

見積

0..1 10..1 1

棚卸

入庫

出庫

在庫

1 0..n1 0..n1..n

0..n

1..n

0..n

1..n

0..n

1..n

0..n

企業ビジネスプロセス・構造をオブジェクト指向でモデル化

7

現代のデータマネジメント

情報の多様化

ゲノムデータ

部品データXMLデータ

Business Intelligenceオブジェクト?

現代においては、ビジネスや社会生活で取り扱うデータが複雑化+高度化+大量化しつつある

オブジェクト指向におけるデータマネジメント

オブジェクトデータの格納オブジェクトモデルをそのまま、関係、依存性を維持したままデータ格納するのが理想形(オブジェクト指向データベース)

オブジェクト実行環境 オブジェクトデータストア

8

なぜオブジェクトデータか?

情報管理の柔軟性・オブジェクトデータは他のデータモデルにも柔軟に対応・データ抽象化によってオブジェクトの振る舞いを隠蔽

<?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>

リレーショナルデータ

XMLインスタンス

マルティメディアデータ

オブジェクトデータベース

メリット- オブジェクトデータ管理として理想的- 検索は効率的

オブジェクト実行環境 オブジェクトデータベース

キャッシュ

デメリット- 大量一括処理に弱い- 更新に関するミッションクリティカル性が低い

(残念ながら)リレーショナルデータベースほど普及せず

9

リレーショナルデータベースのオブジェクト拡張

オブジェクトリレーショナル- リレーショナルデータベースをオブジェクト拡張- 他テーブルの行インスタンスに対する参照- テーブルTYPEの継承/拡張- 複雑なデータは扱えるようになったがオブジェクトの振る舞いを

データベースに実装することには限界がある。

所属

部門テーブル

社員テーブル

リレーショナルデータベースのオブジェクト拡張

オブジェクトリレーショナルに対して各種エクステンションで拡張XPERANTO:オブジェクトリレーショナルに対してXML格納・アクセスを実現

XPERANTO

XMLスキーマXML-QL Parser

Query Rewrite

SQL Translation

オブジェクトリレーショナルデータベース(DB2)

SQL Query Processor

データストア システムカタログ

XML View Services

XML Schema Generator

XML Instance

QueryTransaction

XML結果

10

EJBコンポーネント

EJB(企業システム向けのJavaコンポーネントモデル)

リレーショナルデータベースに対して、オブジェクトをマッピング  複雑な振舞いはコンポーネント側に実装

J2EE アプリケーションサーバーIBM WebSphere、Fujitsu InterStageBEA WebLogic、Hitachi Cosminexus

EJB2.0でのオブジェクト-リレーションマッピング

EJB(J2EEの分散コンポーネントモデル)

例) 社員が複数部門への兼任がある組織データの実装

社員

部門

部門テーブル

社員テーブル

社員x部門関連テーブル

EJBコンテナ

関連

EntityBeans

EntityBeans

CMR

11

EJBによる企業システム構築

EJBによる業務機能オブジェクトの部品化

一般的な企業システムも、オブジェクトの構造としては複雑  データベース側を複雑にするのでなく、EJBコンポーネント  側でオブジェクト指向システムとして構築

注文

注文明細

顧客

商品

出荷

出荷明細

SessionBean EntityBeans

見積

在庫

見積

受注

出荷

見積明細

EJBI/F

JDBC

オブジェクト指向データ管理のまとめ

オブジェクト指向データ管理の多様化データストアだけのオブジェクト化でなく、周辺環境(エクステンション、コンポーネント)のオブジェクト指向化も進む

・オブジェクトデータストア・オブジェクトリレーショナル・リレーショナル

XML

TEXTEtc

エクステンション

コンポーネント

利用者

データストア

12

さらにグローバルなオブジェクトデータ管理へ

今後、もっと大きな単位でのデータ管理が必要-システム間統合-企業統合

販売支援

A社

B社統合

販売・物流

メインフレーム

(A社)

メインフレーム(B社)

R/3FI

R/3FI

SFA

会計

販売・物流 会計

新会社

メインフレーム

(B社)

R/3FI

SFA

販売・物流 会計

販売支援

メインフレーム

(A社)

販売・物流

他企業

統合技術の進化

システム間の機能的連携従来のシステム統合は、システム間を単に連携させることを目的としていたがこれからは、業務機能間での機能的連携が必要に。

サーバー(UNIX、LINUX、Windows)

独自技術統合

第一世代

ミドルウェア中心統合

第二世代

フロント処理

勘定系A 勘定系B

SFA SD(販売) FI(財務)

コンポーネント型統合

第三世代

SFA SD(販売) FI(財務)

統合連携

業務機能の拡張データ統合

ワークフロー

IBM WebSphere

サーバー(UNIX、LINUX、Windows)

EAI

データ変換 ワークフロー

EAI:Enterprise Application Integration

13

Javaにおける統合技術①

JDO(JavaDataObject)データベースだけでなく、外部システム自体をオブジェクトとしてアクセス可能

JDO PersistenceManager RDBMS

JDBC

JMS

JCA

PersisteneCapable

外部システム

・メインフレーム・R/3、People

JCAアダプタ

EJB Servlet

XMLDBMS

OODBMS

CMP

Javaにおける統合技術②

Webサービス(WSDL)による統合柔軟性の高い統合を実現

JDO PersistenceManager RDBMS

JDBC

JMS

JCA

PersisteneCapable

外部システム

・メインフレーム・R/3、People

JCAアダプタ

EJB Servlet

XMLDBMS

OODBMS

CMP

WSDL

WSDL

14

これからのシステム開発

オブジェクトリレーション

もっと拡張性があり、インテリジェンスなシステム構築

コンポーネント

統合技術

エクステンションオブジェクト指向

UML