Inventory of Distributed Computing Concepts

Slides:



Advertisements
Similar presentations
Web Service Architecture
Advertisements

Overview of Web Services
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 2.
University of British Columbia Software Practices Lab Introduction to Middleware for Software Engineering Eric Wohlstadter 539D.
G O B E Y O N D C O N V E N T I O N WORF: Developing DB2 UDB based Web Services on a Websphere Application Server Kris Van Thillo, ABIS Training & Consulting.
Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)
Latest techniques and Applications in Interprocess Communication and Coordination Xiaoou Zhang.
6/4/2015Page 1 Enterprise Service Bus (ESB) B. Ramamurthy.
Middleware Fatemeh Hendijanifard 1 آزمايشگاه سيستم هاي هوشمند (
Communication in Distributed Systems –Part 2
JMS Java Message Service Instructor Professor: Charles Tappert By Student: Amr Fouda.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
B. RAMAMURTHY Web services. Topics What is a web service? From OO to WS WS and the cloud WS code.
Web Services Mohamed Fahmy Dr. Sherif Aly Hussein.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
Web services: Why and How OOPSLA 2001 F. Curbera, W.Nagy, S.Weerawarana Nclab, Jungsook Kim.
Client Server Technologies Middleware Technologies Ganesh Panchanathan Alex Verstak.
1 G52IWS: Distributed Computing Chris Greenhalgh.
Chapter 3: Objects, Components, and the Web Textbook IT Architectures and Middleware, Second Edition Chris Britton and Peter Bye AIT 600 Jeff Schmitt September.
Web Services Kanda Runapongsa Dept. of Computer Engineering Khon Kaen University.
OCT 1 Master of Information System Management Organizational Communications and Distributed Object Technologies Lecture 5: JMS.
Databases JDBC (Java Database Connectivity) –Thin clients – servlet,JavaServer Pages (JSP) –Thick clients – RMI to remote databases –most recommended way.
WebService. Outline Overview of Web Services SOAP (messaging) WSDL (service description) UDDI (registry)
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
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.
Presented By:- Sudipta Dhara Roll Table of Content Table of Content 1.Introduction 2.How it evolved 3.Need of Middleware 4.Middleware Basic 5.Categories.
Session 7: JMS, JCA, JSF Dr. Nipat Jongsawat.
AMQP, Message Broker Babu Ram Dawadi. overview Why MOM architecture? Messaging broker like RabbitMQ in brief RabbitMQ AMQP – What is it ?
Chapter 14 Advanced Architectural Styles. Objectives Describe the characteristics of a distributed system Explain how middleware supports distributed.
Enterprise Computing Distribution and components.
A service Oriented Architecture & Web Service Technology.
1 Distributed Systems Architectures Distributed object architectures Reference: ©Ian Sommerville 2000 Software Engineering, 6th edition.
BINA RAMAMURTHY 9/30/2016 Copyright 2010 B. Ramamurthy 1 Distributed Systems.
Internet and Distributed Application Services
The Client/Server Database Environment
Sabri Kızanlık Ural Emekçi
SOA (Service Oriented Architecture)
CORBA Alegria Baquero.
The Client/Server Database Environment
Database Architectures and the Web
CORBA Within the OS & Its Implementation
Web Services.
Overview of Web Services
Inventory of Distributed Computing Concepts and Web services
Inventory of Distributed Computing Concepts
Web-Services-based Systems Architecture, Design and Implementation
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
Enterprise Service Bus (ESB) (Chapter 9)
CORBA Alegria Baquero.
Inventory of Distributed Computing Concepts
Component--based development
Service Oriented Architecture (SOA)
Distributed Systems through Web Services
Distributed Systems Bina Ramamurthy 2018 B. Ramamurthy 2/17/2019.
Component-based Applications
WebServices Using JAX-RPC
Introduction to Web Services
Component Technology Bina Ramamurthy 2/25/2019 B.Ramamurthy.
Web Services and Application Development using Services API
Enterprise Integration
Distributed System using Web Services
Introduction to SOA and Web Services
Distributed System using Web Services
Copyright 1999 B.Ramamurthy
Distributed Systems Architectures
#01 Client/Server Computing
Presentation transcript:

Inventory of Distributed Computing Concepts Chapter 3

Motivation Earlier attempts to replace existing systems failed; Distributed computing environment (DCE): emphasis -- distribution Common object request broker architecture (CORBA): emphasis -- interoperability Uniqueness of SOA is that it leverages existing middleware and distributed computing concepts RPC, distributed objects, message-oriented middleware (MOM), application coupling, etc. 9/10/2019

Issues in distributed systems Heterogeneity in various aspects of a distributed systems Communication modes Synchronous: RPC, ORB Asynchronous: P2P, Publish and subscribe Variations in products Many vendors: IBM, IONA, TIBCO, Apache, Adobe Additional runtime features: fault tolerance, load balancing, transaction handling, usage metering, auditing, .. 9/10/2019

Technical Layers Participant A Participant B Participant C XML ORB Core Assets Participant A Participant B Participant C Business Logic Technology Independent Interface Description Technology Independent Interface Description Technology Independent Interface Description Middleware Mapping XML ORB Technology Adapters Middleware Buses Communication facilities CORBA XML Web services 9/10/2019

Technical Layer 2 : Chapter 3 Core Assets Participant A Participant B Participant C Business Logic Technology Independent Interface Description Technology Independent Interface Description Technology Independent Interface Description Middleware Mapping XML ORB Technology Adapters Middleware Buses Communication facilities CORBA XML Web services 9/10/2019

Technical Layer 1: Ch. 4 -7 Participant A Participant B Participant C Core Assets Participant A Participant B Participant C Business Logic Technology Independent Interface Description Technology Independent Interface Description Technology Independent Interface Description Middleware Mapping XML ORB Technology Adapters Middleware Buses Communication facilities CORBA XML Web services 9/10/2019

Technical Layer 3: Chapter 9 Core Assets Participant A Participant B Participant C Business Logic Technology Independent Interface Description Technology Independent Interface Description Technology Independent Interface Description Middleware Mapping XML ORB Technology Adapters Middleware Buses Communication facilities CORBA XML Web services 9/10/2019

Communication Network Application Application A communication middleware framework isolates the application developers from the details of the network protocol. Network Protocol Stack Network Protocol Stack A communication middleware framework isolates the application developers from the details of the network protocol. 9/10/2019

Communication Middleware Application Application Middleware Middleware Network Protocol Stack Network Protocol Stack 9/10/2019

Remote procedure call (RPC) Client Application Server Application Procedure call Execute call RPC Stub code RPC stub code RPC library/runtime RPC library/runtime RPC stubs and runtime enable location transparency, encapsulate RPC comm infrastructure and provide a proceudre call interface. Network Protocol Stack Network Protocol Stack RPC stubs and runtime enable location transparency, encapsulate RPC communication infrastructure and provide a procedure call interface. 9/10/2019

Distributed Objects Client Application Server Application invoke method Execute method Client proxies Server skeletons ORB ORB RPC stubs and runtime enable location transparency, encapsulate RPC comm infrastructure and provide a proceudre call interface. Network Protocol Stack Network Protocol Stack ORBs enable client applications to remotely instantiate, locate, invoke methods and Delete server objects; Java RMI, Microsoft’s DCOM; CORBA is meant to be platform independent. 9/10/2019

What is CORBA? Common Object Request Broker Architecture (CORBA) specification (/standard) defines a framework for object-oriented distributed applications. It is defined by a consortium of vendors under the direction of Object Management Group (OMG). 9/10/2019

What is CORBA? (contd.) Allows distributed programs in different languages and different platforms to interact as though they were in a single programming language on one computer. Brings advantages of OO to distributed systems. Allows you design a distributed application as a set of cooperating objects and to reuse existing objects. 9/10/2019

Separation of Interface and Implementation An important contribution of CORBA is IDL or Interface Definition Language. Interface and implementation can be in two different languages. Interface abstracts and protects details (trade secrets) from client Interface offers a means of expressing design without worrying about implementation. 9/10/2019

ORB : Conceptual View When a client invokes a member function on a CORBA object, the ORB intercepts the function call. ORB directs the function call across the network to the target object. The ORB then collects the results from the function call returns these to the function call. 9/10/2019

Implementation Details Client ORB Object Stub Access to the services provided by an Object ORB : (Object-oriented middleware) Object Request Broker ORB mediates transfer between client program and server object. 9/10/2019

Message-oriented Middleware (MOM) Made famous by IBM’s MQseries and TIBCO’s Rendezvous products. Based on messages and queues. A message contains a header and a payload. A queue can store and distribute messages. Publish/subscribe model of communication: A topic offers another model of communication between subscribers and publishers. MOM allows for loose coupling between message consumers and message producers enabling dynamic, reliable, flexible, high-performance systems to be built. 9/10/2019

Components and Application Servers An application server mediates between a web server and backend systems. Request from a web client is passed onto an application server by the web server. Programmer productivity, cost-effective deployment, rapid time to market, seamless integration, application portability, scalability, security are some of the challenges that component technology tries to address head on. Enterprise Java Beans is Sun’s server component model that provides portability across application servers, and supports complex systems features such as transactions, security, etc. on behalf of the application components. EJB is a specification provided by Sun and many third party vendors have products compliant with this specification: BEA systems, IONA, IBM, and Oracle. Lets look at J2EE application model. 9/10/2019

J2EE Application Programming Model for Web-based applications Web Service Business Logic Web Application Database Server Enterprise Java Beans EJB container Web Container Web client 9/10/2019

J2EE Application Programming Model for Three-tier Applications Presentation Components Database Server Enterprise Java Beans EJB container Application Container Business Logic 9/10/2019

On to more fundamental concepts: Synchrony Synchronous and asynchronous communications Synchronous: immediate response of communicating partners Server process/thread blocks until response is completed Follows request/response pattern Used when servers are available all the time Typically communicating partners are tightly coupled Examples: request from web client to a web browser for “search” or for “information” CORBA procedure invocation Java RMI (remote method invocation) Traditional remote procedure call (RPC) 9/10/2019

Asynchronous communication Communicating partners are decoupled Message driven: sender creates a message and delivers it to a mediator who then sends it to “a” recipient Server need not be available all the time Sender and receiver loosely coupled Can facilitate high-performance message-based system Example: Any event-driven system Any messaging system (instant messenger) Publish-subscribe mode communications 9/10/2019

Interface vs Payload Semantics Typically interaction between a client and a server results in the execution of an activity (ot transaction) Request needs to be specified by the request. Interface semantics: Requested activity can be encoded in the operation signature in the server’s “interface” or Payload semantics: It can be embedded in the message itself 9/10/2019

Interface Semantics Process1 Process2 getCustomer() retrieveCustomerData() returnResult() Semantics of the activity is explicitly stated in the message/method call 9/10/2019

Payload Semantics Process 1 Process 2 Envelop With message Process 1 Process 2 Requested transaction/activity is embedded in the message Details of the activity not explicit; the semantics are embedded in the message 9/10/2019

Payload Semantics onMessage() 9/10/2019

Payload semantics is generic String transferMoney (amt: decimal, accTo: String) { …} String executeService (message: String) 9/10/2019

Tool to explore Rational rose demo model Windows rosecppdemo.exe Netbeans IDE (integrated development environment) 9/10/2019

Document-centric Messages With emergence of self-descriptive data structures such as XML, document-centric has become popular Semantically rich messages where operation name, its parameters, return type are self descriptive. SOAP (Simple Object Access Protocol) over XML is an example (look at the example in p.45 of your text) Lets look at XML, SOAP, WS evolution. WSSOA 9/10/2019

Tight vs. Loose Coupling An important characteristics of an SOA that is a loosely coupled system. On the technology front this is driven by dynamic discovery and binding enabled by Universal Description, Discovery and Integration (UDDI) On the business front loose coupling addresses the growing need for companies to be flexible and agile with respect changes in their own processes and those of their partners (read p.46) How does loose coupling help in improving agility, flexibility and performance? 9/10/2019

Tight vs. Loose coupling Level Tight coupling Loose coupling Physical coupling Direct physical link required Physical intermediary Communication style synchronous asynchronous Type system Strongly typed (interface semantics) Weak type system (payload semantics) Interaction pattern OO-style navigation of complex object trees Data-centric, self-contained messages Control of process logic Central control of process logic Distributed logic components Service discovery and binding Statically bound services Dynamically bound services Platform dependencies Strong OS and programming language dependencies OS- and programming language dependent 9/10/2019

Summary We discussed the fundamental choices available to a designer in assembling a distributed system A designer must choose appropriate communication infrastructure, synchrony, call semantics, use of intermediary, object-oriented versus data-centric interfaces. All these factors impact the coupling of the distributed systems. 9/10/2019