Software Architecture

Similar documents
Software Architecture

How to Overcome Web Services Security Obstacles

Software Architecture

Simple Object Access Protocol (SOAP)

Service Oriented Architecture. 9. Web Services Darmstadt University of Applied Sciences, Department of Computer Science Dr. Markus Voß (Accso GmbH)

Software Architecture

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

Distribution and web services

Introduction to Web Services & SOA

Introduction to Web Services & SOA

MR AZIZUL ZAMRI BIN MUHAMED AMIN WEB : Your Logo

Networking and Internetworking 1

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

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

Web-Based Systems. INF 5040 autumn lecturer: Roman Vitenberg

WWW, REST, and Web Services

Lecture 15: Frameworks for Application-layer Communications

Lecture 15: Frameworks for Application-layer Communications

2. Basic Usage Scenarios

CptS 464/564 Lecture 18

AQU Information Systems Fundamentals Spring 2012 Pg. 9.1

Web Engineering (CC 552)

(9A05803) WEB SERVICES (ELECTIVE - III)

Software MEIC. (Lesson 20)

The Internet and the Web. recall: the Internet is a vast, international network of computers

Chapter 2: Technology Infrastructure: The Internet and the World Wide Web

A Balanced Introduction to Computer Science, 3/E David Reed, Creighton University 2011 Pearson Prentice Hall ISBN

CCNA Exploration Network Fundamentals. Chapter 03 Application Functionality and Protocols

Announcements Fawzi Emad, Computer Science Department, UMCP

04 Webservices. Web APIs REST Coulouris. Roy Fielding, Aphrodite, chp.9. Chp 5/6

E-Commerce. Infrastructure I: Computer Networks

UNITE 2003 Technology Conference

Chapter Topics. The History of the Internet. Chapter 7: Computer Networks, the Internet, and the World Wide Web

CCNA Exploration1 Chapter 3: Application Layer Functionality and Protocols

XML Web Service? A programmable component Provides a particular function for an application Can be published, located, and invoked across the Web

The Internet Advanced Research Projects Agency Network (ARPANET) How the Internet Works Transport Control Protocol (TCP)

Networking Applications

Web Services. Moving towards Service Oriented Architectures. Rensselaer CSCI 4220 Network Programming

Service Oriented Architectures Visions Concepts Reality

Chapter 4: Networking and the Internet. Figure 4.1 Network topologies. Network Classifications. Protocols. (continued)

Chapter 4: Networking and the Internet

1. Introduction and Concepts

Full file at

Full file at Chapter 2: Technology Infrastructure: The Internet and the World Wide Web

ICENI: An Open Grid Service Architecture Implemented with Jini Nathalie Furmento, William Lee, Anthony Mayer, Steven Newhouse, and John Darlington

Semantic Web. Semantic Web Services. Morteza Amini. Sharif University of Technology Spring 90-91

Advanced Lectures on knowledge Engineering

COS 140: Foundations of Computer Science

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

UNITE 2006 Technology Conference

EEC-682/782 Computer Networks I

Distributed Multitiered Application

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

Chapter 3: Network Protocols and Communications CCENT Routing and Switching Introduction to Networks v6.0 Instructor Planning Guide

Business Data Communications and Networking

ID2208 Programming Web Services

WEB TECHNOLOGIES CHAPTER 1

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

DS 2009: middleware. David Evans

Chapter 11: Wide-Area Networks and the Internet

SOAP Protocol CS 183 Hypermedia and the Web

Objectives. Connecting with Computer Science 2

Chapter 10: Application Layer CCENT Routing and Switching Introduction to Networks v6.0

History of TCP/IP and Internet (continued) TCP/IP. History of TCP/IP and Internet. History of TCP/IP and Internet

Announcements Fawzi Emad, Computer Science Department, UMCP

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

Middleware. Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004

Layering in Networked computing. OSI Model TCP/IP Model Protocols at each layer

ReST 2000 Roy Fielding W3C

XML Web Services Basics

Migration to Service Oriented Architecture Using Web Services Whitepaper

Web Development. Lab. Bases de Dados e Aplicações Web MIEIC, FEUP 10/11. Sérgio Nunes

Persistent systems. Traditional software: Data stored outside of program. Program

Introduction to the TCP/IP protocol suite

Programming Web Services in Java

The Client Server Model and Software Design

Communicating over the Network

Data Communication & Computer Networks MCQ S

ISO OSI 7 Layer model and the TCP/IP protocol stack. Introduction to the TCP/IP protocol suite. Networking Glossary

CCNA R&S: Introduction to Networks. Chapter 10: The Application Layer

HTML/CSS Essentials. Day Three Ed Crowley

Chapter 4: Networking and the Internet. Network Classifications. Network topologies. Network topologies (continued) Connecting Networks.

02267: Software Development of Web Services

Traditional Web Based Systems

Data Communication and Network. Introducing Networks

The OSI Model. Open Systems Interconnection (OSI). Developed by the International Organization for Standardization (ISO).

Network Fundamentals Chapter 2 Modified by Tony Chen 05/20/2008

Göttingen, Introduction to Web Services

Asynchronous and Synchronous Messaging with Web Services and XML Ronald Schmelzer Senior Analyst ZapThink, LLC

Web Services Chapter 9 of Coulouris

DISTRIBUTED COMPUTING

Electronic Payment Systems (1) E-cash

Lesson 3 SOAP message structure

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF INFORMATION TECHNOLOGY. (An NBA Accredited Programme) ACADEMIC YEAR / EVEN SEMESTER

Sistemi ICT per il Business Networking

Objective. Application Layer Functionality and Protocols. CCNA Exploration 4.0 Network Fundamentals Chapter 03. Universitas Dian Nuswantoro

Unit 28 Website Production ASSIGNMENT 1

SOAP / WSDL INTRODUCTION TO SOAP, WSDL AND UDDI, THE COMBO FOR BIG WEB SERVICES SOAP - WSDL - UDDI. PETER R. EGLI peteregli.net. peteregli.

Introduction to Computer Science. William Hsu Department of Computer Science and Engineering National Taiwan Ocean University

Integrating esystems: Technology, Strategy, and Organizational Factors

Transcription:

Software Architecture Lecture 9 Service-Oriented Architectures João Pedro Sousa George Mason University previously data flow batch sequential dataflow network (pipe & filter) acyclic, fan-out, pipeline, Unix closed loop control call-return main program/subroutines information hiding - objects stateless client-server SOA interacting processes communicating peers event systems implicit invocation publish-subscribe data-oriented repository transactional databases stateful client-server blackboard modern compiler data-sharing compound documents hypertext Fortran COMMON LW processes hierarchical tiers interpreter N-tiered client-server SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 2 1

previously call-return styles single process flavors main-subroutine, layers, modules, objects distributed flavors components, tiers implementing distributed call-return: RPC, RMI large-scale, open-ended distributed flavors SOA SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 3 today large-scale, distributed call-return enabler: the Internet widely-distributed client-server example: World-Wide Web the hinge of service-orientation: service discovery mainstream implementations of SOA web services composition UDDI, SOAP Acknowledgment some of the material presented in this course is adapted from 17655, taught to the MSE at CMU by David Garlan and Tony Lattanze SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 4 2

the Internet began as cold war project within ARPA later Defense Advanced Research Projects Agency communications system that would survive a nuclear exchange: ARPANET no centralized control point impervious to EMP (electromagnetic pulse) 1967 - initial plan for connecting 4 research sites ultimately create a public utility to transmit computer data 1971-15 nodes on the ARPANET UCLA, SRI, UCSB, U. Utah, BBN, MIT, RAND, SDC, Harvard, Lincoln Labs, Stanford, UIUC, CWRU, CMU, NASA/Ames Ray Tomlinson, a scientist from Massachusetts, sends himself an email between two computers the initial killer app became e-mail SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 5 ARPA establishes TCP/IP in 1982 Transmission Control Protocol/Internet Protocol network software and hardware was non-standard and hand-crafted before TCP/IP TCP/IP provides layered abstraction of network services sets the stage: Local Area Networks (LANs) an internet as a set of LANs connected via IP an intranet as a private/corporate internet Internet as the global network SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 6 3

ISO s OSI reference model in 1983 Open Systems Interconnection extends the ideas in TCP/IP 7 6 5 4 3 2 1 application presentation session transport network data link physical goal: separation of concerns enables good implementation at each level each layer is independent of the ones on top layer n depends on the spec of n-1, but not on its implementation/manufacturer SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 7 the OSI reference model is roughly adhered in practice 7 6 5 4 3 2 1 application presentation session transport segments network packets data link frames physical bits realm of middleware app-specific (SMTP, http ) or independent (RMI, CORBA ) TCP/IP protocol stack SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 8 4

the upper layers of the OSI 7 6 5 4 3 2 1 application presentation session transport network data link physical specifies: application-specific protocols (e.g., http, smtp, ftp, telnet) does: support app-specific functionality specifies: data formats and transformation (e.g., MIME) does: serialization, compression, encryption, encoding transformation (EBCDIC/ASCII) specifies: establishing long lived connections does: checkpointing, adjournment, restart in practice: often organization above TCP/IP does not follow this layering SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 9 Internet expanded fast 1984 - hosts on the Internet tops 1,000 DNS introduced Domain Name System 1987 - Number of hosts tops 10,000 1988 - worm burrows through the net affecting 6,000 of 60,000 hosts on the Internet CERT formed by DARPA Computer Emergency Readiness Team 1989 - number of hosts tops 100,000 more in a bit SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 10 5

Organization Layer 4/12/2011 to manage scale: human readable URLs Universal Resource Locators example ftp://ftp.cs.vu.nl/pub/globe/index.txt access protocol host name ROOT local name resources are servers and files Global Layer Zone Zone Zone Local Layer Zone is a portion of name space managed by the same name server SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 11 DNS servers resolve URLs to IP addresses example: resolve ftp://ftp.cs.vu.nl/pub/globe/index.txt in practice: a resolver on your PC, another on your ISP... DNS resolver each with cashing Client app #<...> stands for 32-bit IP address of server <...> SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 12 6

the development of the internet led to the client-server style replaces mainframe/dumb-terminal model different viewpoints: physical (allocation viewtype) clients are user computers (many) servers are central computers (few) the connectors are the physical telecom infrastructure (cables, routers, etc.) run-time (C&C viewtype) clients are user processes server are central resources/processes the connectors are software working over TCP/IP SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 13 architecturally, the client-server style: elements clients, servers, call-return connectors connector implementations: RPC 1976, RMI 1995, SOAP 1998... over TCP/IP 1982 or http 90 s topology star, tiered (hierarchical star) servers don t know the identities/number of clients that will request services clients know the identity of a server <1998 or can discover it >1998 more in a bit SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 14 7

relation among views client-server usual picture: Client Client Server T C P / I P C-App transport network data link physical module view Client Process TCP/IP C&C view Server Process S-App transport network data link physical T C P / I P module view allocation view allocation view SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 15 client-server example World-Wide Web hypertext idea first published in 1965 by Ted Nelson as part of the Xanadu project Tim Berners-Lee, a software engineer at CERN, saw the potential of this idea for the Internet in 1989 initially rejected, Tim re-circulated his proposal and writes first WYSIWYG browser in 1990 libwww supports new protocol http, on top of TCP/IP hypertext transfer protocol new format for documents: HTML HyperText Markup Language the next killer app became web browsing (aka surfing) SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 16 8

client-server example World-Wide Web browser WWW server http libwww libwww http T C P / I P transport network data link physical module view Client Process http C&C view Server Process thin clients, called browsers invoke DNS to resolve URLs request documents to WWW servers over http interpret HTML documents servers host data in many formats (in addition to HTML) serve http requests transport network data link physical SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 17 T C P / I P module view role of Internet continued to expand to business applications client-server applications have been around since the early days of the internet early 80 s: proprietary app protocols over TCP/IP late 80 s: candidate standards emerge, e.g. CORBA, DCOM... with some success, sometimes in specialized domains in the late 90 s push for business over the Internet requirements considerably different from original vision of ARPANET => led to TCP/IP vision at CERN/Berners-Lee => led to http vision SOA: Internet-wide protocol for e-business the next killer app is e-services will web services fill the role of supporting technology? SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 18 9

