Just relax - take some 90 minutes of ReST

Size: px
Start display at page:

Download "Just relax - take some 90 minutes of ReST"

Transcription

1 Just relax - take some 90 minutes of ReST Markku Laitkorpi Nokia Research Center TUT 1 V1-Filename.ppt / yyyy-mm-dd / Initials Prologue: Why should I care? My WS tools can generate a nice SOAP interface for my underlying service implementation I really like that, it is simple and fast Complexity, brittleness, fallacies of network programming ReST acknowledges that network cannot be abstracted away Inherently RPC regardless of how much you use the document style For scalability and interoperability reasons, ReST promotes ultimate visibility of actions Instructive Hide data, reveal algorithms vs. descriptive Reveal data, hide algorithms Integrating software across the network is the main source of my frustration, and the WS-Hairball does not seem to help ReST is about engineering for serendipity Significant step towards adhoc interoperability Web 2.0 applications are cool Frictionless Web 2.0 necessitates a ReSTful approach ReST is the architectural framework allowing for the Web evolution 2 V1-Filename.ppt / yyyy-mm-dd / Initials

2 ReST background Side-product of Roy Fielding s PhD dissertation (2000): Architectural Styles and the Design of Network-based Software Architectures Thesis: architectural framework illustrating how Principled Design is used to describe an architecture to identify existing problems in an architecture to compare alternative solutions in architecture development to ensure that architecture extensions do not violate the core constraints Representational State Transfer (ReST): a concrete example of an architectural style for network-based systems Set of architectural elements and constraints that induce the selected set of architectural properties for such a system Derived from the distributed hypermedia on the World Wide Web 3 V1-Filename.ppt / yyyy-mm-dd / Initials Architectural style A named, coordinated set of architectural constraints that restricts the features of architectural elements and the allowed relationships among those elements within any architecture that conforms to that style -- Roy Fielding Inducing (and maximizing) the values of the desired set of system attributes, i.e. architectural properties Establishes shared understanding on how things should work spontaneously together makes everybody drive to the same direction by default Architecture is an instance of a particular architectural style 4 V1-Filename.ppt / yyyy-mm-dd / Initials

3 Must-reads for wanna-be-restafarians Academia Roy Roy Fielding: Architectural Styles Styles Books and and the the Design Design of of Network-based Software Architectures Rohit RohitKhare: Extending the the ReST ReST Architectural Style Stylefor for Decentralized Systems (Google will give you the links ) 5 V1-Filename.ppt / yyyy-mm-dd / Initials Wikis, Fora, Blogs RestWiki rest-discuss on Yahoo!Groups Mark Baker Benjamin Carlyle Duncan Cragg Mark Nottingham Joe Gregorio Sam Ruby Stefan Tilkov Technologies Architecture of the WWW HTTP, URI, MIME, Media types Atom Syndication Format Atom Publishing Protocol Word #1 of the day Serendipity 1. The faculty of making fortunate discoveries by accident. 2. The fact or occurrence of such discoveries. 3. An instance of making such a discovery. Human Web serendipity: Browser & HTTP GET >> PUT >> Content-type: text/plain >> >> 1 << 200 OK >> PUT >> Content-type: text/plain >> >> 1 << 200 OK 6 V1-Filename.ppt / yyyy-mm-dd / Initials

4 ReST what it is Architectural style for the software-driven Web Web as a platform for network-based applications Human Web is a subset of the software-driven Web Elements Data: RESOURCES Constraints CLIENT-SERVER, CACHEABLE, STATELESS, LAYERED, UNIFORM INTERFACE Optional: CODE-ON-DEMAND Principled Design: toolbox for architects and developers Quest for network effect / Metcalfe s law Engineering for serendipity With ReST, every piece of information has its own URI -- Elevator pitch by David Megginson 7 V1-Filename.ppt / yyyy-mm-dd / Initials and what it is not Architecture Web architecture is an instance of ReST Technology For the Web architecture, use: HTTP, URI, MIME types, Standard or specification For the Web technologies, read: RFC 2616, RFC 3986, RFC 2045, RFC 2046, Set of laws Know your requirements relax the constraints appreciate the implied costs Silver bullet Principled Design: recognize the set of architectural properties for your system End of the road Extensible by adding new constraints a new architectural style E.g. AR-REST-ED by Rohit Khare asynchronous, routed, estimated, delegated 8 V1-Filename.ppt / yyyy-mm-dd / Initials

5 Resource Key abstraction for information: conceptual mapping to a set of values that constitute the state for a certain real-world entity Anything that can be named and addressed (standard address mechanism!) Each name is associated with exactly one resource the semantics of this association should remain unchanged over time Two resources are same only if their addresses are same Two resources may overlap with each other Examples /project-plan/latest /project-plan/ Not to be seen or manipulated directly, only by transferring representations Representation: sequence of bytes capturing current or intended state of a resource Content types (MIME types) in HTTP 9 V1-Filename.ppt / yyyy-mm-dd / Initials Resources and the real world Application layer Service Consumer State assertion State snapshot HTTP: ReSTful access layer Representations URIs Representations Service Provider State change Resource layer layer State capture Real-world layer layer 10 V1-Filename.ppt / yyyy-mm-dd / Initials

6 Constraints in ReST Client-server Statelessness + server simplicity + scalability + reliability + UI portability - efficiency + server simplicity + multiple org. domains (- asymmetric interactions) Cacheability + decreased avg. latency + efficiency + scalability - reliability Uniform interface Layered system + shared caching + legacy encapsulation + scalability + load-balancing + client simplicity - increased avg. latency (Code-ondemand) + client simplicity + extensibility - visibility + visibility + evolvability + impl. decoupling - efficiency 11 V1-Filename.ppt / yyyy-mm-dd / Initials Statelessness Each individual interaction takes place in isolation Different types of possible state Request state between a request and its response(s) Resource state actual information persistence Interaction/Application/Session state client-specific processing flow What about a shopping cart? Either a application state (client-side concept) server OK server OK server NOT OK Client constructs a full cart and uploads it to the server or a resource (server-side concept for the shared state) Shopping cart becomes a part of the shared state and has a URI Links guiding the client how the cart could be processed further: finding new items to add, browsing and removing current items, transforming the cart into a new order, etc. 12 V1-Filename.ppt / yyyy-mm-dd / Initials

7 Uniform interface Expectations on the outcome of a particular operation should remain the same from one resource to any other resource Standard addressing of resources One universal identifier mechanism that links disparate resources together Exchange of resource representations by a fixed set of operations Operational expectations should be independent from the target resource Self-descriptive messages Follow your nose : message intent can be determined from the envelope Hypermedia as the engine of application state Representations contain links to next possible application states Analogy: think of a Web page as an embodiment of one steady application state Make your resources connected avoid becoming the Dark Matter of the Internet 13 V1-Filename.ppt / yyyy-mm-dd / Initials Visibility of actions Protocol-level, resource-independent information about actions and their related behavior Clients can make uniform expectations on their actions Smart intermediaries can be deployed independently One of the most important factors of serendipity! Visibility of information resource addressing Visibility of operation semantics standard operations Visibility of protocol dependencies and relationships self-descriptiveness Visibility of choreographies and state machines - hypermedia 14 V1-Filename.ppt / yyyy-mm-dd / Initials

8 Making your first ReSTful service Model the resources Find the nouns and their relationships Realize the interaction architecture operations URIs: Design the URI space for the resources HTTP methods: Select available operations for each URI MIME types: Select relevant representations Add hyperlinks to connect your resources Embedded links in suitable representations hyperlinks things content types Relax the constraints that do not match your requirements 15 V1-Filename.ppt / yyyy-mm-dd / Initials Challenges in resource modeling URI hierarchy, URI opacity, human guesswork URIs are just names vs. intuitive intepretation /a/b /a No requirements for programmatic URI parsing Resource granularity, resource clusters GET vs. PUT: balance between read and write operations Heterogeneous content types: XML and JPEG, for example HTTP headers vs. URIs Client capabilities vs. separate URIs Query string and caching One URI for one thing URI resource mapping should be the same for everyone Layering for scalability: access control and content retrieval Do not sweat for the perfect design But recognize and appreciate the cost of tradeoffs 16 V1-Filename.ppt / yyyy-mm-dd / Initials

9 Simple example: LightBulb service /lightbulb;info GET text/html /lightbulb GET PUT text/plain application/lightbulb+xml text/plain application/lightbulb+xml >> GET /lightbulb;info >> Accept: text/html << 200 OK << Content-type: text/html << << [HTML form that links to the possible state changes] >> PUT /lightbulb >> Content-type: text/plain >> >> on << 200 OK >> GET /lightbulb >> Accept: application/lightbulb+xml << 200 OK << Content-type: application/lightbulb+xml << << <lightbulb> << <state>on</state> << </lightbulb> 17 V1-Filename.ppt / yyyy-mm-dd / Initials Word #2 of the day Idempotent Mathematical definition for an idempotent function f: 1. f(f(x)) = f(x) An operation that produces the same results no matter how many times it is performed. Built-in reliability: keep retrying until you get a response 18 V1-Filename.ppt / yyyy-mm-dd / Initials

10 Most relevant HTTP operations HTTP is designed to be your application layer protocol! GET PUT Retrieve a resource representation Clipboard COPY Safe & idempotent Rewrite a complete resource Clipboard PASTE OVER Idempotent DELETE Remove the connection between a resource and its URI Clipboard CUT (no return value) Idempotent POST(a) Append to a resource ( 200 OK ) Create a subresource ( 201 Created ) Clipboard PASTE AFTER POST(p) Process this 200 OK means stuff done Should be avoided (less visibility) POST(t) Protocol tunneling a big no-no 19 V1-Filename.ppt / yyyy-mm-dd / Initials Content types Try not to define a new content type for each new application Content types should be descriptive enough Decisions on processing and dispatching should be based on the envelope Avoid content sniffing requirements for parsing and additional processing application/xml does not tell anything about the actual content application/invoice+xml is much better Content types are versionable: application/invoice2+invoice+xml However, XML is not the center of the universe Natively binary data should be treated as binary for efficiency Multiple representations and content negotiation Each resource may expose one or more representations with different content types Client may negotiate (HTTP headers) on the content type for the best experience Primary principle: single URI for a single concept On the other hand: direct URI access for less capable clients 20 V1-Filename.ppt / yyyy-mm-dd / Initials

11 Frequently asked questions Sessions & cookies You don t really need them But browsers & JavaScript? Security HTTP authentication framework No standard for message-level security WS-Security actually has some reusable solutions Transactions Critical sections as resources Dining philosophers in ReST! Reliable messaging Idempotency Empty POST+PUT, POST-once-exactly, Asynchronous operations Queues with 202 Accepted responses, polling for results Conditional retrieval/update Avoid receiving anything that you already have Detecting lost updates ETag, Last-Modified If-None-Match, If-Modified-Since Service descriptions $100M question: Why d you need them? 1. Constructing an invocation NO 2. Discovery MAYBE 3. Data interop YES 21 V1-Filename.ppt / yyyy-mm-dd / Initials Service descriptions? Intent? Resource URI Content type application/lightbulb+xml Application layer layer State assertion State snapshot Assertion <lightbulb> <state>on</state> </lightbulb> HTTP: HTTP: ReSTful access access layer layer Representations URIs Representations Resource layer layer Resource URI Content type application/lightbulb+xml State change State capture 22 V1-Filename.ppt / yyyy-mm-dd / Initials? Impact Real-world layer layer

12 Some acid tests for ReSTfulness Can you bookmark this application state, the link to yourself, and continue tomorrow? Can you just simply retry after a network fault? Can you blindly continue using this service after I have replaced and rebooted the server machine at any time Can you expect to do this same thing over there, too? Can you see what is happening to this resource? Can you follow your nose without sticking it too deep? Can you traverse from one thing to another? Are your URIs cool and still refer to the same thing after next upgrade? After 10 years? 23 V1-Filename.ppt / yyyy-mm-dd / Initials Good examples of ReSTful APIs Atom Publishing Protocol a.k.a. APP a.k.a. AtomPub Quite many blogging sites Google Data API Amazon S3 Numbler Really good ReSTful APIs (beyond the APP) are still hard to find good APIs depend on useful content types? 24 V1-Filename.ppt / yyyy-mm-dd / Initials

13 Bad and ugly examples of ReSTful APIs GET POST photoid=15& tags=helsinki This kind of API often advertises itself as ReSTful In the worst case, this kind of APIs treat GET and POST interchangeably Verdict: ReSTful by accident (for retrieval methods), or not ReSTful at all These should be called SHARE or STREST or HTTP+POX APIs Visibility? Interoperability? 25 V1-Filename.ppt / yyyy-mm-dd / Initials ReST tools RESTlets (Java) server (+ client) JSR311/JAX-RS (Java) server Ruby on Rails (Ruby) server (+ client) Django (Python) server CherryPy (Python) server Project Zero (Groovy, PHP, ) server Astoria (MS.NET) server Orcas/.NET 3.5 (MS.NET) server 26 V1-Filename.ppt / yyyy-mm-dd / Initials

14 Question time Where do you want to take a ReST today? 27 V1-Filename.ppt / yyyy-mm-dd / Initials

RESTful Services. Distributed Enabling Platform

RESTful Services. Distributed Enabling Platform RESTful Services 1 https://dev.twitter.com/docs/api 2 http://developer.linkedin.com/apis 3 http://docs.aws.amazon.com/amazons3/latest/api/apirest.html 4 Web Architectural Components 1. Identification:

More information

ReST 2000 Roy Fielding W3C

ReST 2000 Roy Fielding W3C Outline What is ReST? Constraints in ReST REST Architecture Components Features of ReST applications Example of requests in REST & SOAP Complex REST request REST Server response Real REST examples REST

More information

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

04 Webservices. Web APIs REST Coulouris. Roy Fielding, Aphrodite, chp.9. Chp 5/6 04 Webservices Web APIs REST Coulouris chp.9 Roy Fielding, 2000 Chp 5/6 Aphrodite, 2002 http://www.xml.com/pub/a/2004/12/01/restful-web.html http://www.restapitutorial.com Webservice "A Web service is

More information

WWW, REST, and Web Services

WWW, REST, and Web Services WWW, REST, and Web Services Instructor: Yongjie Zheng Aprile 18, 2017 CS 5553: Software Architecture and Design World Wide Web (WWW) What is the Web? What challenges does the Web have to address? 2 What

More information

Lesson 14 SOA with REST (Part I)

Lesson 14 SOA with REST (Part I) Lesson 14 SOA with REST (Part I) Service Oriented Architectures Security Module 3 - Resource-oriented services Unit 1 REST Ernesto Damiani Università di Milano Web Sites (1992) WS-* Web Services (2000)

More information

Roy Fielding s PHD Dissertation. Chapter s 5 & 6 (REST)

Roy Fielding s PHD Dissertation. Chapter s 5 & 6 (REST) Roy Fielding s PHD Dissertation Chapter s 5 & 6 (REST) Architectural Styles and the Design of Networkbased Software Architectures Roy Fielding University of California - Irvine 2000 Chapter 5 Representational

More information

Develop Mobile Front Ends Using Mobile Application Framework A - 2

Develop Mobile Front Ends Using Mobile Application Framework A - 2 Develop Mobile Front Ends Using Mobile Application Framework A - 2 Develop Mobile Front Ends Using Mobile Application Framework A - 3 Develop Mobile Front Ends Using Mobile Application Framework A - 4

More information

REST API s in a CA Plex context. API Design and Integration into CA Plex landscape

REST API s in a CA Plex context. API Design and Integration into CA Plex landscape REST API s in a CA Plex context API Design and Integration into CA Plex landscape Speaker Software Architect and Consultant at CM First AG, Switzerland since 2008 having 30+ years of experience with the

More information

REST Easy with Infrared360

REST Easy with Infrared360 REST Easy with Infrared360 A discussion on HTTP-based RESTful Web Services and how to use them in Infrared360 What is REST? REST stands for Representational State Transfer, which is an architectural style

More information

INFO/CS 4302 Web Informa6on Systems

INFO/CS 4302 Web Informa6on Systems INFO/CS 4302 Web Informa6on Systems FT 2012 Week 7: RESTful Webservice APIs - Bernhard Haslhofer - 2 3 4 Source: hmp://www.blogperfume.com/new- 27- circular- social- media- icons- in- 3- sizes/ 5 Plan

More information

INF5750. RESTful Web Services

INF5750. RESTful Web Services INF5750 RESTful Web Services Recording Audio from the lecture will be recorded! Will be put online if quality turns out OK Outline REST HTTP RESTful web services HTTP Hypertext Transfer Protocol Application

More information

Applied REST. Brian Sletten Bosatsu Consulting, Inc.

Applied REST. Brian Sletten Bosatsu Consulting, Inc. Applied REST Brian Sletten Bosatsu Consulting, Inc. brian@bosatsu.net Speaker Qualifications Over 13 years of software development experience Has own software consulting company for design, mentoring,

More information

Services Web Nabil Abdennadher

Services Web Nabil Abdennadher Services Web Nabil Abdennadher nabil.abdennadher@hesge.ch 1 Plan What is Web Services? SOAP/WSDL REST http://www.slideshare.net/ecosio/introduction-to-soapwsdl-and-restfulweb-services/14 http://www.drdobbs.com/web-development/restful-web-services-a-tutorial/

More information

Understanding RESTful APIs and documenting them with Swagger. Presented by: Tanya Perelmuter Date: 06/18/2018

Understanding RESTful APIs and documenting them with Swagger. Presented by: Tanya Perelmuter Date: 06/18/2018 Understanding RESTful APIs and documenting them with Swagger Presented by: Tanya Perelmuter Date: 06/18/2018 1 Part 1 Understanding RESTful APIs API types and definitions REST architecture and RESTful

More information

Web Services Week 10

Web Services Week 10 Web Services Week 10 Emrullah SONUÇ Department of Computer Engineering Karabuk University Fall 2017 1 Recap BPEL Process in Netbeans RESTful Web Services Introduction to Rest Api 2 Contents RESTful Web

More information

REST. And now for something completely different. Mike amundsen.com

REST. And now for something completely different. Mike amundsen.com REST And now for something completely different Mike Amundsen @mamund amundsen.com Preliminaries Mike Amundsen Developer, Architect, Presenter Hypermedia Junkie I program the Internet Designing Hypermedia

More information

Copyright 2014 Blue Net Corporation. All rights reserved

Copyright 2014 Blue Net Corporation. All rights reserved a) Abstract: REST is a framework built on the principle of today's World Wide Web. Yes it uses the principles of WWW in way it is a challenge to lay down a new architecture that is already widely deployed

More information

RESTful API Design APIs your consumers will love

RESTful API Design APIs your consumers will love RESTful API Design APIs your consumers will love Matthias Biehl RESTful API Design Copyright 2016 by Matthias Biehl All rights reserved, including the right to reproduce this book or portions thereof in

More information

Designing RESTful Web Applications. Ben Ramsey

Designing RESTful Web Applications. Ben Ramsey Designing RESTful Web Applications Ben Ramsey About Me Proud father of 3-month-old Sean Organizer of Atlanta PHP user group Founder of PHP Groups Founding principal of PHP Security Consortium Original

More information

INTERNET ENGINEERING. HTTP Protocol. Sadegh Aliakbary

INTERNET ENGINEERING. HTTP Protocol. Sadegh Aliakbary INTERNET ENGINEERING HTTP Protocol Sadegh Aliakbary Agenda HTTP Protocol HTTP Methods HTTP Request and Response State in HTTP Internet Engineering 2 HTTP HTTP Hyper-Text Transfer Protocol (HTTP) The fundamental

More information

HTTP, REST Web Services

HTTP, REST Web Services HTTP, REST Web Services Martin Ledvinka martin.ledvinka@fel.cvut.cz Winter Term 2018 Martin Ledvinka (martin.ledvinka@fel.cvut.cz) HTTP, REST Web Services Winter Term 2018 1 / 36 Contents 1 HTTP 2 RESTful

More information

REST A brief introduction

REST A brief introduction REST A brief introduction Juergen Brendel What is it good for? Something with networks: APIs Interactions Distributed systems? All contents Copyright 2010, Mulesoft Inc. 2 Getting more popular All contents

More information

ENTERPRISE SOA CONFERENCE

ENTERPRISE SOA CONFERENCE BELGIAN JAVA USER GROUP PRESENTS ENTERPRISE SOA CONFERENCE 2 4 O c t o b e r 2 0 0 6, D e M o n t i l, A f f l i g e m REST - the Better Web Services Model Stefan Tilkov Founder & Principal Consultant

More information

Introduction to REST. Kenneth M. Anderson University of Colorado, Boulder CSCI 7818 Lecture 6 08/27/2008. University of Colorado 2008

Introduction to REST. Kenneth M. Anderson University of Colorado, Boulder CSCI 7818 Lecture 6 08/27/2008. University of Colorado 2008 Introduction to REST Kenneth M. Anderson University of Colorado, Boulder CSCI 7818 Lecture 6 08/27/2008 University of Colorado 2008 Credit Where Credit is Due Portions of this lecture are derived from

More information

Session 8. Reading and Reference. en.wikipedia.org/wiki/list_of_http_headers. en.wikipedia.org/wiki/http_status_codes

Session 8. Reading and Reference. en.wikipedia.org/wiki/list_of_http_headers. en.wikipedia.org/wiki/http_status_codes Session 8 Deployment Descriptor 1 Reading Reading and Reference en.wikipedia.org/wiki/http Reference http headers en.wikipedia.org/wiki/list_of_http_headers http status codes en.wikipedia.org/wiki/_status_codes

More information

What is REST? ; Erik Wilde ; UC Berkeley School of Information

