A big source of clients to MonoBoss can be AJAX applications. They can access MonoBoss Services to do some little work that doesn't need to be done in the main application server. For example, a web with a "remote calculator" doesn't need to call it's server to solve calculations, it can use an external service, in this case a MonoBoss Service, to do that job.
Initial AJAX support is very quick to implement but a bit ugly. This support is based in a bridge web service that will convert AJAX calls to MonoBoss ones. This web service will receive three parameters: service name, method name and input parameters. It's caller will receive service results after the service is executed.
This is an early design because it's planned to have full integration with SOAP / Web Services in the future and this design can be changed.
In MonoBoss User Interfaces we expose a way to manage UIs but sometimes it's desired a neutral architecture to manage them, offering all user interfaces through web and desktop applications. Moonlight (Mono's Silverlight) is a good technology to get this feature and reduces the cost to implement the whole interfaces architecture, increasing the number of available graphic objects.
To get a user interface architecture based in Silverlight it is needed to define the way that events will be connected to services. Two container classes are defined, one for data from UI to service and other for data and commands to change user interface state. A helper class will handle Silverlight events, call correspondant service, get it's result and follow the result commands.
It's important to automatically generate the handling code. It will be very easy to implement and very useful because handling code is very repetitive.
While original architecture had UI design coded in UI services, this proposal has the design inside XAML files. The "model" or functionality will be in the server side, only interface definition is given to clients.
An important feature of this new apporach is that it can be also used to get MVC and pure Web Forms based applications.
A very important architecture for distributed services is JBOSS, it's important that MonoBoss can interoperate with it. We thought that MonoBoss can use IIOP.NET to provide that interoperability. The project will provide helpers to connect JBOSS clients to MonoBoss and vice-versa.
The project should provide components and interfaces to connect user interfaces with services.
A web application strongly based in MVC (Model-View-Controller) needs each request to be converted to a method call, the execution of one or more actions and the reload of the page or transition to a new page.
An adaption of a Workflow Manager or BPM (Business Process Manager) is proposed to get this apporach. It will reference the actions to do and the pages (state) reached when that actions are finished. This procedure lets manage a web application in a very structured way, defining each step in the web and increasing reutilization of code and actions.
Copyright © Pedro Martínez Juliá <pedro@monoboss.com>