a guide to middleware architectures and technologies by eng. mohanned m. dawoud

39
A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

Upload: monica-francis

Post on 16-Jan-2016

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

A Guide to Middleware Architectures and

TechnologiesBy

Eng. Mohanned M. Dawoud

Page 2: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

Middleware is the plumbing or wiring of IT applications provides proven ways to connect the various software

components in an application. can be used to wire together numerous components in

useful, well-understood topologies. From the application user’s perspective, middleware is

completely hidden. As long as it works, and works well, middleware is invisible infrastructure.

• The only time application users are ever aware of the role middleware plays is when it fails.

Page 3: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

Business Process Orchestrators

Message Brokers

Application Servers

Transport Message-Oriented Middleware, Distributed Objects Systems

J2EE, CCM, .NET

BizTalk, WebSphere Message Broker, SonicMQ

BizTalk, TIBCO StaffWare, ActiveBPEL

Page 4: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

Common Object Request Broker Architecture (CORBA)

Message-oriented middleware J2EE Message brokers Business process orchestrators

Page 5: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

Venerable distributed object technology Many different implementations

Network

Client

Object Referencerequest

Server

Servantreply

client ORB server ORB

Page 6: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

Requests to servants are remote calls, and hence relatively expensive (slow).

Like any distributed application, servers may be unavailable due to network or process or machine failure.

If a servant holds state concerning an interaction with a client and the servant fails, the state is lost.

State management in server objects creates ‘interesting’ recovery issues

Page 7: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

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

Page 8: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

Send (queue, message) Put message onto queue

Receive (queue, message) Get message from queue

No dependency on state of receiving application on message send

receivesend

queue

Page 9: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

Best effortThe MOM server will do its best to deliver the message.

PersistentThe MOM layer guarantees to deliver messages despite system and network failures

Transactional Messages can be bunched into “all or nothing” units for delivery.

Page 10: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

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

Page 11: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud
Page 12: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

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

receivesend

Request queue

Response queuesendreceive

Page 13: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

MOM Server

Senders Receivers

MOM Server

ApplicationQ

ApplicationQ

Page 14: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

MOM Server

Senders Receivers

MOM Server

ReplayQ

RequestQ

Page 15: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

Highly attractive asynchronous technology

Supports loosely-coupled, dynamic applications

Scales well, high throughput possible Many implementations, various qualities

of service

Page 16: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

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

Pub Subject

Sub

Sub

SubCreate/Publish Register/

Subscribe

Page 17: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

rvd

rvd

Publisher

Subscriber

rvd

Subscriber

rvd

Subscriber

rvrd

rvd

Subscriber

rvd

Subscriber

rvrd

Based on TIBCO Rendezvous

Page 18: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

0100200300

400500600700

10 20 30 40 50No. Of Subscribers

Milliseconds

MC1

MC2

QB

Page 19: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

Sydney

DevGroup SupportGroup

InformationInformation

work gossip work gossip

SydneySydney/DevGroupSydney/DevGroup/InformationSydney/DevGroup/Information/workSydney/DevGroup/Information/gossipSydney/SupportGroupSydney/SupportGroup/InformationSydney/SupportGroup/Information/workSydney/SupportGroup/Information/gossip

Sydney/*/InformationSydney/DevGroup/*/*Sydney/DevGroup/**

Page 20: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

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

Page 21: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

There are many definitions for application servers, but all pretty much agree on the core elements.

An application server is a component-based server technology that resides in the middle-tier of an N-tier architecture,.

It provides distributed communications, security, transactions and persistence.

Page 22: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud
Page 23: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

Client Tier: In a web application, the client tier typically comprises an Internet browser that submits HTTP requests and downloads HTML pages from a web server.

Web Tier: The web tier runs a web server to handle client requests.

Page 24: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

Business Component Tier: Receive requests from the web tier, and satisfy requests usually by accessing one or more databases, returning the results to the web tier.

Enterprise Information Systems Tier: This typically consists of one or more databases and back-end applications like mainframes and other legacy systems.

Page 25: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

WebComponent

Legacy System #1

Legacy System #2

Legacy System #3

Legacy System #4

In-format

In-format In-format In-format In-format

Key:Message =

In-format

Message Transform Legacyformat

APIcall

QueueRead

Page 26: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

the common In-format message format changes?

any legacy system API changes? any of the transformations needs

modifying?

Page 27: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

WebComponent

Legacy System #1

Legacy System #2

Legacy System #3

Legacy System #4

In-format

L1-format L2-format L3-format L4-format

Key:Message =

MessageBroker

Transformations in broker

Simplified endpoints

Decouples Web and legacy components

Page 28: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

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

Page 29: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

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

Page 30: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

Transformation

Routing

Rules Processing

Input Messages Output Messages

Hub and Spoke Architecture

Page 31: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

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

Page 32: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

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

Page 33: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

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

Page 34: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

Business process automation

CustomerPurchasing

SAPCustomerReceiving

Siebel

Sales deskShipping

CreditValidation

AccountsPayable

AccountsReceivable

Oracle

Page 35: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud
Page 36: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

Point-to-Point evolution Spaghetti architecture, hard to modify potentially (N2-

N) interfaces

1 business process = 4 interfaces

5 business processes = 20 interfaces

Page 37: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

No free lunch … Just relocates the spaghetti

message broker

Page 38: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

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

Page 39: A Guide to Middleware Architectures and Technologies By Eng. Mohanned M. Dawoud

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