easysoa / EasySOA

A light, collaborative platform to make Service Oriented Architecture simple.
http://www.easysoa.org
35 stars 8 forks source link

EasySOA Light - Further scaffolding features #58

Open mdutoo opened 12 years ago

mdutoo commented 12 years ago

As seen in #19 FraSCAti Velocity for Light Proxy, the WSDL to HTML form generator (be it based on XSL or velocity+WSDL Java model) has its limits.

The current form generator supports simple params (primitive types) OK (ex. paf, travel), but not more complex types. They could be supported, but this alone would not be useful : merely having a tree of forms to input complex types won't help the business user, and the dev user probably prefers raw XML/json.

Nuxeo & FraSCAti alternatives

Let users edit and customize the generated HTML (see #45 Editable scaffolder HTML & #102 in FraSCAti Studio) and / or the HTML template..

Addressing complex services

Here are alternatives to make it useful to the business user :

Templatized form UI

Let the user edit the HTML form-generating template. In addition, other UI development strategies could be integrated (form editor...).

This should be allowed by #102 integrating Service Scaffolder in FraSCAti Studio. Service Scaffolder has limitations (when service is complex) but they are inherent to the approach.

Simpler service through templatized exchange

Only require the user to input the few fields that really interest him, and "templatize" the remaining xml/json. The original exchange may come

The request transformation might either be done by :

That's making it "browsable", but also actually breaking it up into multiple services, one for each Resource i.e. business atom, while keeping all of them linked together. This requires knowing the service structure semantics. It can be done by correlating request and response data types, putting the no-parameter operations as roots, and when one service's response (sub)element is another's request, put a link allowing to call the second from the first.

(other end of the spectrum) "mashups" / Light (app) development

Develop an EasySOA Light app with a custom UI and custom code (script) calling services. These service calls could be helped by various tools : FraSCAti binding.html or REST to SOAP proxy, SPoRE client api... There are several "Light" alternatives providing such thing :

TODO Q is there anything in between ? Ideas :

NB. This feature, along with others, have to be thought about in the whole "SOA on rails" functional perimeter, and among the kind of proxies we're interested for INRIA's FraSCAti proxy factory.

Generating more specific interfaces according to context

In a more framed / patterned process, by following a "divide and conquer" approach : develop "simpler" EasySOA Light services, each exposing only a part of the main service it calls, and composing them all again in a single EasySOA Light UI. This is similar to the "scatter / gather" EIP pattern.

It is more of an architectural and methodological approach, allowing to use all of the previous ones (templates, simpler Light services, Light UI). It can be helped by EasySOA by allowing to implement gradually some modular parts in more robust technologies while others stay in Light and still work together.