s-app 1 s-app 2 s-app 4 s-app 5 4/12/2011 Service Oriented Architectures are evolution of tiered style complex apps already existed normally all components hosted/maintained by the same organization SOA adds level of indirection service is a unit of work several candidate providers maybe hosted by diff organizations a provider may be discovered before deployment, or dynamically at run time client app data store 1 indirection data store 2 client app (browser) s-app 3 indirection data store 3 SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 19 take 5 SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 20 10

outline enabler: the Internet widely-distributed client-server example: World-Wide Web the hinge of service-orientation: service discovery current implementation of SOA web services composition UDDI, SOAP SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 21 concept of service discovery develops in ubiquitous computing circa 1998 an application may need to find some component with certain capabilities discovery is guided by the capabilities, not the identity of servers, aka service providers examples: find a duplex printer < 100 ft away and with < 2 minute wait find a weather forecast website with wind details for x ZIP code find a speech recognizer with > 95% accuracy SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 22 11

the service becomes more important than the identity of the server (URI/URL) business benefits from competition among providers that offer similar functions/services fundamental tenet is shared vocabulary to describe services some combination of: name, aka service type e.g. printing, weather forecasting, ticket reservation semantic description, e.g. ontology API signature specification: methods, parameters, results WSDL, etc. with IDL ancestors all the way back to in the 80 s Interface Description Languages SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 23 discovery mechanisms use different patterns directed discovery clients are configured with a list of address to go ask for services client-initiated broadcast (aka aggressive) clients broadcast service requests on demand supplier-initiated broadcast (aka lazy) suppliers broadcast their capabilities periodically directory-based discovery suppliers post their capabilities on a directory clients query the directory SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 24 12

example: client needs A at t1, and B at t2 directed discovery s1: A s2: B s3: A s5: B s4: C discuss: up-to-date information scalability/scope security/trust applicability/practicality LAN SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 25 example: client needs A at t1, and B at t2 client-init broadcast s1: A s2: B s3: A s5: B s4: C discuss: up-to-date information scalability/scope security/trust applicability/practicality LAN SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 26 13

example: client needs A at t1, and B at t2 server-init broadcast s1: A s2: B s3: A s5: B s4: C discuss: up-to-date information scalability/scope security/trust applicability/practicality LAN SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 27 example: client needs A at t1, and B at t2 directory-based s1: A s2: B s3: A s5: B s4: C discuss: up-to-date information scalability/scope security/trust applicability/practicality discover directory? SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 28 LAN 14

discovery example Jini (*) discovery service consumers & providers broadcast their existence in the hope of finding a lookup service (directory) join service provider registers with lookup service(s) lookup service consumer queries lookup service for service name service stub is shipped to consumer site handles remote communication with service via RMI robustness service registration is leased (expires) (*) initially by Sun in 1995, now at Apache: River project SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 29 other discovery examples SLP: Service Location Protocol language independent open source many commercial applications Salutation open source IBM leadership UPnP: Universal Plug and Play Microsoft leadership multicast announcement many research prototypes SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 30 15

service discovery vs. event publish-subscribe discovery service providers register capabilities service consumers lookup providers service requests directed (call-return) from one consumer to one provider pub-sub event consumers register interest in events event producers announce events events delivered to all (maybe zero) registered consumers SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 31 service-orientation C 1 C 2 S promote scalability easy to add service consumers/clients feasible to add replicas of a supplier/server (usual technique) possible to add new service suppliers promote robustness upon failure, consumer may find another service supplier promote maintainability assemble new features from available services deploy and announce enhanced services easy with dynamic discovery SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 32 16

