La Community degli studenti di Ingegneria Informatica di Napoli


Utenti:12808  (Ultimo: zi0tom)
Attualmente On-Line: 131
Totale Pagine Viste: 78804900

Numero di Downloads: 939405
Numero di Posts nel Forum: 273467
Totale News: 1795



Nickname    Password      (Registrati QUI)
Oggi, 23 Mar 2019 06:21:28   (server time)


.::Menu del Sito

 Home Page
 Cerca nel FORUM
 Statistiche
 Elenco Utenti
 Scrivi allo staff
 Links
 INFORMAZIONI
 FAQ
 Calendario Eventi
 News
 Archivio News
 Invia News
 Argomenti
 COMMUNITY
 Forums
 Trovamici
 CHAT IRC
 Chi segue i Corsi?
 APPUNTI
 Downloads
 UTENTE
 Pannello Personale
 Messaggi Privati
 ALTRO
 Annunci Economici
 Cruciverba On Line

 UNIVERSITA'
 Federico II
 Sito Docenti
 Facoltà di Ingegneria
 Ingegneria Informatica
 Bacheca Esami
 ESIS - Chiosco Servizi
 Campus Unina
 Elenco Telefonico Unina
 Biblioteca ingegneria
 Biblioteche Unina
 DIS - (Inf. - Sist.)
 Prisma Lab
 Elettrotecnica
 Mobilab
 Diet - (Elettr. - Telec)
 SincroLAB
 RADIO F2
 ADISU (diritto allo studio)
 Banca dati Laureati
 Wikipedia - Federico II

.::Chat Offline

Purtroppo per l''ennesimo problema di hosting la chat è temporaneamente disabilitata, mi scuso per i disagi e provvederò a breve ad un ripristino/sostituzione
grazie
PeX

  
Quelli Di Informatica: Forums

Quelli di Informatica :: Leggi il Topic - Proxy-Skeleton realizzato con composizione
 FAQFAQ   CercaCerca   Gruppi utentiGruppi utenti   ProfiloProfilo   Messaggi PrivatiMessaggi Privati   LoginLogin 

Proxy-Skeleton realizzato con composizione

 
Nuovo Topic   Rispondi    Indice del forum -> Programmazione II
Precedente :: Successivo  
Autore Messaggio
Danieledc
quello tcp/ip
quello tcp/ip

Corso: Laureato

Attualmente è: Offline
Messaggi: 915
Registrato: Oct 16, 2005

MessaggioInviato: Ven 27 Giu, 2014 - 14:51    Oggetto: Proxy-Skeleton realizzato con composizione Rispondi citando

Nelle slide del prof c'é scritto che il pattern Proxy-Skeleton può essere realizzato anche tramite composizione. Sia la classe Skeleton che quella ServizioReale implementano Interfaccia Reale, e la prima mantiene un riferimento alla seconda.
Quello che non mi é chiaro é: chi/dove/quando istanzia un oggetto di tipo ServizioReale?
Vengono entrambe istanziate nel main, e nel costruttore dello Skeleton viene passato il riferimento all'oggetto di ServizioReale? Tipo questo:
Codice:

public class Server {
        static final int port = 9001;
        static final int numRichieste = 10;
        static final int postiDisponibili = 200;
   
        public static void main(String [] args) throws IOException{
                ServizioReale serv = new ServizioReale(postiDisponibili);
                Skeleton skeleton = new Skeleton(port,numRichieste,serv);
                skeleton.runSkeleton();
        }
   
}

_________________
Se un uomo non è disposto a correre qualche rischio per le sue idee, o le sue idee non valgono nulla o non vale nulla lui.
Torna in cima
Profilo Messaggio privato
ransielupesco
quello campione
quello campione

Corso: II Anno Specialistica

Attualmente è: Offline
Messaggi: 596
Registrato: Dec 17, 2003

MessaggioInviato: Sab 28 Giu, 2014 - 16:35    Oggetto: Re: Proxy-Skeleton realizzato con composizione Rispondi citando

Danieledc ha scritto:
Nelle slide del prof c'é scritto che il pattern Proxy-Skeleton può essere realizzato anche tramite composizione. Sia la classe Skeleton che quella ServizioReale implementano Interfaccia Reale, e la prima mantiene un riferimento alla seconda.
Quello che non mi é chiaro é: chi/dove/quando istanzia un oggetto di tipo ServizioReale?
Vengono entrambe istanziate nel main, e nel costruttore dello Skeleton viene passato il riferimento all'oggetto di ServizioReale? Tipo questo:
Codice:

public class Server {
        static final int port = 9001;
        static final int numRichieste = 10;
        static final int postiDisponibili = 200;
   
