torsdag, augusti 03, 2006

Är SOA vägen till instabilitet?

Jag tänkte säga emot mig själv i den här posten angående förträffligheten med en SOA.

SOA är arkitekturen som ska göra delarna i arkitekturen nåbara, återanvändbara och hanterbara. De två första målen är inte så nya inom mjukvaruindustrin eftersom alla typer av distribuerade teknologier har strävat efter att göra komponenter nåbara på ett nätverk eller mellan processer och återanvändbara för andra applikationer. Däremot så är hanterbarhet något som en SOA ska uppfylla och göra möjligt, men är det något gott eller kan det missbrukas?

Med hanterbarhet menas möjligheten att centralt kunna gruppera sina tjänster, versionshantera, styra om, ändra policy, binding, adress, etc baserat på meta-information för varje tjänst. Hanterbarhet eftersträvas för att få en lättrörlighet och god ordning av alla länkar mellan delarna i arkitekturen.

Hanterbarhet kan göras omöjligt genom hårdkodning, hårda kopplingar mellan komponenter och properitära format. Hårdkoda som att spara adressen till en COM komponent eller Connection String i koden. Hårda kopplingar som mellan två komponenter med samma typsystem. Properitära format som mellan två komponenter som pratar RMI över IIOP.

Web Service är en nödvändighet för en SOA eftersom det möjliggör hanterbarhet. Men är det hanterbarhet vi vill ha? Vem är det som kommer att hantera alla kopplingar som tidigare var gömda i en svart låda. Har man inte alltid sagt att "rör inte det som fungerar"?

Tänk dig en framtid där alla kopplingar mellan tjänster kan administreras från en punkt. Där ska då IT-gubbarna (kanske till och med affärsfolk) sitta och mecka runt med dina tjänster och byta policies on-the-fly. Är det överhuvudtaget mänskligt att kunna administrera IT på det här viset, eller är det bara en utopi som istället kommer visa vägen till instabilitet?

Inga kommentarer: