Session 6 Patterns and best practices in SOA/REST

Size: px
Start display at page:

Download "Session 6 Patterns and best practices in SOA/REST"

Transcription

1 Session 6 Patterns and best practices in SOA/REST Sistemas Distribuidos Diego Sevilla Ruiz DITEC Facultad de Informática Murcia, 2012 Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

2 Contents 1 Introduction 2 SOA & REST Patterns Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

3 Contents 1 Introduction 2 SOA & REST Patterns Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

4 Introduction We will see advanced uses of REST Will be compared with more traditional approaches This architecture can scale much more than traditional ones Farewell to relational DB and the normal forms :) Use of caches and functional programming is essential Study: Memcached and MapReduce Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

5 Summary of REST Everything is a resource (either representing a set or an element) Resources are identified by URIs Use of HTTP verbs (CRUD) to obtain and modify resources Importance of MIME types (microformats) State is passed in the client/server communication HATEOAS: Hypermedia as the Engine of Application State 1 1 http: //roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven, Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

6 Contents 1 Introduction 2 SOA & REST Patterns Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

7 SOA & REST Patterns Based on the talk by Cesare Pautasso 2 The idea: REST concepts are relatively simple However, implementing well-behaved REST based services is not easy We ll see patterns and anti-patterns 2 REST-Inspired SOA Design Patterns (and Anti-Patterns), Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

8 REST Design Methodology 1 Identify the resources that are exposed as services 2 Model relationships (containment, reference) between resources with bindings (Note how this is similar to the metamodel seen, Ecore) 3 Define resource-friendly URLs (not strictly needed, but helps) 4 Understand what means to GET, POST, PUT, and DELETE, for each resource (and whether it is allowed or not) 5 Design and document resource representations (JSON, XML, microformats, etc.) 6 Implement deployment it on a web server 7 Try with a browser Working elements Resources and Representations Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

9 REST Design Methodology 1 Identify the resources that are exposed as services 2 Model relationships (containment, reference) between resources with bindings (Note how this is similar to the metamodel seen, Ecore) 3 Define resource-friendly URLs (not strictly needed, but helps) 4 Understand what means to GET, POST, PUT, and DELETE, for each resource (and whether it is allowed or not) 5 Design and document resource representations (JSON, XML, microformats, etc.) 6 Implement deployment it on a web server 7 Try with a browser Working elements Resources and Representations Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

10 Example: Doodle Service Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

11 Usage: Create a poll POST to create the poll: POST /poll <options>a, B, C</options> 201 Created Location: /poll/ Obtain the poll: GET /poll/ OK <options>a, B, C</options> <votes href="/vote"/> XML is used in this case The resource is appended by the internal resource In other representations the link will be specified differently iego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

12 Usage: Create a poll POST to create the poll: POST /poll <options>a, B, C</options> 201 Created Location: /poll/ Obtain the poll: GET /poll/ OK <options>a, B, C</options> <votes href="/vote"/> XML is used in this case The resource is appended by the internal resource In other representations the link will be specified differently iego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

13 Usage: Voting POST to create a vote: POST /poll/432432/vote <name>diego Sevilla</name> <choice>c</choice> 201 Created Location: /poll/432432/vote/1 Obtain the poll: GET /poll/ OK <options>a, B, C</options> <votes><vote id="1"> <name>...</name> <choice>c</choice> </vote></votes> You get all the votes (the link could have been used instead) Implementation decision (regarding content... size?) iego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

14 Usage: Voting POST to create a vote: POST /poll/432432/vote <name>diego Sevilla</name> <choice>c</choice> 201 Created Location: /poll/432432/vote/1 Obtain the poll: GET /poll/ OK <options>a, B, C</options> <votes><vote id="1"> <name>...</name> <choice>c</choice> </vote></votes> You get all the votes (the link could have been used instead) Implementation decision (regarding content... size?) iego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

15 Patterns Summary Uniform Contract Use of fixed methods Entity Endpoint How are they named? Entity Linking Relationship between entities discovered through linking Entity Redirection Redirection allows load balancing, fault tolerance, etc. Content Negotiation Allows multiple clients, evolution Idempotent Capability As in the web, you should pursue this quality (functional style) Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

16 Pattern - Uniform Contract Building APIs tightly couples clients and servers Hinders application evolution A customer needs to know multiple APIs of different service providers Solution: Provide a uniform interface (eg. HTTP verbs) that hides the specifics of each service Advantages: Service Abstraction, loose coupling, reusability, composition of services, etc. Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

17 Pattern - Uniform Contract (ii) POST vs. GET vs. PUT GET is a read-only operation POST modifies server state (hence browsers ask if we want to forward the request) How to create resources? PUT /recurso/<id> What if it s repeated? GUID provided by the client? POST /recurso 301 Moved Permanently/201 Created Location: /recurso/<id> Problem: it is not idempotent (duplication in case of failure in communications) Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

18 Pattern - Addressing resources The service acts as a façade of the resources Increases service granularity (less reusable) Clients are tied to that API It is hardcoded in the client code API evolution (new services, resources)? Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

19 Pattern Addressing resources (ii) Offer all reusable resources through services Linking allows them to be reused in other sites Fine-grained resource access increases reusability Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

20 Pattern Addressing resources (iii) URI design Prefer noun to verbs GET /resource/id=89?action=delete Short URLs DELETE /resource/66 Prefer URLs with positional parameters instead of key/value pairs Do not use postfixes with the type (eg..xml,.json) Break content negotiation (will see later) URLs should not change Use redirection if needed Beware: URIs patterns create dependency between client and server (they are like APIs) Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

21 Entity Linking Problem: Business entities have natural relationships, yet entity services are commonly designed autonomously with no indication of these relationships Service consumers acting as composition controllers are commonly required to have entity linking logic hard-coded in order to work with entity relationships Governance burden to ensure that hard-coded entity linking logic is kept in synch with the business Solution: Services inform their consumers about the existence of related entities as part of the consumer s interactions with the services Links are included in relevant response messages from the service. Service consumers are able to navigate from entity to entity by following these links, and accumulate further business knowledge along the way Decouples a priori client knowledge of the internal business logic Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

22 Entity Linking (ii) Services that expose identifiers of related entities to service consumers are able to be used in a wider variety of compositions. E. g. the Invoice Printer service is able to then cross-reference invoice and customer records in order to print mailing labels. Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

23 Entity Linking (iii) Doodle example: /poll/432432: 200 OK <options>a, B, C</options> <votes href=/vote/> /poll/43243/vote/1: <vote><id>1</id><name>name</name><choice>c</choice></vote> /poll/43243/vote/2: <vote><id>2</id><name>other</name><choice>b</choice></vote> Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

24 Pattern - Redirection of resources HTTP natively supports redirection with 3xx: GET /old/x 301 Moved Permanently Location: /new/y GET /new/y 200 OK You can also return the 307 code (Temporary Redirect) It can be used for load balancing Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

25 Pattern Content Negotiation How to support different clients? Versions Capabilities Expectations (requirements) In an evolutive way? Solution: Specify the version and features based on media types Microformats (curious that the author does not mention them) Advantages: Loose Coupling, greater interoperability, etc. Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

26 Pattern Content Negotiation (ii) It does not require the use of more messages: GET /resource Accept: text/html, application/json 200 OK Content-type: application/json (Response 406 if required content-type cannot be served) Specifiers can be used to specify preferences as: Accept: text/html;q=0.1, application/json;q=0.9 Also in different dimensions: Accept-Language, Accept-Encoding, Accept-Charset, etc. Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

27 Pattern Idempotent Capability How to protect from message failures in distributed systems? Missing one message means sending the message twice Solution Use ESB/MOM (provides messages with failover) Design requests to be idempotent (REST philosophy) Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

28 Pattern Idempotent Capability (ii) Idempotent vs. Not secure Idempotent requests can be sent several times without problems: GET /book/x PUT /poll/y DELETE /libro/z If anything fails, the request can be retried Secure answers are those not modifying server state (GET) Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

29 Pattern Idempotent Capability (iii) Idempotent vs. Not secure Requests that modify the state are non-secure : withdraw(account1, 200) deposit(account2, 200) POST /clients If anything fails in the latter case, additional mechanisms will be required for reconciliation of state (using identifiers, etc.) Sometimes APIs can be designed so that they are idempotent: B = getbalance(); // Idempotent B = B + 200; // Local setbalance(b); // Idempotent Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

30 Pattern Idempotent Capability (iv) Concurrency What if another client accesses in the meantime? Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

31 Pattern Idempotent Capability (v) Optimistic Concurrency Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

32 Anti-patterns Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

33 Richardson REST Maturity Model http: //martinfowler.com/articles/richardsonmaturitymodel.html Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

34 Richardson REST Maturity Model (ii) 0 HTTP as an RPC Protocol (Tunnel POST+POX or POST+JSON) 1 Multiple Resource URIs (Fine-Grained Global Addressability) 2 Uniform HTTP Verbs (Contract Standardization) 3 Hypermedia (Protocol Discoverability) Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

35 Anti-patterns HTTP as tunnelling GET /api?method=addcustomer&name=diego GET /api?method=deletecustomer&id=42 Everything using GET Advantage: You can use it easily from a browser Drawbacks: GET should be used for idempotent requests (caching, fault tolerance, etc.) Some systems have limitations on the size of the URL Everything using POST Advantage: You can send any data size (used by SOAP) Drawbacks: POST is not idempotent so cannot be cached POST /service/endpoint Is /service/endpoint a resource? Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

36 References C. Pautasso Some REST Design Patterns (and Anti-Patterns) InfoQ (varios autores) InfoQ Explores REST emag rest/en/pdf/rest%20emag.pdf S. Tilkov REST Anti-Patterns y REST doubts M. Paternostro, K. Hussey Building RESTful Java Applications with EMF building-restful-java-applications-with-emf Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

37 References (ii) L. Richardson, S. Ruby RESTful Web Services O Reilly, 2007, ISBN: R. Balasubramanian, B. Carlyle, T. Erl, C. Pautasso SOA with REST: Principles, Patterns & Constraints Prentice Hall, Pearson, 2012, ISBN: Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 6 Patterns and best practices in SOA/REST Murcia, / 34

Session 9 Scalable Data Management: NoSQL & Map/Reduce

Session 9 Scalable Data Management: NoSQL & Map/Reduce Session 9 Scalable Data Management: NoSQL & Map/Reduce Sistemas Distribuidos Diego Sevilla Ruiz DITEC Facultad de Informática Murcia, 2012 Diego Sevilla Ruiz (DITEC Facultad de Informática) Session 9 Scalable

More information

Some REST Design Patterns (and Anti-Patterns)

Some REST Design Patterns (and Anti-Patterns) Some REST Design Patterns (and Anti-Patterns) Cesare Pautasso Faculty of Informatics University of Lugano, Switzerland c.pautasso@ieee.org http://www.pautasso.info Abstract The REST architectural style

More information

BPMN for REST. Cesare Pautasso Faculty of Informatics, USI Lugano, Switzerland c.pautasso@ieee.org http://www.pautasso.

BPMN for REST. Cesare Pautasso Faculty of Informatics, USI Lugano, Switzerland c.pautasso@ieee.org http://www.pautasso. BPMN for REST Cesare Pautasso Faculty of Informatics, USI Lugano, Switzerland c.pautasso@ieee.org http://www.pautasso.info @pautasso 21.11.2011 BPM REST 2010 - Cesare Pautasso 3 Business Process Management

More information

REST vs. SOAP: Making the Right Architectural Decision

REST vs. SOAP: Making the Right Architectural Decision REST vs. SOAP: Making the Right Architectural Decision Cesare Pautasso Faculty of Informatics University of Lugano (USI), Switzerland http://www.pautasso.info 1 Agenda 1. Motivation: A short history of

More information

Techniques for Composing REST services

Techniques for Composing REST services Techniques for Composing REST services Cesare Pautasso Faculty of Informatics University of Lugano, Switzerland c.pautasso@ieee.org http://www.pautasso.info Abstract Novel trends in Web services technology

More information

vs WS-* Comparison Cesare Pautasso Faculty of Informatics University of Lugano, Switzerland c.pautasso@ieee.org http://www.pautasso.

vs WS-* Comparison Cesare Pautasso Faculty of Informatics University of Lugano, Switzerland c.pautasso@ieee.org http://www.pautasso. 3 REST vs WS-* Comparison Cesare Pautasso Faculty of Informatics University of Lugano, Switzerland c.pautasso@ieee.org http://www.pautasso.info Web Sites (1992) Web Browser HTML HTTP Web Server WS-* Web

More information

Understanding Service-Orientation Part II: The Principles

Understanding Service-Orientation Part II: The Principles by Raj Balasubramanian, Enterprise IT Architect for IBM Software Group, Benjamin Carlyle, Architect in the Rail industry, Cesare Pautasso Assistant professor in the new Faculty of Informatics at the University

More information

Push-Enabling RESTful Business Processes

Push-Enabling RESTful Business Processes Push-Enabling RESTful Business Processes Cesare Pautasso Faculty of Informatics, University of Lugano, Switzerland c.pautasso@ieee.org http://www.pautasso.info @pautasso Erik Wilde EMC dret@dret.net http://dret.net

More information

Service-Oriented Architectures

Service-Oriented Architectures Architectures Computing & 2009-11-06 Architectures Computing & SERVICE-ORIENTED COMPUTING (SOC) A new computing paradigm revolving around the concept of software as a service Assumes that entire systems

More information

SOA and Virtualization Technologies (ENCS 691K Chapter 2)

SOA and Virtualization Technologies (ENCS 691K Chapter 2) SOA and Virtualization Technologies (ENCS 691K Chapter 2) Roch Glitho, PhD Associate Professor and Canada Research Chair My URL - http://users.encs.concordia.ca/~glitho/ The Key Technologies on Which Cloud

More information

Architecting for the cloud designing for scalability in cloud-based applications

Architecting for the cloud designing for scalability in cloud-based applications An AppDynamics Business White Paper Architecting for the cloud designing for scalability in cloud-based applications The biggest difference between cloud-based applications and the applications running

More information

Using Hypermedia Services for Systems Integration. Tim Ewald Systems Engineer

Using Hypermedia Services for Systems Integration. Tim Ewald Systems Engineer Using Hypermedia Services for Systems Integration Tim Ewald Systems Engineer I dig REST services My first choice when... I don t build both ends of pipe I do build both ends of the pipe, but I can t deploy

More information

Enabling REST Services with SAP PI. Michael Le mle@advantco.com Peter Ha pha@advantco.com

Enabling REST Services with SAP PI. Michael Le mle@advantco.com Peter Ha pha@advantco.com Enabling REST Services with SAP PI Michael Le mle@advantco.com Peter Ha pha@advantco.com Learning Points Understanding the REST architecture and concepts Understanding the differences between SOAP and

More information

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles Jørgen Thelin Chief Scientist Cape Clear Software Inc. Abstract The three common software architecture styles

More information

SOA CERTIFIED JAVA DEVELOPER (7 Days)

SOA CERTIFIED JAVA DEVELOPER (7 Days) SOA CERTIFIED JAVA DEVELOPER (7 Days) To achieve this certification, the following exams must be completed with a passing grade: Exam S90.01: Fundamental SOA & Service-Oriented Computing Exam S90.02: SOA

More information

Designing RESTful Web Applications

Designing RESTful Web Applications Ben Ramsey php works About Me: Ben Ramsey Proud father of 7-month-old Sean Organizer of Atlanta PHP user group Founder of PHP Groups Founding principal of PHP Security Consortium Original member of PHPCommunity.org

More information

September 2009 Cloud Storage for Cloud Computing

September 2009 Cloud Storage for Cloud Computing September 2009 Cloud Storage for Cloud Computing This paper is a joint production of the Storage Networking Industry Association and the Open Grid Forum. Copyright 2009 Open Grid Forum, Copyright 2009

More information

David Pilling Director of Applications and Development

David Pilling Director of Applications and Development Service Oriented Architecture for Law Firms: SOA is inevitable, are you ready? David Pilling Director of Applications and Development "Things should be made as simple as possible, but no simpler. -- Albert

More information

Method of Unified Communications and Collaboration Service in Open Service Platform based on RESTful Web Services

Method of Unified Communications and Collaboration Service in Open Service Platform based on RESTful Web Services Method of Unified Communications and Collaboration Service in Open Service Platform based on RESTful Web Services Sunhwan Lim and Hyunjoo Bae Future Communications Research Laboratory, ETRI, Daejeon, Korea

More information

SOA, case Google. Faculty of technology management 07.12.2009 Information Technology Service Oriented Communications CT30A8901.

SOA, case Google. Faculty of technology management 07.12.2009 Information Technology Service Oriented Communications CT30A8901. Faculty of technology management 07.12.2009 Information Technology Service Oriented Communications CT30A8901 SOA, case Google Written by: Sampo Syrjäläinen, 0337918 Jukka Hilvonen, 0337840 1 Contents 1.

More information

Web Services in 2008: to REST or not to REST?

Web Services in 2008: to REST or not to REST? Web Services in 2008: to or not to? Cesare Pautasso Faculty of Informatics University of Lugano, CH http://www.pautasso.info 3 Web Sites (1992) Web Browser HTML Web Server Web Services (2000) Client SOAP

More information

REST services in Domino - Domino Access Services

REST services in Domino - Domino Access Services REST services in Domino - Domino Access Services Domino Programmability Team 2012 IBM Corporation Agenda Why REST? REST Basics RESTful Domino Domino Access Services Overview Domino Access Services Domino

More information

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles Jørgen Thelin Chief Scientist Cape Clear Software Inc. Abstract The three common software architecture styles

More information

A Quick Introduction to SOA

A Quick Introduction to SOA Software Engineering Competence Center TUTORIAL A Quick Introduction to SOA Mahmoud Mohamed AbdAllah Senior R&D Engineer-SECC mmabdallah@itida.gov.eg Waseim Hashem Mahjoub Senior R&D Engineer-SECC Copyright

More information

02267: Software Development of Web Services

02267: Software Development of Web Services 02267: Software Development of Web Services Week 8 Hubert Baumeister huba@dtu.dk Department of Applied Mathematics and Computer Science Technical University of Denmark Fall 2013 Contents RESTful Services

More information

Service Computing: Basics Monica Scannapieco

Service Computing: Basics Monica Scannapieco Service Computing: Basics Monica Scannapieco Generalities: Defining a Service Services are self-describing, open components that support rapid, low-cost composition of distributed applications. Since services

More information

Research on the Model of Enterprise Application Integration with Web Services

Research on the Model of Enterprise Application Integration with Web Services Research on the Model of Enterprise Integration with Web Services XIN JIN School of Information, Central University of Finance& Economics, Beijing, 100081 China Abstract: - In order to improve business

More information

Service Virtualization: Managing Change in a Service-Oriented Architecture

Service Virtualization: Managing Change in a Service-Oriented Architecture Service Virtualization: Managing Change in a Service-Oriented Architecture Abstract Load balancers, name servers (for example, Domain Name System [DNS]), and stock brokerage services are examples of virtual

More information

Cloud Elements! Marketing Hub Provisioning and Usage Guide!

Cloud Elements! Marketing Hub Provisioning and Usage Guide! Cloud Elements Marketing Hub Provisioning and Usage Guide API Version 2.0 Page 1 Introduction The Cloud Elements Marketing Hub is the first API that unifies marketing automation across the industry s leading

More information

REST web services. Representational State Transfer Author: Nemanja Kojic

REST web services. Representational State Transfer Author: Nemanja Kojic REST web services Representational State Transfer Author: Nemanja Kojic What is REST? Representational State Transfer (ReST) Relies on stateless, client-server, cacheable communication protocol It is NOT

More information

SOA Myth or Reality??

SOA Myth or Reality?? IBM TRAINING S04 SOA Myth or Reality Jaqui Lynch IBM Corporation 2007 SOA Myth or Reality?? Jaqui Lynch Mainline Information Systems Email jaqui.lynch@mainline.com Session S04 http://www.circle4.com/papers/s04soa.pdf

More information

Setting the World on FHIR

Setting the World on FHIR Setting the World on FHIR W. Ed Hammond. Ph.D., FACMI, FAIMBE, FIMIA, FHL7 Director, Duke Center for Health Informatics Director, Applied Informatics Research, DHTS Director of Academic Affairs, MMCi Program

More information

Stefan Tilkov. http://www.innoq.com. Stefan Tilkov, innoq Deutschland GmbH REST Introduction

Stefan Tilkov. http://www.innoq.com. Stefan Tilkov, innoq Deutschland GmbH REST Introduction Stefan Tilkov, in Deutschland GmbH REST Introduction http://www.innoq.com (c) 2009 in Stefan Tilkov Geschäftsführer und Principal Consultant, in Deutschland GmbH Fokus auf SOA, Web-Services, REST SOA-Editor

More information

The Service, The Cloud & The Method: The Connection Points

The Service, The Cloud & The Method: The Connection Points The Service, The Cloud & The Method: The Connection Points Thomas Erl SOA Systems Inc. Prentice Hall Service-Oriented Computing Series Started in 2003 Text Books are an Official Part of the SOACP Curriculum

More information

02267: Software Development of Web Services

02267: Software Development of Web Services 02267: Software Development of Web Services Week 8 Hubert Baumeister huba@dtu.dk Department of Applied Mathematics and Computer Science Technical University of Denmark Fall 2015 1 Recap I BPEL: I Doing

More information

Service-Oriented Architecture and Software Engineering

Service-Oriented Architecture and Software Engineering -Oriented Architecture and Software Engineering T-86.5165 Seminar on Enterprise Information Systems (2008) 1.4.2008 Characteristics of SOA The software resources in a SOA are represented as services based

More information

SOA Fundamentals For Java Developers. Alexander Ulanov, System Architect Odessa, 30 September 2008

SOA Fundamentals For Java Developers. Alexander Ulanov, System Architect Odessa, 30 September 2008 SOA Fundamentals For Java Developers Alexander Ulanov, System Architect Odessa, 30 September 2008 What is SOA? Software Architecture style aimed on Reuse Growth Interoperability Maturing technology framework

More information

Simplifying Processes Interoperability with a Service Oriented Architecture

Simplifying Processes Interoperability with a Service Oriented Architecture Why SOA? Simplifying Processes Interoperability with a Service Oriented Architecture Zak Merzouki, Software Architecture and Technology Director BDPA 11/20/2008 Perspective "Things should be made as simple

More information

The Central Role of Registries

The Central Role of Registries The Central Role of Registries Managing SOA Metadata Stefan Tilkov, stefan.tilkov@innoq.com http://www.innoq.com/blog/st/ Technology Consultancy for Fortune 1000 Offices in Zürich & Düsseldorf Founded

More information

Ole Lensmar CTO SmartBear Software PAST, PRESENT AND FUTURE OF APIS FOR MOBILE AND WEB APPS

Ole Lensmar CTO SmartBear Software PAST, PRESENT AND FUTURE OF APIS FOR MOBILE AND WEB APPS Ole Lensmar CTO SmartBear Software PAST, PRESENT AND FUTURE OF APIS FOR MOBILE AND WEB APPS Once upon a time We tried to connect (early 90:ies) Multiple protocols / initiatives DCE/RPC (OSF) CORBA (OMG)

More information

in Cloud Environment Contributors: Wednesday March 30, 2011

in Cloud Environment Contributors: Wednesday March 30, 2011 RESTful based API for VRM in Cloud Environment Contributors: Chu JunSheng, B. Khasnabish, Meng Yu Wednesday March 30, 2011 1 Outline VRM Requirements VRM in practice Problem Statements Issues for Discussion

More information

Design REST Services with CXF JAX- RS implementation: best practices and lessons learned

Design REST Services with CXF JAX- RS implementation: best practices and lessons learned Design REST Services with CXF JAX- RS implementation: best practices and lessons learned Andrei Shakirin, Talend ashakirin@talend.com ashakirin.blogspot.com Agenda REST architectural style Design of REST

More information

WEB SERVICES TEST AUTOMATION

WEB SERVICES TEST AUTOMATION WEB SERVICES TEST AUTOMATION Notes for Facilitated Discussion at September 2013 Meeting of Northern Virginia Test Automation Interest Group By Rick Hower rickhower@earthlink.net and Jim Moore jmoore@novamoore.com

More information

Oracle SOA Reference Architecture

Oracle SOA Reference Architecture http://oraclearchworld.wordpress.com/ Oracle SOA Reference Architecture By Kathiravan Udayakumar Introduction to SOA Service Oriented Architecture is a buzz word in IT industry for few years now. What

More information

Web Architecture I 03.12.2014. u www.tugraz.at

Web Architecture I 03.12.2014. u www.tugraz.at 1 Web Architecture I Web Architecture I u www.tugraz.at 2 Outline Development of the Web Quality Requirements HTTP Protocol Web Architecture A Changing Web Web Applications and State Management Web n-tier

More information

Domain Name System (DNS)

Domain Name System (DNS) Application Layer Domain Name System Domain Name System (DNS) Problem Want to go to www.google.com, but don t know the IP address Solution DNS queries Name Servers to get correct IP address Essentially

More information

Service Oriented Architecture

Service Oriented Architecture Service Oriented Architecture Charlie Abela Department of Artificial Intelligence charlie.abela@um.edu.mt Last Lecture Web Ontology Language Problems? CSA 3210 Service Oriented Architecture 2 Lecture Outline

More information

Principles and Foundations of Web Services: An Holistic View (Technologies, Business Drivers, Models, Architectures and Standards)

Principles and Foundations of Web Services: An Holistic View (Technologies, Business Drivers, Models, Architectures and Standards) Principles and Foundations of Web Services: An Holistic View (Technologies, Business Drivers, Models, Architectures and Standards) Michael P. Papazoglou (INFOLAB/CRISM, Tilburg University, The Netherlands)

More information

A multilayered model for REST applications

A multilayered model for REST applications Institute of Architecture of Application Systems University of Stuttgart Universitätsstraße 38 D 70569 Stuttgart Diplomarbeit Nr. 3601 A multilayered model for REST applications Jens Petersohn Course of

More information

Service Oriented Architectures

Service Oriented Architectures 8 Service Oriented Architectures Gustavo Alonso Computer Science Department Swiss Federal Institute of Technology (ETHZ) alonso@inf.ethz.ch http://www.iks.inf.ethz.ch/ The context for SOA A bit of history

More information

Introduction to Service Oriented Architectures (SOA)

Introduction to Service Oriented Architectures (SOA) Introduction to Service Oriented Architectures (SOA) Responsible Institutions: ETHZ (Concept) ETHZ (Overall) ETHZ (Revision) http://www.eu-orchestra.org - Version from: 26.10.2007 1 Content 1. Introduction

More information

Towards Introducing and Implementation of SOA Design Antipatterns

