Middleware Bus Architecture
Download
Report
Transcript Middleware Bus Architecture
CSIS0402 System Architecture
K.P. Chow
University of Hong Kong
Vendor Architectures
Purpose:
– Products positioning: help to look at the forest not the trees
– Skeleton for clients: tell clients how to develop using their products
– Marketing: help market their products
Historical vendor architectures: IBM SAA, OSF DCE, OMG OMA,
MS DNA
Vendors middleware architectures: the 2 most popular ones:
– Microsoft .NET Distributed Architecture
– SunSoft J2EE: Java 2 Enterprise Edition
Java GUI application
Web browser + Applets
J2EE
JDBC
HTML DHTML XML
Presentation
Tier
Java
Servlet
Web Container
JDBC
Business
Logic Tier
Data Tier
JMS
Mainframe
JDBC
JNDI
JSP
RMIIIOP
Java
mail
JNDI
EJB container
connector
RMIIIOP
JMS
EJB
JMS
RMIIIOP
JNDI
Data
Java
mail
J2EE Components
The client tier: either browser, with Java Applets, or an Java program
The Web tier: a Web server running Java Server Page (JSP) and Java
Servlet
The Enterprise Java Beans Tier: an EJB container
The Enterprise Information System tier: a database or a mainframe
application
The common building blocks are Java components
.NET
Framework
VB
C#
C++
J#
Common Language Specification
ASP.NET (Web Forms,
Web Services, Mobile
Internet Toolkit)
Windows
Forms
ADO.NET and XML
Base Class Library
Common Language Runtime
Operating System
…
.NET
Distributed
Architecture
Presentation
Tier
HTML DHTML XML
Data Tier
DCOM
Mainframe
MSMQ
ADO & OLE DB MSMQ
.NET component
COM+ container
COMTI
ADO &
OLE DB
ASP
IIS Web Server
DCOM
Business
Logic Tier
Rich Client (GUI appn)
Thin Client (Web browser)
DCOM
E-mail &
Messaging
ADO & OLE DB MSMQ
Directory
SQL
Database
File
System
.NET Distributed Architecture Components
Presentation services: includes HTML, DHTML, scripting, ActiveX,
.NET components
Application services: includes Internet Information Server (IIS),
COM+, MSMQ
Data services: Universal data access includes ADO and OLE DB
System services: includes directory, security, management and network
Common building blocks are .NET components
Distributed Architecture
Distributed processing technology
–
–
–
–
Transaction technology
Information retrieval technology, e.g. MIS reports
Collaborative technology, e.g. e-mail
Internal distributed services, e.g. software distribution, remote systems
operation
Distributed architecture patterns:
– Middleware bus architecture
– Hub architecture
– Loosely coupled architecture
Middleware Bus Architecture (1)
Web
Server
Voice
Server
Workstation
Server
B2B
Server
Middleware
Order
Entry
Delivery
Warehouse
Billing
Accounts
Marketing
Middleware Bus Architecture (2)
Used in early days distributed systems implementation: middleware
software is implemented by the organization
Aim to separate the presentation channels from the business services:
middleware provides access to the core services
Either using real-time messages or deferred messages
Advantages:
–
–
–
–
Fast: hardware and software are tailored for the production workload
Secure: installed within an enterprise, usually well protected
Flexible: new channel can be added easily
Support customized requirements, e.g. resiliency
Problem: maintenance of the middleware
Tightly coupled architecture: both the sender and receiver must use the
same technology, follow the same protocol, and understand a common
format for the messages
Hub Architecture (1)
Access Channels
Hub
Transaction
and DB
Services
Access Channels
RequestResponse
Hub
Hub
Send & Forget
(Deferrable)
Transaction
and DB
Services
Hub Architecture (2)
Hub is a server that routes messages from the sender to the destination
Possible actions of the hub:
– Route the message using message type, message origin, data values in the
message, …
– Reformat the message, add information to the message, split the message
to different destinations
– Multicast or broadcast the message
– Security checking
– Monitor the message flow
2 types of hub
– Hub that handles request-response interaction
– Hub that routes deferrable messages
Possible usages: load balancing, bridging network technologies
Disadvantage: additional component implies additional complexity
Web Services Architecture (1)
Loosely coupled web
services integration
Web Services Architecture (2)
A cheap form of integration of existing technologies, such as file
transfer, COM+, RMI
– Suitable for small organizations that have no standardized solutions
– Does not require specialized skills of the middleware products
– Implemented in large organizations that have islands of integration
Disadvantage:
– Slow: all messages are in XML format
– Message integrity and web services security must be handled in the web
services design
Coupling
Coupling is the degree to which one party to the communication must make
assumptions about the other party
The more complex the assumptions, the more tightly coupled the link
Tightly coupled means changes to the interfaces are likely to have effects in
the other party
Coupling
Middleware bus
architecture
Performance
Tightly coupled
Best performance
Loosely coupled
Worst performance
Hub architecture
Web services
architecture