        public static void main(String [] args) throws IOException{
                ServizioReale serv = new ServizioReale(postiDisponibili);
                Skeleton skeleton = new Skeleton(port,numRichieste,serv);
                skeleton.runSkeleton();
        }
   
}

Ciao,
allora ti dico cosa ho capito io:
nel caso di skeleton per delega sia skeleton sia servizio reale implementano l'interfaccia del servizio.
Quindi tu nel progetto avrai 1) un package "service" che contiene l'interfaccia del servizio; 2) un package"client" che contiene il proxy, gli eventuali client con le caratteristiche che ti dice la traccia, ed eventuali thread a seconda di quel che dice la traccia; 3) infine avrai un package "server" che contiene {la classe "risorsa" (per esempio coda circolare ); la classe "gestore della risorsa"; la classe "GestoreRisorsaSkeleton"; la classe ThreadSkeleton; e infine il Server (dove c'è il main)}. Il gestore della risorsa è il wrapper che implementa la strategia per la sincronizzazione dei thread sulla risorsa e rappresenta il SERVIZIO REALE, nel caso dello Skeleton per delega DEVE IMPLEMENTARE L'INTERFACCIA; Lo Skeleton implementa l'interfaccia del servizio e come variabile membro deve avere una variabile di tipo "interfaccia del servizio": TALE VARIABILE REALIZZA LA COMPOSIZIONE E RAPPRESENTA "IL DELEGATO". Quello che fa lo skeleton è mettersi in attesa di un client (ottiene una serversocket e su di essa chiama accept() che è bloccante, quando il client contatta il server, l'accept() restituisce una socket), ottenuta la socket si limita a richiamare il threadSkeleton a cui passa la socket e il puntatore this (che nel caso dello skeleton x delega, a runtime punta a una istanza proprio dello skeleton) e si rimette in attesa del client (stiamo pensando a un server multithread). Nel caso di skeleton per delega, essendo una classe reale, bisogna implementare i metodi dell'interfaccia del servizio, ma la loro implementazione consiste solamente NELLA INVOCAZIONE DEL MEDESIMO METODO SUL DELEGATO (MECCANISMO DI COMPOSIZIONE LASCA ); il threadSkeleton apre gli stream di input /output (eventualmente decorati) sulla socket che ha avuto in input. Inoltre il costruttore del threadSkeleton come secondo parametro deve avere una istanza dell'interfaccia in questo modo lo skeleton thread può gestire la richiesta invocando su questo parametro di input i metodi dell'interfaccia implementati anche dal servizio reale.
Infine il Server: deve avere il main . Nel caso dello skeleton per delega ci sono 2 passaggi fissi: 1) bisogna istanziare il SERVIZIO REALE
2) bisogna istanziare lo skeleton passandogli come parametro di input l'istanza del servizio reale
3) bisogna richiamare sull'istanza dello skeleton il metodo runSkeleton().
Spero di essere stata utile e chiara. Una curiosità, pensi di andare il 17 luglio?
Torna in cima
Profilo Messaggio privato Indirizzo AIM MSN Messenger
Danieledc
quello tcp/ip
quello tcp/ip

Corso: Laureato

Attualmente è: Offline
Messaggi: 915
Registrato: Oct 16, 2005

MessaggioInviato: Sab 28 Giu, 2014 - 16:56    Oggetto: Re: Proxy-Skeleton realizzato con composizione Rispondi citando

ransielupesco ha scritto:
Danieledc ha scritto:
Nelle slide del prof c'é scritto che il pattern Proxy-Skeleton può essere realizzato anche tramite composizione. Sia la classe Skeleton che quella ServizioReale implementano Interfaccia Reale, e la prima mantiene un riferimento alla seconda.
Quello che non mi é chiaro é: chi/dove/quando istanzia un oggetto di tipo ServizioReale?
Vengono entrambe istanziate nel main, e nel costruttore dello Skeleton viene passato il riferimento all'oggetto di ServizioReale? Tipo questo:
Codice:

public class Server {
        static final int port = 9001;
        static final int numRichieste = 10;
        static final int postiDisponibili = 200;
   
        public static void main(String [] args) throws IOException{
                ServizioReale serv = new ServizioReale(postiDisponibili);
                Skeleton skeleton = new Skeleton(port,numRichieste,serv);
                skeleton.runSkeleton();
        }
   
}