What is REST? ; Erik Wilde ; UC Berkeley School of Information Erik Wilde (UC Berkeley School of Information) [http://creativecommons.org/licenses/by/3.0/] This work is licensed under a CC Attribution 3.0 Unported License [http://creativecommons.org/licenses/by/3.0/]

More information

Service Oriented Architectures (ENCS 691K Chapter 2)

Service Oriented Architectures (ENCS 691K Chapter 2) Service Oriented Architectures (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

Developing RESTful Services Using JAX-RS

Developing RESTful Services Using JAX-RS Developing RESTful Services Using JAX-RS Bibhas Bhattacharya CTO, Web Age Solutions Inc. April 2012. Many Flavors of Services Web Services come in all shapes and sizes XML-based services (SOAP, XML-RPC,

More information

REST Web Services Objektumorientált szoftvertervezés Object-oriented software design

REST Web Services Objektumorientált szoftvertervezés Object-oriented software design REST Web Services Objektumorientált szoftvertervezés Object-oriented software design Dr. Balázs Simon BME, IIT Outline HTTP REST REST principles Criticism of REST CRUD operations with REST RPC operations

More information

Microservices. SWE 432, Fall 2017 Design and Implementation of Software for the Web

Microservices. SWE 432, Fall 2017 Design and Implementation of Software for the Web Micros SWE 432, Fall 2017 Design and Implementation of Software for the Web Today How is a being a micro different than simply being ful? What are the advantages of a micro backend architecture over a

More information

REST as a better web service paradigm

REST as a better web service paradigm REST as a better web service paradigm Norman Gray VO-TECH / Uni. Leicester / Uni. Glasgow IVOA Interop, Beijing, 2007 May 15 overview Plan: First, a bit of SOAP-bashing, just to get warmed up. What is

More information

REST for SOA. Stefan Tilkov, innoq Deutschland GmbH

REST for SOA. Stefan Tilkov, innoq Deutschland GmbH REST for SOA Stefan Tilkov, innoq Deutschland GmbH stefan.tilkov@innoq.com Contents An Introduction to REST Why REST Matters REST And Web Services Recommendations Stefan Tilkov http://www.innoq.com stefan.tilkov@innoq.com

More information

Computer Networks. Wenzhong Li. Nanjing University

Computer Networks. Wenzhong Li. Nanjing University Computer Networks Wenzhong Li Nanjing University 1 Chapter 8. Internet Applications Internet Applications Overview Domain Name Service (DNS) Electronic Mail File Transfer Protocol (FTP) WWW and HTTP Content

More information

RESTful Service Composition with JOpera

RESTful Service Composition with JOpera RESTful Service Composition with JOpera Cesare Pautasso Faculty of Informatics, USI Lugano, Switzerland c.pautasso@ieee.org http://www.pautasso.info http://twitter.com/pautasso 21.5.2010 Abstract Next

More information

Developing a RESTful Mixed Reality Web Service Platform

Developing a RESTful Mixed Reality Web Service Platform Developing a RESTful Mixed Reality Web Service Platform WS-REST 2010 @ WWW 2010, Raleigh, NC April 26 th 2010 Petri Selonen Principal Researcher (PhD), Tampere-FI petri.selonen@nokia.com 1 Background:

More information

INF 212 ANALYSIS OF PROG. LANGS. INTERACTIVITY. Prof. Crista Lopes

INF 212 ANALYSIS OF PROG. LANGS. INTERACTIVITY. Prof. Crista Lopes INF 212 ANALYSIS OF PROG. LANGS. INTERACTIVITY Prof. Crista Lopes Interactivity Program continually receives input and updates its state Opposite of batch processing Batch processing datain = getinput()

More information

Distributed Architectures & Microservices. CS 475, Spring 2018 Concurrent & Distributed Systems

Distributed Architectures & Microservices. CS 475, Spring 2018 Concurrent & Distributed Systems Distributed Architectures & Microservices CS 475, Spring 2018 Concurrent & Distributed Systems GFS Architecture GFS Summary Limitations: Master is a huge bottleneck Recovery of master is slow Lots of success

More information

Managing State. Chapter 13

Managing State. Chapter 13 Managing State Chapter 13 Textbook to be published by Pearson Ed 2015 in early Pearson 2014 Fundamentals of Web http://www.funwebdev.com Development Section 1 of 8 THE PROBLEM OF STATE IN WEB APPLICATIONS

More information

RESTful Web services

RESTful Web services A Seminar report on RESTful Web services Submitted in partial fulfillment of the requirement for the award of degree Of Computer Science SUBMITTED TO: SUBMITTED BY: www.studymafia.org www.studymafia.org

More information

Web-APIs. Examples Consumer Technology Cross-Domain communication Provider Technology

Web-APIs. Examples Consumer Technology Cross-Domain communication Provider Technology Web-APIs Examples Consumer Technology Cross-Domain communication Provider Technology Applications Blogs and feeds OpenStreetMap Amazon, Ebay, Oxygen, Magento Flickr, YouTube 3 more on next pages http://en.wikipedia.org/wiki/examples_of_representational_state_transfer

More information

Modern web applications and web sites are not "islands". They need to communicate with each other and share information.

Modern web applications and web sites are not islands. They need to communicate with each other and share information. 441 Modern web applications and web sites are not "islands". They need to communicate with each other and share information. For example, when you develop a web application, you may need to do some of

More information

Restful Interfaces to Third-Party Websites with Python

Restful Interfaces to Third-Party Websites with Python Restful Interfaces to Third-Party Websites with Python Kevin Dahlhausen kevin.dahlhausen@keybank.com My (pythonic) Background learned of python in 96 < Vim Editor started pyfltk PyGallery an early online

More information

Lecture 9a: Sessions and Cookies

Lecture 9a: Sessions and Cookies CS 655 / 441 Fall 2007 Lecture 9a: Sessions and Cookies 1 Review: Structure of a Web Application On every interchange between client and server, server must: Parse request. Look up session state and global

More information

The Architecture of the World Wide Web

The Architecture of the World Wide Web The Architecture of the World Wide Web Laboratory of Computer Technologies L-A Laboratorio di Tecnologie Informatiche L-A Giulio Piancastelli & Andrea Omicini {giulio.piancastelli, andrea.omicini}@unibo.it

More information

Real Life Web Development. Joseph Paul Cohen

Real Life Web Development. Joseph Paul Cohen Real Life Web Development Joseph Paul Cohen joecohen@cs.umb.edu Index 201 - The code 404 - How to run it? 500 - Your code is broken? 200 - Someone broke into your server? 400 - How are people using your

More information

RESTful Web Services. 20-Jan Gordon Dickens Chariot Solutions

RESTful Web Services. 20-Jan Gordon Dickens Chariot Solutions RESTful Web Services 20-Jan-2011 Gordon Dickens Chariot Solutions gdickens@chariotsolutions.com Instructor/Mentor at chariotsolutions.com/education Who Am I? Active Tweeter for Open Source Tech Topics

More information

CS 355. Computer Networking. Wei Lu, Ph.D., P.Eng.

CS 355. Computer Networking. Wei Lu, Ph.D., P.Eng. CS 355 Computer Networking Wei Lu, Ph.D., P.Eng. Chapter 2: Application Layer Overview: Principles of network applications? Introduction to Wireshark Web and HTTP FTP Electronic Mail SMTP, POP3, IMAP DNS

More information

Atomic Transactions for the REST of us

Atomic Transactions for the REST of us Atomic Transactions for the REST of us Cesare Pautasso Faculty of Informatics University of Lugano, Switzerland c.pautasso@ieee.org http://www.pautasso.info @pautasso Acknowledgements This is joint work

More information

Software Design COSC 4353/6353 DR. RAJ SINGH

Software Design COSC 4353/6353 DR. RAJ SINGH Software Design COSC 4353/6353 DR. RAJ SINGH Outline What is SOA? Why SOA? SOA and Java Different layers of SOA REST Microservices What is SOA? SOA is an architectural style of building software applications

More information

Software Paradigms (Lesson 10) Selected Topics in Software Architecture

Software Paradigms (Lesson 10) Selected Topics in Software Architecture Software Paradigms (Lesson 10) Selected Topics in Software Architecture Table of Contents 1 World-Wide-Web... 2 1.1 Basic Architectural Solution... 2 1.2 Designing WWW Applications... 7 2 CORBA... 11 2.1

More information

PS/2 Web Services

PS/2 Web Services 703128 PS/2 Web Services REST Services Monday, 2015-01-12 Copyright 2014 STI INNSBRUCK www.sti-innsbruck.at Outline REST Services Task: Java API for RESTful Web Services (JAX-RS) REST Web Services design

More information

Distribution and web services

Distribution and web services Chair of Software Engineering Carlo A. Furia, Bertrand Meyer Distribution and web services From concurrent to distributed systems Node configuration Multiprocessor Multicomputer Distributed system CPU

More information

Other architectures are externally built or expanded

Other architectures are externally built or expanded RESTful interfaces http://rest.elkstein.org/ (but not Section 11) http://net.tutsplus.com/tutorials/other/a-beginners-introduction-to-http-and-rest/ and for a laugh (or cry) : http://www.looah.com/source/view/2284

More information

Web Applications. Software Engineering 2017 Alessio Gambi - Saarland University

Web Applications. Software Engineering 2017 Alessio Gambi - Saarland University Web Applications Software Engineering 2017 Alessio Gambi - Saarland University Based on the work of Cesare Pautasso, Christoph Dorn, Andrea Arcuri, and others ReCap Software Architecture A software system

More information

Programming the Internet. Phillip J. Windley

Programming the Internet. Phillip J. Windley Programming the Internet Phillip J. Windley phil@windley.com www.windley.com April 17, 2003 www.windley.com 1 Trending Keywords What keywords describe current trends in computing? Personalized Peer-based

More information

Etanova Enterprise Solutions

Etanova Enterprise Solutions Etanova Enterprise Solutions Front End Development» 2018-09-23 http://www.etanova.com/technologies/front-end-development Contents HTML 5... 6 Rich Internet Applications... 6 Web Browser Hardware Acceleration...

More information

The Architecture of the World Wide Web

The Architecture of the World Wide Web The Architecture of the World Wide Web Distributed Systems L-A Sistemi Distribuiti L-A Andrea Omicini after Giulio Piancastelli andrea.omicini@unibo.it Ingegneria Due Alma Mater Studiorum Università di

More information

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

Copyright 2012, Oracle and/or its affiliates. All rights reserved. 1 JAX-RS-ME Michael Lagally Principal Member of Technical Staff, Oracle 2 CON4244 JAX-RS-ME JAX-RS-ME: A new API for RESTful web clients on JavaME This session presents the JAX-RS-ME API that was developed

More information

Web, HTTP and Web Caching

Web, HTTP and Web Caching Web, HTTP and Web Caching 1 HTTP overview HTTP: hypertext transfer protocol Web s application layer protocol client/ model client: browser that requests, receives, displays Web objects : Web sends objects

More information

A Brief Introduction to REST

A Brief Introduction to REST A Brief Introduction to REST Posted by Stefan Tilkov on Dec 10, 2007 03:42 AM Community Architecture,SOA Topics Enterprise Architecture, REST You may or may not be aware that there is debate going on about

More information

STARCOUNTER. Technical Overview

STARCOUNTER. Technical Overview STARCOUNTER Technical Overview Summary 3 Introduction 4 Scope 5 Audience 5 Prerequisite Knowledge 5 Virtual Machine Database Management System 6 Weaver 7 Shared Memory 8 Atomicity 8 Consistency 9 Isolation

More information

Introduction to REST Web Services

Introduction to REST Web Services Introduction to REST Web Services Asst. Prof. Dr. Kanda Runapongsa Saikaew Department of Computer Engineering Khon Kaen University http://gear.kku.ac.th/~krunapon/xmlws 1 Agenda What is REST? REST Web

More information

416 Distributed Systems. RPC Day 2 Jan 12, 2018

416 Distributed Systems. RPC Day 2 Jan 12, 2018 416 Distributed Systems RPC Day 2 Jan 12, 2018 1 Last class Finish networks review Fate sharing End-to-end principle UDP versus TCP; blocking sockets IP thin waist, smart end-hosts, dumb (stateless) network

More information

WWW Architecture. Software Architecture VO/KU ( / ) Denis Helic. KMI, TU Graz. Dec 7, 2011

WWW Architecture. Software Architecture VO/KU ( / ) Denis Helic. KMI, TU Graz. Dec 7, 2011 WWW Architecture Software Architecture VO/KU (707.023/707.024) Denis Helic KMI, TU Graz Dec 7, 2011 Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, 2011 1 / 118 Outline 1 Introduction 2 Quality requirements

More information

DATABASE SYSTEMS. Database programming in a web environment. Database System Course, 2016

DATABASE SYSTEMS. Database programming in a web environment. Database System Course, 2016 DATABASE SYSTEMS Database programming in a web environment Database System Course, 2016 AGENDA FOR TODAY Advanced Mysql More than just SELECT Creating tables MySQL optimizations: Storage engines, indexing.

More information

Session 12. RESTful Services. Lecture Objectives

Session 12. RESTful Services. Lecture Objectives Session 12 RESTful Services 1 Lecture Objectives Understand the fundamental concepts of Web services Become familiar with JAX-RS annotations Be able to build a simple Web service 2 10/21/2018 1 Reading

More information

Designing Enterprise IT Systems with REST: A (Cloudy) Case Study. Stuart Charlton Chief Software Architect, Elastra

Designing Enterprise IT Systems with REST: A (Cloudy) Case Study. Stuart Charlton Chief Software Architect, Elastra Designing Enterprise IT Systems with REST: A (Cloudy) Case Study Stuart Charlton Chief Software Architect, Elastra Objectives What enterprise problem domains does RESTful architecture handle well? Understanding

More information

Active Endpoints. ActiveVOS Platform Architecture Active Endpoints

Active Endpoints. ActiveVOS Platform Architecture Active Endpoints Active Endpoints ActiveVOS Platform Architecture ActiveVOS Unique process automation platforms to develop, integrate, and deploy business process applications quickly User Experience Easy to learn, use

More information

416 Distributed Systems. RPC Day 2 Jan 11, 2017

416 Distributed Systems. RPC Day 2 Jan 11, 2017 416 Distributed Systems RPC Day 2 Jan 11, 2017 1 Last class Finish networks review Fate sharing End-to-end principle UDP versus TCP; blocking sockets IP thin waist, smart end-hosts, dumb (stateless) network

More information

RESTFUL WEB SERVICES - INTERVIEW QUESTIONS

RESTFUL WEB SERVICES - INTERVIEW QUESTIONS RESTFUL WEB SERVICES - INTERVIEW QUESTIONS http://www.tutorialspoint.com/restful/restful_interview_questions.htm Copyright tutorialspoint.com Dear readers, these RESTful Web services Interview Questions

More information

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

Middleware. Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004 Middleware Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004 Outline Web Services Goals Where do they come from? Understanding middleware Middleware as infrastructure Communication

More information

A Pragmatic Introduction to REST. Stefan Tilkov,

A Pragmatic Introduction to REST. Stefan Tilkov, A Pragmatic Introduction to REST Stefan Tilkov, stefan.tilkov@innoq.com Stefan Tilkov http://www.innoq.com stefan.tilkov@innoq.com http://www.innoq.com/blog/st/ http://www.infoq.com Audience Poll How many

More information

Lesson 15 SOA with REST (Part II)

Lesson 15 SOA with REST (Part II) Lesson 15 SOA with REST (Part II) Service Oriented Architectures Security Module 3 - Resource-oriented services Unit 1 REST Ernesto Damiani Università di Milano REST Design Tips 1. Understanding GET vs.

More information

AIM Enterprise Platform Software IBM z/transaction Processing Facility Enterprise Edition 1.1.0

AIM Enterprise Platform Software IBM z/transaction Processing Facility Enterprise Edition 1.1.0 z/tpf EE V1.1 z/tpfdf V1.1 TPF Toolkit for WebSphere Studio V3 TPF Operations Server V1.2 IBM Software Group TPF Users Group Spring 2007 TPF Users Group Spring 2007 z/tpf Web Services Update Name: Barry

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

RKN 2015 Application Layer Short Summary

RKN 2015 Application Layer Short Summary RKN 2015 Application Layer Short Summary HTTP standard version now: 1.1 (former 1.0 HTTP /2.0 in draft form, already used HTTP Requests Headers and body counterpart: answer Safe methods (requests): GET,

More information

CSCI-1680 RPC and Data Representation. Rodrigo Fonseca

CSCI-1680 RPC and Data Representation. Rodrigo Fonseca CSCI-1680 RPC and Data Representation Rodrigo Fonseca Today Defining Protocols RPC IDL Problem Two programs want to communicate: must define the protocol We have seen many of these, across all layers E.g.,

More information

Web Services. Lecture I. Valdas Rapševičius. Vilnius University Faculty of Mathematics and Informatics

Web Services. Lecture I. Valdas Rapševičius. Vilnius University Faculty of Mathematics and Informatics Web Services Lecture I Valdas Rapševičius Vilnius University Faculty of Mathematics and Informatics 2014.02.28 2014.02.28 Valdas Rapševičius. Java Technologies 1 Outline Introduction to SOA SOA Concepts:

More information

REST Best Practices D. Keith Casey, Jr

REST Best Practices D. Keith Casey, Jr REST Best Practices D. Keith Casey, Jr So who are you? D. Keith Casey, Jr General Annoyance, Blue Parabola Developer Evangelist, Twilio Project Lead, Web2Project Community: Helped organize php tek*3, antagonized

More information

REST in a Nutshell: A Mini Guide for Python Developers

REST in a Nutshell: A Mini Guide for Python Developers REST in a Nutshell: A Mini Guide for Python Developers REST is essentially a set of useful conventions for structuring a web API. By "web API", I mean an API that you interact with over HTTP - making requests

More information

Introduction to RESTful Web Services. Presented by Steve Ives

Introduction to RESTful Web Services. Presented by Steve Ives 1 Introduction to RESTful Web Services Presented by Steve Ives Introduction to RESTful Web Services What are web services? How are web services implemented? Why are web services used? Categories of web

More information

Session 9. Deployment Descriptor Http. Reading and Reference. en.wikipedia.org/wiki/http. en.wikipedia.org/wiki/list_of_http_headers

Session 9. Deployment Descriptor Http. Reading and Reference. en.wikipedia.org/wiki/http. en.wikipedia.org/wiki/list_of_http_headers Session 9 Deployment Descriptor Http 1 Reading Reading and Reference en.wikipedia.org/wiki/http Reference http headers en.wikipedia.org/wiki/list_of_http_headers http status codes en.wikipedia.org/wiki/http_status_codes

More information

CNIT 129S: Securing Web Applications. Ch 3: Web Application Technologies

CNIT 129S: Securing Web Applications. Ch 3: Web Application Technologies CNIT 129S: Securing Web Applications Ch 3: Web Application Technologies HTTP Hypertext Transfer Protocol (HTTP) Connectionless protocol Client sends an HTTP request to a Web server Gets an HTTP response

More information

What Is Service-Oriented Architecture

What Is Service-Oriented Architecture What Is Service-Oriented Architecture by Hao He September 30, 2003 "Things should be made as simple as possible, but no simpler." -- Albert Einstein Introduction Einstein made that famous statement many

More information

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

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 Notes Ask course content questions on Slack (is651-spring-2018.slack.com) Contact me by email to add you to Slack Make sure you checked Additional Links at homework page before you ask In-class discussion

More information

A Framework For Transitioning Enterprise Web Services From XML-RPC to REST

A Framework For Transitioning Enterprise Web Services From XML-RPC to REST Association for Information Systems AIS Electronic Library (AISeL) CONF-IRM 2009 Proceedings International Conference on Information Resources Management (CONF-IRM) 5-2009 A Framework For Transitioning

More information

There is REST and then there is REST. Radovan Semančík November 2017

There is REST and then there is REST. Radovan Semančík November 2017 There is REST and then there is REST Radovan Semančík November 2017 Who Am I? Ing. Radovan Semančík, PhD. Software Architect at Evolveum Architect of Evolveum midpoint Apache Foundation committer Contributor

More information

Seminar report Google App Engine Submitted in partial fulfillment of the requirement for the award of degree Of CSE

Seminar report Google App Engine Submitted in partial fulfillment of the requirement for the award of degree Of CSE A Seminar report On Google App Engine Submitted in partial fulfillment of the requirement for the award of degree Of CSE SUBMITTED TO: SUBMITTED BY: www.studymafia.org www.studymafia.org Acknowledgement

More information

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

Agent-Enabling Transformation of E-Commerce Portals with Web Services Agent-Enabling Transformation of E-Commerce Portals with Web Services Dr. David B. Ulmer CTO Sotheby s New York, NY 10021, USA Dr. Lixin Tao Professor Pace University Pleasantville, NY 10570, USA Abstract:

More information

Make your application real-time with PubSubHubbub. Brett Slatkin May 19th, 2010

Make your application real-time with PubSubHubbub. Brett Slatkin May 19th, 2010 Make your application real-time with PubSubHubbub Brett Slatkin May 19th, 2010 View live notes and ask questions about this session on Google Wave http://tinyurl.com/push-io2010 Me http://onebigfluke.com

More information

Tooling for Ajax-Based Development. Craig R. McClanahan Senior Staff Engineer Sun Microsystems, Inc.

Tooling for Ajax-Based Development. Craig R. McClanahan Senior Staff Engineer Sun Microsystems, Inc. Tooling for Ajax-Based Development Craig R. McClanahan Senior Staff Engineer Sun Microsystems, Inc. 1 Agenda In The Beginning Frameworks Tooling Architectural Approaches Resources 2 In The Beginning 3

More information

Life on the Web is fast and furious should we be more RESTful?

Life on the Web is fast and furious should we be more RESTful? Life on the Web is fast and furious should we be more RESTful? Gerhard Bayer Senior Consultant International Systems Group, Inc. gbayer@isg-inc.com http://www.isg-inc.com Agenda Today Overview of REST

More information

A RESTful Approach to the Management of Cloud Infrastructure. Swit Phuvipadawat Murata Laboratory

A RESTful Approach to the Management of Cloud Infrastructure. Swit Phuvipadawat Murata Laboratory A RESTful Approach to the Management of Cloud Infrastructure Swit Phuvipadawat Murata Laboratory 1 A RESTful Approach to the Management of Cloud Infrastructure Hyuck Han, Shingyu Kim, Hyunsoo Jung, et.al

More information

Keep Learning with Oracle University

Keep Learning with Oracle University Keep Learning with Oracle University Classroom Training Learning SubscripFon Live Virtual Class Training On Demand Cloud Technology ApplicaFons Industries educa7on.oracle.com 3 Session Surveys Help us

More information

SOFTWARE ARCHITECTURES ARCHITECTURAL STYLES SCALING UP PERFORMANCE

SOFTWARE ARCHITECTURES ARCHITECTURAL STYLES SCALING UP PERFORMANCE SOFTWARE ARCHITECTURES ARCHITECTURAL STYLES SCALING UP PERFORMANCE Tomas Cerny, Software Engineering, FEE, CTU in Prague, 2014 1 ARCHITECTURES SW Architectures usually complex Often we reduce the abstraction

More information

Space Details. Available Pages

Space Details. Available Pages Key: Space Details extremescale Name: WebSphere extreme Scale and DataPower XC10 Appliance Wiki Description: Creator (Creation Date): dwblogadmin (Apr 09, 2009) Last Modifier (Mod. Date): carriemiller

More information

Cookies, Sessions, and Persistence

Cookies, Sessions, and Persistence Cookies, Sessions, and Persistence Cookies and sessions are the most useful hack invented, allowing HTTP to become stateful and applications to work on the web. But it is persistence that ties the two

More information

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

Oracle. Exam Questions 1z Java Enterprise Edition 5 Web Services Developer Certified Professional Upgrade Exam. Version:Demo Oracle Exam Questions 1z0-863 Java Enterprise Edition 5 Web Services Developer Certified Professional Upgrade Exam Version:Demo 1.Which two statements are true about JAXR support for XML registries? (Choose

More information

RESTful Services for CIM (CIM-RS)

RESTful Services for CIM (CIM-RS) July 22-26, 2013 City Center Marriott Portland, OR RESTful Services for CIM (CIM-RS) Andreas Maier (IBM) STSM, Systems Management Architecture & Design maiera@de.ibm.com Disclaimer The information in this

More information

Unraveling the Mysteries of J2EE Web Application Communications

Unraveling the Mysteries of J2EE Web Application Communications Unraveling the Mysteries of J2EE Web Application Communications An HTTP Primer Peter Koletzke Technical Director & Principal Instructor Common Problem What we ve got here is failure to commun cate. Captain,

More information