DrupalCamp Wisconsin Web Services and WSRP

Principles

  • Everything is a web service.
  • Everything is a portal.
  • Everything is a process that can be analyzed and managed through BPM.

Drupal WSRP Group

Click here for the link.

Quoting from the webpage:

The wsrp module adds WSRP 2.0 (and 1.0) consumer capabilities to drupal, allowing the creation of nodes and blocks based on producers wsrp portlets. It can be used for any WSRP implementation like JSR-168 and JSR-268.

W3C Main Diagram of Web Services

Diagram copied from W3C website:

WS roles

W3C Definition of Web Services

 Click here for the link.

Definition: A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards.

OASIS Definition of WSRP

Click here for the link.

Quoting from the OASIS WSRP webpage:

Portals and other Web applications render and aggregate information from different sources and provide it in a compact and easily consumable form to End-Users.

Among typical sources of information are web services. Traditional data-oriented web services, however, require aggregating applications to provide specific presentation logic for each of these web services. Furthermore, each aggregating application communicates with each web service via its unique interface. This approach is not well suited to dynamic integration of business applications and content as a plug-and-play solution.

This specification solves this problem by introducing a set of presentation-oriented web service interfaces that allow the inclusion of and interaction with content from a web service. Such a presentation-oriented web service provides both application logic and presentation logic. This specification provides a common protocol and a set of interfaces for presentation-oriented web services. Thus, aggregating applications can easily incorporate content from these web services using code which is not specific to the content source.

Quoting from the OASIS WSRP webpage:

  1. Consumer "discovers" the Producer. This involves the Consumer learning the URL of the web service end-point for the Producer and getting the Producer's metadata with its description of the registration requirements and possibly an indication of the Portlets the Producer is exposing.
  2. Establishment of a relationship between the Consumer and Producer. This may involve the exchange of information regarding capabilities, security requirements or other business and/or technical aspects of the relationship.
  3. Consumer learning the full capabilities and services of the Producer based on the now established relationship.
  4. Establishment of a relationship between the Consumer and End-User. This permits the Consumer to authenticate the End-User and may allow the End-User to customize the aggregated pages presented by the Consumer.
  5. Production of aggregated pages. This typically involves the Consumer defining some base level of page design (often with customized Portlets) and may involve further customization of those pages by the End-User.
  6. Request for a page. This typically results when the End-User directs a user-agent (e.g. browser) to the Consumer's URL, but also occurs indirectly as a result of processing an interaction with the markup of a previous page.
  7. Processing interactions. Some End-User interactions with the markup of a page will result in an invocation on the Consumer to provide some logical function. The Consumer will process this invocation to determine the Producer/Portlet that the interaction has targeted and the nature of the invocation requested for that Portlet. The Portlet's response may trigger the Consumer to mediate coordination activity among the Portlets. Since the resulting invocation of that Portlet is likely to change its state (and may also change the state of other Portlets), the Consumer must also treat this as an indirect request for a page and thereby loop back to step 6.
  8. Destruction of relationships. Producers and Consumers may choose to end a registration relationship at any time, potentially due to the expiration of a lease on the item used to refer to the relationship. The protocol provides means by which the Producer and Consumer may inform each other that the relationship (or some portion of it) has ended and that related items may be cleaned up.

Four W3C Models: MOM, SOM, ROM, PoM

  • MOM: Message oriented model
  • SOM: Service oriented model
  • ROM: Resource oriented model
  • PoM: Policy model

Message Oriented Model

Diagram copied from W3C website:

Message-oriented model

Service Oriented Model

Diagram copied from W3C website:

Service-oriented model

Resource Oriented Model

Diagram copied from W3C website:

Resource oriented model

Policy Model

Diagram copied from W3C website:

Policy model