Modularity. Object Request Broker. Object Request Broker. These slides are based on Wikipedia and other Web sources (URLs given)

Similar documents
(9A05803) WEB SERVICES (ELECTIVE - III)

Introduction to Web Services & SOA

Introduction to Web Services & SOA

Distributed systems. Distributed Systems Architectures. System types. Objectives. Distributed system characteristics.

Web Services Development for IBM WebSphere Application Server V7.0

Distributed Systems Architectures. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 12 Slide 1

DS 2009: middleware. David Evans

Implementing a Ground Service- Oriented Architecture (SOA) March 28, 2006

1.264 Lecture 16. Legacy Middleware

SOAP Specification. 3 major parts. SOAP envelope specification. Data encoding rules. RPC conventions

Chapter 8 Web Services Objectives

Programming Web Services in Java

Overview. Communication types and role of Middleware Remote Procedure Call (RPC) Message Oriented Communication Multicasting 2/36

Sistemi ICT per il Business Networking

Today: Distributed Objects. Distributed Objects

DISTRIBUTED COMPUTING

Web Services in Cincom VisualWorks. WHITE PAPER Cincom In-depth Analysis and Review

A short introduction to Web Services

C exam. IBM C IBM WebSphere Application Server Developer Tools V8.5 with Liberty Profile. Version: 1.

System types. Distributed systems

Distribution and web services

Integrating Legacy Assets Using J2EE Web Services

Chapter 6 Enterprise Java Beans

Distributed Systems. Web Services (WS) and Service Oriented Architectures (SOA) László Böszörményi Distributed Systems Web Services - 1

Distributed systems. Distributed Systems Architectures

Göttingen, Introduction to Web Services

Incorporating applications to a Service Oriented Architecture

Building the Enterprise

Application Servers in E-Commerce Applications

Distributed Multitiered Application

Web services (GSE NL)

Distributed Objects. Object-Oriented Application Development

WebSphere 4.0 General Introduction

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

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

Semantic Web. Semantic Web Services. Morteza Amini. Sharif University of Technology Fall 94-95

Building Web Services in Java

The Umbilical Cord And Alphabet Soup

Agent-Enabling Transformation of E-Commerce Portals with Web Services

RPC flow. 4.3 Remote procedure calls IDL. RPC components. Procedure. Program. sum (j,k) int j,k; {return j+k;} i = sum (3,7); Local procedure call

WhitePaper. Accelerating Web Services Integration With IONA XMLBUS & Altova xmlspy 2002 Altova GmbH and IONA Technologies. markup your mind!

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

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

1.264 Lecture 14. SOAP, WSDL, UDDI Web services

Artix Version Getting Started with Artix: Java

Module 12 Web Service Model

Towards a Web-centric Legacy System Migration Framework

Service Oriented Architectures Visions Concepts Reality

Java Web Service Essentials (TT7300) Day(s): 3. Course Code: GK4232. Overview

INTRODUCTION TO Object Oriented Systems BHUSHAN JADHAV

Middleware: Challenges and Evolution from Procedural to Service Orientation

Developing Interoperable Web Services for the Enterprise

Chapter 4 Communication

SUN. Java Platform Enterprise Edition 6 Web Services Developer Certified Professional

Java J Course Outline

CAS 703 Software Design

CORBA (Common Object Request Broker Architecture)

Realisation of SOA using Web Services. Adomas Svirskas Vilnius University December 2005

Ellipse Web Services Overview

presentation DAD Distributed Applications Development Cristian Toma

Lecture 15: Frameworks for Application-layer Communications

Lecture 15: Frameworks for Application-layer Communications

Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan.

Migration to Service Oriented Architecture Using Web Services Whitepaper

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

UCSD Extension. Fundamentals of Web Services. Instructor: John Pantone. 2007, Objectech Corporation. All rights reserved

ActiveVOS Technologies

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Distributed and Agent Systems

International Journal of Computer Science Trends and Technology (IJCST) Volume 3 Issue 6, Nov-Dec 2015

Simple Object Access Protocol (SOAP) Reference: 1. Web Services, Gustavo Alonso et. al., Springer

Deccansoft Software Services. J2EE Syllabus

BPEL Research. Tuomas Piispanen Comarch

Next-Generation SOA Infrastructure. An Oracle White Paper May 2007

Reference: Java Web Services Architecture James McGovern, Sameer Tyagi, Michael Stevens, and Sunil Mathew, 2003

COURSE 9 DESIGN PATTERNS

Integration Framework. Architecture

Cloud Computing Chapter 2

Appendix A - Glossary(of OO software term s)

Artix ESB. Getting Started with Artix. Version 5.5, December 2008

Sriram Krishnan, Ph.D. NBCR Summer Institute, August 2010

ID2208 Programming Web Services

UNITE 2006 Technology Conference

Oracle Developer Day

Advanced Topics in Operating Systems

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

Oracle Tuxedo. CORBA Technical Articles 11g Release 1 ( ) March 2010

Today: Distributed Middleware. Middleware

CCM Component Definition

IBM Rational Application Developer for WebSphere Software, Version 7.0

History of Enterprise Java

SAP NetWeaver Process Integration 7.1. SAP NetWeaver Regional Implementation Group SAP NetWeaver Product Management December 2007

Service-Oriented Computing in Recomposable Embedded Systems

CapeConnect Three. Concepts

Overview. Distributed Systems. Distributed Software Architecture Using Middleware. Components of a system are not always held on the same host

CmpE 596: Service-Oriented Computing

Course Content for Java J2EE

Services Oriented Architecture and the Enterprise Services Bus

TOPLink for WebLogic. Whitepaper. The Challenge: The Solution:

Oracle9iAS Tech nicaloverview

Oracle. Exam Questions 1z Java Enterprise Edition 5 Web Services Developer Certified Professional Upgrade Exam. Version:Demo

Transcription:

These slides are based on Wikipedia and other Web sources (URLs given) Web Service Distributed Architectures Object Request Broker Software Engineering function Andreas Zeller Saarland University function 1 These slides are based on Wikipedia and other Web sources (URLs given) Web Service Distributed Architectures Object Request Broker Software Engineering function Andreas Zeller Saarland University function 2 Modularity, again Modularity 3

- but this time at a far greater scale 4 The Challenge How do we build applications that are distributed across the entire globe? 5 See Sommerville, Software Engineering, 11.2 Client-Server Systems 6

Thin-client model: Everything is processed on the server Fat-client model: Server only responsible for data management Thin Fat Clients Clients Client Server Presentation Data Management Application Processing 7 http://en.wikipedia.org/wiki/ Distributed_computing A Distributed World A single client can be connected to several servers (and other clients) and access and combine all of their services How do we organize this? 8 Modules statically linked to each other at build time can no longer be separated once composed controlled by the programmer(s) 9

Components linked, composed, and distributed dynamically at run-time allow for arbitrary compositions of services systems can include third-party components of the shelf (COTS) 10 What is a component? A component provides predefined services (like a module or object) A component is deployed composed independent 11 Deployed Components A component can be deployed. A component can communicate with other components Communication and deployment can take place over a network 12

Composed Components A component can be composed to a system by third parties. A component must not require specific construction steps A component must specify its requirements and services A component must only communicate via its interface 13 Independent Components A component can be deployed as a unit. A component therefore is separated from its environment (and other components) A component encapsulates all it needs A component is not deployed in parts 14 What s in a Component? A component contains objects with states Interface State Methods 15

Communication Components need references to be able to address each other Components need transport mechanisms to communicate with each other 16 References Client Server To communicate with a server, a client needs a reference to the server object This reference is obtained from another call or the middleware s name service References Pointers (as the other component may not be stored in memory) 17 Communication Computer A Computer B Client Server Stub Skeleton Stub and Skeleton share common interface 18

Stubs and Skeletons Stub = interface for remote services Can be used just like a local object Skeleton = code template for services Code template with signatures and placeholders for implementation 19 Packing and Unpacking When the client invokes an operation, the stub packs (serializes, marshals) all data and sends it to the computer holding the skeleton object The skeleton unpacks the data and invokes the actual server operation Return values are handled in the same way Needs time; but negligible wrt transport 20 Interface Description Stubs and skeletons are generated from a common interface description Special interface description language (IDL) Specification is language-neutral and thus allows for communication between components in different languages 21

Middleware Middleware = software connecting components The CORBA Standard More Standards: Java EE,.NET Web Services Service-Oriented Architectures 22 CORBA Common Object Request Broker Model Oldest Middleware Standard (OMG 1991) A specification, not a product 23 CORBA Architecture Clients Servers Object Request Broker (ORB) CORBA Services 24

Object Request Broker The ORB manages requests for object services: It locates the object providing the service It prepares it for the request It sends the service request It returns the result to the requester 25 Stubs and Skeletons Client Server IDL stub IDL skeleton Object Request Broker (ORB) 26 The CORBA IDL Describes interface in languageindependent manner Standardized mappings for all languages (best for C++ and Java) 27

CORBA IDL Principles http://en.wikipedia.org/wiki/corba Objects by Reference (Objects by Value is also possible if the code is known or downloadable) Data by Value (short long float double char boolean string enum any ) Structures by Value (structure union array sequence exception) 28 From IDL to Code IDL spec Type defs Stub code Skeleton code 29 A Time Server Interface time.idl struct TimeOfDay { short hour; // 0-23 short minute; // 0-59 short second; // 0-60 }; interface Time { TimeOfDay get_gmt(); } 30

