Services

 

  Cool links

Improve Knowledge Sharing Effort


Improve Open Source Tools


Improve Open Source Plugins


Divers

MVC for Web Services : Improve mvc4ws

 

About mvc4ws

mvc4ws is a small framework for building web services applications using the MVC Model 2 design pattern. It will serve as a platform for exploring approaches to implementing this design pattern.

Web Services

Web Services are components which expose enterprise business services through standard protocols. They are defined in a Web Services Description Language (WSDL) document which describes operations, their signature and the access point (protocol, url, port). Operations are accessible via SOAP. Requests and responses are XML messages generally transported by HTTP. Web Services are platform-neutral and language-neutral.


Web Services Components

Common architecture

The simplest way of using web services is to associate an operation to each enterprise business services.

  • Strength
    • Very simple to set up.
  • Weakness
    • Does not propose any solution for authentication and entitlement
    • Make tight coupling between the producer and the consumer of the web services
    • Absence of versionning capability
    • whole analysis of the XML message (deserialization) is necessary before knowing it is a legitimate request.
    • Web services are used without an architecture solution.


Web Services : Common Architecture

MVC Model 2 (MVC2) style architecture

In this kind of architecture a generic operation is used to give access to all enterprise business services. The operation takes two parameters : data for enterprise business services and metadata which will make it possible to determine the global conditions for using these data : which enterprise business service should be run, version, entitlement...

  • Strength
    • Enables the gathering of authentication, entitlement, versionning system, message transformations,
    • Decrease vulnerability (single entry point).
  • Weakness
    • Does not use all the capabilities of web services containers.
This kind of architecture is based on the same idea than J2EE MVC2 frameworks like Struts.


Web Services : MVC2 Architecture

Improve mvc4ws

Improve mvc4ws is java based. It is a MVC2 system for web services. Struts was used as a starting point for the source code of mvc4ws. Two reasons justify this choice :

  • Struts is a tested solution for most needs of a MVC2 system for web services
  • Struts is now widely used : a struts developer will not have to learn again new concepts. This will avoid “version fatigue” (for more information read "Version Fatigue" by Glenn Harlan Reynolds)
The web services API is not part of mvc4ws, this allows to use this framework with any kind of web services container or middleware. Thus it is possible to use mvc4ws in a web services context but also in contexts such as XML-RPC, MOM,... The functional perimeter of mvc4ws is voluntarily restricted, the purpose is not to build an EAI. For example mvc4ws is stateless. However the architecture enables the extension of mvc4ws for private needs.


mvc4ws : main components

The present implementation of the framework can be summarized with a collaboration diagram as below :


mvc4ws : collaboration diagram

Bibliography

"Web Services Gateway" - IBM AlphaWorks - Similar project ?
"Struts" - Apache/Jakarta
"Web services architecture using MVC style" - Naveen Balani
"Connecting with Web services" - Jon Udell - About loose coupling web services.

Acknowledgement

This product includes software developed by the Apache Software Foundation (http://www.apache.org/).
Graphics were drawn using OpenOffice.org 1.0.

Download

Version Date Archive file Comment
20020714 14 July 2002 mvc4ws-20020714.zip

First operational release - Support : request/response domain, authentication, entitlement, transformation.

mvc4ws is released under the Common Public License 0.5.

Contacts

For any information, remark or feedback about mvc4ws, feel free to contact us at : "mvc4ws at improve.fr".

Copyright Improve 2002.