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

Size: px
Start display at page:

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

Transcription

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

2 Outline 1 Introduction 2 Quality requirements 3 Web architecture 4 Web Systems 5 Web Applications 6 Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

3 Introduction The Web Started as a static information system Hypermedia: documents linked into a web By following links users retrieve the documents Based on HTTP, HTML, URL (global addressing schema) All components very simple: the major reason for the huge success Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

4 Systems Rate of Growth Introduction Time to reach 50 million people Telephone 75 years Radio 35 years TV 13 years The Web 4 years Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

5 Introduction Functional Requirements Berners-Lee: Web s major goal was to be a shared information space through which people and machines could communicate. A way for people to structure their information Usable for themselves and others A way to reference and structure information provided by others Cross-platform, global scope Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

6 Quality requirements Quality attributes Usability: it must be very easy to use I.e. very easy to create, structure and reference information Participation was voluntary and it was the only possibility to attract the users Very error forgiving in structuring and referencing because of non-technical background of users Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

7 Quality requirements Quality attributes Technical simplicity: it must be very easy for developers to implement All components simple and text-based I.e the first version of HTTP: servers need to respond to the GET method HTML very simple: easy to write parsers and browsers URLs extremely simple Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

8 Quality requirements Quality attributes Extensibility: it must be easy to add new features The first versions of components very simple - improvements were needed User requirements change even in a closed environment In a global scope the change is only feature that does not change E.g. very soon users wanted to have search facility apart browsing - HTML forms were introduced Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

9 Quality requirements Quality attributes Scalability: it needs to match the Internet-scale More precisely: anarchic scalability The Internet is not under control of a single organization it is totally decentralized Need to continue operating when under an unanticipated load or malformed or maliciously constructed data Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

10 Quality requirements Quality attributes Anarchic scalability: consequences Clients cannot be expected to maintain knowledge of all servers Servers cannot be expected to retain knowledge of state across requests Documents cannot have back-links: the number of references to a resource is proportional to the number of people interested in that information Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

11 Quality requirements Development of The Web The original Web was not designed to meet all of the requirements and quality attributed defined above It lacked also an architectural vision at that time that would meet these ambitious requirements Web Consortium was founded to solve these problems A lot of researchers worked on defining an architecture to meet these needs Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

12 Web architecture Deriving the Web architecture Introducing constraints on the Web architecture to obtain an optimal solution to the requirements and quality attributes Each constraint will have advantages and disadvantages The whole design process is then a balancing process Optimization to obtain a best-match for the Web architecture Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

13 Client-server Web architecture Figure: Client-server style Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

14 Web architecture Client-server Separation of concerns Separates user-interface from data manipulation concerns Supports independent evolvability E.g. clients and servers can be developed independently and across organizational boundaries Supports Internet-scale attribute Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

15 Stateless Web architecture Figure: Stateless server Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

16 Web architecture Stateless Communication must be stateless in nature Each request from client must contain all the information needed to process that request I.e. it can not take advantage of session information stored on the server Session state is completely on the client Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

17 Web architecture Stateless Supports visibility, reliability and scalability Visibility: only look at a single request to determine the full nature of the request Reliability: it eases the task of recovering from partial failures Scalability: not having to store state between requests allows the server component to quickly free resources Scalability: simplifies implementation because servers do not need to manage information across multiple requests Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

18 Cache Web architecture Figure: Cache Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

19 Web architecture Cache Information can be labeled (by servers) as cachable If a response is cacheable, then a client cache is given the right to reuse that response data for later, equivalent requests Improves efficiency, scalability, user-perceived performance Decreases reliability if the data does not match Midway: ask a server if the data has changed Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

20 Uniform interface Web architecture Figure: Uniform Interface Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

21 Web architecture Uniform interface Uniform interface between components Visibility of interactions is improves Simplifies the overall architecture Decouples implementations from the services Improves Internet-scale Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

22 Web architecture Uniform interface Uniform interface degrades efficiency Information is accessed and transferred in a standardized form rather than in an application specific form To define a uniform interface we need: Identification of resources (URL) Manipulation of resources through representations (HTML, recently XML) Self-descriptive messages (GET, POST, PUT, DELETE in HTTP) Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

23 Layered system Web architecture Figure: Layered system Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

24 Web architecture Layered system Improves Internet-scale Application composed of layers that are only aware of the neighbouring components not the complete system Bounds complexity and promotes indepency between components Supports scalability by introduction of proxies, shared-caches, gateways E.g. load-balancing behind a gateway Reduce user-perceived performance because they add processing overhead Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

25 Code on demand Web architecture Figure: Code on demand Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

26 Web architecture Code on demand Client functionality can be extended by downloading code E.g. Java applets, flash, JavaScript Improves extensibility Independent development Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

27 Types of Web Systems Web Systems Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

28 Web Systems The Web Two faces of the Web The Web as an application platform The Web as a huge distributed database Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

29 Web Applications Specifics of Web applications User requirements User interface and usability Application state and hypertext Addressability Architecture Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

30 Web Applications Application state on the Web: Hypertext Traditionally, application logic manages the application state E.g., the current state of the data, user inputs, etc. Typically, Web browser supports only HTML and does not have direct connection to the app logic Communication over network and HTTP with the app logic HTTP stateless (connection-less) Web server needs to track users and sessions Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

