Come tenersi aggiornati su SOA? [chiuso]
-
02-07-2019 - |
Domanda
Mi è stato affidato il compito di gettare le basi di una SOA per il mio cliente. L'obiettivo è aprire vari processi in modo indipendente dal cliente finale e anche rendere i dati disponibili offline per i rappresentanti che visitano i clienti.
Ho una vasta esperienza con J2EE (Websphere) e servizi web, ma apprezzerei i consigli su come costruire una SOA del genere.
Dove sono le insidie? E la sicurezza? Quanto devono essere finemente granulati i servizi? ecc.
Sarebbero utili anche collegamenti a tutorial e consigli sui libri.
Grazie!
Soluzione
insidie ??
- Controllo delle versioni / retrocompatibilità: diventa davvero difficile modificare un contratto una volta caricati molti client. Ho visto la versione di molti siti delle API introducendo la versione nell'URL
granularità
- Ogni servizio dovrebbe essere ragionevolmente autonomo (non aspettarti che le persone facciano 3 chiamate prima di ricevere ciò di cui hanno bisogno)
Indipendenza dalla piattaforma
- Prova a fornire più di un modo per accedere alle tue API (WS, JSON, REST ...)
Altri suggerimenti
Le persone non possono essere d'accordo su cosa significhi realmente SOA.
http://martinfowler.com/bliki/ServiceOrientedAmbiguity.html
(sebbene il consenso possa essere cresciuto da quando è stato scritto)
Suggerisco di interrogare il tuo cliente per scoprire esattamente cosa significano, se non altro. Quindi dai loro qualcosa che fornisce effettivamente valore commerciale , mentre spunta tutte le caselle SOA che potrebbero coincidere con quello sforzo.
Chiamami scettico della SOA. Il lamento di Fowler sembra ancora giusto.
Mi concentrerei sul problema più generale: il tuo client ha 2 o più applicazioni che devono collaborare insieme. Guarda i modelli di integrazione della vecchia scuola.
(fonte: amazon.com )
Trovato questo IBM Redbook ) che è una buona introduzione alle basi della SOA.
Come ha detto Alan, inizierei a leggere il libro Enterprise Integration Patterns . Esistono diversi modi per implementarli utilizzando un sistema di messaggistica direttamente come JMS o utilizzando progetti open source come Apache Cammello , ad esempio consultare il catalogo modelli .
Vorrei anche capire come costruire buoni servizi RESTful usando JAX-RS con Jersey come un modo semplice per esporre facilmente risorse per i tuoi sistemi a chiunque sul Web da qualsiasi lingua / piattaforma senza cadere in SOAP / WS- * deathstar :)
Ottieni un ESB (bus di servizio aziendale): Mulesource è una buona scelta (Opensource, Maturo, ma sanguinante). Una volta capito, capirai SOA.
L'obiettivo è quello di aprire vari processi in un cliente finale indipendente modo e anche per rendere disponibili i dati offline ad es. per i rappresentanti che visitano clienti.
La seconda metà non è in realtà un argomento SOA, è più una replica al problema dei dispositivi mobili. Starei molto, molto lontano dal cercare di attuare una parola d'ordine e concentrarmi sui problemi che stai affermando. I servizi Web sono un buon modo per aprire il processo in modo indipendente dal client.
Finora il miglior libro che ho trovato è Compasso SOA anche disponibile su Amazon