Architecture
Spago, a J2EE framework, is a reusable, semi-complete infrastructure that can be customized to produce vertical applications. Designed with the aim to support mission-critical projects, it is a framework providing multi-channel services towards external infrastructures.J2EE Framework
A J2EE Framework is a reusable, semi-complete infrastructure that can be specialized to produce custom applications. It doesn't include users' functionalities, but it is a platform for developing distributed multi-tier applications, based on modular components. The framework provides an architectural model, a functional model and a development model. It provides some services for generic users' applications (user-interface interaction, data store, parameters configuration, transactional processes, multichannel publishing), but it also provides development guidelines, standards, methodologies and tools for development and maintenance.Main benefits of using a framework are:
- Modularity: stable interfaces hide code implementation
- Reuse: a framework includes stable interfaces that help build generic components, reusable in different applications
- Extensibility: a framework stable interface can be extended through applications using "hook" methods.
Spago
Spago implements a Model-View-Controller architectural pattern and supports client interaction via different channels/protocols. Front Controllers act with the following collaborative objects:- Adapter: it takes responsibility for acquiring request data from a specific channel, transforming request parameters into a format compliant with the Model module, and for choosing the correct view. It also makes the binding of conversational context in the specific container
- Dispatcher: it takes responsibility for identifying one of the supported ways to carry out business logic, and for locating the right coordinator
- Coordinator: it takes responsibility for coordinating business logic execution
- Business Factory: it takes responsibility for retrieving rights references to business objects cooperating in the request execution.
- AdapterHTTP (HTML/HTTP): a servlet to manage client HTTP requests, arising from a browser or a WAP device
- AdapterSOAP (XML/HTTP): it is a component, stored as SOAP end-point, to manage requests arising from a SOAP client
- AdapterEJB (XML/IOOP): it is a statefull session bean to manage requests arising from IIOP client
- AdapterJMS (XML/JMS): it is a message driven bean to manage requests sent as JMS messages
You can configure the Security Manager in the Controller module to verify execution priviledges of the applicative logic of a business object. Grant checking is available for all business objects or only for some of them.