31 Web Applications Application state on the Web: Hypertext However, Web server provides only low-level tracking Responsibility of the app logic to manage sessions Manage it within the application server App server has other responsibilities as well Can lead to serious scalability problems Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

32 Web Applications Application state on the Web: Hypertext We can move session management to the client Manage it there with AJAX Other problems arise How to recover states with a new session: AJAX applications have typically single URLs How to recover previous state, i.e. browser back button problem Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

33 Web Applications Application state on the Web: Hypertext The solution is somewhere in the middle: manage only important states Manage those states with unique URLs E.g. each important application state has a new unique URLs Use linking to relate states to each other No management of the state on the server: no scalability problems No management of the state on the client: no recovery problems Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

34 Web Applications Application state on the Web: Hypertext Example: Google Maps Google Maps use Ajax to maintain permalink Any action that you execute changes the permalink The permalink is kept as a part of HTML This is the equivalent of the address bar Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

35 Web Applications Application state on the Web: Hypertext A little bit of extra DOM work keeps the permalink up to date as you navigate Every point on the map is a separate application state that has its own URL Application states were destroyed by Ajax but was put back by application design It allowed communities to grow around the Google Maps application Only because of proper management of application states with URLs! Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

36 Web Applications Addressability URL as the addressing schema E.g. /student/add /student/show /student/exam/add /student/exam/show Allow you to share application states for UI and services Just offer different content representations E.g. for UIs: HTML, for services: XML or JSON Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

37 Web Applications Addressability Advantages for humans (UIs) Meaningful, easier for humans Bookmarks Search engines can retrieve different parts and index it Advantages for service integration You might link services to each other Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

38 Web Applications Architecture: User-oriented database applications In traditional software engineering UODA are built with an N-tier architecture They started as 2-layer applications Data management layer and application/presentation layer Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

39 Web Applications Architecture: 2-layer applications Relational database as the Data Management layer Scripts (e.g. PHP) as application/presentation layer One and the same scripts implements application logic and the presentation (e.g. generating of HTML) Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

40 Web Applications Architecture: Problems of 2-layer applications Mixture of application and presentation related functionality Changes in application logic lead to changes in presentation functionality and vice versa E.g. changing a table that present some application data leads to changes in the return values of some application specific functions Even more dangerous the presentation layer talks directly to the DML Better modularity is achieved with the third layer Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

41 Web Applications Architecture: 3-layer applications Separation between Application and Presentation layer No direct connection between Presentation and Data Management Decoupling of Application and Presentation layer Possibility to exchange Presentation layers The best example: making a Web gateway to an existing application The old GUI (e.g. a standalone GUI) is replaced with a Web GUI Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

42 Web Applications Architecture: 3-layer applications Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

43 Web Applications Architecture: 3-layer applications Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

44 Web Applications Architecture: 3-layer applications Presentation tier: HTML, templates and scripts to generate HTML Application logic tier: the actual application Data access tier: manages persistent app data Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

45 Web Applications Architecture: 3-layer applications With introduction of AJAX different possibilities where to situate tiers E.g. presentation in browser: HTML + (presentation) JavaScript, Application and data access on server E.g. presentation and app in browser: HTML + (presentation and application) JavaScript, data access on server Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

46 Web Applications Architecture: 3-layer applications Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

47 Web Applications Architecture: 3-layer applications There are numerous architecture variants built on the top of N-tier architectures The most important for Web applications: Model-View-Controller architecture It was invented in the early days of GUIs To decouple the graphical interface from the application data and logic Very useful also for Web applications Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

48 Web Applications Architecture: Data Management Typically, Web applications deal with relational databases Need to manage relational data in object-oriented applications Use design patterns like Data Access Object (DAO) Use object/relational mapping, like Hibernate framework Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

49 Web Applications Architecture: Data Management Information retrieval How to find what I m looking for? One approach are search engines with full-text processing Another approaches analyze links Links in databases, or within documents Mixed approach: full-text and links, e.g. Google Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

50 Web Applications Architecture: Data Management Yet another approach is managing metadata Metadata is data about other data On the web Tag information items (everything that you can access via URL) in a structured manner Search inside metadata Social Web 2.0 applications or Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

51 Web as a database The Web we use is full of data Book information, opinions, prices, arrival times, blogs, tags, tweets, etc. The data is organized around a simple data model: node-link model Each node is a data item that has a unique address and a representation Representation formats are e.g. HTML, PDF,... for humans, or e.g XML, JSON for programs Nodes can be interlinked using their unique addresses Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

52 Web as a platform for distributed systems The Web is full of services that allow humans and programs to use the Web data Service also have unique addresses They use a particular representation for data exchange, e.g. XML, SOAP, WSDL Services follow a particular architecture that defines how services are used Programmers combine a number of services to achieve a desired functionality and create a distributed system, e.g. mashups Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

53 Types of services What is the Google search engine? It is a service for querying a massive database (Web search index) What is a given Web application? It is a service offering (remotely) a specific functionality What is a Web site? It is a service offering specific human consumable information Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

54 Types of services All of these services are for users However, we are interested in services for programmers Such services provide an API Programmers use the API, unique addresses, representations of services Programmers follow the arch. style to integrate and combine services to achieve a desired functionality We will call this part of the Web: the programmable Web Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

55 Kind of Things on the Programmable Web There are numerous approaches to web services in all areas The programmable Web is based on HTTP for data transport and in most cases XML for data representation However, some services serve HTML, JSON, plain text, binary data, etc. Also, other things such as addressability or APIs are different We need a classification! Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

56 Classification based on architectural design Which operation should a service execute? This is method information What data should be manipulated? This is scoping information Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

57 Method information Question: how the client conveys its intention to the server? How does a server know a certain request is a request to retrieve some data? Instead of a request to delete the same data? Why should the server do this instead of doing that Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

58 Method information First alternative Convey method information by putting it in the HTTP method GET, DELETE, PUT, POST Semantics is clear It is standardized Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

59 Method information Second alternative: e.g. Flickr services search&tags=penguin addtags&... deletecomment&... Method information is in a query variable, all methods use GET (although some change the data) Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

60 Method information Third alternative: SOAP and WSDL Method information is in the SOAP message encoded as defined by a WSDL wsdl_uri = driver = SOAP.create_rpc_driver(wsdl_uri) result_set = driver.dogooglesearch(...) Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

61 Method information POST search/beta2 HTTP/ <soap:envelope> <soap:body> <gs:dogooglesearch> <q>rest</q> </gs:dogooglesearch> </soap:body> </soap:envelope> Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

62 Method information <operation name="dogooglesearch"> <input message="typens:dogooglesearch" /> <output message="typens:dogooglesearchresponse" /> </operation> Method information defined in WSDL and used in SOAP and via SOAP-framework in the code HTTP method is always POST Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

63 Scoping information Question: How the client tells the server on which data to operate? E.g. the server knows that the client wants to delete some data, but which data is it? Why should server operate on this data instead of that data? Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

64 Scoping information First alternative: as query variables in URL Scoping information is q=rest Method information is in GET Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

65 Scoping information Yet another example Flickr Most of the query variables are scoping information tags=penguin Recollect that Flickr also includes method information in query variables Thus, URL contains a method and a number of arguments for that method Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

66 Scoping information Second alternative: scoping information in the body of a SOAP message POST search/beta2 HTTP/ <soap:envelope> <soap:body> <gs:dogooglesearch> <q>rest</q> </gs:dogooglesearch> </soap:body> </soap:envelope> Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

67 Competing Architectures RESTful, Resource-Oriented Architectures RPC-Style Architectures REST-RPC Hybrid Architectures Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

68 RPC-Style Architectures RPC - Remote Procedure Call An RPC style service receives an envelope full of data from the client The service answers with a similar envelope again full of data to the client Both method and scoping information are inside of the envelope HTTP methods typically POST but sometimes also GET Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

69 RPC-Style Architectures The best example of the envelope format is SOAP There exist other envelope formats like XML-RPC Every RPC-style service defines a completely new vocabulary E.g. the way how method information and scoping information are represented You need another language to define the representation: e.g. WSDL Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

70 Problems of SOAP/WSDL RPC implies an API APIs tend to enforce tight coupling of modules and systems We use declarative XML to describe APIs This introduces processing overhead Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

71 Problems of SOAP/WSDL APIs and there definitions in some language e.g. WSDL introduce new vocabulary and hence a new addressability schema This is a big problem for service integration, in particular for automatic integration Each service needs to understands what all other services provide and how to address the functionality But where are URLs, links, representations? All the nice Web elements that made it successful! Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

72 RESTful, Resource Oriented Architectures RESTful services look like the Web Method information goes into into the HTTP method Scoping information goes into the URL If the method information is not in HTTP method - the service is not RESTful If the scoping information is not in the URL - the service is not RESTful Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

73 Some examples of RESTful services Services that expose Atom Publishing Protocol, such as GData Amazon s Simple Storage Service S3 Most of Yahoo! s web services Static web sites Many web applications, especially read-only such as search engines Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

74 Clients for RESTful services In principle clients are simple HTTP clients When you program a client you need an HTTP library In most cases you will need an XML library to parse the response Programatically, clients are in a typical case extremely simple Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

75 Client for a RESTful service - Example Example using Simple Storage Service - S3 S3 allows you to store any data you like using different structures S3 is based on two concepts: buckets and objects A bucket is analogous to the filesystem An object is analogous to a file Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

76 Client for a RESTful service - Example S3 service exposes three resources that you can manipulate The list of your buckets A particular bucket A particular object inside a bucket Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

77 Client for a RESTful service - Example Every resource exposes the same interface and works in the same way To get an object s value you send a GET request to the object s URL To get only object s metadata you send a HEAD request to the same URL To add an object to a bucket you send a PUT request to a URL that has the bucket name and the object s name Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

78 Client for a RESTful service - Example HOST = doc = REXML::Document.new(open(HOST).read) REXML::XPathj.each(doc, "//Bucket/Name") do e buckets << Bucket.new(e.text) if e.text end return buckets Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

79 Client for a RESTful service - Example <Buckets> <Bucket> <Name>crummy.com</Name> <CreationDate>...</CreationDate> </Bucket>... </Buckets> Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

80 Resource Oriented Architectures 4 defining features of ROA Addressability: the scoping information is kept in the URL Uniform interface: the method information is kept in the HTTP method Statelessness: every HTTP request is isolated from other requests Connectedness: you link resources into the Web of resources Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

81 Addressability Resources are exposed through URLs - an application exposes a number of URLs When you have URLs you bookmark, cache responses, chain URLs,... Many Web applications do not work this way, i.e. they are not addressable, e.g. GMail Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

82 Uniform interface Standardized HTTP methods: CRUD operations Two principles Safety: GET only reads data Idempotence: the same operation has the same effect wheter you apply it once or multiple times Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

83 Statelessness Every request contains all necessary information There is no state managed on the server side In fact, there are two kinds of state You should distinguish between the application state and resource state Application state lives on the client Resource state lives on the server Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

84 Statelessness When you use a search engine your current query and your current page belongs to application state They are different for every client Resource state is same for every client, i.e. search index A crawler can update the search index Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

85 Links and connectedness Representations of resources, i.e. HTML or XML might have links to other resources Axiom for REST services: Hypermedia as the engine of application state The current application state is not stored on the server as a resource state It is tracked by the client as an application state and created by the path that client takes through the Web Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

86 Links and connectedness For example The first page is the starting application state You have links to other application states Obvious for the human Web Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

87 Links and connectedness <Buckets> <Bucket> <Name>crummy.com</Name> <URL> <CreationDate>...</CreationDate> </Bucket>... </Buckets> Following the link in the URL element takes the client to a new application state Use links, links, and then use more links,... Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

88 Designing RESTful services Figure out data set Split the data set into resources Then, for each resource Name the resources with URLs Expose a subset of the uniform interface Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

89 Designing RESTful services Design representations accepted from the client Design representations served to the client Integrate this resource into other resources using links Consider possible application states Consider possible error states Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

90 Example Application similar google maps: maps of cities, streets, planets,... Data set: Maps, points, cities, planets,... Resources: list of resources, individual resources, results of algorithms applied to the data set Example resources: the list of planets, Mars, Earth, San Francisco, Inffeldgasse,... An algorithmic resource: a list of places that match certain criteria - all cities with more than 1 million of people Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

91 Example Name the resources: create meaningful URLs Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

92 Example Design representations A representation talks about resource state A representation links to other (application and resource) states Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

93 Read/Write RESTful services User accounts should be resources To access these resources you need to use HTTP authentication Connect with the previous resources: e.g. custom places on a map Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

