Essential Software Architecture

Similar documents
Introduction. Enterprise Java Instructor: Please introduce yourself Name Experience in Java Enterprise Edition Goals you hope to achieve

Java Enterprise Edition

Problems in Scaling an Application Client

Integrating Legacy Assets Using J2EE Web Services

(9A05803) WEB SERVICES (ELECTIVE - III)

Application Servers in E-Commerce Applications

Oracle 10g: Build J2EE Applications

Vision of J2EE. Why J2EE? Need for. J2EE Suite. J2EE Based Distributed Application Architecture Overview. Umair Javed 1

Deccansoft Software Services. J2EE Syllabus

EJB ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY. EJB Enterprise Java

J2EE - Version: 25. Developing Enterprise Applications with J2EE Enterprise Technologies

Today: Distributed Objects. Distributed Objects

Appendix A - Glossary(of OO software term s)

Application Connectivity Strategies

index_ qxd 7/18/02 11:48 AM Page 259 Index

WebSphere 4.0 General Introduction

Enterprise Java Beans

Notes. Submit homework on Blackboard The first homework deadline is the end of Sunday, Feb 11 th. Final slides have 'Spring 2018' in chapter title

What we need. Agenda. What s J2EE. Challenges of Enterprise Application Development

Component-Based Software Engineering. ECE493-Topic 5 Winter Lecture 26 Java Enterprise (Part D)

MOM MESSAGE ORIENTED MIDDLEWARE OVERVIEW OF MESSAGE ORIENTED MIDDLEWARE TECHNOLOGIES AND CONCEPTS. MOM Message Oriented Middleware

1Z Oracle. Java Enterprise Edition 5 Enterprise Architect Certified Master

INTRODUCTION TO Object Oriented Systems BHUSHAN JADHAV

J2EE Interview Questions

SUN Sun Certified Enterprise Architect for J2EE 5. Download Full Version :

Distributed Systems. Messaging and JMS Distributed Systems 1. Master of Information System Management

MTAT Enterprise System Integration. Lecture 2: Middleware & Web Services

PASS4TEST. IT Certification Guaranteed, The Easy Way! We offer free update service for one year

Distributed Middleware. Distributed Objects

Oracle9iAS Tech nicaloverview

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING ACADEMIC YEAR (ODD SEMESTER) QUESTION BANK

Implementing a Web Service p. 110 Implementing a Web Service Client p. 114 Summary p. 117 Introduction to Entity Beans p. 119 Persistence Concepts p.

~ Ian Hunneybell: CBSD Revision Notes (07/06/2006) ~

Enterprise JavaBeans. Layer:01. Overview

An Event Service Implemented with J2EE for Integration of Enterprise Systems

Data Management in Application Servers. Dean Jacobs BEA Systems

Connecting ESRI to Anything: EAI Solutions

Enterprise Software Architecture & Design

CSC407: Software Architecture Winter 2007 Middleware

Enterprise Java Security Fundamentals

Architect Exam Guide. OCM EE 6 Enterprise. (Exams IZO-807,1ZO-865 & IZO-866) Oracle Press ORACLG. Paul R* Allen and Joseph J.

Overview p. 1 Server-side Component Architectures p. 3 The Need for a Server-Side Component Architecture p. 4 Server-Side Component Architecture

Example Purchase request JMS & MDB. Example Purchase request. Agenda. Purpose. Solution. Enterprise Application Development using J2EE

3C05 - Advanced Software Engineering Thursday, April 29, 2004

Plan. Department of Informatics. Advanced Software Engineering Prof. J. Pasquier-Rocha Cours de Master en Informatique - SH 2003/04

Developing Java TM 2 Platform, Enterprise Edition (J2EE TM ) Compatible Applications Roles-based Training for Rapid Implementation

PLATFORM TECHNOLOGY UNIT-5

Verteilte Systeme (Distributed Systems)

DS 2009: middleware. David Evans

CERTIFICATION SUCCESS GUIDE ENTERPRISE ARCHITECT FOR JAVA 2 PLATFORM, ENTERPRISE EDITION (J2EE ) TECHNOLOGY

Building the Enterprise

Market leading web application server product

BEAWebLogic. Server. Introduction to WebLogic Server and WebLogic Express. Version 8.1 Revised: June 28, 2006 Part Number:

