Newsgroup: it.comp.java
Titolo: Consigli sull' implementazione di un generico protocollo

Salve a tutti,
spero di non essere OT, volevo dei consigli se esistono delle "best 
practices" nel caso si voglia implementare un dato protocollo di 
comunicazione in un linguaggio ad oggetti.
Mi spiego meglio, supponiamo voglia implementare un semplice protocollo 
del tipo:
se ricevi "A" allora <fai qualcosa> e rispondi "B", se ricevi "C" (ma 
solo dopo "A") allora <fai qualcos'altro> e rispondi "D" e così via..
Si tratta in pratica di implementare un automa a stati finiti, esistono 
design patterns o metodologie comuni per fare ciò?
Spero la domanda non fosse stupida o troppo generica, in caso sarò lieto 
di dare chiarimenti.
Grazie.

 writes:
f> Salve a tutti, spero di non essere OT, volevo dei consigli se
f> esistono delle "best practices" nel caso si voglia implementare un
f> dato protocollo di comunicazione in un linguaggio ad oggetti.
Trovato nulla con Google ? Il problema non č stupido.
-- 
 /\           ___
/___/\_|_|\_|__|___Gian Uberto Lauri_____
  //--\| | \|  |   Integralista GNUslamico
\/                 e coltivatore diretto di Software

 
dopo una ricerca un po' frettolosa non ho trovato niente di 
interessante, evidentemente il problema non è così "standard" come 
credevo...
Così ad occhio avevo pensato a:
Una classe "protocollo", che contiene:
-varie informazioni sul contesto (e quindi anche lo stato corrente)
-un metodo process_input( ProtocolInput ) che chiama il metodo eval( 
ProtocolInput, Context) sullo stato corrente e restituisce un ProtocolOutput
una serie di classi (una per ogni stato) che implementano l'interfaccia 
"stato" che definisce:
-un metodo eval( ProtocolInput, Context ) che in base al parsing di 
ProtocolInput (fatto in qualche modo, magari qui si può usare un 
interpreter come design pattern) restituisce un ProtocolOutput ed 
eventualmente modifica lo stato corrente che si trova nel Context
E' sensata come idea? perchè modellare l'automa con una matrice di 
transizioni mi suona poco object-oriented..

> 
f> dopo una ricerca un po' frettolosa non ho trovato niente di
f> interessante, evidentemente il problema non č cosě "standard" come
f> credevo...
E cercare automi a stati finiti ? 


 
Si trovano un milione di siti che spiegano cosa sono, ma nessuno che 
fornisca informazioni riguardo una possibile implementazione ad oggetti, 
o comunque in modo più generico di un classico analizzatore sintattico..

Beh io penserei al command pattern .... o comunque ad implementazioni 
già fatte su cui appoggiarmi. Credo che in c++ esista una libreria che 
ti facilita lo scopo (ACE) ... non so in java cosa potresti usare ....
Avevo visto un libro di design pattern orientato ai protocolli di rete 
ma non mi ricordo di come si chiamasse.
ciao
Pier Paolo

 writes:
e> Avevo visto un libro di design
e> pattern orientato ai protocolli di rete ma non mi ricordo di come
e> si chiamasse.
* compie un rito woodoo per fargli tornare la memoria, la cosa è moooolto
  interessevole... *


ehilah ha scritto:

grazie mille dei consigli, peccato per il titolo del libro misterioso :)


Io comincerei a leggere qualcosa da qui:
http://www.cs.helsinki.fi/u/kraatika/Courses/RTES/meskauskas.pdf
Saluti
Enzo
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/


Un libro utile puň essere
"Communication Protocol Implementation in Java"
Publisher: Springer Berlin / Heidelberg
ISSN: 0302-9743
Saluti
Enzo.