94 RESTful frameworks Ruby on Rails with a plugin Django in Python Restlet in Java ( Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

95 Restlet example public Restlet createroot(){ Router router = new Router(getContext()); router.attach("/users/{username}", UserResource.class); router.attach("users/{username}/bookmarks", BookmarksResource.class); router.attach("users/{username}/bookmark/{url}", BookmarkResource.class); } Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

96 Restlet example public UserResource(Context context, Request request, Response response){ super(context, request, response); username_ = (String) request.getattribute(). get("username");... getvariants().add(new Variant(MediaType.TEXT_PLAIN)); } Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

97 Restlet example public Representation getrepresentation(variant variant){... if(variant.getmediatype().equals(mediatype. TEXT_PLAIN)){ result = "-----User details ";... } return result; } Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

98 REST Web service: Example To create a REST Web service the following steps should be accomplished Define URLs Define XML vocabulary Define which methods are available at each URL Define HTTP status codes Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

99 REST Web service: Example Defining URLs Recollect the clean URLs that we have discussed before Course with ID 1: Course with ID 2: All courses: Note that URLs are regular, i.e., we can automatically construct them Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

100 REST Web service: Example Defining XML formats Single course <?xml version="1.0" encoding="utf-8"?> <course> <title>mmis2</title> <url> <id type="integer">1</id> <description>advanced course on multimedia information systems</description> </course> Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

101 REST Web service: Example All courses (collection) <?xml version="1.0" encoding="utf-8"?> <courses> <course> <title>mmis2</title> <url> <id type="integer">1</id> <description>advanced course on multimedia information systems</description> </course> <course>...</course> </courses> Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

102 REST Web service: Example Defining methods GET and POST GET retrives the list, POST adds another course to the list GET, PUT, DELETE PUT updates the course Additionally, send OPTIONS at each URL to see what is available Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

103 REST Web service: Example Defining HTTP status codes GET: HTTP/ OK POST: HTTP/ Created PUT, DELETE: HTTP/ No Content Error code: HTTP/ Internal Server Error Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

104 REST Web service: Example We need a Web server that can dispatch URLs and HTTP methods to appropriate code Within that code we manipulate resources using their XML representations With Rails we can also dispatch URLs easy Recollect that Rails dispatch to a class and a method within that class We need to dispatch to a class and according to the HTTP method Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

105 REST Web service: Example There is a Rails plugin that does exactly that RESTful Rails controller class CourseController < ApplicationController include RestController::Base... end Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

106 REST Web service: Example The plugin allows you to introduce resources and within resources handle HTTP methods resource :collection do r conditions = Course.find_all end r.post do... end GET method is automatically handled and connected with appropriate XML-based view Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

107 REST Web service: Example collection.rxml in views directory xml.instruct! xml.courses do xml.title do course xml.course do xml.id course.id xml.title course.title xml.url course.url xml.description course.description... end end end Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

108 REST Web service: Example Handling POST to the collection (adding a course) r.post = Course.new params[:course] render_post_success :action => by_id, :id end end Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

109 REST Web service: Example Handling of single courses (introduce a new rule by id) resource :by_id do r conditions = Course.find(params[:id]) end r.put = params[:course] render_put_success end end Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

110 REST Web service: Example Deleting a resource... r.delete do render_delete_success :id => nil end end... Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

111 REST Web service: Example GET XML view Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

112 REST Web service: Example Demo: rest_courses.zip curl curl curl -i -X POST -d <course><title> Web Information Systems</title></course> curl -i -X PUT -H Content-Type: application/xml -d <course> <title>web Information Systems</title> <description>very advanced course</description> </course> curl -i -X DELETE Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

113 REST-RPC Hybrid Architectures (1) Services somewhere between RESTful and RPC services search&tags=penguin Both method and scoping information is in URL HTTP is used as an envelope format Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

114 REST-RPC Hybrid Architectures (2) GET services/rest?method=flickr.photos.search& tags=penguin HTTP/1.1 Host: Another prominent example of this style is del.icio.us Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

115 Programmable Web Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

116 Programmable Web Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

117 Further Readings What is Service-Oriented Architecture? A Primer webservices/index.html Top Ten FAQs for webservicefaqs.html?page=1 Service-Oriented Architecture and : Concepts, Technologies, and Tools WebServices/soa2/index.html Articles on from O Reilly Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

118 Further Readings REST definition (PhD Thesis of Roy Fielding) rest_arch_style.htm The Restful Web: Column on xml.com Putting REST on Rails REST vs SOAP: Second Generation Denis Helic (KMI, TU Graz) WWW Architecture Dec 7, / 118

WWW Architecture I. Software Architecture VO/KU ( / ) Roman Kern. KTI, TU Graz

WWW Architecture I. Software Architecture VO/KU ( / ) Roman Kern. KTI, TU Graz WWW Architecture I Software Architecture VO/KU (707.023/707.024) Roman Kern KTI, TU Graz 2013-12-04 Roman Kern (KTI, TU Graz) WWW Architecture I 2013-12-04 1 / 81 Web Development Tutorial Java Web Development

More information

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

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

Architectural Styles II

Architectural Styles II Architectural Styles II Software Architecture VO/KU (707.023/707.024) Denis Helic, Roman Kern KMI, TU Graz Nov 21, 2012 Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles II Nov 21, 2012 1 / 66

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

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

Web Frameworks MMIS 2 VU SS Denis Helic. March 10, KMI, TU Graz. Denis Helic (KMI, TU Graz) Web Frameworks March 10, / 18

Web Frameworks MMIS 2 VU SS Denis Helic. March 10, KMI, TU Graz. Denis Helic (KMI, TU Graz) Web Frameworks March 10, / 18 Web Frameworks MMIS 2 VU SS 2011-707.025 Denis Helic KMI, TU Graz March 10, 2011 Denis Helic (KMI, TU Graz) Web Frameworks March 10, 2011 1 / 18 Web Application Frameworks MVC Frameworks for Web applications

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

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

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

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

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

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

Architectural Styles I

Architectural Styles I Architectural Styles I Software Architecture VO/KU (707.023/707.024) Denis Helic, Roman Kern KMI, TU Graz Nov 14, 2012 Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, 2012 1 / 80

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 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

Web Programming Paper Solution (Chapter wise)

Web Programming Paper Solution (Chapter wise) Introduction to web technology Three tier/ n-tier architecture of web multitier architecture (often referred to as n-tier architecture) is a client server architecture in which presentation, application

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

Architectural Styles I

Architectural Styles I Architectural Styles I Software Architecture VO/KU (707023/707024) Roman Kern KTI, TU Graz 2015-01-07 Roman Kern (KTI, TU Graz) Architectural Styles I 2015-01-07 1 / 86 Outline 1 Non-Functional Concepts

More information

Course. Multimediale Informationssysteme 2. Lecturer. Lecturer VU SS

Course. Multimediale Informationssysteme 2. Lecturer. Lecturer VU SS Course Multimediale Informationssysteme 2 VU SS 2011-707.025 Denis Helic KMI, TU Graz Multimediale Informationssysteme 2 (VU 707.025) Elective (optional) course for Software Engineering Elective (optional)

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

Database Driven Web 2.0 for the Enterprise

Database Driven Web 2.0 for the Enterprise May 19, 2008 1:30 p.m. 2:30 p.m. Platform: Linux, UNIX, Windows Session: H03 Database Driven Web 2.0 for the Enterprise Rav Ahuja IBM Agenda What is Web 2.0 Web 2.0 in the Enterprise Web 2.0 Examples and

More information

WWW Architecture II. Software Architecture VO/KU ( / ) Denis Helic, Roman Kern. KMI, TU Graz. Dec 5, 2012

WWW Architecture II. Software Architecture VO/KU ( / ) Denis Helic, Roman Kern. KMI, TU Graz. Dec 5, 2012 WWW Architecture II Software Architecture VO/KU (707.023/707.024) Denis Helic, Roman Kern KMI, TU Graz Dec 5, 2012 Denis Helic, Roman Kern (KMI, TU Graz) WWW Architecture II Dec 5, 2012 1 / 66 Section

More information

XML Processing & Web Services. Husni Husni.trunojoyo.ac.id

XML Processing & Web Services. Husni Husni.trunojoyo.ac.id XML Processing & Web Services Husni Husni.trunojoyo.ac.id Based on Randy Connolly and Ricardo Hoar Fundamentals of Web Development, Pearson Education, 2015 Objectives 1 XML Overview 2 XML Processing 3

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

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

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

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

Database Applications

Database Applications Database Applications Database Programming Application Architecture Objects and Relational Databases John Edgar 2 Users do not usually interact directly with a database via the DBMS The DBMS provides

More information

Reading How the Web Works

Reading How the Web Works Reading 1.3 - How the Web Works By Jonathan Lane Introduction Every so often, you get offered a behind-the-scenes look at the cogs and fan belts behind the action. Today is your lucky day. In this article

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

Implementing a Numerical Data Access Service

Implementing a Numerical Data Access Service Implementing a Numerical Data Access Service Andrew Cooke October 2008 Abstract This paper describes the implementation of a J2EE Web Server that presents numerical data, stored in a database, in various

More information

Distributed Systems Principles and Paradigms. Chapter 12: Distributed Web-Based Systems

Distributed Systems Principles and Paradigms. Chapter 12: Distributed Web-Based Systems Distributed Systems Principles and Paradigms Maarten van Steen VU Amsterdam, Dept. Computer Science steen@cs.vu.nl Chapter 12: Distributed -Based Systems Version: December 10, 2012 Distributed -Based Systems

More information

Web Architecture Review Sheet

Web Architecture Review Sheet Erik Wilde (School of Information, UC Berkeley) INFO 190-02 (CCN 42509) Spring 2009 May 11, 2009 Available at http://dret.net/lectures/web-spring09/ Contents 1 Introduction 2 1.1 Setup.................................................

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

CaptainCasa Enterprise Client. CaptainCasa Enterprise Client. CaptainCasa & Java Server Faces

CaptainCasa Enterprise Client. CaptainCasa Enterprise Client. CaptainCasa & Java Server Faces CaptainCasa & Java Server Faces 1 Table of Contents Overview...3 Why some own XML definition and not HTML?...3 A Browser for Enterprise Applications...4...Java Server Faces joins the Scenario!...4 Java

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

The NoPlsql and Thick Database Paradigms

The NoPlsql and Thick Database Paradigms The NoPlsql and Thick Database Paradigms Part 2: Adopting ThickDB Toon Koppelaars Real-World Performance Oracle Server Technologies Bryn Llewellyn Distinguished Product Manager Oracle Server Technologies

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

Chapter 10 Web-based Information Systems

Chapter 10 Web-based Information Systems Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 10 Web-based Information Systems Role of the WWW for IS Initial

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

Integrating with ClearPass HTTP APIs

Integrating with ClearPass HTTP APIs Integrating with ClearPass HTTP APIs HTTP based APIs The world of APIs is full concepts that are not immediately obvious to those of us without software development backgrounds and terms like REST, RPC,

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

Web 2.0, AJAX and RIAs

Web 2.0, AJAX and RIAs Web 2.0, AJAX and RIAs Asynchronous JavaScript and XML Rich Internet Applications Markus Angermeier November, 2005 - some of the themes of Web 2.0, with example-sites and services Web 2.0 Common usage

More information

Distributed Multitiered Application

Distributed Multitiered Application Distributed Multitiered Application Java EE platform uses a distributed multitiered application model for enterprise applications. Logic is divided into components https://docs.oracle.com/javaee/7/tutorial/overview004.htm

More information

CLIENT SERVER ARCHITECTURE:

CLIENT SERVER ARCHITECTURE: CLIENT SERVER ARCHITECTURE: Client-Server architecture is an architectural deployment style that describe the separation of functionality into layers with each segment being a tier that can be located

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

Test On Line: reusing SAS code in WEB applications Author: Carlo Ramella TXT e-solutions

Test On Line: reusing SAS code in WEB applications Author: Carlo Ramella TXT e-solutions Test On Line: reusing SAS code in WEB applications Author: Carlo Ramella TXT e-solutions Chapter 1: Abstract The Proway System is a powerful complete system for Process and Testing Data Analysis in IC

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

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

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

SOA & REST. Ola Angelsmark

SOA & REST. Ola Angelsmark SOA & REST Ola Angelsmark What is SOA? Service oriented architecture A loosely-coupled architecture designed to meet the business needs of the organization. [1] SOAP

More information

Application Design and Development: October 30

Application Design and Development: October 30 M149: Database Systems Winter 2018 Lecturer: Panagiotis Liakos Application Design and Development: October 30 1 Applications Programs and User Interfaces very few people use a query language to interact

More information

describe the functions of Windows Communication Foundation describe the features of the Windows Workflow Foundation solution

describe the functions of Windows Communication Foundation describe the features of the Windows Workflow Foundation solution 1 of 9 10/9/2013 1:38 AM WCF and WF Learning Objectives After completing this topic, you should be able to describe the functions of Windows Communication Foundation describe the features of the Windows

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

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

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

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

Databases 2 (VU) ( )

Databases 2 (VU) ( ) Databases 2 (VU) (707.030) Denis Helic KMI, TU Graz Oct 5, 2015 Denis Helic (KMI, TU Graz) Dbase2 Oct 5, 2015 1 / 33 Lecturer Name: Denis Helic Office: IWM (Know-Center), Inffeldgasse 13, 5th Floor, Room

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

EEC-682/782 Computer Networks I

EEC-682/782 Computer Networks I EEC-682/782 Computer Networks I Lecture 20 Wenbing Zhao w.zhao1@csuohio.edu http://academic.csuohio.edu/zhao_w/teaching/eec682.htm (Lecture nodes are based on materials supplied by Dr. Louise Moser at

More information

7401ICT eservice Technology. (Some of) the actual examination questions will be more precise than these.

7401ICT eservice Technology. (Some of) the actual examination questions will be more precise than these. SAMPLE EXAMINATION QUESTIONS (Some of) the actual examination questions will be more precise than these. Basic terms and concepts Define, compare and discuss the following terms and concepts: a. HTML,

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

ICOM 5016 Database Systems. Database Users. User Interfaces and Tools. Chapter 8: Application Design and Development.

ICOM 5016 Database Systems. Database Users. User Interfaces and Tools. Chapter 8: Application Design and Development. Chapter 8: Application Design and Development ICOM 5016 Database Systems Web Application Amir H. Chinaei Department of Electrical and Computer Engineering University of Puerto Rico, Mayagüez User Interfaces

More information

COMP9321 Web Application Engineering

COMP9321 Web Application Engineering COMP9321 Web Application Engineering Semester 2, 2015 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 12 (Wrap-up) http://webapps.cse.unsw.edu.au/webcms2/course/index.php?cid=2411

More information

COMP9321 Web Application Engineering

COMP9321 Web Application Engineering COMP9321 Web Application Engineering Semester 1, 2017 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 12 (Wrap-up) http://webapps.cse.unsw.edu.au/webcms2/course/index.php?cid=2457

More information

Overview of Web Application Development

Overview of Web Application Development Overview of Web Application Development Web Technologies I. Zsolt Tóth University of Miskolc 2018 Zsolt Tóth (University of Miskolc) Web Apps 2018 1 / 34 Table of Contents Overview Architecture 1 Overview

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

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

Web Engineering (CC 552)

Web Engineering (CC 552) Web Engineering (CC 552) Introduction Dr. Mohamed Magdy mohamedmagdy@gmail.com Room 405 (CCIT) Course Goals n A general understanding of the fundamentals of the Internet programming n Knowledge and experience

More information

All About Open & Sharing

All About Open & Sharing All About Open & Sharing 차세대웹기술과컨버전스 Lecture 3 수업블로그 : http://itmedia.kaist.ac.kr 2008. 2. 28 한재선 (jshan0000@gmail.com) NexR 대표이사 KAIST 정보미디어경영대학원대우교수 http://www.web2hub.com Open & Sharing S2 OpenID Open

More information

Applikationen im Browser Webservices ohne Grenzen

Applikationen im Browser Webservices ohne Grenzen Applikationen im Browser Webservices ohne Grenzen Dan Theurer, Technical Evangelist Yahoo! Developer Network Java Forum Stuttgart, CA 5. Juli 2007 2007 About Me Software Technik - FHTE Esslingen DB2e -

More information

Discussion #4 CSS VS XSLT. Multiple stylesheet types with cascading priorities. One stylesheet type

Discussion #4 CSS VS XSLT. Multiple stylesheet types with cascading priorities. One stylesheet type Discussion #4 CSS VS XSLT Difference 1 CSS Multiple stylesheet types with cascading priorities XSLT One stylesheet type Difference 2 Used for HTML Used for structured document Difference 3 Only client

More information

Web Application Expectations

Web Application Expectations Effective Ruby on Rails Development Using CodeGear s Ruby IDE Shelby Sanders Principal Engineer CodeGear Copyright 2007 CodeGear. All Rights Reserved. 2007/6/14 Web Application Expectations Dynamic Static

More information

Execution Architecture

Execution Architecture Execution Architecture Software Architecture VO (706.706) Roman Kern Institute for Interactive Systems and Data Science, TU Graz 2018-11-07 Roman Kern (ISDS, TU Graz) Execution Architecture 2018-11-07

More information

Just relax - take some 90 minutes of ReST

Just relax - take some 90 minutes of ReST Just relax - take some 90 minutes of ReST Markku Laitkorpi Nokia Research Center 4.10.2007 TUT 1 V1-Filename.ppt / yyyy-mm-dd / Initials Prologue: Why should I care? My WS tools can generate a nice SOAP

More information

MongoDB Web Architecture

MongoDB Web Architecture MongoDB Web Architecture MongoDB MongoDB is an open-source, NoSQL database that uses a JSON-like (BSON) document-oriented model. Data is stored in collections (rather than tables). - Uses dynamic schemas

More information

AJAX Programming Overview. Introduction. Overview

AJAX Programming Overview. Introduction. Overview AJAX Programming Overview Introduction Overview In the world of Web programming, AJAX stands for Asynchronous JavaScript and XML, which is a technique for developing more efficient interactive Web applications.

More information

Semantic Web and Web2.0. Dr Nicholas Gibbins

Semantic Web and Web2.0. Dr Nicholas Gibbins Semantic Web and Web2.0 Dr Nicholas Gibbins Web 2.0 is the business revolution in the computer industry caused by the move to the internet as platform, and an attempt to understand the rules for success

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

Delivery Options: Attend face-to-face in the classroom or remote-live attendance.

Delivery Options: Attend face-to-face in the classroom or remote-live attendance. XML Programming Duration: 5 Days Price: $2795 *California residents and government employees call for pricing. Discounts: We offer multiple discount options. Click here for more info. Delivery Options:

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

REST AND AJAX. Introduction. Module 13

REST AND AJAX. Introduction. Module 13 Module 13 REST AND AJAX Introduction > Until now we have been building quite a classic web application: we send a request to the server, the server processes the request, and we render the result and show

More information

STANDARD REST API FOR

STANDARD REST API FOR STANDARD REST API FOR EMAIL Kalana Guniyangoda (118209x) Dissertation submitted in partial fulfillment of the requirements for the degree Master of Science Department of Computer Science & Engineering

More information

Extended Identity for Social Networks

Extended Identity for Social Networks Extended Identity for Social Networks Antonio Tapiador, Antonio Fumero, and Joaquín Salvachúa Universidad Politécnica de Madrid, ETSI Telecomunicación, Avenida Complutense 30, 28040 Madrid, Spain {atapiador,amfumero,jsalvachua}@dit.upm.es

More information

Introduction to XML. Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University

Introduction to XML. Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University Introduction to XML Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University http://gear.kku.ac.th/~krunapon/xmlws 1 Topics p What is XML? p Why XML? p Where does XML

More information

Delivery Options: Attend face-to-face in the classroom or via remote-live attendance.

Delivery Options: Attend face-to-face in the classroom or via remote-live attendance. XML Programming Duration: 5 Days US Price: $2795 UK Price: 1,995 *Prices are subject to VAT CA Price: CDN$3,275 *Prices are subject to GST/HST Delivery Options: Attend face-to-face in the classroom or

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

Simile Tools Workshop Summary MacKenzie Smith, MIT Libraries

Simile Tools Workshop Summary MacKenzie Smith, MIT Libraries Simile Tools Workshop Summary MacKenzie Smith, MIT Libraries Intro On June 10 th and 11 th, 2010 a group of Simile Exhibit users, software developers and architects met in Washington D.C. to discuss the

More information

ITP 140 Mobile Technologies. Mobile Topics

ITP 140 Mobile Technologies. Mobile Topics ITP 140 Mobile Technologies Mobile Topics Topics Analytics APIs RESTful Facebook Twitter Google Cloud Web Hosting 2 Reach We need users! The number of users who try our apps Retention The number of users

More information

Analysis and Selection of Web Service Technologies

Analysis and Selection of Web Service Technologies Environment. Technology. Resources, Rezekne, Latvia Proceedings of the 11 th International Scientific and Practical Conference. Volume II, 18-23 Analysis and Selection of Web Service Technologies Viktorija

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

SOA: Service-Oriented Architecture

SOA: Service-Oriented Architecture SOA: Service-Oriented Architecture Dr. Kanda Runapongsa (krunapon@kku.ac.th) Department of Computer Engineering Khon Kaen University 1 Gartner Prediction The industry analyst firm Gartner recently reported

More information

Semantic Web Lecture Part 1. Prof. Do van Thanh

Semantic Web Lecture Part 1. Prof. Do van Thanh Semantic Web Lecture Part 1 Prof. Do van Thanh Overview of the lecture Part 1 Why Semantic Web? Part 2 Semantic Web components: XML - XML Schema Part 3 - Semantic Web components: RDF RDF Schema Part 4

More information

COMET, HTML5 WEBSOCKETS OVERVIEW OF WEB BASED SERVER PUSH TECHNOLOGIES. Comet HTML5 WebSockets. Peter R. Egli INDIGOO.COM. indigoo.com. 1/18 Rev. 2.

COMET, HTML5 WEBSOCKETS OVERVIEW OF WEB BASED SERVER PUSH TECHNOLOGIES. Comet HTML5 WebSockets. Peter R. Egli INDIGOO.COM. indigoo.com. 1/18 Rev. 2. COMET, HTML5 WEBSOCKETS OVERVIEW OF WEB BASED SERVER PUSH TECHNOLOGIES Peter R. Egli INDIGOO.COM 1/18 Contents 1. Server push technologies 2. HTML5 server events 3. WebSockets 4. Reverse HTTP 5. HTML5

More information

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

Web Development. Lab. Bases de Dados e Aplicações Web MIEIC, FEUP 10/11. Sérgio Nunes Web Development Lab. Bases de Dados e Aplicações Web MIEIC, FEUP 10/11 Sérgio Nunes 1 Summary The Internet The World Wide Web Web Technologies 2 Introduction 3 Previous Experience? 4 Web and Internet What

More information

Web basics: HTTP cookies

Web basics: HTTP cookies Web basics: HTTP cookies Myrto Arapinis School of Informatics University of Edinburgh February 11, 2016 1 / 27 How is state managed in HTTP sessions HTTP is stateless: when a client sends a request, the

More information

Top 10 AJAX security holes & driving factors

Top 10 AJAX security holes & driving factors Top 10 AJAX security holes & driving factors Shreeraj Shah Founder, Net Square shreeraj@net-square.com Introduction One of the central ingredients of Web 2.0 applications is Ajax encompassed by JavaScripts.

More information

Comprehensive AngularJS Programming (5 Days)

Comprehensive AngularJS Programming (5 Days) www.peaklearningllc.com S103 Comprehensive AngularJS Programming (5 Days) The AngularJS framework augments applications with the "model-view-controller" pattern which makes applications easier to develop

More information

Enterprise Java Unit 1- Chapter 3 Prof. Sujata Rizal Introduction to Servlets

Enterprise Java Unit 1- Chapter 3 Prof. Sujata Rizal Introduction to Servlets 1. Introduction How do the pages you're reading in your favorite Web browser show up there? When you log into your favorite Web site, how does the Web site know that you're you? And how do Web retailers

More information