Ciao,
allora ti dico cosa ho capito io:
nel caso di skeleton per delega sia skeleton sia servizio reale implementano l'interfaccia del servizio.
Quindi tu nel progetto avrai 1) un package "service" che contiene l'interfaccia del servizio; 2) un package"client" che contiene il proxy, gli eventuali client con le caratteristiche che ti dice la traccia, ed eventuali thread a seconda di quel che dice la traccia; 3) infine avrai un package "server" che contiene {la classe "risorsa" (per esempio coda circolare ); la classe "gestore della risorsa"; la classe "GestoreRisorsaSkeleton"; la classe ThreadSkeleton; e infine il Server (dove c'è il main)}. Il gestore della risorsa è il wrapper che implementa la strategia per la sincronizzazione dei thread sulla risorsa e rappresenta il SERVIZIO REALE, nel caso dello Skeleton per delega DEVE IMPLEMENTARE L'INTERFACCIA; Lo Skeleton implementa l'interfaccia del servizio e come variabile membro deve avere una variabile di tipo "interfaccia del servizio": TALE VARIABILE REALIZZA LA COMPOSIZIONE E RAPPRESENTA "IL DELEGATO". Quello che fa lo skeleton è mettersi in attesa di un client (ottiene una serversocket e su di essa chiama accept() che è bloccante, quando il client contatta il server, l'accept() restituisce una socket), ottenuta la socket si limita a richiamare il threadSkeleton a cui passa la socket e il puntatore this (che nel caso dello skeleton x delega, a runtime punta a una istanza proprio dello skeleton) e si rimette in attesa del client (stiamo pensando a un server multithread). Nel caso di skeleton per delega, essendo una classe reale, bisogna implementare i metodi dell'interfaccia del servizio, ma la loro implementazione consiste solamente NELLA INVOCAZIONE DEL MEDESIMO METODO SUL DELEGATO (MECCANISMO DI COMPOSIZIONE LASCA ); il threadSkeleton apre gli stream di input /output (eventualmente decorati) sulla socket che ha avuto in input. Inoltre il costruttore del threadSkeleton come secondo parametro deve avere una istanza dell'interfaccia in questo modo lo skeleton thread può gestire la richiesta invocando su questo parametro di input i metodi dell'interfaccia implementati anche dal servizio reale.
Infine il Server: deve avere il main . Nel caso dello skeleton per delega ci sono 2 passaggi fissi: 1) bisogna istanziare il SERVIZIO REALE
2) bisogna istanziare lo skeleton passandogli come parametro di input l'istanza del servizio reale
3) bisogna richiamare sull'istanza dello skeleton il metodo runSkeleton().
Spero di essere stata utile e chiara. Una curiosità, pensi di andare il 17 luglio?


Sei stata molto chiara e gentile. In poche parole, avevo capito bene Smile
Si, penso di andare il 17 a sostenere l'esame…anche tu?
_________________
Se un uomo non è disposto a correre qualche rischio per le sue idee, o le sue idee non valgono nulla o non vale nulla lui.
Torna in cima
Profilo Messaggio privato
ransielupesco
quello campione
quello campione

Corso: II Anno Specialistica

Attualmente è: Offline
Messaggi: 596
Registrato: Dec 17, 2003

MessaggioInviato: Sab 28 Giu, 2014 - 16:57    Oggetto: Rispondi citando

Si, penso di andare anche io ma solo a fare una passeggiata perchè non sono in grado di sostenere l'esame... Piangendo
Se sei d'accordo possiamo confrontarci su dubbi e similari
Torna in cima
Profilo Messaggio privato Indirizzo AIM MSN Messenger
Danieledc
quello tcp/ip
quello tcp/ip

Corso: Laureato

Attualmente è: Offline
Messaggi: 915
Registrato: Oct 16, 2005

MessaggioInviato: Sab 28 Giu, 2014 - 19:50    Oggetto: Rispondi citando

Ti ho inviato un mp...
_________________
Se un uomo non è disposto a correre qualche rischio per le sue idee, o le sue idee non valgono nulla o non vale nulla lui.
Torna in cima
Profilo Messaggio privato
Mostra prima i messaggi di:   
Nuovo Topic   Rispondi    Indice del forum -> Programmazione II Tutti i fusi orari sono GMT + 1 ora
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi Topic in questo forum
Non puoi rispondere ai Topic in questo forum
Non puoi modificare i tuoi messaggi in questo forum
Non puoi cancellare i tuoi messaggi in questo forum
Non puoi votare nei sondaggi in questo forum
Idea, website e amministrazione by PeXPeX
Il materiale nel sito è disponibile GRATUITAMENTE e non può essere connesso a nessuna attività economica o LUCRATIVA
Sito sviluppato in PHP sulla base del CMS PHP-Nuke. Su licenza GPL/GNU Best View 1024*768