freelance graphics - 200202~2アプリケーション開発 に費やせる時間が 短くなった...

23
「コンポーネントベース開発(CBD)の実践」 WebSphere Business Components( WSB コンポーネントとデザイン・パターンの適用 2002年 2月20日 日本アイ・ビー・エム株式会社 ソフトウェア事業部 永井 修 目次 1.WSBC 概要 2.WSBC を使用したコンポーネント開発 UML ベースの開発 デザインパターンの適用 3.WSBCアーキテクチャー 4.まとめ WebSphere Business C Copyright 2002, IBM Japan, Ltd. ページ 1-2

Upload: others

Post on 03-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Freelance Graphics - 200202~2アプリケーション開発 に費やせる時間が 短くなった Ready-To-Goのアプリケー ションではビジネス・ニーズ に柔軟に対応できない

「コンポーネントベース開発(CBD)の実践」

WebSphere Business Components(WSBC)におけるコンポーネントとデザイン・パターンの適用

2002年 2月20日

日本アイ・ビー・エム株式会社ソフトウェア事業部

永井 修

目次

1.WSBC 概要2.WSBC を使用したコンポーネント開発

UML ベースの開発デザインパターンの適用

3.WSBCアーキテクチャー4.まとめ

WebSphere Business Components

Copyright 2002, IBM Japan, Ltd. ページ 1-2

Page 2: Freelance Graphics - 200202~2アプリケーション開発 に費やせる時間が 短くなった Ready-To-Goのアプリケー ションではビジネス・ニーズ に柔軟に対応できない

アプリケーション開発に費やせる時間が

短くなった

Ready-To-Goのアプリケーションではビジネス・ニーズ

に柔軟に対応できない

コンポーネント技術EJB

Javaの普及WebSphere Business Components

ビジネス・コンポーネント群コンポーネント・サービスツール群 (開発支援用・構成支援用)

レガシーアプリケーションを多種環境のシステムに

統合したい

テスト済み部品を組み合せてアプリケーションができて、しかもそれがカスタマイズできたら…

WebSphere Business Components (WSBC)出現の背景

Application Framework for e-business (MQ, WebSphere, MQ, DB2, VAJ)

Application Integration Tools

Siebel FunctionalityContact MgmtCorrespondenceComprehensive Customer ViewIntegrated CTI

Campaign MgmtReportsSmartscriptPipeline Mngmt

Service RequestsMarketing EncyclopediaCalendarApplication Capture

CORBA Java XML

WebSphere Business Components (formerly Visual Banker) & MQ

Cash Drawer MmgmtBatch ManagementBranch AdminSample Operations

Teller Business ObjectsTeller ID Generator

Branch Service Components(i.e. Teller Components)

Enterprise Transactional ServicesStatic DataAccumulators

Agent AdminFinancial DevicesForeign Exchange

Customer SessionAdapters: MQ, LU0, LU6.2

Txn Services Framework

Sample AccountElectronic JournalStore & Forward

Crash Recovery

Contact CenterBranchInternet

MobilePDAWireless Application Protocol

Intranet, ExtranetWebphoneATM

FulfillmentInteraction HistorySales MethodolgyFinancial AccountsSecurities

Needs AnalysisPresentation & Proposal GeneratorPreferences & Profiling

Access Channel Options

Core Business Process Components

Java Virtual Machine

SanFrancisco business

components

(ISV) Application

Software

PlatformsServers: Windows NTR OS/400R AIXR HP/UX Reliant R SolarisR

Clients: Java? Browsers Lotus NotesR

Partner ApplicationsPartner Applications

User Interface Components

Common Business Objects

Foundation Business Objects

Foundation Server

その他のコンポーネント技術SanFrancisco

Banking, Insurance, CRM Groups

研究所言語処理と解析

Universal Contact Manager- Establish interactions- Create Views- Dispatch requests for

service- Log customer

contacts

Agent IVR Application E-mail

Real time Monitor- Interactions- Queues- Agents

Reporting- Contact center performance

Control- Define agents- Define routing

rules

Adm

inis

trat

ion

- Con

figur

atio

n

Telephony(CTI Server)

E-mail(e-Mail Server)

IVR

Management and control

Access Point Applications

Access resources

Web Chat VoIP

Web VoIPTelephony

Contact Management

NT AIX HP-UX NetWare Linux Solaris OS/400 OS/390

Application Framework for e-business

Development Tools & Components

Application Server Software

Secure Network & Management Software

WebSphere Platform for e-business

Deployment / Registration / Distribution

ApplicationComponent

LegacyConnect

Advanced Components AssemblyAC Interface

(XML)

Other

COM+

CORBA

AC Interface(XML)

SF/VBInside

BaseComponents

Runtime

AlternateInfrastructure

.

C, C++,COBOL

AdvancedComponentsbuilt from

Advanced Components from wrappered

WebSphere Business Components ComposerBank Teller Business Components

Text Analyzer

WebSphere Business Components Studio Order Capture

処理へ

T e x t A n a l y z e r

ト レ ー ニ ン グ

T e x t A n a l y z e rの 実 行

ル ー ル

メッセージテ キ ス ト文書 T e x t A n a l y z e r を 使 っ た

ア プ リ ケ ー シ ョ ン

C a t e g o r y : C r e d i t

C a r d A p p l i c a t i o n

_ _ _ _ _ _ _ _ _ _ _

P l e a s e s e n d m e

a n a p p l i c a t i o n

f o r a c r e d i t

c a r d . . . .

C a t e g o r y : C r e d i t

C a r d A p p l i c a t i o n

_ _ _ _ _ _ _ _ _ _ _

I w o u l d l i k e t o

a p p l y f o r a

c r e d i t c a r d . . . .

C a t e g o r y : C r e d i t

C a r d A p p l i c a t i o n

_ _ _ _ _ _ _ _ _ _ _

P l e a s e s e n d m e

a n a p p l i c a t i o n

f o r a c r e d i t

c a r d . . . .

C a t e g o r y : C r e d i t

C a r d A p p l i c a t i o n

_ _ _ _ _ _ _ _ _ _ _

I a m i n t e r e s t e d

i n a p p l y i n g f o r

f o r a c r e d i t

c a r d . . . .

C a t e g o r y :

M o r t g a g e L o a n

_ _ _ _ _ _ _ _ _ _ _

P l e a s e s e n d m e

i n f o r m a t i o n o n

m o r t g a g e s , . . .

C a t e g o r y :

M o r t g a g e L o a n

_ _ _ _ _ _ _ _ _ _ _

I a m i n t e r e s t e d

i n a f i x e d o r

v a r i a b l e r a t e

m o r t g a g e . . .

C a t e g o r y :

M o r t g a g e L o a n

_ _ _ _ _ _ _ _ _ _ _

I a m i n t e r e s t e d

i n a f i x e d o r

v a r i a b l e r a t e

m o r t g a g e . . .

C a t e g o r y :

M o r t g a g e L o a n

_ _ _ _ _ _ _ _ _ _ _

I a m i n t e r e s t e d

i n r e f i n a n c i n g

m y h o m e . . .

a r c h i v e d

m e s s a g e s &c a t e g o r i e s

準 備

準備

準 備

WSBCIBMのコンポーネント関連技術の集大成

WebSphere Buseinss Components

WebSphere Business Components

Copyright 2002, IBM Japan, Ltd. ページ 3-4

Page 3: Freelance Graphics - 200202~2アプリケーション開発 に費やせる時間が 短くなった Ready-To-Goのアプリケー ションではビジネス・ニーズ に柔軟に対応できない

WSBC 製品ファミリー

Base Components (BC)クロスインダストリー向けの基本コンポーネント

Advanced Components (AC)Base Components を組み合わせた粒度の大きなコンポーネント

Components Composer画面定義・フロー定義・ホストアプリケーション接続定義のコンポーザー、クロスインダストリー向けCBTF: Banking Transaction Framework のリニューアル版

Bank Teller銀行のテラー・アプリケーション、WebSphere Buseinss Components Composerで作成されたアプリケーションVisual Banker のリニューアル版

WSBCが提供するコンポーネントBC - (V1.2.1 beta)

SignatoryAbility人又はグループに対する承認レベルの定義

ContactPoint住所、電話番号、メール・アドレス等連絡先の定義

Party人やグループの定義

Currency通貨と為替レートの定義通貨換算機能

Natural Calendar労働日ベースのカレンダー労働時間算出機能

Company企業内の組織構造の定義

Unit of Measure計量単位とその数量

Fiscal Calendar会計年度と会計期間

Plan Definition活動のための計画他のアプリケーションとのやり取りの自動化などに使用

Request他の部門に対する要求事前に定義されたプロセスに元づいて処理される

Project Definitionプロジェクト

など

WebSphere Business Components

Copyright 2002, IBM Japan, Ltd. ページ 5-6

Page 4: Freelance Graphics - 200202~2アプリケーション開発 に費やせる時間が 短くなった Ready-To-Goのアプリケー ションではビジネス・ニーズ に柔軟に対応できない

WSBCが提供するコンポーネントAC - (V1.2.1)

OrderCaptureオーダー管理オーダー価格算出・与信限度額算出機能等OAGIS メッセージセットに基づく

TextAnalyzer文書内のテキスト分析分類機能分析ルールの生成

Thin Client / Browser コールセンターでの電話受注営業のモバイル機器からの受注EDIによる受注と変更Internetからの受注等

処理

物流システム

Order Captureを使ったアプリケーション(Bean/JSP/Servlet)

OrderCaptureの実行

WSBC OrderCapture ACの特徴クライアントから独立したサーバー

メカニズムOrder Header,Order Line Item/Schedule

の作成・修正・削除Lifecycleの管理

Sales Orderの照会価格とDiscountの機能在庫管理と与信限度

物流システムとの結合

Fullfillment Function Group

Order Capture AC

WebSphere Business Components

Copyright 2002, IBM Japan, Ltd. ページ 7-8

Page 5: Freelance Graphics - 200202~2アプリケーション開発 に費やせる時間が 短くなった Ready-To-Goのアプリケー ションではビジネス・ニーズ に柔軟に対応できない

WSBC TextAnalyzerの特徴 ルールの自動生成

迅速な処理 正確なカテゴライズ 大量のテキスト処理

アプリケーションの自由度を高める仕組み 多くの言語をサポート(日本語を含む他DBCSも)

WSBC TextAnalyzer

Training Tool(TT)

処理へ

TextAnalyzerトレーニング

TextAnalyzerの実行

ルール

処理対象のテキスト・ブロック(XML形式のファイル)

該当するカテゴリーとその信頼度値(XML形式のファイル)

1

2

メッセージテキスト文書

3 4 5

6

Text Analyzerを使ったアプリケーション

Category: Credit Card Application

___________Please send me an

application for a credit card. ...

Category: Credit Card Application

___________I would like to apply for a

credit card. ...

Category: Credit Card Application___________

Please send me an application for a credit card. ...

Category: Credit Card Application

___________I am interested in applying

for for a credit card. ...

Category: Mortgage Loan___________

Please send me information on mortgages,

...

Category: Mortgage Loan___________

I am interested in a fixed or variable rate mortgage...Category: Mortgage Loan

___________I am interested in a fixed or

variable rate mortgage...Category: Mortgage Loan

___________I am interested in

refinancing my home...

archivedmessages &categories

準備

準備

準備

WSBC TextAnalyzerCategorization

Engine(CE)

Text Analyzer AC

Base Component (BC)Base Component (BC)ドメイン内の個々の実体を表す相互に関係する単機能的なソフトウェア部品粒度が小さい

Advanced Component (AC)Advanced Component (AC)ドメイン内の機能を表すそれぞれが独立したソフトウェア部品粒度が大きい

2種類のコンポーネント

OrderCaptureAC

注文注文

照会照会

WebSphere Business Components

Copyright 2002, IBM Japan, Ltd. ページ 9-10

Page 6: Freelance Graphics - 200202~2アプリケーション開発 に費やせる時間が 短くなった Ready-To-Goのアプリケー ションではビジネス・ニーズ に柔軟に対応できない

ブラウザー

(Dynamic)HTML

クライアント

サーバー

View Controller Model

アプリケーション・ロジック

ACACSessionSession

BeanBeanServletServlet

ACACインターインターフェースフェース(XML)(XML)

Java Java Server Server PagePage

CMP

RDB

Persistence

クライアント・ロジック

BCBCEntityEntityBeanBean

Tier 0 Tier 1 Tier 2 Tier 3

他のデバイス

PDA,VRU,

. . .

WSBC がカバーするエリア

BCBCEntityEntityBeanBean

WSBC が提供するコンポーネントの範囲

"クライアント層" "Web層" "EJB層" "データ層"

目次

1.WSBC 概要2.WSBC を使用したコンポーネント開発

UML ベースの開発デザインパターンの適用

3.WSBCアーキテクチャー4.まとめ

WebSphere Business Components

Copyright 2002, IBM Japan, Ltd. ページ 11-12

Page 7: Freelance Graphics - 200202~2アプリケーション開発 に費やせる時間が 短くなった Ready-To-Goのアプリケー ションではビジネス・ニーズ に柔軟に対応できない

お客様のソリューションお客様のソリューション

市場の要求市場の要求ソフト開発企業ソフト開発企業

ASP企業ASP企業

コンポーネント開発企業コンポーネント開発企業

ビジネス目標ビジネス目標

オープンな標準,新技術オープンな標準,新技術

SI企業SI企業

コンポーネント・ベース開発のバリュー・チェーン

様々な開発者からの要求

「出来合いのコンポーネントを利用して、生産性を上げコストを下げたい…」「出来合いのコンポーネントだけでは機能に不満がある。自分でコンポーネントを開発して利用したい・・・」「我社(SI企業)は会計アプリケーションに精通している。これを是非コンポーネント化して、様々なプロジェクトで再利用したい・・・」「今後は自社資産をコンポーネント化して外販していきたい。そのためにユーザーにやさしいコンポーネントを開発したい・・・」「既存資産を有効活用してコンポーネントを提供したい・・・」...

WebSphere Business Components

Copyright 2002, IBM Japan, Ltd. ページ 13-14

Page 8: Freelance Graphics - 200202~2アプリケーション開発 に費やせる時間が 短くなった Ready-To-Goのアプリケー ションではビジネス・ニーズ に柔軟に対応できない

WSBCの用途

コンポーネント利用者(アプリケーション・アセンブラー)「内部の仕組みには興味がなく、手間をかけずに求める機能を手に入れたい…」

→ ACを利用「オブジェクト指向技術を活用して柔軟性の高いシステムを開発したい…」

→ BCを利用→ BCSをベースに自社のBCを作成し、それを活用

コンポーネント開発者(コンポーネント・プロバイダー)「オブジェクト指向技術を活用して汎用性の高いコンポーネントを開発したい…」

→ BCSをベースに自社のBCを作成「ユーザーにやさしいコンポーネントを提供したい・・・」

→ BCを利用してACを作成「既存資産を有効活用してコンポーネントを提供したい・・・」

→ ACのラッピング機能を利用して、既存システムをACに仕立てる

開発ツール

BC 開発 (WSBC Code Generator)UMLモデルからJavaコードを生成AC で利用される BC を開発する際に有効

AC 開発 (WSBC Code Generator)UMLモデルからJavaコードとXMLスキーマを生成スクラッチで AC を開発する際に有効

AC アッセンブリー (AC Assembly Tool)フロー・コンポジション(ノン・プログラミング)AC を組み合わせてアプリケーション(または別のAC)を作成

AC ディプロイメント (AC Deployment Tool)XMLベースの AC ディプロイメント・ディスクリプターに基づきACをディプロイ

WebSphere Business Components

Copyright 2002, IBM Japan, Ltd. ページ 15-16

Page 9: Freelance Graphics - 200202~2アプリケーション開発 に費やせる時間が 短くなった Ready-To-Goのアプリケー ションではビジネス・ニーズ に柔軟に対応できない

WSBC 開発ツールUMLに基づき Java (EJB)、XML を生成

UMLモデル 生成 完成

繰り返しのコーディング作業をなくすエラー発生率の減少システム・プログラミングから開発者を解放アプリケーション・ロジックに専念一貫性の保持パワフルなベース・クラス、デザイン・パターン

生産性・品質・柔軟性の向上AR / AP Ledger and Collections

GeneralLedger

CommonBusinessObjects

SalesOrderManagement

PurchaseOrderManagement

OrderManagement

WarehouseManagement

コード生成ツール

import com.ibm.sf.cf.*;import com.ibm.sf.gf.*;public class MyEntity extends Entity { public static final String INTERFACE_NAME = "MyEntity"; ... }

BC 開発ステップ1モデリング (Rational Rose)

コンポジション

多重度

クラス

クラス名

属性

操作

ロール名

汎化

WebSphere Business Components

Copyright 2002, IBM Japan, Ltd. ページ 17-18

Page 10: Freelance Graphics - 200202~2アプリケーション開発 に費やせる時間が 短くなった Ready-To-Goのアプリケー ションではビジネス・ニーズ に柔軟に対応できない

BC 開発ステップ1 (続き)

UML = 統一モデリング言語(Unified Modeling Language)で表記クラス図をもとにコードを生成するWSBC が提供するコンポーネントを利用

Java コードレベルの再利用ではなく、デザイン・レベルでの再利用を可能にする2種類の方法

汎化(継承)による利用集約またはコンポジションによる利用

(例)EntityOwningController : 顧客台帳や受注台帳のような「複数インスタンス」を管理する機能をあらかじめ実装している

BC 開発ステップ2コード生成 (WSBC コード・ジェネレーター)

生成されたクラスのメンバー情報生成されたクラスのメンバー情報

コード生成ログ(エラー情報等)コード生成ログ(エラー情報等)以下のファイルを生成EBJ関連ファイル

BeanHome InterfaceRemote Interface など

WSBCプログラミング・モデル・クラスFactory など

WebSphere Business Components

Copyright 2002, IBM Japan, Ltd. ページ 19-20

Page 11: Freelance Graphics - 200202~2アプリケーション開発 に費やせる時間が 短くなった Ready-To-Goのアプリケー ションではビジネス・ニーズ に柔軟に対応できない

BC 開発ステップ2 (続き)

生成対象クラスを選択し、WSBC コード・ジェネレーター を起動

Rational Rose のプラグ・インとして稼動EJBとして稼動するのに必要なコードを生成Rose上に指定された指示に基づき、WSBCデザイン・パターンに則ったコードを生成

BC 開発ステップ3コード完成 (VisualAge for Java, または WebSphere Studio Application Developer)

必要に応じてロジックを追加必要に応じてロジックを追加

WebSphere Business Components

Copyright 2002, IBM Japan, Ltd. ページ 21-22

Page 12: Freelance Graphics - 200202~2アプリケーション開発 に費やせる時間が 短くなった Ready-To-Goのアプリケー ションではビジネス・ニーズ に柔軟に対応できない

BC 開発ステップ3 (続き)

Roseで表現しきれないビジネス・ロジックを実装(例)checkCreditLimit メソッド(与信限度額をチェックするメソッド)のロジックを実装

コンポーネントとは?

WSBCにおけるコンポーネントの定義以下の性質を持った、論理的につながりのあるソフトウェアの実装のパッケージ

独立して開発・配布・導入ができる提供するサービスがインターフェイスとして明確に定義されている必要とする他のコンポーネント及びそのサービスについて明確に定義されているインターフェイスとそれをサポートする実装が切り離されているインターフェイスを通じてのみ操作されるカストマイズによって機能変更が可能

WebSphere Business Components

Copyright 2002, IBM Japan, Ltd. ページ 23-24

Page 13: Freelance Graphics - 200202~2アプリケーション開発 に費やせる時間が 短くなった Ready-To-Goのアプリケー ションではビジネス・ニーズ に柔軟に対応できない

WSBC デザイン・パターン

拡張性の高いコンポーネントを作成するためのパターンビジネス・ロジックの柔軟性を高めることに主眼をおくUMLモデリングでパターンを指定すれば、コード生成機能が自動的にそのパターンを実装したコードを生成

Policy既存コードにまったく影響を与えずにロジックを切り替えるStrategy Pattern の応用

Property Containerクラスの再定義なしに属性を追加BCにベース・クラス (DynamicEntity)として実装されてる

Extensible Itemクラスの再定義なしに継承関係を変更できる振る舞いが進化するビジネス・オブジェクトを表現

...等

デザイン・パターンの例Policy

Strategyパターンに類似一群のアルゴリズムを定義し、それぞれのアルゴリズムをカプセル化し、カプセル化したアルゴリズムを交換可能にする

オブジェクトのアルゴリズムを、オブジェクトから分離して管理することが可能

アルゴリズムを変更することでフレームワークを拡張状況に応じてアルゴリズムを切替え(プラグイン・プラグアウト)

アプリケーション

...

<methodName>(parm1...)

<methodName>(DomainClass, parm1...)

<Name>Policy<Specific>

<Name>Policy

<methodName>( )

DomainClass

<methodName>( )

<name>PolicyDefault

WebSphere Business Components

Copyright 2002, IBM Japan, Ltd. ページ 25-26

Page 14: Freelance Graphics - 200202~2アプリケーション開発 に費やせる時間が 短くなった Ready-To-Goのアプリケー ションではビジネス・ニーズ に柔軟に対応できない

顧客Aオブジェクト予信限度チェック()

顧客Bオブジェクト予信限度チェック()

予信限度チェックPolicy 1(通常のチェック)

予信限度チェックPolicy 1(通常のチェック)

予信限度チェックPolicy 2(滞納企業用の厳しいチェック)

顧客Cオブジェクト予信限度チェック()

クライアントプログラムからこのメソッドを起動 予信限度チェックPolicy 3(新しいチェックロジック)

新しいチェックロジックが必要になれば、そのロジックを実装したクラスを作成し、対象顧客オブジェクトと紐付けるだけですむ。既存のコードに影響なし(容易な拡張)従来の手法だと、既存プログラムを改造し、(IF文を追加して、そこにロジックを埋め込む)既存データへの影響がないかをテストしなければならない。

Policyの適用例(顧客の予信限度チェック)

目次

1.WSBC 概要2.WSBC を使用したコンポーネント開発

UML ベースの開発デザインパターンの適用

3.WSBCアーキテクチャー4.まとめ

WebSphere Business Components

Copyright 2002, IBM Japan, Ltd. ページ 27-28

Page 15: Freelance Graphics - 200202~2アプリケーション開発 に費やせる時間が 短くなった Ready-To-Goのアプリケー ションではビジネス・ニーズ に柔軟に対応できない

NT AIX HP-UX NetWare Linux Solaris OS/400 OS/390

Application Framework for e-business

Development Tools & Components

Secure Network &Management Software

WebSphere ソフトウェア・プラットフォーム

ディプロイメント / 分散環境

ApplicationComponent

ACアッセンブリーAC Interface(XML)

COM+

CORBA

SF/VB

BaseComponents

.

C, C++,COBOL

AdvancedComponents

ラッピングによるAC開発

AC 生成

ACアッセンブリー・ツール

ディプロイメントツール

BC 生成

WSBC アーキテクチャー 全体図

AC Interface(XML)

レガシーシステム

実行環境

WebSphereApplicationSoftware

BC AC表現しているもの 実体 機能

例 製品、顧客、など 受注管理利用形態 EJBプロトコルによる会話 XMLによる会話が可能

難易度 プログラミング・モデルがやや複雑 プログラミング・モデルが容易カスタマイズ ホワイト・ボックス(ソース公開)

伝統的なオブジェクト指向による拡張 (継承・集約・委譲)豊富な拡張メカニズム(Policy , ExtensibleItem, PropertyContainer, など)

ブラック・ボックス構成設定機能による外側でのカスタマイズPolicyメカニズムを用いたロジック置換

実装 1つ以上の CMP Entity Bean インターフェイス=1つ以上のStateless Session Bean実装=あらゆる実装が可能(BC、EJBのEntity Bean、COM/CORBAアプリケーション、レガシー・アプリケーション)

BCとAC ~比較~

WebSphere Business Components

Copyright 2002, IBM Japan, Ltd. ページ 29-30

Page 16: Freelance Graphics - 200202~2アプリケーション開発 に費やせる時間が 短くなった Ready-To-Goのアプリケー ションではビジネス・ニーズ に柔軟に対応できない

Base ComponentsBase Components

コンポーネント・サービス

アプリケーションアプリケーション

ソフト開発企業およびお客様

EJBサーバーEJBサーバー

Advanced ComponentsAdvanced Components

AC Services (ACS)AC Services (ACS)

BC Services (BCS)BC Services (BCS)

サービス層サービス層++

プログラミング・プログラミング・モデルモデル

WebSphere WebSphere Business Business ComponentsComponents

Advanced Components

Base Components

WebSphere Application Server

BC Services

BC-1 BC-2 ...

Base

...

Library

...

Support

...

BC Services (BCS)BCの開発に必要な基本機能を提供

ResultMessages

...Exeptions

...

ビジネス・オブジェクトのスーパークラスEntity - EJBのプログラミング・モデルの拡張DynamicEntity - 属性をダイナミックに追加できるEntity

共通に利用されるクラスDDecimal - 数値の表現DTime - 時間の表現

ユティリティ・クラスコンポーネントから参照できるグローバル変数EJB固有のロジック (EJB Homeの検索)

エラー情報をカプセル化メッセージID (ロケール対応用)メッセージの重要度

分散環境における Exception

WebSphere Business Components

Copyright 2002, IBM Japan, Ltd. ページ 31-32

Page 17: Freelance Graphics - 200202~2アプリケーション開発 に費やせる時間が 短くなった Ready-To-Goのアプリケー ションではビジネス・ニーズ に柔軟に対応できない

AC Services (ACS)ACの開発・実行に必要な基本機能・サービスを提供

AC Services

NLS EventCommandSystemManagementContext Exception

AC-1 AC-2 AC-3 ...

JNDI(Java Naming and

Directory Interface)

MQWebSphere Application Context Enablement (ACE)

AC コマンド・サービスXMLインターフェースを利用してACを使用するためのサービス

AC イベント・サービス分散環境での通知サービス疎結合: コンポーネント間の依存性の低いPublishとSubcribe

AC 例外サービス分散環境での例外サービス

クライアント・サーバー間のスタック・トレース

クライアント・サーバー間の例外チェーン

AC NLSサービス分散環境でのNLS(各国言語対応)サービス

AC コンテキスト・サービスACのインスタンスに情報を付加JNDIコンテキスト・インターフェースを使用

AC システム管理サービスACを外からコントロール

開始・終了、バッチ・スケジューリング、トレースのOn/Off、など

ACの実装方法を隠蔽

JMS(Java Messaging

Service)

JMX(Java Management

Extensions)

Advanced Component Services (ACS) 続き

Session Bean

実装

Command

コマンド・サービス

イベント・サービス

システム管理サービス

NLS サービス

例外サービス

Advanced Component

Event

Subscribe

Publish

Exception結果(XML)引数(XML)

コンテキスト・サービス

WebSphere Business Components

Copyright 2002, IBM Japan, Ltd. ページ 33-34

Page 18: Freelance Graphics - 200202~2アプリケーション開発 に費やせる時間が 短くなった Ready-To-Goのアプリケー ションではビジネス・ニーズ に柔軟に対応できない

AC Specificationテキスト・ベースのACの仕様提供者と利用者の間の"contract"

AC ImplementationAC Specificationで定義されたインターフェイスを実装したもの

AC Instance実行時にのみ存在するACの実体

ACACImplementationImplementation

ACACImplementationImplementation

ACACInstanceInstance

ACACInstanceInstance

ACACInstanceInstance

<<dependency 1>><<dependency 2>>

<<implements>> <<implements>>

<<supports>> <<supports>> <<supports>>

<<resolved dependency 1>>

<<resolved dependency 2>>

ACACSpecificationSpecification

ACACSpecificationSpecification

仕様のモデル化コード生成…EJB JARファイルの作成

(参考)ACの開発・ディプロイ概略

インスタンス名の指定JNDI登録ACインスタンスの開始・管理

(参考)AC 開発ステップ1モデリング (Rational Rose)

AddresseeAC<<AdvancedComponent>>

AddAddressee(from AddresseeAC Interfaces)

<<ACFunction>>GetAddressee

(from AddresseeAC Interfaces)

<<ACFunction>>

DeleteAddressee(from AddresseeAC Interfaces)

<<ACFunction>>

AddresseeACI<<ACFunctionGroup>>

GetAddressees(from AddresseeAC Interfaces)

<<ACFunction>>ACが使うクラスをモデル化

ACのインターフェイスをモデル化

ACとインターフェイスの関連をモデル化

ファンクション・インターフェイス実際のインターフェイス(複数可)

ファンクション・グループファンクション・インターフェイスをグループ化したもの(複数可)

ACACを表すクラスひとつだけ存在

WebSphere Business Components

Copyright 2002, IBM Japan, Ltd. ページ 35-36

Page 19: Freelance Graphics - 200202~2アプリケーション開発 に費やせる時間が 短くなった Ready-To-Goのアプリケー ションではビジネス・ニーズ に柔軟に対応できない

(参考)AC 開発ステップ2コード生成 (WSBC コード・ジェネレーター)

ストラテジー・クラス

アダプター・クラス

EJBのクラス

Interface Model

functionfunction

eventevent

system system managementmanagement

アダプアダプターター

ストラテストラテジージー

SessionSessionBeanBean

ACDefinition.xmlACDefinition.xml<AdvancedComponent .... ><name>AddresseeAC</name><specVersion>1.1.0</specVersion><interface> <name>GetAddressees</name> <requestSchema>..../AddresseeAC/Functions.xsd</requestSchema> <responseSchema>.../AddresseeAC/Functions.xsd</responseSchema></interface><interface> <name>GetAddressee</name> <requestSchema>..../AddresseeAC/Functions.xsd</requestSchema> <responseSchema>..../AddresseeAC/Functions.xsd</responseSchema></interface>.....</AdvancedComponent>

ACImplementation.xmlACImplementation.xml<AdvancedComponentImplementation....> <specVersion>1.1.0</specVersion> <specSchema></specSchema> <name>AddresseeAC</name> <implVersion>1.0.0</implVersion> <loadBalancable>true</loadBalancable> <interfaceImpl> <name>GetAddressees</name> <adapter>com.mycompany.ac.addresseeac.internal.adapter.GetAddresseesAdapter</adapter> </interfaceImpl> <interfaceImpl> <name>GetAddressee</name> <adapter>com.mycompany.ac.addresseeac.internal.adapter.GetAddresseeAdapter</adapter> </interfaceImpl>....</AdvancedComponentImplementation>

ACFunctions.xsdACFunctions.xsd<xsd:element name="AddAddresseeRequest"> <xsd:complexType> <xsd:element name="addressee" type="ac:PAddressee"/> </xsd:complexType></xsd:element><xsd:element name="AddAddresseeResponse"> <xsd:complexType> <xsd:element name="addressee" type="ac:PAddressee"/> </xsd:complexType></xsd:element>

<xsd:element name="GetAddresseeRequest"> <xsd:complexType> <xsd:element name="identifier" type="xsd:string"/> </xsd:complexType></xsd:element><xsd:element name="GetAddresseeResponse"> <xsd:complexType> <xsd:element name="addressee" type="ac:PAddressee"/> </xsd:complexType></xsd:element>

ACInterfaceModels.xsdACInterfaceModels.xsd<xsd:complexType name="PAddressee"> <xsd:element name="name" type="xsd:string" minOccurs="0" maxOccurs="1"/> <xsd:element name="address" type="xsd:string" minOccurs="0" maxOccurs="1"/> <xsd:element name="identifier" type="xsd:string" minOccurs="0" maxOccurs="1"/></xsd:complexType>

ACEvents.xsdACEvents.xsd

ACの実装・構成情報のACの実装・構成情報の定義定義

ACそのものの定義ACそのものの定義依存関係、インターフェ依存関係、インターフェ

イスの種類、etc.イスの種類、etc.

ファンクション・インターファンクション・インターフェイスの文法を定義フェイスの文法を定義

イベント・インターフェイイベント・インターフェイスの文法を定義スの文法を定義

AC Interface ModelAC Interface Modelの定義の定義

(参考)AC 開発ステップ3XML生成(WSBC コード・ジェネレーター)

WebSphere Business Components

Copyright 2002, IBM Japan, Ltd. ページ 37-38

Page 20: Freelance Graphics - 200202~2アプリケーション開発 に費やせる時間が 短くなった Ready-To-Goのアプリケー ションではビジネス・ニーズ に柔軟に対応できない

(参考)AC 開発ステップ4コード完成 (VisualAge for Java, または WebSphere Studio Application Developer)

この部分にのみ変更を加えるこの部分にのみ変更を加える

ビジネス・ロジックはXxxStrategyのexecute()に実装Code Generatorが生成したコードで編集の対象になるもの

XxxStrategyのexecute()メソッド --> ビジネス・ロジックの実装ACImplementation.xml --> システム管理対応の構成用タグを追加

(参考)AC 開発ステップ(参考)Policy デザイン・パターンによるロジックのカストマイズ

アプリケーション・アッセンブラーには、パラメータとして提示される(ACの内部コードを修正する必要はまったく無い)

ドメイン・クラス

処理()

Policy

処理()

PolicyB

処理()

PolicyA

処理()

PolicyC

処理()

AC Extenderによるカスタマイズ

追加

Policyデザイン・パターン

アダプアダプターター

ストラテストラテジージー

SessionSessionBeanBean

execute()

Policyの取得Policyのメソッドコール

ACImplementation.xmlで指定する

Policy デザイン・パターンIf文やSwitch文を使用せずにロジックを切り替えられる仕組み

WebSphere Business Components

Copyright 2002, IBM Japan, Ltd. ページ 39-40

Page 21: Freelance Graphics - 200202~2アプリケーション開発 に費やせる時間が 短くなった Ready-To-Goのアプリケー ションではビジネス・ニーズ に柔軟に対応できない

(参考)AC ディプロイメントACの配置 (AC ディプロイメント・ツール)

ACAC

AC InstanceAC Instance

ACのEJB JARファイルからACの情報をロードロードした時点では"Undeployed ACs"

AC Instance名、ACCommandTargetのJNDI名、アダプター名をセットして"Deploy"

ディプロイメント・ツールによるACインスタンスの作成

(参考)AC ディプロイメントAC の開始 (システム管理コンソール)

"Install""Install""Startup""Startup"

InstallInstall

1 = stopped1 = stopped2 = unavailable2 = unavailable4 = available4 = available

ACの実装方法を隠蔽した管理が可能

WebSphere Business Components

Copyright 2002, IBM Japan, Ltd. ページ 41-42

Page 22: Freelance Graphics - 200202~2アプリケーション開発 に費やせる時間が 短くなった Ready-To-Goのアプリケー ションではビジネス・ニーズ に柔軟に対応できない

目次

1.WSBC 概要2.WSBC を使用したコンポーネント開発

UML ベースの開発デザインパターンの適用

3.WSBCアーキテクチャー4.まとめ

まとめ

WSBCは単に出来合いのコンポーネントのみを提供するだけではありません。WSBCはUMLモデルから新規コンポーネントを作成するための強力なツールを提供します。

UML をベースにしたコード生成機能 (WSBC Code Generator)SanFranciscoを利用しているお客様は、既にこれと同等な機能により、大きなメリットを得ていらっしゃいます。

WSBCはEJB以外のテクノロジーでコンポーネントを実装することを可能にします。

AC のラッピング機能ACSのシステム管理サービスによる一元管理ACSのコマンド・サービスによるXMLインターフェース

WSBCはコンポーネント・ベース開発を行うための強力な開発基盤と実行基盤を提供します。

BC ServicesAC Services

WebSphere Business Components

Copyright 2002, IBM Japan, Ltd. ページ 43-44

Page 23: Freelance Graphics - 200202~2アプリケーション開発 に費やせる時間が 短くなった Ready-To-Goのアプリケー ションではビジネス・ニーズ に柔軟に対応できない

関連サイト

英語:WebSphere Business Componentshttp://www.ibm.com/software/components 英語:WebSphere Developer Domain WebSphere Business Componentsゾーンhttp://www7b.boulder.ibm.com/wsdd/zones/wsbc/

評価版BC(Beta版)のダウンロードhttp://www.ibm.com/software/webservers/components/download.html

問い合わせ先

日本アイ・ビー・エム株式会社 ソフトウェア事業部e-ビジネス ソフトウェア営業推進星 野 寧 夫

e-mail : hoshinoy@jp.ibm.com電話 : 03-3808-5541

WebSphere Business Components

Copyright 2002, IBM Japan, Ltd. ページ 45-46