onsdag, augusti 02, 2006

ORMen som kröp iväg

Innan jag skrev den här posten så stängde jag av mina Comments för att inte riskera att blir bränd på min egen blog ;) Nja, anledning till att jag knäppte av det beror på att det inte kom in några kommentarer ändå. Jag ska inte chockera på samma sätt som Ted Neward gjorde i sin jämförelse mellan Vietnamkriget och O/R-mappare i The Vietnam of Computer Science utan mer visa på vilken liten betydelse ORM spelar i den processorienterade världen.

ORM (Object Relational Mapping) som är en teknik för att länka den objektorienterade världen med relationsdatabaser har fått en rejäl uppmärksamhet bland applikationsutvecklare runt omi världen. O/R-mappare kallar man implementationen som hanterar den kopplingen och det finns mängder av sådan, mer eller mindre lyckosamma (många blev inte mer än betor men läs mer om det på Ted N blog). Det finns lika många förespråkare av O/R-mappare som det finns motståndare. Jag o andra sidan är motståndare till allt som delar upp åsikterna i två lika stor läger. Men det är inte det jag kommer att trycka på nu, utan den egentliga nyttan av O/R-mapparen i en applikation.

Jag skrev tidigare en post om hur data representeras och hanteras i processdriven utveckling (Processdriven utveckling IV – Data). Det viktiga att ta med sig därifrån var att processen skyddar datat, dvs att den information som direkt hör till en process skyddas av den samma. Det finns bara ett sätt att få åtkomst till datat och det är genom processen. System som definierar och hanterar processer kallas för BPMS (Business Process Management Systems) som har en speciell egenhet, de hanterar nämligen processens tillstånd och dess data under hela transaktionen (processens livstid) utan att man behöver implementera datalagring.

Det är inte O/R-mapparen som i första hand tappar sin betydelse utan objektlagret i ett transaktionssystem. Objektlagret bygger på att datat är centralt och åtkomligt av vem som helst, när som helst under en transaktion (LRT). Vissa begränsningar kan läggas in, men det implementeras i så fall inte i objektlagret eller i O/R-mapparen. Relationsdatabaser är också datacentriska och faller in under samma kategori av oordnad data access.

Men i processorienterad utveckling är datat sekundärt och följer bara med processen som här är central. Om och när processen serialiseras och persisteras är upp till varje BPMS. Visst kan processen (inkl data) persisteras till en relationsdatabas, men det är inte relevant eftersom man ändå inte har access till den informationen under processens livstid. Men när processen är klar så kan man självfallet lagra undan datat i en relationsdatabas, men då mer av historisk betydelse.

Jag skulle gissa att om inte lång tid framöver när WF, BPEL och andra BPM-verktyg slår igenom och processorienterad utveckling blir vanligare bland applikationsutvecklare så kommer intresset för O/R-mappare och relationsdatabaser att svalna rejält. Databaser blir mer av nytta för Data Warehousing än för transaktionssystem och objektlager får en mindre betydelse.

Inga kommentarer: