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