X100 ARCHITECTURE REFERENCES:

Today: Distributed Middleware. Middleware

Distributed Multitiered Application

Course Content for Java J2EE

BEA WebLogic. Server. Introduction to WebLogic Server and WebLogic Express

CO Java EE 7: Back-End Server Application Development

Vendor: SUN. Exam Code: Exam Name: SUN Certified ENITRPRISE ARCHITECT FOR J2EE(tm)TECHNOLOGY. Version: Demo

BEA WebLogic Server. and BEA WebLogic Express. Introduction to BEA WebLogic Server 6.1

J2EE Development. Course Detail: Audience. Duration. Course Abstract. Course Objectives. Course Topics. Class Format.

Web Design and Applications

Overview: Siebel Enterprise Application Integration. Version 8.0 December 2006

Enterprise JavaBeans (I) K.P. Chow University of Hong Kong

Enterprise Java Unit 1-Chapter 2 Prof. Sujata Rizal Java EE 6 Architecture, Server and Containers

History of Enterprise Java

Oracle WebLogic Server 11g: Administration Essentials

Middleware: Challenges and Evolution from Procedural to Service Orientation

Java EE 6: Develop Business Components with JMS & EJBs

Asynchrone Kommunikation mit Message Driven Beans

Designing a Distributed System

presentation DAD Distributed Applications Development Cristian Toma

Chapter 1: Distributed Information Systems

GemStone Systems. GemStone. GemStone/J 4.0

Chapter 2 FEATURES AND FACILITIES. SYS-ED/ Computer Education Techniques, Inc.

Middleware definitions and overview

Application Servers G Session 11 - Sub-Topic 2 Using Enterprise JavaBeans. Dr. Jean-Claude Franchitti

Enterprise Web based Software Architecture & Design

TransactionVision Technical White Paper

In the most general sense, a server is a program that provides information

Electronic Payment Systems (1) E-cash

SAI/ST course Distributed Systems

ITdumpsFree. Get free valid exam dumps and pass your exam test with confidence

Scaling Out Tier Based Applications

JDBC Today C HAPTER 1 INTRODUCTION

Chapter 2 Architectures. Software Architectures

Exam Actual. Higher Quality. Better Service! QUESTION & ANSWER

Applications MW Technologies Fundamentals. Evolution. Applications MW Technologies Fundamentals. Evolution. Building Blocks. Summary.

CICS solutions White paper Delivering e-business access to CICS: strategic options.

NetBeans IDE Field Guide

Page 1. Extreme Java G Session 8 - Sub-Topic 2 OMA Trading Services

Chapter 6 Enterprise Java Beans

Goal: Offer practical information to help the architecture evaluation of an SOA system. Evaluating a Service-Oriented Architecture

Selecting Enterprise JavaBeans Technology

Oracle FLEXCUBE Universal Banking 12.0 Interface Getting started. Release 1.0

Borland Application Server Certification. Study Guide. Version 1.0 Copyright 2001 Borland Software Corporation. All Rights Reserved.

Gustavo Alonso, ETH Zürich. Web services: Concepts, Architectures and Applications - Chapter 1 2

Distributed Systems

Chapter 2 Introduction

Transcription:

Essential Software Architecture Session 4: A Guide to Middleware Architectures and Technologies 1 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 2 Middleware Classification Business Process Orchestrators BizTalk, TIBCO StaffWare, ActiveBPEL Message Brokers Application Servers BizTalk, WebSphere Message Broker, SonicMQ J2EE, CCM,.NET Transport Message-Oriented Middleware, Distributed Objects Systems 3 1

Outline CORBA Message-oriented middleware J2EE Message brokers Business process orchestrators 4 CORBA Venerable distributed object technology Still widely used in telecomms, defense Many different implementations Client Object Reference request Server Servant reply client ORB server ORB Network 5 CORBA Code Example module ServerExample { interface MyObject { string isalive(); }; }; CORBA IDL Server class MyServant extends _MyObjectImplBase { 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 // Service directory details omitted for simplicity MyServant servantref = lookup( Myservant )String reply = servantref.isalive(); Client 6 2

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 7 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 8 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 queue receive 9 3

Persistence queue 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 10 MOM Server Senders Sending Applications Receivers Sending Applications Message Handler Thread Pool MOM Server Peer-to-peer MOM technologies are the alternative design 11 MOM Transactions Begin transaction... update database record put message on queue... commit transaction Begin transaction... get message from queue update database record... commit transaction 12 4

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 13 Scaling MOM MOM Server ApplicationQ Senders Receivers MOM Server ApplicationQ 14 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 15 5

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 Pub Create/ Publish Subject Register/ Subscribe Sub Sub 16 Publish-Subscribe with Multicast Subscriber Subscriber rvd rvd rvrd Publisher Based on TIBCO Rendezvous rvd rvrd rvd rvd rvd Subscriber Subscriber Subscriber 17 Performance Milliseconds 700 600 500 400 300 200 100 0 MC1 MC2 QB 10 20 30 40 50 No. Of Subscribers 18 6

Subject/Topic Naming Sydney DevGroup SupportGroup Information Information work gossip work gossip Sydney Sydney/DevGroup Sydney/DevGroup/Information Sydney/DevGroup/Information/work Sydney/DevGroup/Information/gossip Sydney/SupportGroup Sydney/SupportGroup/Information Sydney/SupportGroup/Information/work Sydney/SupportGroup/Information/gossip Sydney/*/Information Sydney/DevGroup/*/* Sydney/DevGroup/** 19 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 20 J2EE Overview Client tier Web Tier Business Component tier EIS Tier HTTP Browser-based client applications (HTML, applets, DHTML/scripting) Web server Servlets, JSPs RMI Application components EJBs JCA Java RMI ERPs, CRMs, Mainframe TP systems Java client applications CAS COM Bridge, RMI over IIOP Container Services Components eg. JTS, JMS JDBC RDBMS Windows/COM client applications 21 7

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 22 EJB Container EJB Container Application Server EJB Pool Transaction Service Lifecycle Management Directory Service Persistence Connection Pool Security Service Thread Pool 23 Beans and State state Stateless bean pool EJB Container state state state state EJB Clients Stateful beans state state 24 8

Deployment Descriptors <ejb-jar> <enterprise-beans> <session> <ejb-name>entitystock.brokerhome</ejb-name> <home>db.entitystock.brokerhome</home> <remote>db.entitystock.broker</remote> <ejb-class>db.entitystock.brokerbean</ejb-class> <session-type>stateless</session-type> <transaction-type>container</transaction-type> </session> </enterprise-beans> <assembly-descriptor> <container-transaction> <method> <ejb-name>entitystock.brokerhome</ejb-name> <method-intf>remote</method-intf> <method-name>*</method-name> </method> <trans-attribute>required</trans-attribute> </container-transaction> </assembly-descriptor> </ejb-jar> 25 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 26 Message Brokers - Motivation Key: Message = Web Component In-format In-format In-format In-format In-format System #1 System #2 System #3 System #4 In-format Queue Read Message Transform format API call 27 9

What if the common In-format message format changes? any legacy system API changes? any of the transformations needs modifying? 28 Alternative Solution Web Key: Component Message = In-format Message Broker L1-format L2-format L3-format L4-format System #1 System #2 System #3 System #4 Transformation s in broker Simplified endpoints Decouples Web and legacy components 29 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 30 10

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 31 Message Brokers Hub and Spoke Architecture Input Messages Transformation Output Messages Routing Rules Processing 32 Example - WMQI 33 11

BizTalk Mapping Tool 34 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 metadata Centralized adapters co-located with broker Distributed adapters execute in own process and may be located with source/target 35 system 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 36 12

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 37 Typical Scenario Business process automation Credit Validation Customer Purchasing Siebel Accounts Payable Sales desk Accounts Receivable Oracle Shipping SAP Customer Receiving 38 Example - BizTalk 39 13

BPO Architecture Message Broker Adapter Adapter Adapter 40 BPEL Web Services standard for describing workflows Many design and execution tools Eg ActiveBPEL Version 2.0 is a significant improvement 41 Integration Issues Point-to-Point Point-to-Point evolution Spaghetti architecture, hard to modify potentially (N 2 -N) interfaces 1 business process = 4 interfaces 5 business processes = 20 interfaces 42 14

Broker Spaghetti No free lunch Just relocates the spaghetti message broker 43 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 44 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 45 15