Komponentowe i rozproszone Interludium
OOA vs SOA OOA (obiekty rozproszone): CORBA, COM(+), EJB Współdzielenie obiektów SOA (serwisy rozproszone): Autonomiczne usługi Jawne granice Wspoóldzielenie kontraktu a nie klas/typów Kompatybilność definiowana przez politykę Różne poziomy abstrakcji
OOA OOA (obiekty rozproszone): Technologia to punkt wyjścia problemy z wersjonowaniem trudno kontrolowac wpływ zmian w kodzie na inne komponenty Crockburn o OO... : diabolically difficult topic: Reuse is too simple a word…it should be unpronounceable difficult, to give the sense of how hard it is to achieve.
Potrzeby
SOA To nie technologia – to nie webserwisy, WCF Opis autonomicznych usług i dobrze zdefiniowanej komunikacji Problemy Sztywność architektury + trudne zmiany kontraktu – ale w sumie chodzi o to aby tego nie zmieniać Co z kompatybilnością ? jesli zmiany są konieczne – wersjonowanie Utrzymywanie wersji nie jest darmowe
SOA SOA też jest trudne Asynchroniczność: Publish + subscribe Request + response