söndag, februari 03, 2008

Arkitektens roll på riktigt

Den här podcasten spelades in i Dec -07 men släpptes genom SOA Consortium alldeles nyligen. Panelen består av tre Enterprise Architects som ger sin syn på sin egen roll, deras respektive företags SOA och BPM strategi. Mycket utlämnande av hur arkitekter arbetar med dom stora frågorna.

User Panel:
EA practitioners will look at the links, synergies and differences between SOA and enterprise architecture. How does SOA fit into the EA picture? How can it help make EA more valuable? Does SOA need to be part of a broader EA? Hear from the panelists -- their firsthand experience and lessons learned.

Moderators:
Richard Soley, Executive Director, SOA Consortium; Chairman and CEO Object Management Group
Nicholas Gall, VP Distinguished Analyst, Gartner

Panelists:
Todd Biske, Senior Enterprise Architect, Monsanto
Bill Conroy, Head of Enteprise Architecture Division, Bank of America
Sam Vetto, Enterprise Architect, The Hartford

torsdag, januari 31, 2008

Gartner Business Process Management Summit

Gartners Business Process Management Summit är på gång nästa vecka och på hemsidan finns en länk till Daryl Plummers fantastiska SOA/BPM session från i höstas.

tisdag, januari 29, 2008

Agila metoder passar bäst för DotComs

Refactoring har blivit en naturlig del i agile mjukvaruutveckling. Frågan är bara hur stor del den tar av en utvecklingscykel och blir nettoeffekten positiv för resultatet.

Det är ju allmänt känt att agila metoder passar bäst för små projekt, utan externa beroenden, som ska utveckla en ny mjukvara/applikation. Det i kombination med att produktägaren är klar över vilka features som kommer skapa affärsvärde. Summan av dom förutsättningarna kan sammanfattas med ett ord, DOTCOM.

Idag ser vi inte mycket DOTCOM-projekt, även om dom finns. Däremot finns det liknande karaktärsdrag hos andra projekt där agila metoder lyckas väl. Dom projekten delar ofta samma förutsättningar med avseende på storlek och omfattning. Projekt som däremot får in beroende till andra system, externa parter, integration, governance och del av en enterprise arkitektur kan inte lyckas lika väl med agila metoder.

Agila metoder går nämligen ut på att inte ta hänsyn. Scrum har exempelvis sina sprintar där man trycker in s.k. stories. Hur de implementeras är inte intressant, bara att dom implementeras. Hur kan man alltid göra om, då man refactorerar. Har man externa beroenden så måste man ta hänsyn, följa riktlinjer, förhålla sig till en integrationsplattform, masterdata, krav på återanvändning, m m. Agila metoder har ett sätt att tackla förhållningsregler, men då enbart inom projektet - nämligen genom refactoring eller "gör om, gör rätt".

fredag, oktober 05, 2007

Steve Vinoski - ett RESTafarian

Steve Vinoski, en av figurerna bakom CORBA ransakar sig öppet på sin blog. Han menar att ESB var en religion som han lämnat bakom sig, för att istället blivit ett RESTafarian. Kommer han någonsin känna sig trygg o säkert i sina vägval?

måndag, oktober 01, 2007

SOA: Ett digitalt universum

Universum är gammalt. Ingen vet hur eller när det skapades, var vi är idag, vart det är på väg eller vad som fanns innan det skapades och vad som händer efter det försvinner. För att förklara det (påverkad av vad jag ftf läser; The God Delusion och tidigare S. Hawkings Kosmos : en kort historik) stora och ofattbara i det hela finns olika skapelseberättelser som grund i diverse religioner.

Vetenskapen slänger sig också med svepande begrepp som att "till en början rådde kaos, som övergick i kosmos". Att harmoni, styrda av naturlagar, skapades mellan universums beståndsdelar och tog oss dit vi är idag med högre sammansatta former (som oss själva).

Säg att vi backar tillbaka i tiden till strax efter universums skapelse. Där står vi nu och tittar hur det i ultrarapid skapas nya ämnen av några få beståndsdelar, som i sin tur tar nya former, allt under kontroll av naturlagarna. Känns inte detta igen? Står vi inte idag och tittar på ett annat fenomen som liknar det som vi själva uppkom ifrån?

Big Bang, det som vetenskapen betraktar som universums födelse. Kan man inte jämföra det med Internets födelse, dvs år 1995. Nu tänker du säkert, men mallå! det var ju tidigare än så, vi pratar 70-tal. Jo, men det var inte födelsen, det var att likna vid förvärkar. Vattnet rann när Web 1.0 föddes. Efter det tills nyligen har Internet betett sig som dagarna efter The Big Bang, dvs en enda lång explosion. Internet är idag en enda stor void-stjärna utan rättelse efter lagar om ordning ... det är kaos.

Vilka är lagarna som ska skapa harmoni och kosmos på Internet? WS-* kanske? Med osäkerhet om vilka lagarna är så är det ur den mängd information och funktion som tjänster ska utgöra de minsta beståndsdelarna och sluttillståndet är SOA. SOA det tillstånd då Internet (eller i mindre isolerade delar) är i harmoni. Då alla ingående delar förhåller sig tillvarandra som biologin, kemin och fysiken gör i universum.

Kan man se religiöst på SOA? Nej, jämförelsen med religionen går inte att göra eftersom religion är en ovetenskaplig förklaring till det ofattbara. Om SOA är som universum och att vi ser det hända just nu, vet vi ju vad som fanns innan SOA och hur gammalt det är. Alltså kan det idag inte betraktas som religiöst. Vi upplever det, därför är det fattbart. Kommer man om 100-tals år (vi får anta att det går snabbare än universums födelse), se tillbaka på Internet X.0 och förklara det som något ofattbart, dvs religöst, eller kan vi anta att generationerna behåller fattningen. Det vet vi inte, men troligen ligger svaret någonstans där emellan.

Kan man se fundamentalistiskt på SOA? Att måla upp en jämförelse mellan SOA och universum är ganska extremt, men kanske inte fundamentalistiskt. Kommer det att skapa fundamentalister som drar åt andra håll och vill blunda för utvecklingen av SOA? Ja, det är nog mer sannolikt. När vetenskapen blir för jobbig att leva med så vill man hindra den. Som en omvänd ordning mellan religion och vetenskap kommer SOA att få utstå häxjakter, korståg och rondellhundar.

Den som lever får se!

onsdag, september 05, 2007

Agila projekt misslyckas

Jag tycker det är intressant hur mycket kollektiv uppmärksamhet en metodik kan få. Jag säger kollektiv eftersom det känns som om det sveper en vind av förhoppningar bland utvecklare att få jobba annorlunda (går att jämföra med utvecklares förhållande till Patterns). Det agila med en projektmetodik bottnar oftast i faktumet att en utvecklare vill göra det den behärskar bäst, nämligen koda.

En utvecklare vill inte förstå en verksamhet, ett krav, någon annans synsätt. En utvecklare ser på saken från ett perspektiv som endast utvecklare kan se på saken. Bästa sättet för en oinsatt att göra sig förstådd är att låta utvecklaren sitta och koda. Koda fram något som den oinsatte kan ha åsikter om. Det är lite som Runge Kutta, om ni minns den? En approximeringsmetod för att lösa problem genom att närma sig lösning steg för steg genom korta intervall.

Tyvärr är det inte alls det som är poängen med agilitet. Agil handlar om att vara lättrörlig, inte att inte förstå eller ha en lösning på problemet initialt. Det handlar om att ändra målet, att lyfta blicken från slutaren, ställa om ISO, bländare och slutartid för att sedan sikta igen.

På frågan om varför en utvecklare har så annorlunda sätt att tänka beror på vad utvecklaren har i verktygslådan. Där i hittar man anledningen varför det skapar ett sådant glapp mellan den oinsatta och utvecklaren. Världen utanför är nämligen inte objektorienterad, men i vertygslådan finns bara objektorienterade vertyg. Med dessa verktyg kan man inte bygga det kunder frågar efter utan att genom ett antal steg och modelltransformeringar från en verksamhetsmodell till en objektorienterad. Idag finns ingen naturlig väg från den ena till den andra och det är på tiden att vi byter ut verktygen mot något som passar istället.

Se mer fakta om varför agila projekt misslyckas.

tisdag, augusti 21, 2007

SOA klarnar

Företaget Wellesley har gjort en undersökning om hur införande av en SOA har resulterat i en ROI eller inte. David O'Connell, en analytiker på Wellesley, säger att enbart 37% av de utfrågade anser att de fått tillbaka på investeringen.

En av anledningarna är att utvecklarna inte anser att använda redan skriven kod inte är en tillräcklig utmaning.

