REST Presentation: October 6th Abstract & Articles

Abstract:

REST emphasizes scalability of component interactions, generality of interfaces, independent deployment of components, and intermediary components to reduce interaction latency, enforce security, and encapsulate legacy systems.

REST provides a set of architectural constraints that, when applied as a whole, emphasizes scalability of component interactions, generality of interfaces, independent deployment of components, and intermediary components to reduce interaction latency, enforce security, and encapsulate legacy systems.

Readings:

•Fielding, Roy Thomas. Architectural Styles and the Design of Network-based Software Architectures. Doctoral dissertation, University of California, Irvine, 2000. - http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
•Principled Design of the Modern Web Architecture by ROY T. FIELDING and RICHARD N. TAYLOR, ACM Transactions on Internet Technology, Vol. 2, No. 2, May 2002, Pages 115–150.

•http://www.infoq.com/articles/rest-introduction
•http://www.infoq.com/articles/designing-restful-http-apps-roth
•http://www.youtube.com/watch?v=YCcAE2SCQ6k
•http://www.ietf.org/rfc/rfc3986.txt
•http://soa.dzone.com/news/rest-%E2%80%93-good-bad-and-ugly
•http://rest.blueoxen.net/cgi-bin/wiki.pl?WhatIsREST#nid652
•http://www.prescod.net/rest/
•http://www.prescod.net/rest/rest_vs_soap_overview/
•http://www.petefreitag.com/item/431.cfm
•http://en.wikipedia.org/wiki/Representational_State_Transfer
•http://www.xfront.com/REST-Web-Services.html
•http://dret.net/netdret/docs/soa-rest-www2009/
•http://rest.elkstein.org/2008/02/what-is-rest.html

When to and When not to use REST

Architects and developers need to decide when this particular style is an appropriate choice for their applications.

A RESTFul design may be appropriate when:
  • The web services are completely stateless. A good test is to consider whether the interaction can survive a restart of the server.
  • A caching infrastructure can be leveraged for performance. If the data that the web service returns is not dynamically generated and can be cached, then the caching infrastructure that web servers and other intermediaries inherently provide can be leveraged to improve performance. However, the developer must take care because such caches are limited to the HTTP GET method for most servers.
  • The service producer and service consumer have a mutual understanding of the context and content being passed along. Because there is no formal way to describe the web services interface, both parties must agree out of band on the schemas that describe the data being exchanged and on ways to process it meaningfully. In the real world, most commercial applications that expose services as RESTful implementations also distribute so-called value-added toolkits that describe the interfaces to developers in popular programming languages.
  • Bandwidth is particularly important and needs to be limited. REST is particularly useful for limited-profile devices such as PDAs and mobile phones, for which the overhead of headers and additional layers of SOAP elements on the XML payload must be restricted.
  • Web service delivery or aggregation into existing web sites can be enabled easily with a RESTful style. Developers can use technologies such as Asynchronous JavaScript with XML (AJAX) and toolkits such as Direct Web Remoting (DWR) to consume the services in their web applications. Rather than starting from scratch, services can be exposed with XML and consumed by HTML pages without significantly refactoring the existing web site architecture. Existing developers will be more productive because they are adding to something they are already familiar with, rather than having to start from scratch with new technology.

A SOAP-based design may be appropriate when
:

  • A formal contract must be established to describe the interface that the web service offers. The Web Services Description Language (WSDL) describes the details such as messages, operations, bindings, and location of the web service.
  • The architecture must address complex nonfunctional requirements. Many web services specifications address such requirements and establish a common vocabulary for them. Examples include Transactions, Security, Addressing, Trust, Coordination, and so on. Most real-world applications go beyond simple CRUD operations and require contextual information and conversational state to be maintained. With the RESTful approach, developers must build this plumbing into the application layer themselves.
  • The architecture needs to handle asynchronous processing and invocation. In such cases, the infrastructure provided by standards such as WSRM and APIs such as JAX-WS with their client-side asynchronous invocation support can be leveraged out of the box.

    Larry Ellison on Cloud Computing


    Source: http://www.youtube.com/watch?v=KmXJSeMaoTY

    Interesting video of Oracle's CEO Larry Ellison explaining that "Cloud Computing" is just another meaningless term that does nothing to advance the discussion of networked services.  Does anybody else tend to agree with him?

    Intro to REST Video


    Source: http://www.youtube.com/watch?v=YCcAE2SCQ6k

    Very nice overview of REST (Representational State Transfer) from Google.

    High Level Overview of Service-Oriented Architecture (SOA)

    Service Oriented Architecture or SOA is a systems integration architecture for the development of loosely coupled and distributed applications in an enterprise. SOA encompasses many services found on the network. These services communicate with each other and the communications involves data exchange and even service coordination. Generally SOA can be classified into two terms Services and Connections.

    Services:
    A service is a function or some processing logic or business processing that is well-defined, self-contained, and does not depend on the context or state of other services. An example of a service is Loan Processing or online booking of a flight. Another example may be a Weather Service, which can be used to get weather information. Any application (Service Consumer) on the network can use the Weather Service (Service Provider) to get weather information it needs.

    Connections:
    Connections are the link of connecting self-contained distributed services with each other, it enables the Service Consumer and Service Provider to communicate with each other. For Web services, SOAP over HTTP is typically used to communicate between services.

    The following figure is a simple example of the service-oriented architecture. It shows how a service consumer sends a service request to a service provider. After accepting the request, the service provider sends a message back to the service consumer providing it with the information it needs.


    SOA is different from other integration architectures, because it consists mostly of loosely coupled, highly interoperable application services. Services can be developed in different development languages (such as Java, .NET, C++, PERL, PHP) and the software components become reusable. For example the same C# service may be used by a Java application. A WSDL defines a standard, which allows different SOA components/technologies to talk to each other.

    Sources:
    http://en.wikipedia.org/wiki/Service-oriented_architecture
    http://www.roseindia.net/webservices/

    Integration of a another kind.....Lifecasting.....

    Nokia, Facebook Link GPS, Social Networking

    http://www.businessweek.com/globalbiz/blog/europeinsight/archives/2009/09/nokia_facebook.html

    Posted by: Jack Ewing on September 02

    For more than a year Nokia execs have been forecasting that the GPS capability of high-end mobile phones would mesh with social networks. Now the Finnish handset maker is trying to get out in front of the trend, announcing an agreement with Facebook that will let users broadcast their locations to friends. The new service, which Nokia is calling lifecasting, means you can let your Facebook friends know when you’re in the neighborhood. Instead of just connecting online, you could actually meet in the flesh.Lifecasting will come with the N97 mini when the $630 device begins shipping in October. It will also be available as a free download for owners of the N97, Nokia’s current top-of-the-line smartphone. The announcement, made Sept. 2 at the Nokia World event in Stuttgart, is part of a broader product and software offensive designed to reassert the company’s dominance in high-end devices.

    Lifecasting could help push online interaction back into the physical world—a potentially powerful development, especially if the service resonates with customers and application developers, and they find creative ways to use it.
    But history has also shown that such new developments often take years to catch on because they require a big change in user behavior. Nokia, which beat Apple to the market by years with devices that could surf the Internet, was not as successful as its rival in getting customers to actually use the capability. And the company is weak in the U.S. where Internet-based services often catch on first.
    Lifecasting is a great idea, but Nokia will have to show it has learned how to make such inventions not only possible but appealing and usable.

    What is Service Oriented Architure?


    Source: http://www.youtube.com/watch?v=zV860odGN5Y