Applied Architecture & Styles. Not all problems can be solved by following a simple, uniform design solution. Most will require some invention or innovation.

Slides:



Advertisements
Similar presentations
웹 서비스 개요.
Advertisements

REST Vs. SOAP.
REST Introduction 吴海生 博克软件(杭州)有限公司.
Introduction to Web Services
Distributed Data Processing
Welcome to Middleware Joseph Amrithraj
Web Service Architecture
Overview of Web Services
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
General introduction to Web services and an implementation example
Building RESTful Interfaces
Web Services Nasrullah. Motivation about web service There are number of programms over the internet that need to communicate with other programms over.
Applied Architecture & Styles Not all problems can be solved by following a simple, uniform design solution. Most will require some invention or innovation.
Distributed components
Distributed Heterogeneous Data Warehouse For Grid Analysis
Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field.
A New Computing Paradigm. Overview of Web Services Over 66 percent of respondents to a 2001 InfoWorld magazine poll agreed that "Web services are likely.
Rheeve: A Plug-n-Play Peer- to-Peer Computing Platform Wang-kee Poon and Jiannong Cao Department of Computing, The Hong Kong Polytechnic University ICDCSW.
The Internet Useful Definitions and Concepts About the Internet.
Based on last years lecture notes, used by Juha Takkinen.
Web Services Andrea Miller Ryan Armstrong Alex. Web services are an emerging technology that offer a solution for providing a common collaborative architecture.
OCT1 Principles From Chapter One of “Distributed Systems Concepts and Design”
Web Services By Ethan Justin Yuli. Web Services in Action Information through Integration (Google Example)Google Example What do Web.
2006 IEEE International Conference on Web Services ICWS 2006 Overview.
1 Client-Server versus P2P  Client-server Computing  Purpose, definition, characteristics  Relationship to the GRID  Research issues  P2P Computing.
Ch 12 Distributed Systems Architectures
.NET Mobile Application Development Introduction to Mobile and Distributed Applications.
CS 415 N-Tier Application Development By Umair Ashraf July 6,2013 National University of Computer and Emerging Sciences Lecture # 9 Introduction to Web.
Web Services Michael Smith Alex Feldman. What is a Web Service? A Web service is a message-oriented software system designed to support inter-operable.
Applied Architectures Eunyoung Hwang. Objectives How principles have been used to solve challenging problems How architecture can be used to explain and.
Processing of structured documents Spring 2003, Part 6 Helena Ahonen-Myka.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Applied Architectures And Styles Software Architecture: Foundations,
1 HKU CSIS DB Seminar: HKU CSIS DB Seminar: Web Services Oriented Data Processing and Integration Speaker: Eric Lo.
Chapter 1 Lecture 2 By :Jigar M Pandya WCMP 1. Architecture of Mobile Computing The three tier architecture contains the user interface or the presentation.
Web Services Description Language (WSDL) Jason Glenn CDA 5937 Process Coordination in Service and Computational Grids September 30, 2002.
Architecting Web Services Unit – II – PART - III.
Web Services based e-Commerce System Sandy Liu Jodrey School of Computer Science Acadia University July, 2002.
Architectures of distributed systems Fundamental Models
Web Services Based on SOA: Concepts, Technology, Design by Thomas Erl MIS 181.9: Service Oriented Architecture 2 nd Semester,
XML Web Services Architecture Siddharth Ruchandani CS 6362 – SW Architecture & Design Summer /11/05.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
Web Services. Abstract  Web Services is a technology applicable for computationally distributed problems, including access to large databases What other.
DISTRIBUTED COMPUTING Introduction Dr. Yingwu Zhu.
Introduction to Server-Side Web Development Introduction to Server-Side Web Development using JSP and Web Services JSP and Web Services 18 th March 2005.
Web Services Presented By : Noam Ben Haim. Agenda Introduction What is a web service Basic Architecture Extended Architecture WS Stacks.
WebService. Outline Overview of Web Services SOAP (messaging) WSDL (service description) UDDI (registry)
Kemal Baykal Rasim Ismayilov
Advanced Web Technologies Lecture #4 By: Faraz Ahmed.
1 G52IWS: Web Services Chris Greenhalgh. 2 Contents The World Wide Web Web Services example scenario Motivations Basic Operational Model Supporting standards.
ADVANCED COMPUTER NETWORKS Peer-Peer (P2P) Networks 1.
Web Services An Introduction Copyright © Curt Hill.
REST By: Vishwanath Vineet.
09/13/04 CDA 6506 Network Architecture and Client/Server Computing Peer-to-Peer Computing and Content Distribution Networks by Zornitza Genova Prodanoff.
E-commerce Architecture Ayşe Başar Bener. Client Server Architecture E-commerce is based on client/ server architecture –Client processes requesting service.
Representational State Transfer COMP6017 Topics on Web Services Dr Nicholas Gibbins –
From Coulouris, Dollimore, Kindberg and Blair Distributed Systems: Concepts and Design Edition 5, © Addison-Wesley 2012 Slides for Chapter 9 Web Services.
Software Architecture Patterns (3) Service Oriented & Web Oriented Architecture source: microsoft.
Service Oriented Architecture (SOA) Prof. Wenwen Li School of Geographical Sciences and Urban Planning 5644 Coor Hall
Sabri Kızanlık Ural Emekçi
WEB SERVICES.
REST- Representational State Transfer Enn Õunapuu
Representational State Transfer
#01 Client/Server Computing
Implementing a service-oriented architecture using SOAP
Introduction to Web Services and SOA
#01 Client/Server Computing
Presentation transcript:

Applied Architecture & Styles

Not all problems can be solved by following a simple, uniform design solution. Most will require some invention or innovation on top of the various lessons learned from the past. Network-Based Distributed Software: – “location” transparency (physical network transparency) – “implementation transparency” (programming language, platform, etc. transparency) Masking the network is very difficult and we still do need to consider: – Network reliability – the network does go down – Network latency - the network does cause delay and timing problems – Bandwidth limitation - bandwidth variation and limitations exist – Network topological change – parts of network connections come and go – Network security – network can be exploited and is vulnerable to attacks – Network administration (multiple)- established procedure may change – Network transportation cost – there is always a network cost – Homogeneity of network – network is not uniformly the same

Network-Based Applications REST is a style of architecture for distributed hypermedia applications ---a vast amount of related information (e.g. www): – Term introduced by Roy Fielding (one of the authors of HTTP protocol) in his PhD thesis in 2000 Leading Commercially available application – Akamai – Google

Representational State Transfer (REST) style REST is Based on several design principles (constraints): – Application state and functionality are abstracted into resources – Every resource is uniquely identifiable via uniform resource identifier (URI) – All resources share a uniform interface (e.g. HTTP protocol) – All protocols are : Client-Server based Context-free Cacheable Layered

REST Style First style constraint is: Client-Server 2 nd constraint is: Context-free, meaning every request is independent and no “interaction” information is kept to aid the processing, allowing us to free up resources 3 rd constraint is: Cacheable, meaning information may be replicated in anticipation of future request of the same information, allowing us to scale up in performance – Note that not all information are cacheable --- e.g. current stock price or current time or anything that is “time” related. 4 th constraint is: Uniform Interface, meaning the interface is general between components (not a fixed code used by all components) and focusing on i) naming/identification of resource, ii) representation or visualization of information, iii) communication via descriptive “message” and iv) standard form of transmission for large-grain hypermedia 5 th constraint: Layered system for client server to further improve characteristics such as security, independent processing, scalability, etc. 6 th constrain is: Code-on-demand for dynamic extension of functionality REST style is driven by the distributed hypermedia application domain

Example of Commercial Internet Applications Subscribing to the REST style and improving on it: – Akamai: extended REST to replication (caching concept) of servers because caching certain time related information does not work (e.g. web sports casting). Then redirecting the clients to the “closest” replicated servers. Note that the replicated servers still need to get to the “origin” server for the information, but the traffic is dramatically reduced. The algorithms for placing the replicated servers through out the “edges” of the Internet is a key Separating the representation of information from the actual data is another of the REST style element that was adopted; this allowed (a) the sending of actual data from origin server to replicated edge servers and (b) the processing of representation of data to be done at the multiple replicated edge servers --- a performance gain with separation of concern and allowing some parallelism (pipe-filter style) Akamai is driven by its speed of moving large amount of “current” data, attacking network latency and bandwidth problems

Another Commercial Internet Application Not all applications subscribe to REST – Google chose their own approach focused on i) scalability and ii) availability (fault-tolerance) Use lots of duplicative & cheap hardware to store and process Use a simpler storage system than the full-relational db – Designed and implemented their own Google file system (GFS) – GFS is focused on handling “large” files and failures of systems Run the various “search engine” applications via a “generalized” data extraction/reduction problem approach called MapReduce. Google is driven by its search and reliability of moving of large amounts of data, attacking the network reliability, latency, and bandwidth problems