"Developers think it is cool to come up with a new piece of code," according to O'Connell. "When you're developing in an SOA environment you need ... to customize something that someone else developed. That is not instantly appealing to developers."

Det visade sig dock att 28% ansåg att de blev mer produktiva när de byggde applikationer ovan på en SOA. Enligt rapporten så återanvänder man 37% av tjänsterna i en SOA.

O'Connell föreslår därför att företagen ska skaffa ett service repository vilket skulle öka återanvändningen.

Studien visar även att den största anledningen till att införa SOA är BPM, Portaler, MDM och B2B.

tisdag, augusti 14, 2007

tisdag, augusti 07, 2007

SOA-OD



Mer TIBCO humor ...

Påminner om Team America.

torsdag, juli 26, 2007

Virtualisering och SOA

IDG.se skrev för ett litet tag sedan en artikel om kopplingen mellan virtualisering och SOA som jag antar byggde på den här artikeln i eWeek.com. Den följdes upp av ett antal kommentarer som visar på god SOA-förståelse i landet. Här är lite citat som är viktiga för förståelsen av en SOA.

"SOA kan jämföras med hårdvaruvirtualisering eftersom (som zixleg säger) båda teknikerna klipper beroendet till underliggande "lager"."

"Hypervisorn virtualiserar över hårdvaran, CLR & JRE virtualiserar över OS och SOA virtualiserar (något filosofiskt, men ändå) över applikationer."

"Det får samma fördelar med SOA som det ger med hårdvaruvirtualisering:
1. hög användingsgrad av resurserna
2. hög återanvändning av resurserna
3. hög managerbarhet över resurserna
4. hög förändringsbarhet av resursanvändningen"

"Det är ingen poäng att hosta soa lösningar i virtualiserade miljöer mer än det skulle vara för någon annan arkitektur ... dvs att hårdvaruvirtualisering inte är en möjliggörare för soa"

Jämförelsen mellan virtualisering och SOA pekade jag på tidigare i tre inlägg och anser att tillsammans (inte beroende av varandra dock) bidrar de tungt till en god Execution Foundation i en EA.

onsdag, juli 25, 2007

Fler definitioner på SOA

Det pratas mer och mer SOA och ju mer det pratas SOA desto fler definitioner av SOA blir det.

Här är Microsofts syn på SOA i ett rykande färskt dokument.

Jag tycker nog min arbetsgivares definition är korrekt:

A loosely-coupled architecture designed to meet the business needs of the organization.

Och att min egen från 2005 (Vägen till tjänstebaserad arkitektur) inte är helt fel ute, än så länge:

En arkitektur som bygger på samverkan mellan små självfungerande tjänster som är definierade av verksamhetsprocesser och baserade på standardiserad teknologi.

torsdag, juli 19, 2007

Pattern-ister och GPSer

Jag skaffade en HTC 3300 för några veckor sedan. Den är utrustad med en GPS som jag var tvungen att pröva så fort som möjligt. Jag brukar köra inne i stan (Stockholm) som jag bott i i nu snart 15 år. Jag kan de flesta gator i centrum, men eftersom jag nu köpt en GPS så måste den ju användas.

En gång skulle jag åka mellan Kaptensgatan och Floragatan en vanlig vardagseftermiddag runt 4-tiden. GPSen föreslog att jag skulle åka ned på Strandvägen, ta Birgerjarlsgatan till Stureplan och sedan Sturegatan, Karlavägen, Floragatan. Öhh ... den vägen kändes inte rätt, varför valde den den mest trafikerade vägen så här dags. Den var inte ens kortast och definitivt inte snabbast. Jag körde istället upp direkt på Karlavägen bort till Floragatan och tjänade säkert en kvart på det.

Det slog mej senare att precis så här används Design Patterns i utvecklingsprojekt.

Istället för att tänka själva så kör man pattern-bingo bland utvecklarna. Istället för att tänka själv så name droppas det patterns som resulterar i omvägar, felsatsningar och tidsförluster. I många fall knuffas talang och erfarenhet undan till fördel för pattern-ister.

Det är viktigt att tänkande individer som kan programmering får det utrymme de förtjänar och att utvecklarnas GPSer (patterns) används sparsamt och inte blir till en överdrift.

tisdag, juli 10, 2007

BPEL4People bjuder in människor

