Friday, December 19, 2008

VineToolkit as a Java / Flex / BlazeDs web MVC framework

As I've mentioned before I'd like to present you my main field of research and work - Vine Toolkit framework. This is pretty interesting piece of software, especially because of its modular structure.  In a current form it could be perceived as a MVC framework with the following structure:


You can see here that I've included some mappings between the server and client side. If you're familiar with BlazeDs and Flex you'll notice that right away - it's the Remoting from BlazeDs integrated trough our additional logic with a hosting environment ( i.e. portlet container - session/user management and so on ).

But what Vine gives you apart from that ? Ease of use. What does it stands for ? There are two things which do all the magic:

- build system:

It's a set of powerful scripts ( Ant mixed with Groovy ) responsible for building all parts of Vine and performing additional pre/post-processing task. It means that with one command:

ant install

build system will fetch all needed sources from the svn, compile Java and Flex source files,  process all annotations of classes and generate configuration files for BlazeDs and servlet/portlet container. Then it will deploy all that stuff to the target environment and performs some post-processing tasks like tuning deployment descriptors in a destination environment.

Another use-case is to add new components - it's just creating another project with our gui wizard - then you'll get a template component which could be a base to your new one.

- integration logic:

we've created several tools responsible for hiding some implementation details from the end user ( there is a base class on the client side which is responsible for the MVC logic and adds some helper methods i.e. to manage file upload/download ) and on the server side we have logic which among the others is synchronizing data between hosting environment and user components, it's responsible for the model persistence and so on.

I didn't mention about the strong HPC/Grid background of Vine, it's added value here. Thanks to the modular structure of Vine we extended its basic functionality and added a resource model - the resource in Vine could be any concept i.e. file system resource, task resource etc.

As a base functionality we give you a local file system resource where user can store his files with advanced file upload/download control, possibility to define your own custom resources and much more. If you want to do something with a HPC you can use our grid sub-projects like:

- Globus Toolkit, G-Lite, Unicore support with their secuirity solutions,

- support for grid file systems,

- support for info services.

Then you'll gain a grid context in your components and a transparent way to access them.

Of course this is just general description of Vine Toolkit. If you get interested in that you can go to the vinetookit.org page and get into details..

No comments:

Post a Comment