Domanda

L'architettura orientata ai servizi sembra essere sempre più una citazione popolare in questi giorni, ma dopo aver chiesto in giro per l'ufficio ho scoperto che mi sembra di avere molte definizioni diverse per essa.Come definireste la SOA?Quale considereresti la definizione ufficiale?

È stato utile?

Soluzione

Come dice Martin Fowler, significa cose diverse per persone diverse.Il suo articolo sull'argomento è piuttosto buono anche se non è proprio una definizione.

http://martinfowler.com/bliki/ServiceOrientedAmbiguity.html

Potrebbe spiegare la difficoltà di trovare una definizione concreta.

Altri suggerimenti

Wikipedia:"Una SOA è un'architettura software che utilizza servizi software liberamente accoppiati per supportare i requisiti dei processi aziendali e degli utenti software.Le risorse su una rete in un ambiente SOA sono rese disponibili come servizi indipendenti a cui è possibile accedere senza conoscere l'implementazione della piattaforma sottostante."

La SOA non è una novità, ma ha il potenziale per ottenere risultati sorprendenti.Ma l’organizzazione deve essere pronta per questo:l'azienda deve pensare per processi e questo è il grosso problema

Io andrei con:

Definizione di una serie di operazioni aziendali agnostiche apolici e clienti create per essere sfruttate in più applicazioni.

Un progetto SOA include componenti (ad esempio, Servizi) che può essere utilizzato dal codice indipendentemente dall'implementazione (ovvero, qualsiasi sistema operativo o linguaggio).Una singola istanza di un servizio può anche essere utilizzata da più applicazioni, mentre, ad esempio, una DLL dovrebbe essere duplicata per ciascuna app e richiederebbe la stessa tecnologia di implementazione dell'applicazione di collegamento.

I servizi in una progettazione SOA sono solitamente implementati come servizi web interoperabili.

Non esiste una definizione ufficiale, come Ryan ha menzionato in precedenza.Trovo tuttavia che la visione di Thomas Erl sull'intero orientamento ai servizi sia abbastanza ben strutturata e pertinente.Ecco la definizione di SOA dalla sua Glossario SOA (Di più):

L'architettura orientata ai servizi rappresenta un modello architettonico che mira a migliorare l'agilità e il rapporto costo-efficacia di un'impresa riducendo al contempo il carico complessivo dell'IT su un'organizzazione.

Thomas Erl è l'autore di numerosi titoli SOA, la maggior parte dei quali ha ricevuto l'approvazione di fornitori di SOA tra cui IBM, Oracle e Microsoft.La cosa bella di i suoi libri è che siano quanto più indipendenti possibile dal fornitore SOA.Significa che si impara di più sull'orientamento al servizio in sé e meno sul middleware di alcuni fornitori che supporta la SOA.

Sono d'accordo con tutte le persone che ti indirizzano a Fowler su questo.Fondamentalmente funziona così:l'architettura orientata ai servizi ha la reputazione di essere buona, quindi tutto ciò che le persone vogliono essere associato al bene lo chiamano SOA.In realtà ha molti svantaggi e può creare un Gridlock orientato ai servizi o un'architettura orientata alle dipendenze.

Ecco la mia definizione:L'architettura orientata ai servizi è un approccio di integrazione dei sistemi e riutilizzo del codice in cui le applicazioni dipendono dalla connessione ai servizi forniti da altre applicazioni in esecuzione sulla rete.Ciò è diverso dalle architetture dei componenti, in cui i componenti software sono condivisi staticamente tra le applicazioni sotto forma di librerie o SDK, ad esempio.

Un chiarimento qui: "L'architettura orientata ai servizi è a integrazione dei sistemi e approccio al riutilizzo del codice da cui dipendono le applicazioni connessione ai servizi forniti da altre applicazioni in esecuzione sulla rete."

Ho uno scenario in cui due applicazioni j2ee sono state integrate utilizzando la messaggistica basata sugli eventi.Ecco le frasi di cui sopra integrazione dei sistemi E connessione ai servizi forniti da altre applicazioni in esecuzione sulla rete tieni duro.Posso chiamarlo SOA?

I seguenti principi sarebbero buoni qui 1) Apolidia 2) Orientati al messaggio - Infatto accoppiato in modo libera 3) estensibile.

Tuttavia, quanto segue non si applicano 1) Indipendenza della piattaforma: nessuna delle applicazioni integrate è stata progettata per funzionare in una piattaforma diversa.2) Le applicazioni sono semplici applicazioni j2ee che non sono state progettate con tutti i concetti SOA.

Ho tentato di definire SOA in uno dei post del mio blog.Ecco un estratto...

Per anni è stata una pratica standard separare le funzionalità in funzioni, classi e moduli.L’idea è sempre stata che questi componenti più piccoli e altamente specializzati siano più facili da condividere e mantenere rispetto ai blocchi monolitici di codice.

Funzionalmente, la SOA non è molto diversa.Gli obiettivi sono gli stessi: riutilizzabilità e facile manutenzione.La differenza più grande, nel caso di una SOA di servizi web, è che la libreria condivisa inclusa nella tua applicazione viene sostituita con una chiamata HTTP.

Ecco una definizione per te:

SOA - Software sovra-architettonico.L'inclusione di un framework di interfaccia inutile, sovrabbondante e funzionale chiamato architettura in un grazioso sito web con una cartella grafica 3D che vola da un lato all'altro dove "dir /s > a.txt | ftp -s:upload.ftp" ha fatto il lavoro.

I componenti software non sono mattoni, non possono essere generalizzati da modelli funzionali comuni e l'architettura emerge nell'impresa dalle buone pratiche, non dalla buona progettazione.Il software non è architettato, è ingegnerizzato.

MISCHIA SU!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top