söndag, april 06, 2008

The Three R's of SOA: Reuse, Reuse, Reuse!

Är fördelen med SOA att kunna återanvända eller skapa rörlighet?

Det har alltid debatterats om SOA handlar om återanvändning eller rörlighet. När man säger återanvändning kan man antingen avse att ta till vara på redan existerande investeringar (ERP, CRM, osv) eller så pratar man om bättre förutsättningar för återanvändning från och med ett införande av SOA. Med rörlighet avses oftast förmågan i den tjänsteorienterade arkitekturen att förändras med affärens nya behov. Att kunna ställa om kommunikationen med tjänster baserat på regler och policies. Ex. Anta att ett företag som är beroende av import av komponenter i en produktionskedja kan styra om orderflödet baserat på dollarpriset.

Men vart ifrån kommer dom olika rösterna som så gärna vill få allmänheten att förstå fördelarna med SOA?

Att sätta återanvändning av existerande system och applikationer i första rummet är intressant för dem som lever på att det just deras gamla system fortfarande körs. IBM som är den största förespråkaren av återanvändning i samband med SOA "The Three R's of SOA: Reuse, Reuse, Reuse!". Det andra perspektivet på återanvändning är gammalt, dvs att mjukvaruindustrin alltid har försökt skapa förutsättningar för att återanvända kod, komponenter, patterns, etc. Det är på något sätt den våta drömmen för en hel bransch.

Vart kommer målen med rörlighet ifrån då? Ja inte är det från IBM eller från teknikbranschen. De kommer från den andra sidan, de som har tvingats leva med IBMs produkter eller med godtyckliga system där återanvändning varit i fokus när arkitekturen sattes. Att skapa rörlighet eller som man ofta säger, "align business with IT", handlar om att ha 1-1 mappning mellan verksamhetens delar och de delar som automatiserar dessa funktioner. SOA för in perspektivet att tjänst motsvarar tjänst - verksamhetstjänst mappas 1-1 mot dess implementation. Här pratar man inte SOA som vilka entitetstjänster som helst. Här pratar man inte om löst kopplade delar som om det gällde förhållandet mellan en drop-down lista och en SQL View.

Så länge dessa två motpoler som beskriver målet med SOA står mot varandra kommer inte SOA att skjuta fart. Återanvändning är ett direkt hinder för rörlighet där man historiskt kan peka på tragiska koncept som objektorientering där man lyckats skapa de mest statiska system pga återanvändning. Varje gång man återanvänder något skapar man ett beroende. Det kan vara databaser som delas av flera funktioner i en produktionslinje, det kan vara objektlager som används på samma sätt, eller för den delen tjänster som återanvänds mellan klienter och konsumenter. SOA bidrar inte alls till förutsättningen att lyckas med återanvändning. Det kan aldrig bli en teknisk fråga, det är inbyggt i oss som människor att skapa nytt. Speciellt gäller det utvecklare, som för det mesta har sin egna agenda och världsbild.

Inga kommentarer: