T-110.5140 Network Application Frameworks and XML Middleware 12.3.2007 Sasu Tarkoma.

Slides:



Advertisements
Similar presentations
RPC Robert Grimm New York University Remote Procedure Calls.
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Distributed Systems Architectures Slide 1 1 Chapter 9 Distributed Systems Architectures.
II. Middleware for Distributed Systems
Introduction to Middleware I
Seminarium on Component-based Software Engineering Jan Willem Klinkenberg CORBA.
University of British Columbia Software Practices Lab Introduction to Middleware for Software Engineering Eric Wohlstadter 539D.
Introduction to Java 2 Enterprise Edition About myself –Neutrinos, Cancer Research, IT Applications Today’s topic: J2EE –Context –Advantages –Components.
Middleware Fatemeh Hendijanifard 1 آزمايشگاه سيستم هاي هوشمند (
Distributed Systems Architectures
CORBA Case Study By Jeffrey Oliver March March 17, 2003CORBA Case Study by J. T. Oliver2 History The CORBA (Common Object Request Broker Architecture)
1. Introducing Java Computing  What is Java Computing?  Why Java Computing?  Enterprise Java Computing  Java and Internet Web Server.
Software Engineering and Middleware: a Roadmap by Wolfgang Emmerich Ebru Dincel Sahitya Gupta.
OCT 1 Master of Information System Management Organizational Communications and Distributed Object Technologies Lecture 5: Distributed Objects.
Software Engineering and Middleware A Roadmap Author: Wolfgang Emmerich Presented by: Sam Malek.
JMS Java Message Service Instructor Professor: Charles Tappert By Student: Amr Fouda.
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
ECSE Software Engineering 1I HO 7 © HY 2012 Lecture 7 Publish/Subscribe.
.NET Mobile Application Development Remote Procedure Call.
Messaging Technologies Group: Yuzhou Xia Yi Tan Jianxiao Zhai.
EJB Overview Celsina Bignoli Distributed Business Applications Server DB Client DB Server DB.
Middleware-Based OS Distributed OS Networked OS 1MEIT Application Distributed Operating System Services Application Network OS.
Introduction to distributed systems Dr. S. Indran 23 January 2004.
1 G52IWS: Distributed Computing Chris Greenhalgh.
Java-Based Middleware IT 490 Stan Senesy IT Program NJIT.
第十四章 J2EE 入门 Introduction What is J2EE ?
Enterprise Java v120131Intro to JavaEE1 Java EE 5 TM Introduction.
Enterprise Java Beans Java for the Enterprise Server-based platform for Enterprise Applications Designed for “medium-to-large scale business, enterprise-wide.
Lecture 15 Introduction to Web Services Web Service Applications.
Information Management NTU Interprocess Communication and Middleware.
11 September 2008CIS 340 # 1 Topics To examine the variety of approaches to handle the middle- interaction (continued) 1.RPC-based systems 2.TP monitors.
Source: Peter Eeles, Kelli Houston, and Wojtek Kozaczynsky, Building J2EE Applicationa with the Rational Unified Process, Addison Wesley, 2003 Prepared.
T Network Application Frameworks and XML Middleware Prof. Sasu Tarkoma.
OCT 1 Master of Information System Management Organizational Communications and Distributed Object Technologies Lecture 5: JMS.
National Institute of Science & Technology Architecture of Message Oriented Middleware Anindya Kumar Jena [1] Architecture of Message Oriented Middleware.
Architecture of Message Oriented Middleware [1]
CORBA IS 8030 – Integrated Computing Environments Dr. Hoganson CORBA Common Object Request Broker Architecture Published by Object Management Group (OMG)
Databases JDBC (Java Database Connectivity) –Thin clients – servlet,JavaServer Pages (JSP) –Thick clients – RMI to remote databases –most recommended way.
CSC 480 Software Engineering Lecture 18 Nov 6, 2002.
XML and Web Services (II/2546)
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
CS 240, Prof. Sarwar Slide 1 CS 240: Software Project Fall 2003 Sections 1 & 2 Dr. Badrul M. Sarwar San Jose State University Lecture #23.
Electronic Payment Systems (1)
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
Chapter 5: Distributed objects and remote invocation Introduction Remote procedure call Events and notifications.
Assignment of JAVA id : BSSE-F10-M-10-JAVA1 Overview of J2EE/Session 2/Slide 1 of 38.
Information-Centric Networks10b-1 Week 10 / Paper 2 Hermes: a distributed event-based middleware architecture –P.R. Pietzuch, J.M. Bacon –ICDCS 2002 Workshops.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
AMQP, Message Broker Babu Ram Dawadi. overview Why MOM architecture? Messaging broker like RabbitMQ in brief RabbitMQ AMQP – What is it ?
Introduction to Distributed Systems and CORBA Slides for CSCI 3171 Lectures E. W. Grundke.
T Network Application Frameworks and XML Middleware and Mobile Middleware Sasu Tarkoma.
September 28, 2010COMS W41561 COMS W4156: Advanced Software Engineering Prof. Gail Kaiser
© Oxford University Press 2011 DISTRIBUTED COMPUTING Sunita Mahajan Sunita Mahajan, Principal, Institute of Computer Science, MET League of Colleges, Mumbai.
Distributed Web Systems Distributed Objects and Remote Method Invocation Lecturer Department University.
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
1 Distributed Systems Architectures Distributed object architectures Reference: ©Ian Sommerville 2000 Software Engineering, 6th edition.
Java Distributed Object System
Introduction to Middleware I
CORBA Alegria Baquero.
#01 Client/Server Computing
The OMG Approach (continued)
Inventory of Distributed Computing Concepts and Web services
DISTRIBUTED COMPUTING
CORBA Alegria Baquero.
Harjutus 3: Aünkroonne hajussüsteemi päring
Inventory of Distributed Computing Concepts
Message Queuing.
Inventory of Distributed Computing Concepts
#01 Client/Server Computing
Presentation transcript:

T Network Application Frameworks and XML Middleware Sasu Tarkoma

News n For security reasons, root access is denied to lab computers n Please send mail to Jani Heikkinen about the login and password n Change in lecture plan u Invited lecture on on Binary XML Standardization (previously 2.4) n Paper list for reading will be announced this week.

Contents n Middleware u Motivation u Examples n Summary

Middleware n Widely used and popular term n Fuzzy term n One definition u “A set of service elements above the operating system and the communications stack” n Second definition u “Software that provides a programming model above the basic building blocks of processes and message passing” (Colouris, Dollimore, Kindberg, 2001)

Why Middleware? n Application development is complex and time-consuming u Should every developer code their own protocols for directories, transactions,..? u How to cope with heterogeneous environments? F Networks, operating systems, hardware, programming languages n Middleware is needed u To cut down development time F Rapid application development u Simplify the development of applications u Support heterogeneous environments and mask differences in OS/languages/hardware

Middleware cont. n Middleware services include u directory, trading, brokering u remote invocation (RPC) facilities u transactions u persistent repositories u location and failure transparency u messaging u Security n Network stack (transport and below) is not part of middleware

Middleware Networking Layer (IP) Transport Layer (TCP/UDP) Underlying network (link layer, physical) Applications APIs for: RPC, messaging, transactions, session management, storage, directories, trading, etc. Middleware provides various transparencies (HW, OS, location, fault,..) for apps.

Examples n Remote Procedure Call (RPC) u call of a remote procedure as it were local u marshalling / unmarshalling n Remote Method Invocation (RMI) u call of a remote method as it were local u marshalling / unmarshalling n Event-based computing u entities receive asynchronous notifications u a notification causes a state change

Transparencies n Location transparency u RPC and RMI used without knowledge of the location of the invoked procedure / object n transport protocol transparency u RPC may be implemented using any transport protocol n transparency of OS and hardware u RPC/RMI uses external data representation u Presentation is important u XML is becoming increasingly important n transparency of programming languages u language independent definition of procedures: CORBA IDL, WSDL

Network Application Framework n Network Application Framework is middleware n Contains services for distributed applications n Middleware as a term is fuzzier and larger n In this course, we focus on network application frameworks and XML u objects (discovery, representation) u directories (overlays,..) u network u security

Object Model n Components: object references, interfaces, actions (methods), exceptions, garbage collection n Distributed object model u client-server model u usually implemented using request-reply u marshalling, unmarshalling u Example: Java RMI u Invocation Semantics F Exactly-once cannot be guaranteed F Typical semantics: at-least-once, at-most-once F At-least-once is good for idempotent operations F CORBA and RMI use at-most-once

NAF XML Security Objects Middleware Assignment: Apache Axis Web Services SOAP with security J2EE CORBA Middleware is a fuzzy term. This is one way to look at things.. SIP Assignment: Schema

Examples n CORBA n Message-oriented Middleware n Event Systems & tuple spaces n Java Message Service n Java 2 Enterprise Edition (J2EE) n.NET

CORBA I n Common Object Request Broker Architecture (CORBA) u Standardized by Object Management Group (OMG) u OMG est. 1989, currently over 800 members n Distributed object-oriented middleware u Network abstraction of object location u Support for heterogeneous environments F hardware, networks, OS, languages

Interface Definition Language (IDL) n IDL is language independent n Used to define object interfaces n Hides underlying object implementation n Language mappings for C, Java, C++, Cobol,.. n IDL compiler generates language specific stubs and skeletons from an IDL definition n Stubs and skeletons marshal and unmarshal request/response data to packets

CORBA II n Object Request Broker (ORB) u Broker pattern, transparent object invocation F object location, activation, communication F CORBA works for both OO and non-OO languages n Interoperable Object Reference (IOR) u Uniquely identifies each object u Shareable reference n Support for dynamic and static method invocation n Many commercial and non-commercial implementations

ClientObject Implementation IDL stubIDL Skeleton Object Request Broker (ORB) I. REQUEST II. Invocation returns

Implementation layer - Dynamic Invocation Interface - Alternative to static stub/skeleton calls - Generic runtime invocation, generic interface defined in IDL, first search and locate interface, then do the invocation Interceptors useful for monitoring and security - generate and interpret object references - demultiplex requests - Handle method invocations via skeletons - activation policies, thread models - object life cycle - pre/post invocation capabilities

CORBA Services n Services specified by OMG to help using distributed objects n Naming Service n Event and Notification Service n Security Service u authentication, access control, non- repudiation n Persistent Object Service u persistent objects (activation / deactivation) n Trading Service u directory service, objects are identified by attributes n Transaction and Concurrency Control Service u database transactions

OMG Distributed Data Service I n The Data Distribution Service for Real-Time Systems (DDS) n The specification defines an API for data-centric publish/subscribe communication for distributed real-time systems. n DDS is a middleware service that provides a global data space that is accessible to all interested applications. n DDS uses the combination of a Topic object and a key to uniquely identify instances of data- objects. n Content filtering and QoS negotiation are supported n DDS is suitable for signal, data, and event propagation.

DDS II Publisher DataWriter Subscriber DataReader Subscriber DataReader Data-Object Identified by means of the Topic Dissemination Data values

Message-oriented Middleware n Transfers messages between applications u Does not consider the content of messages n Asynchronous communication n Direct or queued u Queued (buffered) communication supports wireless clients n Examples u Sun Microsystems JMS u Microsoft: MSMQ u IBM: Websphere MQ

Event Systems I n Traditional MoM systems are message queue based (one-to-one) n Event systems and publish/subscribe are one-to-many u One object monitors another object u Reacts to changes in the object u Multiple objects can be notified about changes n Events address problems with synchronous operation and polling n In distributed environments a logically centralized services mediates events u anonymous communication u expressive semantics using filtering

Event Systems II n Push versus Pull n May be implemented using RPC, unicast, multicast, broadcast,.. n Three main patterns u Observer design pattern F Used in Java / Jini u Notifier architectural pattern F Used by many research systems u Event channel F Used in CORBA Event/Notification Service n Filtering improves scalability / accuracy u Research topic: content-based routing

Tuple Spaces n Tuple-based model of coordination n The shared tuple space is global and persistent n Communication is u decoupled in space and time u implicit and content-based n Examples: Linda, Lime

Java Message Service (JMS) n Asynchronous messaging support for Java n Point-to-point messaging u One-to-one n Topic-based publish/subscribe u SQL for filtering messages at the topic event queue u One-to-many n Message types: u Map, Object, Stream, Text, and Bytes n Durable subscribers u Event stored at server if not deliverable n Transactions with rollback

Source:

JMS messaging n JMS messaging proceeds in the following fashion: u Client obtains a Connection from a ConnectionFactory u Client uses the Connection to create a Session object u The Session is used to create MessageProducer and MessageConsumer objects, which are based on Destinations. u MessageProducers are used to produce messages that are delivered to destinations. u MessageConsumers are used to either poll or asynchronously consume (using MessageListeners) messages from producers.

Java 2 Platform Enterprise Edition (J2EE) n Specifications and practices for developing, deploying, and managing multi-tier server-centric applications u Builds on J2SE u Web Services support n Containers - separation of business logic from resource and lifecycle management u Enterprise JavaBeans (EJB) u Servlets n Java Message Service (JMS) u async. communication supports decoupling

Source:

J2EE Technologies Java API for XML-Based RPC (JAX-RPC) JavaServer Pages Java Servlets Enterprise JavaBeans components J2EE Connector Architecture J2EE Management Model J2EE Deployment API Java Management Extensions (JMX) J2EE Authorization Contract for Containers Java API for XML Registries (JAXR) Java Message Service (JMS) Java Naming and Directory Interface (JNDI) Java Transaction API (JTA) CORBA JDBC data access API.

.NET n The.NET Framework is Microsoft's the next generation application platform u applications, services, web services,.. u Protocol stack and computing model for TCP/IP based distributed computing n Based on the CLR (Common Language Runtime) u JIT compiles and executes.NET code n Components u.NET architecture,.NET Integrated Programming, Common Language Runtime (CLR),.NET System Class Libraries, Data and XML, Web Services / ASP+

.NET Architecture Source: MSDN

Windows Communication Foundation n Single technology platform that unifies a number of different techniques u ASP.NET Web Services (ASMX), Web Service Enhancements (WSE) extensions, the Microsoft Message Queue (MSMQ), Enterprise Services/COM+ runtime environment,.NET Remoting n Address, Binding, Contract n To be included in the next version of Windows

Summary n Middleware u for application development and deployment u for supporting heterogeneous environments u Main communication paradigms: RPC/RMI, asynchronous events (publish/subscribe) u Standardization needed u J2EE, CORBA,.. u J2EE/JMS Java specific n Current trends u Flexibility, decoupled nature u Convergence / unification