From IDL to Code time.idl time.hh timec.cc times.cc times.hh 31 A Time Server #include <iostream> #include <time> #include "times.hh" time.idl class Time_impl: public virtual POA_Time { public: virtual TimeOfDay get_gmt() throw(corba::systemexception) { struct tm *time_p = gmtime(time(0)); TimeOfDay tod; tod.hour = time_p->tm_hour; tod.minute = time_p->tm_min; tod.second = time_p->tm_sec; times.cc } } return tod; 32 A Time Server (cont d) int main(int argc, char *argv[]) { // Start ORB CORBA::ORB_var orb = CORBA::ORB_init(argc, argv); // Create object Time_impl time_servant; // Issue OID Time_var tm = time_servant._this(); cout << orb->object_to_string(tm) << endl; } // Now go! orb->run(); times.cc 33

A Time Client #include <iostream> #include "time.hh" time.idl int main(int argc, char *argv[]) { // Start ORB CORBA::ORB_var orb = CORBA::ORB_init(argc, argv); // Lookup reference CORBA::Object_var obj = orb->string_to_object(argv[1]); Time_var tm = Time::_narrow(obj); // Access server TimeOfDay tod = tm->get_gmt(); cout << "Time: " << tod.hour << ":" << tod.minute << endl; time.hh } return 0; 34 Client and Server $./server & corbaloc::134.96.235.32:38693/ StandardNS/NameServer-POA/_time $./client corbaloc::134.96.235.32 Time: 10:50 $ 35 CORBA Services Name services map names to objects Clients Notification services objects register for events Life cycle services creating and moving objects Persistence services for Servers saving state Security services authorization and encryption Object Request Broker (ORB) Transaction services two-level commit CORBA Services 36

The Problem with CORBA http://en.wikipedia.org/wiki/ Design_by_committee ht 1994 Itasca Systems, Inc. ht 1994 Novell, Inc. ht 1994 02 Technologies ht 1994 Object Design, Inc. ht 1994 Objectivity, Inc. ht 1994 Ontos, Inc. ht 1994 Oracle Corporation ht 1994 Persistence Software ht 1994 Servio, Corp. ht 1994 SunSoft, Inc. ht 1994 Teknekron Software Systems, Inc. ht 1994 Tivoli Systems, Inc. ht 1994 Versant Object Technology Corporation 37 Design by Committee CORBA was designed by a large committee of vendors No single master architect Standards created as a union of all proposals, with no regard to coherence Vendors not interested in customers moving between implementations 38 CORBA Consequences http://www.davidchappell.com/articles/ article_trouble_corba.html CORBA has lots of standards (some of them with proprietary extensions) but few implementations (Background: first came the specs, then the implementations) Still has a hard time being adopted today Implementations try to lock in users 39

Java EE http://en.wikipedia.org/wiki/java_ee Java EE (Java Platform Enterprise Edition) widely used platform for distributed architectures JBoss IBM WebSphere Apple WebObjects Oracle Application Server BEA WebLogic composed of Enterprise Java Beans (EJBs) 40 Enterprise Java Bean remote interface «interface» Service operation_1() operation_2() bean class ServiceBean operation_1() operation_2() create() home interface «interface» ServiceHome create() find() deployment descriptor 41 Enterprise Java Bean remote Remote interface interface home interface a Java «interface» «interface» Service ServiceHome operation_1() create() operation_2() find() interface for invoking services Home interface for creating EJBs and discovering services bean class deployment descriptor ServiceBean operation_1() Bean class implementation operation_2() create() Deployment descriptor describes services in XML 42