BPEL4People är en specification som gör det möjligt att dela ut Tasks till personer i en arbetsprocess implementerad i WS-BPEL. Jag har prövat ActiveEndpoints Enterprise plugin för BPEL4People och visst skapar det möjligheter med utökningen av språket.

Vad det går ut på är att någonstans i processen så ska en aktivitet utföras av en person. Personen ingår i en grupp av personer som har samma roll. Det kan vara en låneutgivare på en bank som ska utföra en kreditkontroll (aktiviteten) i en låneansökan (processen). När aktiviteten exekveras så notifieras gruppen (rollen) att en ny uppgift har skickats.

Sedan loggar valfri låneutgivare in och får mer information om uppgiften och kanske därefter antar uppgiften. När uppgiften är utförd så matar låneutgivaren in eventuell respons och skickar tillbaka kontrollen till processen. Självfallet kan BPEL4People även ta hand om undantag och felhantering.

tisdag, juli 03, 2007

Processorienterad design

Jag hade en diskussion med Fredrik Normén idag där en intressant fråga kom upp. Antag en inköpsprocess där en av aktiviteterna ska notifiera chefen om att en ny order ska attesteras. Notifieringen skall ske via email, men en kodare känner igen diskussionen och vet att inom kort ska kanske ett annat sätt hantera notifieringen som exempelvis via SMS-meddelande. Frågan vi ställde oss var om man 1) ska skapa en specifik aktivitet för varje scenario som man i processen byter ut när kraven ändras eller 2) en generell aktivitet som kan hantera notifiering rent allmänt så att implementationen av processen alltid förblir densamma.

Det självklara svaret kan anses vara att man borde skriva en generell aktivitet som kan hantera olika transportsätt. Men eftersom processmotorer är byggda för att just kunna modifera processerna så borde det första alternativet inte ge något overhead vid förändring. Det kan till och med vara tydligare att i processen kunna se hur meddelandet ska skickas.

Jag skulle nog i alla fall vilja påstå att just styrkan med kombinationen av tjänster och process hantering skapar den bästa lösningen. Nedan så implementeras processen med en generell notifieringsaktivitet. Självfallet ska inte implementationen av aktiviteten köras inne i processmotorn utan skickas som ett service anrop via ett Mediation Layer, en Enterprise Service Bus (ESB). Däri ligger ansvaret för att hantera hur meddelandet ska nå användaren vilket kontrolleras genom policies för notifieringstjänsten.

För processen finns det inga fysiska tjänster att tillgå, utan enbart virtuella tjänster som exponeras genom ESB:n. Inne i bussen routas meddelandet beroende på innehåll och yttre omständigheter samt transformeras för att passa just det transportsättet och den mottagaren av den fysiska implementationen av notifieringstjänsten. Det här är en klassisk kombination av Business Process Management och Service Oriented Architecture som visar vad som ligger inom respektive arkitekturs ansvarsområde.

Varför blogga?

För ett lite tag sedan på .NET Rocks kunde man lyssna till Don Box och Chris Sells när dom diskuterade lärande med Carl and Richard. Både Don och Chris är bloggare som många andra, även undertecknad. I samtalet kom frågan upp varför man överhuvudtaget skriver, oavsett arena (bok, tidning, blog, etc). Jag funderade på några anledningar till varför folk bloggar.

1. Du lär dig saker genom att skriva
2. Du vill dela med dig av din kunskap
3. Du vill dokumentera dina tankar som en öppen dagbok
4. Du vill skapa debatt
5. Du vill göra avtryck i historien
6. Du vill använda det i ditt CV
7. Du är upprörd och vill berätta din åsikt
8. Du vill framföra dina åsikter genom att provocera
9. Du har något att berätta men kan inte utttrycka dig verbalt
10. Du har något att berätta men vill inte skriva en bok
11. Du "tycker om att skriva"
12. Du vill få ett kvitto på dina åsikter
13. Du vill "skriva av dig" så du kan glömma och gå vidare (terrapi)
14. Du skapar material som du vill ha kommentarer på och som senare kan användas i en bok du vill skriva
15. Tjäna pengar på bl a Google Ads
16. Imponera på din arbetsgivare
17. Du har en narcissistisk störning och vill synas

Även om de flesta punktern handlar om lärande och självförverkligande så finns det en stor mängd bloggar som skapar debatt och leder till diskussion. Det tycker jag blogging är bäst på och det är där bloggen skiljer sig från boken.