Decentralized Architecture Key to Decentralized Architecture is the existence of multiple authority (control) domains, agencies, participating in the application. – Multiple artifacts are controlled by multiple “owners” – The parts may communicate over a network Distributed system has parts of the system physically located in different places, but may still have one control point. Decentralized Systems distributed systems “Decentralized” focuses on 1) control problems in addition to 2) latency and other problems

Decentralized Systems physically distributed – However, during execution of an application the resources are allocated and the logical system is executing under one single control Gridcomputing: resourcesharing thisandthisand isa“coordinated” computationina decentralized environment. – Theresourcesareunderdifferentdifferent ownershipandownershipandcontrolandcontrolandmaybemaybe

Decentralized Systems Napster: a information (music) sharing, networking “semi” peer-to-peer system Peer & Content Directory Peer 1 Peer 4 Peer 3 Peer 2 Registers with directory Uses Napster proprietary protocols except for the fetching of content from peer when HTTP is used. acts as a “coordinator”

Decentralized System Gnutella: a more “pure” peer-to-peer system Peer 3 Peer 5 Peer 4 Peer 2 Peer 1 Peer 5 has “gee” Gnutella also uses proprietary protocol except for HTTP for actual transfer of content. It is highly robust with addition and removal of peers. But may be insecure or inefficient or “unknown” ; added “special peer”

More Decentralized peer-to-peer Systems Skype: internet communications application: – Users download skype application from a skype server (solves the discovery of peers problem and some security problems) – Uses proprietary, secret protocol (solves some security problems) – Has “super-nodes” that will aid in directory service and call routing (solves the scalability problem) – Locations of super-nodes are chosen based on network and call capacity; peer node may become super-node. (solves some performance/latency problem) BitTorrent: an open source file sharing application for distributing large software and media files – It reduces the “congestion” of requests to a single peer for a popular item problem by distributing parts of a file to multiple peers.

Latency & Agency Decentralized System must address: – Solving Latency problems Replication and caching Centralized and decentralized servers – Solving Agency(control) problems Heterogeneous peers Locating peers Reliability Trust Security

Service Oriented Architecture (SOA) SOA is not quite an architecture, but more a concept or style of conducting business using the internet, using a messaging scheme. Service provider Service requestor internet Service request 1)will use xml to describe the business and the protocols 2)will use HTTP and SOAP as basic means of messaging 3)use standards such WSDL to describe services; WS-BPEL to describe business process & execution 4)Other business related properties such as trust, security, performance are in the works 1.Business process 2.Service components 3.Communicating network

SOA Architecture (cont.) SOA to have three “layers” Business Services & Business Management Software Services & Management (Components &Connectors) IT Services & Management (processors, network, etc.) organizations must agree on their “ways” to conduct business The business services must be supported by software/technical functionalities The software, hardware and network must be supported by IT services and management

Challenges with SOA Computer equivalent of a distributed system Each system in the Internet presents a virtual machine layer of service Offered by different controlling agencies Web services, a particular way of providing a SOA.

Web Service A Web service is a software application identified by a URI, whose interfaces and binding are capable of being defined, described and discovered by XML artefacts and supports direct interactions with other software applications using XML based messages via internet-based protocols – “Web services” is an effort to build adistributed computing platform for the Web. – Enablingsystematicapplication-to-application interaction on the Web.

Web Service Stack

Web Service Stack….cntd Protocol Layer – Any of the standard Internet Protocols HTTP, HTTPS, FTP, SMTP Packaging Layer – Simple Object Access Protocol (SOAP) is a lightweight protocol designed for the exchange of information using XML SOAPSOAP Envelope Encoding rules RPC representation

Web Service Stack….cntd Service & Information Layer Service Implementation Types Message Operation Port TypePort Type Binding Port ServiceService Web Service Interface (WSDL)

UDDI – Universal Description Discovery and Integration Marketplaces, search engines, and business apps query the registry to discover services at other companies Business uses this data to facilitate easier integration with each other over the Web Businesses populate the registry with descriptions of the services they support Business Descriptions 3. SW companies, standards bodies, and programmers populate the registry with descriptions of different types of services 1.1. Service Types

Example Google A great search engine – but what if I want my own GUI?

Google Web Service Google offers a web service that performs searches for you Why? – clients can build custom GUIs – google.com can make money! // ask google to search for us... google = new GoogleSearchService(); result = google.doGoogleSearch("4a8/TvZQFHID0WIWnL1CMmMx0sNqhG8H", txtSearch.Text, 0, 10, false, "", false, "", "", ""); // display resulting URLs... foreach (ResultElement re in result.resultElements) lstURLs.Items.Add(re.URL);