Towards Introducing and Implementation of SOA Design Antipatterns Towards Introducing and Implementation of SOA Design Antipatterns Deepali Tripathi, Ugrasen Suman, Maya Ingle, and S. K. Tanwani Abstract Service Oriented Computing (SOC) is an emerging distributed computing

More information

Web-Based Hazus-MH. A Conceptual Approach. Mourad Bouhafs, AVP ATKINS Atlanta mourad.bouhafs@atkinsglobal.com

Web-Based Hazus-MH. A Conceptual Approach. Mourad Bouhafs, AVP ATKINS Atlanta mourad.bouhafs@atkinsglobal.com Web-Based Hazus-MH A Conceptual Approach Mourad Bouhafs, AVP ATKINS Atlanta mourad.bouhafs@atkinsglobal.com 1 Outline Needs Assessment Hazus-MH and the Web Hazus-MH as a Web Service/Web API Introduction

More information

Lightweight Data Integration using the WebComposition Data Grid Service

Lightweight Data Integration using the WebComposition Data Grid Service Lightweight Data Integration using the WebComposition Data Grid Service Ralph Sommermeier 1, Andreas Heil 2, Martin Gaedke 1 1 Chemnitz University of Technology, Faculty of Computer Science, Distributed

More information

Service Oriented Architecture 1 COMPILED BY BJ

Service Oriented Architecture 1 COMPILED BY BJ Service Oriented Architecture 1 COMPILED BY BJ CHAPTER 9 Service Oriented architecture(soa) Defining SOA. Business value of SOA SOA characteristics. Concept of a service, Enterprise Service Bus (ESB) SOA

More information

Guidelines for Implementation of REST

Guidelines for Implementation of REST Report # I73-015R-2011 Date: 3/25/11 Guidelines for Implementation of REST Enterprise Applications Division of the Systems and Network Analysis Center (SNAC) Information Assurance Directorate National

More information

T320 E-business technologies: foundations and practice

T320 E-business technologies: foundations and practice T320 E-business technologies: foundations and practice Block 3 Part 2 Activity 2: Generating a client from WSDL Prepared for the course team by Neil Simpkins Introduction 1 WSDL for client access 2 Static

More information

Research Topics 2009. MDD & PL 2009 Stefan Tilkov stefan.tilkov@innoq.com

Research Topics 2009. MDD & PL 2009 Stefan Tilkov stefan.tilkov@innoq.com Research Topics 2009 MDD & PL 2009 Stefan Tilkov stefan.tilkov@innoq.com About innoq Technology Consultancy Focus: Efficient software development & Service-oriented architecture Ratingen, Darmstadt, Munich,

More information

Distribution and Integration Technologies

Distribution and Integration Technologies Distribution and Integration Technologies RESTful Services REST style for web services REST Representational State Transfer, considers the web as a data resource Services accesses and modifies this data

More information

Selenium WebDriver. Gianluca Carbone. Selenium WebDriver 1

Selenium WebDriver. Gianluca Carbone. Selenium WebDriver 1 Selenium WebDriver Gianluca Carbone Selenium WebDriver 1 Contents What is Selenium? History WebDriver High-Level Architectures Architectural themes Non Functional quality Layers & Javascript Design issues

More information

Guiding Principles for Modeling and Designing Reusable Services

Guiding Principles for Modeling and Designing Reusable Services Guiding Principles for Modeling and Designing Reusable Services Max Dolgicer Managing Director International Systems Group, Inc. mdolgicer@isg-inc.com http://www.isg-inc.com Agenda The changing notion

More information

SOA REFERENCE ARCHITECTURE: WEB TIER

SOA REFERENCE ARCHITECTURE: WEB TIER SOA REFERENCE ARCHITECTURE: WEB TIER SOA Blueprint A structured blog by Yogish Pai Web Application Tier The primary requirement for this tier is that all the business systems and solutions be accessible

More information

Service-Oriented Computing and Service-Oriented Architecture

Service-Oriented Computing and Service-Oriented Architecture Service-Oriented Computing and Service-Oriented Architecture Week 3 Lecture 5 M. Ali Babar Lecture Outline Service-Oriented Computing (SOC) Service-Oriented Architecture (SOA) Designing service-based systems

More information

2 (18) - SOFTWARE ARCHITECTURE Service Oriented Architecture - Sven Arne Andreasson - Computer Science and Engineering.

2 (18) - SOFTWARE ARCHITECTURE Service Oriented Architecture - Sven Arne Andreasson - Computer Science and Engineering. Service Oriented Architecture Definition (1) Definitions Services Organizational Impact SOA principles Web services A service-oriented architecture is essentially a collection of services. These services

More information

Service Oriented Architecture

Service Oriented Architecture Limitations of SOA Service Oriented Architecture Architecture Service Enterprise ready SOA stack Services Connectors Containers What are people saying? How much SOA Its all in the semantics Architecture

More information

Application layer Web 2.0

Application layer Web 2.0 Information Network I Application layer Web 2.0 Youki Kadobayashi NAIST They re revolving around the web, after all Name any Internet-related buzz: Cloud computing Smartphone Social media... You ll end

More information

A Service-oriented and Cloud-based Statistical Analysis Framework

A Service-oriented and Cloud-based Statistical Analysis Framework Institute of Architecture of Application Systems University of Stuttgart Universitätsstraße 38 D-70569 Stuttgart Master Thesis No. 3670 A Service-oriented and Cloud-based Statistical Analysis Framework

More information

SOA AND REST Synergistic Approach