Enterprise Java Bean «interface» Service operation_1() operation_2() «interface» ServiceHome create() find() ServiceBean operation_1() operation_2() create() Remote interface a Java interface for invoking services Home interface for creating EJBs and discovering services Bean class implementation Deployment descriptor describes services in XML 43 Java EE Java EE provides several services like CORBA: clustering, security, transactions, persistence Integrates nicely with Java language (no IDL, for instance) Good if application is 100% Java Similar: Microsoft.NET assemblies (in C# and other.net languages, for instance) 44 Fallacies of Distributed Computing 1. The network is reliable. 2. Latency and transport cost are zero. 3. Bandwidth is infinite. 4. The network is secure. 5. Topology doesn't change. 6. There is one administrator. 7. The network is homogeneous. 45 The list of fallacies generally came about at Sun Microsystems. See http://www.rgoarchitects.com/ Files/fallacies.pdf

Web Services Web Service = a software system designed to support interoperable Machine to Machine interaction over a network (W3C) Based on three standards: SOAP WSDL UDDI 46 Simple Object Access Protocol : a pun on CORBA and others SOAP 47 Originally Simple Object Access Protocol : a pun on CORBA and others SOAP Service Simple Oriented Object Access Protocol 48

SOAP S O A Object P 49 SOAP Basic idea: tunnel remote procedure calls via another protocol (such as HTTP) All data is encoded in XML format 50 A Testing Server 51

A SOAP Query The Header invoked method POST /praktomat/check HTTP/1.1 Host: www.praktomat.org Content-Type: text/plain Content-Length: 1264 SOAPMethodName: urn:praktomat-org:checkprocs#check 52 A SOAP Query The Body <Envelope> <Body> <cp:check xmlns:cp="urn:praktomat-org:checkprocs"> <theprogram> // My new program int main(int argc, char *argv[]) </theprogram> </cp:check> </Body> </Envelope> 53 A SOAP Reply <Envelope> <Body> <cp:checkresponse xmlns:cp="urn:praktomat-org:checkprocs"> <message_list> <message> <location> <file>main.cc</file> <line>45</line> </location> <text>undefined reference</text> </message> The reply can be translated into readable text 54

SOAP Messages http://www.intranetjournal.com/articles/ 200012/id_12_13_00b.html 55 SOAP Communication http://www.intranetjournal.com/articles/ 200012/id_12_13_00b.html 56 SOAP Communication 1. We invoke a service of the local application server 2. which uses a service via its API 3. The API uses SOAP to pack the data into XML 4. and send it to the server via HTTP 5. The server parses the XML data 6. The message is routed to the appropriate service 7. The application executes the task 8. The return is done in the same way packing, unpacking 9. The result can be displayed, stored, processed 57 1) Station 1 executes a command which creates an action on the associated application server. 2) This command generates a process within the application and the result arrives in the application interface. 3) The message is translated into XML format by the implementation and is then sent to the Web server. 4) The XML parser checks the coherence of the XML document and sends the SOAP message via HTTP. 5) The XML parser checks the validity of the message using the HTTP and XML headers, and accepts or rejects it. 6) The message is then routed to the relevant application server and translated by the implementation so

SOAP vs CORBA http://manoftoday.wordpress.com/ 2006/09/29/in-depth-investigation-ofcorba-vs-soap/ SOAP needs more bandwidth and more processing time than binary protocols communication 10 15 times more bandwidth, processing 30 60 times slower than IIOP in CORBA SOAP is easy to deploy and integrate especially across firewalls CORBA and other middleware can be built on top of SOAP 58 WSDL WSDL = Web Service Description Language describes how a Web service is used similar to IDL, but in XML format 59 WSDL elements types data type definitions used to describe the messages exchanged. message an abstract definition of the data being transmitted porttype a set of abstract operations, refering to an input message and output messages binding concrete protocol and data format specifications for the operations and messages defined by a particular porttype 60

WSDL elements port an address for a binding, thus defining a single communication endpoint service aggregate a set of related ports 61 A Banking Service <element name="withdrawdata"> <complextype> <sequence> <element name="account" type="long"/> <element name="amount" type="float"/> </sequence> </complextype> </element> <element name="withdrawresponse"> <complextype> <sequence> <element name="newbalance" type="float"/> <element name="amount" type="float"/> <element name="overdrawn" type="boolean"/> </sequence> </complextype> </element> 62 UDDI UDDI = Universal Description Discovery and Integration Planned as a worldwide registry for Web services Mostly used as corporate/private registries within a company 63

All Combined UDDI Server A programmer searches for a Web service with UDDI The WSDL description is translated into IDL generates a stub from the IDL can use the Web Service via the stub as if it were available locally Stub code WSDL description all automated! SOAP Server Stub 64 Service-Oriented Architectures Goal decompose systems into components all with interfaces described by WDSL (or similar) all composable with SOAP (or similar) loosely coupled along (Web) services interoperable across languages and platforms 65 Web Service Web Service Web Service Legacy Web Service System Web Service Web Service Web Service 66

Migrating to SOA function function How do we migrate an existing system to components? 67 Wrappers Basic idea: wrapping a system (or parts thereof) behind component interface User does not notice that there is a legacy system behind the interface Used for migration: First wrap, then replace components by new implementations 68 Component Wrapper Component Component Wrapper Legacy System Wrapper provides component interface Legacy system remains unchanged New components connect to wrapper 69

Procedural Wrapper Legacy System Procedural Wrapper Component Wrapper provides procedural interface Allows replacing parts of legacy system Legacy systems connect to new components 70 Migrating to SOA function function How do we migrate an existing system to components? 1. Simulate user I/O 2. Call procedures 3. Access data directly 71 Simulate User I/O Legacy System The component simulates user interaction Problem: efficiency 72

Call Procedures The component calls individual procedures Problem: interference with other parts of the system 73 3. Access Data Directly issue: implementatio n effort The component manipulates data directly Problem: large (re-)implementation effort 74 Real systems employ a multitude of techniques! Real Systems Web Service Object Request Broker function function 75

Summary 76