Identifica l'architettura orientata ai servizi

4

Come posso sapere se un sistema è costruito su architettura orientata ai servizi durante la lettura del suo codice sorgente ?

    
posta Zain 29.08.2011 - 11:44
fonte

3 risposte

5

SOA è uno stile di architettura, quindi l'intenzione è più importante del codice. Chi dice che il codice che pensi sia SOA-Style non viene refactored alla prossima iterazione? In genere, mi aspetterei, è più semplice chiedere l'architetto.

Ciò detto, idealmente (vale a dire, quando l'intento e la corrispondenza di origine), si applica quanto segue:

  • Il codice sorgente dell'intero progetto è suddiviso in unità molto indipendenti che possono essere implementate "standalone", cioè senza che il resto sia dispiegato. Questi sono i servizi.

  • Un tale servizio avrebbe un'interfaccia verso il mondo esterno, come mezzo di comunicazione con altri servizi. Per Examle, un servizio data potrebbe rispondere sotto l'url http://example.com/current_date qualcosa come {"year": 2011, "month": 8, "day": 29} .

  • Ad eccezione dell'interfaccia, un servizio è una "scatola nera" per gli altri servizi. Tutta la comunicazione è fatta su queste interfacce. In particolare, non esiste un database condiviso.

  • Se progettato come SOA dall'inizio, ci si aspetterebbe che la stessa tecnologia fosse utilizzata per la maggior parte delle interfacce. 'SOAP' e 'RPC su HTTP / JSON' sarebbero esempi per tali tecnologie.

(MODIFICA: pulisce la risposta un po ')

    
risposta data 29.08.2011 - 12:04
fonte
1

Normalmente, a meno che tu non sia il responsabile di ciò, non sei tenuto a conoscerlo. Potresti non vedere nulla nel "codice" ma piuttosto nei file di configurazione. Se noti i file di configurazione su come comunicare con i servizi remoti, ad esempio con un ESB , o come @keppla detto tramite RPC , SOAP, allora ci sono possibilità che qualche forma di architettura SOA sia usato - almeno - tra questi due componenti.

Ma se vuoi davvero saperlo, puoi chiedere all'architetto, o al responsabile IT, che dovrebbero saperlo.

    
risposta data 30.08.2011 - 10:11
fonte
1

Se il sistema effettua numerose chiamate a servizi che incapsulano la propria logica e sono definite solo dal loro contratto (tipi di parametri e operazioni), allora è probabile che sia un sistema orientato al servizio.

Se il sistema non effettua alcuna chiamata a servizi esterni, non è un progetto orientato al servizio.

    
risposta data 04.10.2011 - 06:19
fonte

Leggi altre domande sui tag