SOA AND REST Synergistic Approach SOA AND REST Synergistic Approach Navdeep Dahiya 1, Neha Parmar 2 1 IBM India Pvt. Ltd, Uttar Pradesh, India 2 makemytrip.com, Haryana, India Abstract APIs are everywhere, reusability, resourcesharing,

More information

Oracle Service Bus Examples and Tutorials

Oracle Service Bus Examples and Tutorials March 2011 Contents 1 Oracle Service Bus Examples... 2 2 Introduction to the Oracle Service Bus Tutorials... 5 3 Getting Started with the Oracle Service Bus Tutorials... 12 4 Tutorial 1. Routing a Loan

More information

WebSphere ESB Best Practices

WebSphere ESB Best Practices WebSphere ESB Best Practices WebSphere User Group, Edinburgh 17 th September 2008 Andrew Ferrier, IBM Software Services for WebSphere andrew.ferrier@uk.ibm.com Contributions from: Russell Butek (butek@us.ibm.com)

More information

REST API Development. B. Mason Netapp E-Series

REST API Development. B. Mason Netapp E-Series + REST API Development B. Mason Netapp E-Series + Disclaimer Opinion expressed here are mine and do not necessarily represent Netapp 2 Who am I?? Software Engineer at Netapp E-Series AppAware Designer

More information

Cross-domain Identity Management System for Cloud Environment

Cross-domain Identity Management System for Cloud Environment Cross-domain Identity Management System for Cloud Environment P R E S E N T E D B Y: N A Z I A A K H TA R A I S H A S A J I D M. S O H A I B FA R O O Q I T E A M L E A D : U M M E - H A B I B A T H E S

More information

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Copyright 2012, Oracle and/or its affiliates. All rights reserved. 1 OTM and SOA Mark Hagan Principal Software Engineer Oracle Product Development Content What is SOA? What is Web Services Security? Web Services Security in OTM Futures 3 PARADIGM 4 Content What is SOA?

More information

Web Services Tutorial

Web Services Tutorial Web Services Tutorial Web Services Tutorial http://bit.ly/oaxvdy (while you re waiting, download the files!) 2 About Me Lorna Jane Mitchell PHP Consultant/Developer Author API Specialist Project Lead on

More information

The Hyper-Text Transfer Protocol (HTTP)

The Hyper-Text Transfer Protocol (HTTP) The Hyper-Text Transfer Protocol (HTTP) Antonio Carzaniga Faculty of Informatics University of Lugano October 4, 2011 2005 2007 Antonio Carzaniga 1 HTTP message formats Outline HTTP methods Status codes

More information

Varnish Tips & Tricks, 2015 edition

Varnish Tips & Tricks, 2015 edition Varnish Tips & Tricks, 2015 edition ConFoo 2015 Montreal, Canada Magnus Hagander magnus@hagander.net PRODUCTS CONSULTING APPLICATION MANAGEMENT IT OPERATIONS SUPPORT TRAINING Magnus Hagander Redpill Linpro

More information

Sun Cloud API: A RESTful Open API for Cloud Computing

Sun Cloud API: A RESTful Open API for Cloud Computing Sun Cloud API: A RESTful Open API for Cloud Computing Lew Tucker CTO, Cloud Computing Sun Microsystems, Inc. 1 Future vision: Global Cloud of Clouds (a.k.a InterCloud ) Inter-connected network of servers,

More information

Cloud Service Model. Selecting a cloud service model. Different cloud service models within the enterprise

Cloud Service Model. Selecting a cloud service model. Different cloud service models within the enterprise Cloud Service Model Selecting a cloud service model Different cloud service models within the enterprise Single cloud provider AWS for IaaS Azure for PaaS Force fit all solutions into the cloud service

More information

Cloud Computing & Service Oriented Architecture An Overview

Cloud Computing & Service Oriented Architecture An Overview Cloud Computing & Service Oriented Architecture An Overview Sumantra Sarkar Georgia State University Robinson College of Business November 29 & 30, 2010 MBA 8125 Fall 2010 Agenda Cloud Computing Definition

More information

SOA @ ebay : How is it a hit

SOA @ ebay : How is it a hit SOA @ ebay : How is it a hit Sastry Malladi Distinguished Architect. ebay, Inc. Agenda The context : SOA @ebay Brief recap of SOA concepts and benefits Challenges encountered in large scale SOA deployments

More information

Live Model Pointers A requirement for future model repositories

Live Model Pointers A requirement for future model repositories Live Model Pointers A requirement for future model repositories Keith Duddy QUT/Smart Services CRC 8 April 2009 1 Introduction Model interoperability is a topic that assumes that models are created and

More information

REST Web Services in Collaborative Work Environments

REST Web Services in Collaborative Work Environments REST Web Services in Collaborative Work Environments Luis Oliva a and Luigi Ceccaroni a a Departament de Llenguatges i Sistemes Informàtics (LSI), Universitat Politècnica de Catalunya (UPC), Campus Nord,

More information

How To Create A C++ Web Service

How To Create A C++ Web Service A Guide to Creating C++ Web Services WHITE PAPER Abstract This whitepaper provides an introduction to creating C++ Web services and focuses on:» Challenges involved in integrating C++ applications with

More information

SOA, Cloud Computing & Semantic Web Technology: Understanding How They Can Work Together. Thomas Erl, Arcitura Education Inc. & SOA Systems Inc.

SOA, Cloud Computing & Semantic Web Technology: Understanding How They Can Work Together. Thomas Erl, Arcitura Education Inc. & SOA Systems Inc. SOA, Cloud Computing & Semantic Web Technology: Understanding How They Can Work Together Thomas Erl, Arcitura Education Inc. & SOA Systems Inc. Overview SOA + Cloud Computing SOA + Semantic Web Technology

More information

CSCI 5828 Spring 2010 Foundations of Software Engineering. - Arpit Sud

CSCI 5828 Spring 2010 Foundations of Software Engineering. - Arpit Sud CSCI 5828 Spring 2010 Foundations of Software Engineering - Arpit Sud 1 Agenda What is it? Why to use it? When to use it? How to implement it? Where not to apply it? 2 Service oriented Architecture 3 What

More information

Literature Review Service Frameworks and Architectural Design Patterns in Web Development

Literature Review Service Frameworks and Architectural Design Patterns in Web Development Literature Review Service Frameworks and Architectural Design Patterns in Web Development Connor Patrick ptrcon001@myuct.ac.za Computer Science Honours University of Cape Town 15 May 2014 Abstract Organizing

More information

Computer Networks. Lecture 7: Application layer: FTP and HTTP. Marcin Bieńkowski. Institute of Computer Science University of Wrocław

Computer Networks. Lecture 7: Application layer: FTP and HTTP. Marcin Bieńkowski. Institute of Computer Science University of Wrocław Computer Networks Lecture 7: Application layer: FTP and Marcin Bieńkowski Institute of Computer Science University of Wrocław Computer networks (II UWr) Lecture 7 1 / 23 Reminder: Internet reference model

More information

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures Part I EAI: Foundations, Concepts, and Architectures 5 Example: Mail-order Company Mail order Company IS Invoicing Windows, standard software IS Order Processing Linux, C++, Oracle IS Accounts Receivable

More information

Resource Oriented Architecture and REST

Resource Oriented Architecture and REST Resource Oriented Architecture and REST Assessment of impact and advantages on INSPIRE Roberto Lucchi, Michel Millot European Commission Joint Research Centre Institute for Environment and Sustainability

More information

Building Web-based Infrastructures for Smart Meters

Building Web-based Infrastructures for Smart Meters Building Web-based Infrastructures for Smart Meters Andreas Kamilaris 1, Vlad Trifa 2, and Dominique Guinard 2 1 University of Cyprus, Nicosia, Cyprus 2 ETH Zurich and SAP Research, Switzerland Abstract.

More information

Technical Track Session Service-Oriented Architecture

Technical Track Session Service-Oriented Architecture Technical Track Session Service-Oriented Architecture Terry Woods Agenda A little history What is Service-Oriented Architecture? How do you build a Service-Oriented Architecture Solution? What is an Enterprise

More information

Hints for Service Oriented Architectures. Marius Eriksen @marius Twitter Inc.

Hints for Service Oriented Architectures. Marius Eriksen @marius Twitter Inc. Hints for Service Oriented Architectures Marius Eriksen @marius Twitter Inc. We went from this (circa 2010) LB web web web web queue DB cache workers to this (circa 2015) ROUTING PRESENTATION LOGIC STORAGE

More information

Emerging Technologies Shaping the Future of Data Warehouses & Business Intelligence

Emerging Technologies Shaping the Future of Data Warehouses & Business Intelligence Emerging Technologies Shaping the Future of Data Warehouses & Business Intelligence Service Oriented Architecture SOA and Web Services John O Brien President and Executive Architect Zukeran Technologies

More information

Next Generation Mobile Technology & Standardization Conference OMA Strategy on Open API Standardization

Next Generation Mobile Technology & Standardization Conference OMA Strategy on Open API Standardization Next Generation Mobile Technology & Standardization Conference OMA Strategy on Open API Standardization 17 November 2010 Seoul, Republic of Korea Musa Unmehopa OMA Technical Plenary Chairman Distinguished

More information

Son of SOA Resource-Oriented Computing Event-Driven Architecture

Son of SOA Resource-Oriented Computing Event-Driven Architecture Son of SOA Resource-Oriented Computing Event-Driven Architecture Eugene Ciurana Director, Systems Infrastructure LeapFrog Enterprises, Inc. eugenex@leapfrog.com pr3d4t0r @ irc://irc.freenode.net ##java,

More information

Service Design Essentials

Service Design Essentials Srikanth Inaganti and Srini Chintala Enterprise level SOA transformation involves collaboration and integration across many projects that are critical to a business, with the iterative development of services

More information

SOA Architect Certification Self-Study Kit Bundle

SOA Architect Certification Self-Study Kit Bundle SOA Architect Certification Bundle A Certified SOA Architect has demonstrated proficiency in the mechanics of serviceoriented computing through the mastery of patterns, principles, practices, and industry

More information

API Management Buyers Guide. White Paper

API Management Buyers Guide. White Paper API Management Buyers Guide White Paper What Is an API? The value of your software, data, or other digital assets can be dramatically increased by reaching new audiences. This is possible through the use

More information

JOURNAL OF OBJECT TECHNOLOGY

JOURNAL OF OBJECT TECHNOLOGY JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2008 Vol. 7 No. 7, September-October 2008 Applications At Your Service Mahesh H. Dodani, IBM,

More information

Security Testing For RESTful Applications

Security Testing For RESTful Applications Security Testing For RESTful Applications Ofer Shezaf, HP Enterprise Security Products ofr@hp.com What I do for a living? Product Manager, Security Solutions, HP ArcSight Led security research and product

More information