Thursday, January 21, 2010

The Spinneret Framework

Before briefing about the framework, we would like to share our thought process which was the inspiration to develop this framework. Every one of us wants a better approach to develop our GUIs and to integrate the presentation layer with the other layers. Coding the business layer, service layer and persistence layer is actually the up-hill task but we have never felt it as complex, as it is pure java code and also testing it is easy.

But when it comes to a presentation layer and bringing the GUI in place, we identified several difficulties like

•    Bringing data at runtime to front end
•    Confusion over scope of objects
•    Handling multiple form submits
•    Rich User Interface
•    Compatibility with multiple browsers etc


This is what urged us to come up with a dynamic presentation framework, thus Spinneret evolved.

When we were thinking about this, we came to know about GWT, an open source AJAX based web application framework from Google.

It provides a set of core JAVA APIs and Widgets which allows you to write your client-side AJAX application in Java and then compile the Java source code to a highly optimized JavaScript that runs successfully in multiple browsers. So the developer need not be an expert in browser quirks, XMLHttpRequest, and JavaScript. Also GWT has some additional features like JavaScript Native Interface (JSNI), JavaScript Overlay Types, Deferred Binding, Code splitting and so on.

Spinneret fits into the presentation tier of the enterprise layer and takes care of rendering the UI based on the configuration. Spinneret is integrated with Struts 1.1, which takes care of the listener for the GUI objects of the Spinneret framework from the view. Every Spinneret action is submitted to the ActionServlet of struts and is routed via struts.

Spinneret has in-built, programmable templates, which is based on the GWT layouts available. These templates are extendable and user can even write their own template.

1 comment:

Taylor Carr said...

I have read the article, title confused, after all nice.