Cerco di migrare sempre più la nostra infrastruttura IT in un'architettura orientata ai servizi , ovvero separazione delle attività indipendenti e implementazione di queste attività come servizi disaccoppiati, semplicemente accessibile tramite HTTP . Se non ti piace il termine SOA, inseriscilo in un altro - l'idea di base è mettere la funzionalità in piccoli moduli ed esporli tramite interfacce ben definite.
Significa anche molta documentazione e comunicazione, perché le persone tendono a pensare nei sistemi integrati. Quando unisco più servizi a un nuovo componente, mi prendo sempre cura di rilevare gli errori: se un servizio fallisce, il resto del sistema dovrebbe continuare a funzionare nel miglior modo possibile. Probabilmente conosci la Scimmia del caos , che tengo a mente . Tuttavia, se altre persone usano i servizi, tendono a pensare in parti affidabili. La buona SOA richiede il principio di robustezza? In breve, se usi un servizio, non dovresti aspettarti molta qualità: fai attenzione a qualsiasi tipo di errore: la risposta del servizio potrebbe non contenere tutte le informazioni (campi mancanti), potrebbe includere parti aggiuntive e sconosciute, potrebbe rispondere molto lento, o potrebbe non funzionare affatto. Si tratta di una proprietà di accoppiamento lento o sono solo pigro per garantire una severa qualità del servizio? ; -)