The Business Tier

Framework architecture overview

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

All'interno di questo strato viene realizzato il modello di business dell'applicazione quindi ha il compito di effettuare le elaborazioni sulle entit� coinvolte nella specifica problematica, valutare la coerenza delle informazioni e realizzare le funzionalit� richieste dall'utente finale.

Una particolarit� importante messa a disposizione da SmartWeb � il Domain, una classe che riceve le richieste dal Presentation tier e si occupa di gestire tutta la logica di business in modo da non dover operare direttamente sulla parte di Persistance tier.

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

I Business Object sono lo strumento fondamentale per poter rappresentare le entit�. Nella creazione di una applicazione ogni oggetto (entit�) presente in essa, deve essere rappresentato in termini di oggetti java (classi). Per far ci� si creano delle classi rappresentanti gli oggetti dell'applicazione che estendono "Business Object", ogni classe deve contenere attributi non pubblici ???(buona norma di programmazione, non � caratteristica dei business object)???, e deve implementare per ognuno di essi i relativi metodi getXxx e setXxx per poter permettere l'accesso ai propri dati sia in lettura che in scrittura. Questi oggetti vengono utilizzati per poter trasportare le informazioni contenute in essi da uno strato all'altro, in particolare gli oggetti inviati allo strato di presentazione servono a recuperare le informazioni che dovranno essere rappresentate, mentre gli oggetti inviati o provenienti dallo strato di business si usano rispettivamente per memorizzare il loro contenuto (ad esempio in una tabella di un database) e per contenere informazioni ottenute da operazioni effettuate nello strato di persistenza (ad esempio i risultati di una query) i quali poi potranno essere inviati, dopo essere passati dallo strato di business, allo strato di presentazione il quale si occuper� di visualizzarli.

Vediamo un esempio di un Business Object:

        public class MyBusinessObject extends BusinessObject{
                private String nome;
                private String cognome;

                public void setNome(String nome){
                        this.nome = nome;
                }
                
                public String getNome(){
                        return this.nome;
                }

                public void setCognome(String cognome){
                        this.nome = nome;
                }
                
                public String getCognome(){
                        return this.cognome;
                }
        }

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.