Bài giảng Kiến trúc phần mềm - Chương: Middleware - Trần Minh Triết
Nội dung của bài giảng sử dụng:
Session 4:
A Guide to Middleware Architectures and Technologies
trong bộ slide Software Architecture Essential
của GS. Ian Gorton
Software Engineering Institute
Carnegie Mellon University
2Introduction
Middleware is the plumbing or wiring of IT
applications
Provides applications with fundamental services for
distributed computing
Insulates applications from underlying platform
(OS, DBMS, etc) APIs
Lots of middleware exists
Different purposes
Different vendors
Different standards and proprietary technologies

Trang 1

Trang 2

Trang 3

Trang 4

Trang 5

Trang 6

Trang 7

Trang 8

Trang 9

Trang 10
Tải về để xem bản đầy đủ
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Kiến trúc phần mềm - Chương: Middleware - Trần Minh Triết", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Kiến trúc phần mềm - Chương: Middleware - Trần Minh Triết
Trường Đại học Khoa Học Tự Nhiên
Khoa Công Nghệ Thông Tin
Bộ môn Công Nghệ Phần Mềm
CTT526 - Kiến trúc phần mềm
Middleware
PGS.TS. Trần Minh Triết
tmtriet@fit.hcmus.edu.vn
Version 1.0
Nội dung của bài giảng sử dụng:
Session 4:
A Guide to Middleware Architectures and Technologies
trong bộ slide Software Architecture Essential
của GS. Ian Gorton
Software Engineering Institute
Carnegie Mellon University
2
Introduction
Middleware is the plumbing or wiring of IT
applications
Provides applications with fundamental services for
distributed computing
Insulates applications from underlying platform
(OS, DBMS, etc) APIs
Lots of middleware exists
Different purposes
Different vendors
Different standards and proprietary technologies
3
Middleware Classification
Business Process Orchestrators BizTalk, TIBCO StaffWare, ActiveBPEL
Message Brokers BizTalk, WebSphere Message Broker, SonicMQ
Application Servers J2EE, CCM, .NET
Transport Message-Oriented Middleware, Distributed Objects Systems
4
Outline
CORBA
Message-oriented middleware
J2EE
Message brokers
Business process orchestrators
5
CORBA
Venerable distributed object technology
Still widely used in telecomms, defense
Many different implementations
Client Server
Object Reference Servant
request reply
client ORB server ORB
Network
6
CORBA Code Example
module ServerExample
{ CORBA IDL
interface MyObject { string isAlive(); };
};
class MyServant extends _MyObjectImplBase
Server { public String isAlive() { return "\nLooks like it\n"; }
}
ORB orb = ORB.init(args, null);
MyServant objRef = new MyServant();
orb.connect(objRef);
ORB orb = ORB.init(args, null);
// Lookup is a wrapper that actually access the CORBA Naming Client
// Service directory – details omitted for simplicity
MyServant servantRef = lookup(“Myservant”)String
reply = servantRef.isAlive();
7
CORBA – Some Thoughts
Many associated services, eg
Naming
Notification
Transactions
Synchronous technology, client-server relatively tightly
coupled
Remote calls can/will fail
State management in server objects creates
„interesting‟ recovery issues
8
Messaging - MOM
Basic Message Oriented Middleware (MOM) provides
features like:
Asynchronous communications between processes,
applications and systems
Send-and-forget
Delivering messages despite failures
Transactional Messaging
Deliver all messages in a transaction, or none
Persistence
Messages can be logged at the server and hence
survive server failure
9
Basic Messaging
Send (queue, message)
Put message onto queue
Receive (queue, message)
Get message from queue
No dependency on state of receiving
application on message send
send receive
queue
10
queuePersistence
send receive
Receipt of message at queue implies
message is written to disk log
Removal of message from queue
deletes message from disk log
Trade-off performance versus reliability
11
MOM Server
Senders Receivers
Sending Sending
Applications Applications
Message
Handler Thread Pool
MOM Server
Peer-to-peer MOM technologies are the alternative design
12
MOM Transactions
Begin transaction Begin transaction
... ...
update database record get message from queue
put message on queue update database record
... ...
commit transaction commit transaction
13
MOM Transactions
Sender and receiver do *not* share a transaction
Rollback on receiver does not affect the sender (already
committed)
„Synchronous‟ operations are not atomic
Request/response is 3 transactions not 1
. Put to request queue
. Get from request queue, put to response queue
. Get from response queue
Request queue
send receive
receive send
Response queue
14
Scaling MOM
MOM Server
ApplicationQ
Senders Receivers
MOM Server
ApplicationQ
15
Messaging – Some thoughts
Highly attractive asynchronous technology
Supports loosely-coupled, dynamic applications
Scales well, high throughput possible
Many implementations, various qualities of service
caveat emptor
16
Publish-Subscribe Messaging
Extension of MOM to provide 1-to-N, N-to-1, and N-to-
N communications
Messages are „published‟ to logical subjects or topics
Subscribers receive all messages from subjects they
subscribe to
Sub
Create/
Publish Register/
Pub Subject Subscribe Sub
Sub
17
Publish-Subscribe with Multicast
S u b s c r ib e r S u b s c r ib e r
r v d r v d r v r d
Based on
TIBCO
P u b lis h e r Rendezvous
r v d r v r d
r v d r v d r v d
S u b s c r ib e r S u b s c r ib e r S u b s c r ib e r
18
Performance
Milliseconds
700
600
500
M C 1
400
M C 2
300
QB
200
100
0
10 20 30 40 50
No. Of Subscribers
19
Subject/Topic Naming
Sydney
DevGroup SupportGroup
Information Information
work gossip work gossip
Sydney
Sydney/DevGroup Sydney/*/Information
Sydney/DevGroup/Information Sydney/DevGroup/*/*
Sydney/DevGroup/Information/work Sydney/DevGroup/**
Sydney/DevGroup/Information/gossip
Sydney/SupportGroup
Sydney/SupportGroup/Information
Sydney/SupportGroup/Information/work
Sydney/SupportGroup/Information/gossip
20
Publish-Subscribe – Some
Thoughts
Highly decoupled messaging style
Publishers don‟t know about subscribers
Subscribers don‟t know who is publishing
Publishers and Subscribers can dynamically appear
and disappear
Issues –
Reliability
Transactions
Security
Performance
21
J2EE Overview
Client tier W e b T ie r Business Component tier E IS T ie r
HTTP W e b RMI
s e rv e r
S e rv le ts , Application com ponents
Browser-based client J S P s E J B s JCA
applications
(HTML, applets,
DHTML/scripting)
J a v a R M I E R P s , C R M s ,
Mainframe TP systems
Java client applications Container Services
C o m p o n e n ts
eg. JTS, JMS JDBC
RDBMS
CAS COM Bridge, RMI over IIOP
W indows/COM client
applications
22
J2EE Application Server
In J2EE, the application server container provides the
execution environment for the J2EE-specific
components
EJBs
Message-driven beans
Connectors
Container provides additional services for hosted
components
Transactions
Security
Directory
Threading
Connection pooling
23
EJB Container
Application Server
EJB Container
EJB Pool Transaction
Service
Directory
Lifecycle Management Service
Persistence
Security
Connection Pool
Service
Thread Pool
24
Beans and State
state
EJB Container
Stateless bean pool state
state
state
EJB
Clients
state
state
Stateful beans
state
25
Deployment Descriptors
EntityStock.BrokerHome
db.entitystock.BrokerHome
db.entitystock.Broker
db.entitystock.BrokerBean
Stateless
Container
EntityStock.BrokerHome
Remote
*
Required
26
J2EE – Some Thoughts
Standards-based, multiple vendors, portable
Good open source technology available
Quality of implementations varies considerably
Java only, wide platform support
Performance is good, but varies between suppliers
Scalable, fail over support through clustering
Good integration with web technologies
Supports various design patterns, flexible but more
complex (e.g. stateful beans/scalability, entity beans)
Standards evolving, need to monitor
27
Message Brokers - Motivation
Key: Web
Message = Component
In-format
In-format In-format In-format In-format
Legacy Legacy Legacy Legacy
System #1 System #2 System #3 System #4
Queue API
Read Message call
Transform Legacyformat
In-format
28
What if
the common In-format message format changes?
any legacy system API changes?
any of the transformations needs modifying?
29
Alternative Solution
Key: Web
Message = Component Transformations in
In-format broker
Simplified
Message
Broker endpoints
Decouples Web
and legacy
components
L1-format L2-format L3-format L4-format
Legacy Legacy Legacy Legacy
System #1 System #2 System #3 System #4
30
Message Brokers
Developed specifically for Enterprise Application
Integration (EAI)
Add new layers of functionality to MOM
Message transformation
Rules engine
Intelligent routing
Adapters
Typically (but not necessarily) built on top of a MOM
layer
31
Message Broker Features
Message transformation – transform between
different source/target formats
Graphical message format definition and mapping tools
High performance transformation engines
Message format repositories
Intelligent routing
Route messages based on message content
Rules Engine
Scripting language, built-in functions
Application programming environment
32
Message Brokers
Hub and Spoke Architecture
Input Messages Output Messages
Transformation
Routing
Rules Processing
33
Example - WMQI
34
BizTalk Mapping Tool
35
Adapters
An adapter is a component that resides between the
message broker and the source/target systems
Simplify complexity of end system interface through an
abstraction layer
Thin adapters - simple wrappers
Thick adapters
Programmable
Abstract representation of services and meta-data
Centralized adapters co-located with broker
Distributed adapters execute in own process and may be
located with source/target system
36
Message Brokers – Some
Thoughts
Embeds transformations/routing in broker
Can get complex
Possible scaling issues
Need to replicate brokers
Failure handling
Lightweight, rarely designed to recover from failure
Often proprietary technology
Good open source, standards-based like Mule now
available
37
Business Process Orchestration
Commonly known as workflow
Aim is to automate business processes which need
to access data and business logic across disparate
back-end applications
Builds on EAI to ensure business processes are
executed in the defined order using the required
data
Builds on middleware providing:
Process execution engine
Visual process definition tools
Process monitoring tools
38
Typical Scenario
Business process automation
Credit
Validation
Accounts
Customer Siebel Payable
Purchasing
Shipping
Sales desk
Accounts
Receivable
Oracle
SAP
Customer
Receiving
39
Example - BizTalk
40
BPO Architecture
Message Broker
Adapter Adapter Adapter
41
BPEL
Web Services standard for describing workflows
Many design and execution tools
Eg ActiveBPEL
Version 2.0 is a significant improvement
42
Integration Issues – Point-to-Point
Point-to-Point evolution
Spaghetti architecture, hard to modify potentially (N2-N)
interfaces
1 business process = 5 business processes =
4 interfaces 20 interfaces
43
Broker Spaghetti
No free lunch
Just relocates the spaghetti
message broker
44
Enterprise Data Model
Source sends message to target with common message format as
payload.
Target receives message and transforms common format into its own
local data representation.
2xN transformations, no broker needed
Getting agreement is the tough bit
Enterprise
Data Model
45
Summary
Middleware:
makes building complex, distributed, concurrent
applications simpler.
institutionalizes proven design practices by
supporting them in off-the-shelf middleware
technologies.
Architect‟s job is to „mix n‟match‟ technologies to create
appropriate solutions
Analyze trade-offs
Open-minded (no hammer/nail thinking)
No good/evil, its just technology
46File đính kèm:
bai_giang_kien_truc_phan_mem_chuong_middleware_tran_minh_tri.pdf

