Overview

Framework architecture overview

This tier models the application business thus encloses and encapsulates the elaborations, the logic and every business constraint your application needs.

Overview

Dopo aver analizzato il Persistance tier passiamo a vedere il Business tier. Vedremo come vengono gestiti gli oggetti dell'applicazione e con quali strumenti. Il Business tier contiene i componenti che interagiscono tra di loro per risolvere determinati problemi dell�applicazione, in particolare la gestione dei dati su cui l'applicazione deve lavorare.??? Non � molto chiaro quello che dici... cosa significa? Il BT �, e non solo, l'anello di giunzione fra PT e PT. Al Business tier � delagata tutta la logica di business. Siccome lo spieghi sotto magari questo pezzo levalo?? Il Business tier si pu� immaginare come la "mente", lo strato in cui si decide come fare, prima di arrivare nello strato di Business si passa dal Presentation tier, nel quale abbiamo visto che si occupa anche di ricevere le richieste. Come gi� detto ogni richiesta richiama un'Action che si occupa prevalentamente di recuperare le informazioni provenienti dalla richiesta e di passarli allo strato di Business, qui viene deciso come procedere nel trattamento dei dati in modo da ottenere le informazioni richieste. Nello strato di Business viene decisa tutta la logica che dovr� essere adottata per risolvere i problemi ma non si interviene direttamente sui dati, per intenderci in questo strato non si va a leggere o scrivere sul database ad esempio, come vedremo in seguito questo avviene nel Persistance tier.

Come si pu� notare questo ulteriore strato permette ancora di pi� la modularizzazione dell'applicazione. Si possono intuire i vantaggi apportati da questa suddivisione, ad esempio se in una applicazione si decidesse che i dati presentati all'utente devono essere ottenuti in maniera diversa, adoperando un'altra logica per la loro produzione, � facile capire che baster� lavorare esclusivamente sullo strato di Business lasciando inalterata la visualizzazione, perch� i dati che verranno presentati saranno sempre quelli ma ottenuti in maniera diversa.

In SmartWeb i componenti del Business tier sono i Business Object ed il Domain, questo ultimo � una particolarit� di SmartWeb che consente una modularizazione migliore dell'applicazione.

Business Object

Business Objects are the fundamental instrument to model business entities. During application design every entity must be modeled in terms of Java objects and this is accomplished creating classes describing those objects: in the SmartWeb framework you are encouraged to describe those entities through classes extending the net.smartlab.web.BusinessObject abstract class.

Your life will get easier if you model those classes like Java Beans thus describing properties through accessor methods and private attributes consequently enforcing the object oriented programming encapsulation principle. To simplify the software architecture against the classic approach Business Objects are used to transport information through the tiers avoiding the need for Data Transfer Objects, still usable but not needed. You can use Business Object on the presentation tier, valorizing them with form values, transfer them to the business tierto be processed and then make them perstitent on the resource tier; in a reversed process you can retrieve the information from the resource tier putting them into business objects and then send them to the presentation tier.

As an example of a commonly used business object have a look at the following code:

        public class Person extends BusinessObject{
                private String name;
                private String surname;

                public void setName(String nome){...}   
                public String getName(){...}

                public void setSurname(String surname){...}
                public String getSurname(){...}
                
                public long getVersion() { return super.getVersion(); }
        }

Come si pu� notare la classe estende BusinessObject e i suoi atributi, che sono private. sono dotati dei metodi get e set per poter leggere il proprio cntenuto e poterlo settare.

Domain

Il Domain � ua particolarit� importante messa a disposizione da SmartWeb, � una classe che si occupa di gestire tutta la logica di business in modo da avere una separazione sulla parte di Persistance tier. Quindi il Domain si pu� vedere come un passaggio obbligatorio per poter passare dal Presentation tier al Persistance tier e viceversa. L'introduzione del Domain consente allo sviluppatore di poter creare un'applicazione ancora pi� modulare, ci� porta grossi vantaggi, in quanto si riesce a separare le diverse funzioni. Nel Domain principalmente si decide cosa fare, ma non come farlo, che viene deciso nello strato di persistenza. Quindi in generale le azioni da eseguire nello strato di presentazione richiamano le Action che recuperano i dati provenienti dalla richiesta e si occupano di richiamare gli opportuni metodi del Domain, i quali non andranno ad eseguire direttamente le operazioni richieste, ma si occuperanno di richiamare i metodi presenti nello starto di persistenza (le Factory) che andranno ad operare sui dati. Questa stratificazione permette, in caso di errori che richiedono la modifica del codice, di andare ad operare solo nello strato interessato, lasciando inalterato il resto dell'applicazione.