SOAFaces - Bundles of Joy

Discussions

News: SOAFaces - Bundles of Joy

  1. SOAFaces - Bundles of Joy (2 messages)

    Bundles are popular again! Well, maybe not again, but there is a lot of talk about bundles and in general how to bring a better modularity and a plugin system to Java. OSGi has been a driving force, and the future is looking brighter again for Java to have a component strategy. Enter SOAFaces. I do not claim that SOAFaces supports the OSGi specification (it does not - at least not yet), but SOAFaces provides what we believe to be an extensible way of building Java components for both web clients and server components. The concept is called an SFB (SoaFaces Bundle). The SOAFaces specification provides a modular way of packaging server and client side code into a single "bundle" that can then be deployed into a web container (or any other container) and run. It is self contained in that it "can" contain all the JARs it needs while being able to work with other SFBs in a container. SFBs have three parts to them. The first is a GUI API (called SOAApplet - or Applet for short - recycling the old Applet term - sorry) that supports the Google Web Toolkit (GWT) for building cool AJAX web applications and components. The second is a SOA API that allows the GWT client to communicate with the web server and ESBs using a very simple API (as simple as GWT will allow) where you do not have to write all that nasty RPC plumbing code. With this SOA API you can have the GWT client make SOA requests to Mule and other non mule services endpoints. And you can do this by passing either JSON or POJO objects back and forth. The third leg of an SFB, is the workflow part. Yes you can use SFBs to build workflows as well! SFB tasklets, as they are affectionately called, allow for building modular workflows. Tasklets can be composed together to form chains and can even easily pass properties to each other so they can work together with no prior knowledge of each other. And their configuration can all be GUI driven if your SOAFaces container can handle it. Anyway, there is a bit more, but I will not bore you with rest. If you would like to hear more check out the SOAFaces project on: http://code.google.com/p/soafaces/ There is some sample code, javadocs...etc and a WAR file that you can try out for yourself. BTW, you can also use SOAFaces without using the full SFB component concept, so that means you can use the API to make SOA requests in plain old GWT applications and deploy the SOA part of the SOAFaces to any old GWT and web server application you have that needs a SOA jolt. Also, if you want to see SOAFaces, in their full glory, running in a commercial product check out JobServer by Grand Logic. Cool product (does scheduling, mule integration and other fun stuff). http://soafaces.blogspot.com/2008/07/bundles-of-joy.html
  2. Re: SOAFaces - Bundles of Joy[ Go to top ]

    5GL attempt? From my point of view, this 'bundle of joy' must add value and i'm missing it. All I see is layers and wrappers and converters and... Dejan Rudic
  3. Re: SOAFaces - Bundles of Joy[ Go to top ]

    The SOAFaces API is composed of two main packages: org.soafaces.bundle org.soafaces.services SOAFaces is a specification and it is up to a supporting Container to implement some of the interfaces and APIs. So yes there are wrappers and interfaces that must be implemented by the container. This is mostly true of the "org.soafaces.bundle" packages. The SOAFaces packages under here define how "bundles" (aka components) work together and function within their parent container (both for GUI and server components/bundles). For a server the implements the SOAFaces API check out: http://www.grandlogic.com/content/html_docs/products.shtml However the "org.soafaces.services" packages are largely implementation and can be used directly by any GWT client. The packages here can be used with any standalone GWT client to give the client the ability to request/response Mule services and other custom services using the UniversalClient API. This API makes it easy for GWT client to send/receive POJO/JSON objects when communicating with SOA system and without having to deal with GWT RPC.