service-orientation C 1 C 2 S promote security (relative to event systems) each server may set up encryption and access control to authorized clients conceptual integrity reliability & performance may be challenges service consumers depend entirely on service providers SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 33 outline enabler: the Internet widely-distributed client-server example: World-Wide Web the hinge of service-orientation: service discovery current implementation of SOA web services composition UDDI, SOAP SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 34 17

web services come in as an integration technology focus on bridging existing technologies it s about how to access a service unlike previous middleware, it is not an implementation infrastructure raises level of abstraction avoid proprietary APIs SOAP originally Simple Object Access Protocol @ MS 1998 based on sending XML messages over http no SOAP API or ORB wider industrial support than previous middleware CORBA, Microsoft s.net, IBM s Webshpere, Sun s J2EE SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 35 web services introduces a set of specifications directory service description messages which are defined on top of: UDDI universal description, discovery and integration WSDL web services description language SOAP simple object access protocol / service-oriented architecture protocol data types data XML Schema XML extensible markup language and: SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 36 18

credits: Tevfik Bultan 4/12/2011 multiple proposals for service composition and coordination Business Process Execution Language BPEL Web Services Conversation Language WSCL Web Services Coordination WS-C Web Services Transaction WS-Tx RPC credits: Frank Leymann, Kai Guentzel SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 37 WS descriptions may be posted on UBRs UDDI Business Registry 1. 2. SW companies, standards bodies, and programmers populate the registry with descriptions of different types of services UDDI Business Registry 4. Marketplaces, search engines, and business apps query the registry to discover services at other companies Businesses populate the registry with descriptions of the services they support 3. Business Registrations Service Type Registrations UBR assigns a programmatically unique identifier to each service provider 5. Business uses this data to facilitate easier integration with each other over the Web SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 38 19

foundation of SOAP XML-RPC in Microsoft 1998 -> W3C 2003-7 works on top of HTTP/HTTPS or SMTP (less popular) critics of this decision point out that HTTP was not designed for calling services back and forth e.g. a SOAP operation implemented on top of HTTP get may not be idempotent as the semantics of get implies supporters point out that it s normal to tunnel protocols on top of each other and that it saves a lot of work (e.g. dealing with firewalls a challenge for DCOM) SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 39 SOAP is stateless, one-way message exchange applications can create more complex interaction patterns (request/response, request/multiple responses, etc.) combining one-way exchanges with features provided by the underlying protocol application-specific logic silent on the semantics of any data it conveys but describes the actions required of a SOAP node upon receiving a SOAP message SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 40 20

structure of a SOAP message optional extension mechanism e.g., directives on how to process the message application payload example: travel reservation SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 41 <env:envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> <env:header> <t:transaction xmlns:t="http://thirdparty.example.org/transaction" env:encodingstyle="http://example.com/encoding" env:mustunderstand="true" >5</t:transaction> </env:header> <env:body> <m:chargereservation env:encodingstyle="http://www.w3.org/2003/05/soap-encoding" xmlns:m="http://travelcompany.example.org/"> <m:reservation xmlns:m="http://travelcompany.example.org/reservation"> <m:code>ft35zbq</m:code> </m:reservation> <o:creditcard xmlns:o="http://mycompany.example.com/financial"> <n:name xmlns:n="http://mycompany.example.com/employees"> Åke Jógvan Øyvind </n:name> <o:number>123456789099999</o:number> <o:expiration>2005-02</o:expiration> </o:creditcard> </m:chargereservation> </env:body> </env:envelope> example call-return communication in SOAP SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 42 21

many implementations of SOAP today Apache SOAP/Axis Java/C++ PocketSOAP COM/C++ SOAP::Lite - Perl PHP SOAP - PHP gsoap C++ SOAP4R - Ruby Python web services project Python and these are only the open source ones rely on a common understanding of the structure and meaning of the exchanged messages SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 43 in summary SOA combines distributed call-return connectors service discovery mechanisms web services propose a set of technologies/protocols to implement SOA currently does not support dynamic discovery dynamic service discovery plays a key role in achieving QAs scalability robustness maintainability these are general considerations: remember that a real analysis requires QA scenarios SWE 727 Software Architecture Sousa 2011 Lecture 9 SOA 44 22