List of Figures

Chapter 1. Introducing the Restlet Framework

Figure 1.1. We use the term web applications to refer to web services, websites, and web clients.

Figure 1.2. Decomposition of an abstract resource intoRestlet artifacts

Figure 1.3. Example of one use of the comprehensive and modular Restlet architecture

Figure 1.4. Overall Restlet design

Figure 1.5. Platforms supported by Restlet

Chapter 2. Beginning a Restlet application

Figure 2.1. Restlet applications are containers of server resources and/or client

Figure 2.2. Restlet applications are structured into three concentric layers, processing inbound

Figure 2.3. Server calls enter a Restlet application through the service filtering layer, continue into the user routing layer via the inbound root, then reach the target server resources.

Figure 2.4. Client calls start from client resources, enter the user routing layer via the outbound root, and leave the application after going through the service filtering layer.

Figure 2.5. Class diagram of Application and its parent class, Restlet

Figure 2.6. Class diagram of the Context class listing properties and special methods

Figure 2.7. This filter is handling three concurrent calls, passing two of them to the next Restlet and blocking the third one.

Figure 2.8. Class diagram showing common org.restlet.routing.Filter subclasses

Figure 2.9. The router is handling three concurrent calls and dispatching them to attached routes.

Figure 2.10. Router dispatching concurrent calls to three target server resources

Figure 2.11. Lifecycle of a server resource for a given call

Figure 2.12. Restlet-annotated Java interfaces can be used by client resources as a client proxy or when implementing a server resource subclass.

Chapter 3. Deploying a Restlet application

Figure 3.1. Restlet components are containers of Restlet applications and connect them to other distributed REST components.

Figure 3.2. Restlet components are structured into four concentric layers, processing inbound and outbound calls in logical steps.

Figure 3.3. A closer look at the content of a Restlet component

Figure 3.4. Class diagram of the Connector superclass and the Client and Server child classes

Figure 3.5. Virtual host listening on two IP addresses and serving several domain names

Figure 3.6. Using the Servlet engine as an HTTP server connector for a Restlet component

Figure 3.7. Using the Servlet engine as a container of Restlet applications

Figure 3.8. Using the Restlet Framework as a library inside Servlet applications

Chapter 4. Producing and consuming Restlet representations

Figure 4.1. The Variant and RepresentationInfo classes are ancestors of all Restlet representations.

Figure 4.2. The abstract Representation class is the superclass of all Restlet representations.

Figure 4.3. The various ways to consume representations’ content

Figure 4.4. Subclasses of representation

Figure 4.5. Character-based representation classes

Figure 4.6. BIO stream-based representation classes

Figure 4.7. NIO channel-based representation classes

Figure 4.8. Example resource exposing an XML document as representation

Figure 4.9. Partial details of the base XmlRepresentation class

Figure 4.10. Properties and methods of the DomRepresentation class

Figure 4.11. Properties and methods of the SaxRepresentation class

Figure 4.12. XPath-related methods of the XmlRepresentation class

Figure 4.13. XML namespace-related properties and methods of the XmlRepresentation class

Figure 4.14. XML schema validation-related properties and methods of the XmlRepresentation class

Figure 4.15. Properties and methods of the TransformRepresentation class

Figure 4.16. Properties and methods of the JaxbRepresentation class

Figure 4.17. Example resource exposing a JSON document as representation

Figure 4.18. Properties and methods of the JsonRepresentation

Figure 4.19. Properties and methods of the JacksonRepresentation

Figure 4.20. Example resource exposing an HTML document as representation

Figure 4.21. Account resource identified by a URI and represented by three variants

Figure 4.22. Account resource represented by bean serialized in three variants

Chapter 5. Securing a Restlet application

Figure 5.1. HTTPS sequence diagram with TLS/SSL

Figure 5.2. Entities involved when using authentication with Restlet on both client and server sides

Figure 5.3. Interactions between client and server sides during HTTP Digest digest authentication

Figure 5.4. Hierarchy of authenticator classes

Figure 5.5. Hierarchy of credentials verifiers

Figure 5.6. Hierarchy of authorizers

Chapter 6. Documenting and versioning a Restlet application

Figure 6.1. The WadlApplication class can be used to describe an application in WADL.

Figure 6.2. The WadlServerResource class can be used to further describe resources in WADL.

Figure 6.3. The partial WADL documentation converted to HTML

Chapter 7. Enhancing a Restlet application with recipes and best practices

Figure 7.1. Displaying the mail-editing form

Figure 7.2. Class diagram of Directory

Figure 7.3. Default error page

Figure 7.4. Customized error page

Figure 7.5. Retrieving Restlet web feeds

Figure 7.6. Redirector class diagram

Figure 7.7. Mail server component split into a web API and a website application

Figure 7.8. Isolating public and private applications

Chapter 8. Using Restlet with cloud platforms

Figure 8.1. Three layers of cloud computing

Figure 8.2. Restlet Framework positioning in cloud layers

Figure 8.3. Restlet as a cloud middleware to deploy, execute, and connect RESTful applications

Figure 8.4. Global architecture of the GAE platform

Figure 8.5. Application list containing the Restlet application

Figure 8.6. Application list containing the deployed Restlet application

Figure 8.7. Overview of Amazon Beanstalk parts

Figure 8.8. Overview of the Elastic Beanstalk tab of the AWS Console

Figure 8.9. Overview of the application creation details

Figure 8.10. Overview of the application while being deployed to AWS Elastic Beanstalk

Figure 8.11. Overview of the Windows Azure platform

Figure 8.12. Structure of the project after adding JRE and Tomcat

Figure 8.13. Creating the new hosted service on which the Azure application is deployed

Figure 8.14. The console displays the status of the service deployment

Figure 8.15. Creation of the worker role and instance after deploying the service

Figure 8.16. All elements of the hosted service correctly deployed, created, and started

Figure 8.17. Systems accessible using the Restlet OData support

Figure 8.18. OData class generation support provided by Restlet

Figure 8.19. AWS Management Console describing the reiabucket element and its elements

Figure 8.20. Access Keys tab provides all available access keys.

Figure 8.21. Configuration of permissions for AWS account to access and manage resources in buckets

Figure 8.22. List of storage accounts present in the Azure console for a subscription

Figure 8.23. All involved parts to implement SDC technology in both Google platform and intranet

Figure 8.24. Cross cloud platform implementation of the SDC tunnel server provided by Restlet

Chapter 9. Using Restlet in browsers and mobile devices

Figure 9.1. GWT application mechanisms

Figure 9.2. Google Plugin for Eclipse installation through Eclipse’s update manager tool

Figure 9.3. Default GWT remoting support

Figure 9.4. Using REST resources from GWT applications without GWT-RPC

Figure 9.5. How the Restlet edition for GWT fits in the overall GWT architecture

Figure 9.6. All the aspects shown here display the flexibility of the Restlet edition of GWT, which is one of its key features.

Figure 9.7. Full flexibility using GWT-RPC and Restlet for GWT

Figure 9.8. GWT mail client accessing the RESTful web API

Figure 9.9. Implementing reverse proxy using the Redirector class

Figure 9.10. Layers of the Android platform

Figure 9.11. Android SDK Manager

Figure 9.12. Android Virtual Device Manager

Figure 9.13. ADT modules to install through Eclipse’s update manager tool

Figure 9.14. Configuring Restlet JARs for the Android project

Figure 9.15. Simple mobile Android mail client

Chapter 10. Embracing hypermedia and the Semantic Web

Figure 10.1. Hyperdata and other types of hypermedia

Figure 10.2. The Linked Data technological stack

Figure 10.3. Example RDF graph partially describing Homer Simpson

Figure 10.4. Person class in the FOAF vocabulary

Figure 10.5. RESTful mail example domain object model

Chapter 11. The future of Restlet

Figure 11.1. Timeline of the HTTP protocol

Figure 11.2. Parts of the HTTP 1.1 bis specifications

Figure 11.3. WebSocket and REST

Figure 11.4. SPDY positioning

Figure 11.5. Potential HTTP/2.0 development

Figure 11.6. Restlet Forge workflow

Figure 11.7. Restlet Platform overview

Figure 11.8. Restlet Studio welcome page

Figure 11.9. Main actors in the web API chain

Figure 11.10. APISpark relationships with the Restlet Platform

Figure 11.11. Web API overview on APISpark

Figure 11.12. Web API analytics on APISpark

Appendix A. Overview of the Restlet Framework

Figure A.1. The Restlet API packages

Figure A.2. Hierarchy of classes in the root package

Figure A.3. Message hierarchy

Figure A.4. Representation hierarchy

Figure A.5. Resource hierarchy

Figure A.6. Routing hierarchy

Figure A.7. Security hierarchy

Figure A.8. The Restlet Engine can be extended with pluggable helpers.

Appendix B. Installing the Restlet Framework

Figure B.1. Front page of the installation process

Figure B.2. Read and accept the license.

Figure B.3. Specify the installation directory.

Figure B.4. Choose the Start Menu folder.

Figure B.5. End of the installation process

Figure B.6. List of available items

Figure B.7. List of selected items

Figure B.8. Warning: the content is unsigned

Figure B.9. End of the installation

Figure B.10. Create a new project.

Figure B.11. Enter the project name.

Figure B.12. Open the contextual menu.

Figure B.13. Configure the build path.

Figure B.14. Creating and extending a variable, first page

Figure B.15. Creating a variable

Figure B.16. Listing variables

Figure B.17. Locating the entry to extend the RESTLET_HOME variable

Figure B.18. Extending variables

Figure B.19. Managing variables and user libraries in Eclipse

Figure B.20. Run the main class.

Figure B.21. The Console view

Figure B.22. Create a new project.

Figure B.23. Create a new Java project.

Figure B.24. Choose the project name and location.

Figure B.25. Update dependencies. Figure B.26 Add a new global library.

Figure B.26. Add a new global library.

Figure B.27. Complete the library.

Figure B.28. Add the library dependence to the project.

Figure B.29. Run the main class.

Figure B.30. The Output view

Figure B.31. Choose File > New Project.

Figure B.32. Create a new project.

Figure B.33. Specify the project name, location, and type.

Figure B.34. Specify the source directory.

Figure B.35. Specify the JDK.

Figure B.36. Final step

Figure B.37. Begin configuring the project dependency.

Figure B.38. Adding a dependency

Figure B.39. Run the main class.

Figure B.40. The Output view

Figure B.41. Compile and launch the code.

Figure B.42. Specify the request.

Figure B.43. Response headers

Figure B.44. Use of a ClientResource to test a remote resource

Appendix C. Introducing the REST architecture style

Figure C.1. Multiple forms of the web using REST and HTTP

Figure C.2. The web as a graph of potentially hyperlinked resources

Figure C.3. Relationships between resources, identifiers, and representations

Figure C.4. Anatomy of a resource

Figure C.5. Components are coarse-grained elements (HTTP server, client, proxy) distributed on the web

Figure C.6. Components communicate via connectors.

Figure C.7. Interaction between a user agent and an origin server

Figure C.8. Evolution of the RPC and distributed objects technologies

Appendix D. Designing a RESTful web API

Figure D.1. Overview of a RESTful web API

Figure D.2. Typical project iteration steps

Figure D.3. Typical project phases defined byUP

Figure D.4. Overview of our RESTful mail system

Figure D.5. Sender exchanging an email with receivers

Figure D.6. System administrator managing accounts

Figure D.7. Account owner composing mails and managing web feeds, contacts, and received mail

Figure D.8. Domain model of the mail system

Figure D.9. Sequence diagram describing the email sending process

Figure D.10. Summary of main analysis and design tasks in ROA/D

Figure D.11. Layers of the ROA/D logical architecture

Figure D.12. Topology of the ROA/D logical architecture

Figure D.13. Deriving the domain model

Figure D.14. Example resources hierarchy as a UML class diagram

Figure D.15. Example resources hierarchy as a UML class diagram describing allowed methods

Figure D.16. Example resources hierarchy as a UML class diagram describing representations

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
13.58.51.228