lördag 15 november 2008

Avslutande tankar

Konferensen är nu slut och det är dags att sammanfatta intrycken från konferensen. Jag är imponerad över kvalitén och bredden på presentationerna under den här konferensveckan. Det är häftigt att IBM flugit in i princip alla chefsarkitekter och huvudutvecklare för deras WebSphere-produkter för att presentera det senaste kring produkterna och de problem som de löser. Det gör att presentationerna inte blir så säljaktiga utan istället fokuserar på de problem som ska lösas och hur man tänkt kring lösningarna. Man får även en unik inblick i de problem som IBM nu fokuserar på och vart produkterna är på väg.

Det som jag uppskattar med IBM är att de har produkter och tänk kring många områden, vilket blir väldigt tydligt på en sådan här konferens. Det som är IBM:s styrka är att produkterna och tänket fungerar bra tillsammans för att lösa större och komplexare problem så som att få ihop en bra SOA-lösning för ett större företag. Det finns säkert många konkurrenter som har produkter som är "bättre” inom sina specifika områden men om man bara får/vill välja en leverantör och vill att alla produkter ska integrera bra med varandra idag och i framtiden så är IBM ett säkert val. Det är ju den bilden IBM vill måla upp för sina kunder och partner på den här konferensen och jag måste säga att man lyckas väldigt bra.

Summa summarum så var konferensen mycket bra och gav en hel del ny kunskap som jag och de kunder jag konsultar åt kommer att ha nytta av.

torsdag 13 november 2008

Versionshantering av tjänster

När man börjar bygga upp SOA-arkitekturer är det vanligt att man inte tänker på versionshantering av tjänsterna. Och det fungerar ett tag. Sedan får man stora problem när de första tjänsterna behöver uppdateras eller bytas ut. Eller för att citera IBM:s Greg Flurry: "Change happens.", "Change is painful."

IBM har gjort ett arbete för att ta fram en fungerande modell för versionshantering. Den bygger dels på teori, dels på erfarenheter från några kunder. Modellen är uppbyggd kring begreppet servicespecifikation (service specification). Specifikationen är indelad i fyra delspecifikationer, beteende, interface, interaktion och drift.

Servicespecifikationen versionshanteras, delspecifikationerna versionshanteras inte separat, utan versionsnumreringen följer servicespecifikationen oavsett om en vis delspecifikation uppdaterats eller inte. Versionsnummer består av major.minor. Man börjar alltid på version 1.0, för varje bakåtkompatibel version ökas minor-komponenten (t ex 1.0 till 1.1), om bakåtkompatibiltet saknas för en uppdatering ökas major-komponenten (t ex 1.0 till 2.0).

För riktigt stora ändringar skapar man en helt ny service. Det är ett fall som IBM:s modell inte täcker. Den nya servicen har, versionsmässigt, inga band till den gamla.

Det finns ett betydligt större djup i modellen än vad jag kan ta upp här, men skriv gärna en kommentar om det verkar intresant, så ska jag se om jag kan leta upp några resurser i ämnet.

DataPower åt folket

I och med att vi skapar fler och fler Web Services och andra tjänster som tar emot XML-information från externa kunder/partner så öppnar vi också upp oss för en massa XML-attacker. Ett exempel är så kallade DOS-attacker där det kan räcka med att skicka ett enkelt XML-meddelanden som om det inte hanteras korrekt då sänker hela tjänster/servrar. Ett exempel är Billion Laughs attacken. Ett annat exempel är att skapa ett XML-meddelande med en massa (1000) name space deklarationer vilket gör att den stackars XML-parsern får problem. Grundproblemet är att vi låter våra applikationer göra en massa arbete innan dess att vi vet att meddelandena inte är det vi förväntade oss och då är det för sent. Lägger vi på WS-Security så innebär även detta att vi ytterligare ökar mängden arbete som behöver göras för att processa meddelandena. IBM:s lösning på problemet är att installera deras hårdvarubox DataPower som har hårdvara för att hantera XML och kryptering samt en inbyggd XML-brandvägg. Genom att sätta upp regler vilka typer av XML-meddelanden som accepteras (t.ex. att det högst får vara 100 name space deklarationer) och sedan processa meddelandena med en "tänkande" XML-parser så sparar man en massa jobb åt applikationen och förhindrar de flesta XML-attackerna. Det finns även utmärkt stöd för att hantera de olika WS-säkerhetsstandarderna för att på så sätt även slippa hantera detta i applikationerna.

Den allra häftigaste/dyraste versionen av DataPower har även stöd för att agera ESB och transformera meddelanden och konvertera mellan olika protokoll.

Enligt IBM bör alla som har viktiga tjänster som hanterar någon typ av XML utifrån Internet eller från externa parter köpa en DataPower-box och ställa framför tjänsterna. Efter att ha sett listan av olika XML-attacker samt vet hur prestandakrävande och svårt det är jobba med XML och säkerhet för Web Services så kan jag förstå hur dom tänker. Sedan blir det ju alltid en kostnads- och riskfråga om det är värt att investera i boxen, men att den skulle göra nytta på många ställen är helt klart.

onsdag 12 november 2008

IBM om open source


IBM har ett stort engagemang inom open source-världen, de har gott om advokater, mycket egen utveckling och många olika licens och distributionsformer. Sammantaget är det rätt intressant att veta vad IBM har för syn på att använda open source.

Innan IBM väljer att plocka in open source i sina produkter går man igenom en ganska omfattande lista med kriterier och väger för och nackdelar. Det man tittar på är saker som hur lätt är det att integrera med egen kod, hur aktivt community finns det, är licensen acceptabel i det aktuella sammanhanget, är koden "ren" osv. Timing är också viktig, en open source produkt måste finnas tillgänglig i rätt tid förstås, men också med rätt road map så man inte kör in i en återvändsgränd.

För IBM är smittad kod ett orosmoment, man vill absolut inte ta in kod där det är tveksamt vem som egentligen äger koden, eller där det finns risk att utvecklare sitter på flera stolar samtidigt. Därförs görs en omfattande granskning av kodens stamtavla, var kommer den ifrån, hur har den varit licensierad, vem har upphovsrätten till olika delar av koden. Även de som bidragit till koden kan granskas för att se om det finns risk att bidragen kod lånat för mycket av andra projekt som bidragsgivaren kan ha varit inblandad i. (Normalt tittar man kanske snarare på om ansvarig organisation själva har rutiner för att ta emot bra bidrag.)

Bra licenser, ur IBM:s synvinkel, är licenser där det klart framgår vem som har copyright och som ställer få krav på hur koden får användas. Exempel är BSD, Apache, CPL (förstås (eftersom IBM själva tagit fram den licensen)). GPL fungerar som ett virus, all kod som inkluderar GPL-kod måste lämnas tillbaka till GNU, och är överhuvudtaget en dålig licens, säger IBM, vilket jag hävdar en förenkling som är så grov att den kan jämställas med en ren lögn. Även CDDL verkar de ha "missupfattat".

Jag tror att vi som är aktiva i mindre företag kan komma långt bara genom att se till att använda open source som kommer från pålitliga organisationer som har råd att försäkra sig om att juridiken är under kontroll. En produkt som används av IBM, Apache eller SUN t ex, har troligen granskats av respektive legal department. Men det är, precis som när det gälla alla andra affärsbeslut, i slutändan upp till vår egen organisation att göra en avvägning mellan nytta och risk.

Upplägg och sMash in

Jag och Pierre deltog idag i en labb kring IBM:s nya produkt WebSphere sMash. Det produkten ska hjälpa till med är att på ett enkelt och smidigt sätt bygga MashUps, d.v.s. webbapplikationer som sammanställer information och funktionalitet från fler av varandra oberoende källor. Jag måste säga att jag tycker det är roligt att IBM satsar på en sådan produkt där de tekniker som främst används är dynamiska skriptspråk (de som stöds är Groovy och PHP) och Webb 2.0 tekniker (AJAX, REST, JSON, osv.), vilket kanske inte direkt är de tekniker som man förknippar med IBM. Att IBM gör denna satsning kan också hjälpa till att föra in t.ex. Groovy-applikationer in i drifthallarna hos större företag eftersom IBM kan bistå med support och underhåll av infrastrukturen.


Utvecklingen i sMash görs i en utvecklingsmiljö som körs i en webbläsare vilket gör att utvecklaren inte behöver installera någonting på sin egen maskin. Utvecklingsmiljön var faktiskt riktigt trevlig att arbeta i och eftersom den använder en massa AJAX så blev användarupplevelsen bra. Labben bestod i att skapa enkla REST-tjänster som hämtade och uppdaterade information ur en Derby databas samt att även leverera informationen med en ATOM feed. Enkelt och smidigt var det i alla fall när man hade labbinstruktioner att följa. Om du vill ladda ner och testa är det bara att gå till projectzero.org och ladda ner Silverstone M2 CLI. Installationen går snabbt och smidigt och bör inte ta mer än 10 minuter.

Jag var senare under dagen på en föreläsning där man visade applikationer man byggt med sMash och då man använt en massa AJAX-teknik, flera av dessa applikationer var mycket imponerande. Det AJAX-ramverk som IBM använder är Dojo med Dijits (widgets till Dojo) och Dojox (ytterligare utökningar till Dojo).

SOA Sandbox

I sin iver att driva SOA-utvecklingen framåt har IBM skapat en häftig tjänst de kallar SOA Sandbox. Det är en tjänst som består av två delar:
  1. Info center - Detta innehåller en mängd information kring SOA, men framför allt patterns och best practices. Informationen baseras på erfarenheter från över 7000 kunder!
  2. Software Trial - IBM ger gratis tillgång till en labbmiljö via Citrix där alla nödvändiga IBM-produkter finns förinstallerade. Med hjälp av labbar och guider (Eclipse Cheat Sheets) kan man enkelt prova att själv implementera SOA!
För att prova behöver man bara att ladda ner Citrix, registrera sig och sen logga in via webbläsaren. I fyra timmar kan man sen leka fritt i sandlådan!

Utöver detta ingår även SOA Configurations, vilket innehåller exempel på implementationslösningar. Varje konfiguration innehåller demos, arkitekturguider och implementationsguider. Antalet konfigurationer växer hela tiden.

Fem i rad!

Efter en förvånande mängd studier har vi tagit veckans IBM-certifieringar. Det blev fem stycken till slut inom områdena WebSphere MQ samt SOA.

IBM om Business Process Management

Eric Herness som är chefsarkitekt for IBMs BPM produkter höll ett föredrag där han gick igenom alla nyheter i deras produktsvit. Det är en imponerande samling produkter för att modellera, köra, förbättra och övervaka affärsprocesser. Målet med produkterna är att de ska hjälpa till att överbrygga det gap som finns mellan affärsverksamheten och IT. Fokus verkar vara på att få verksamhetsfolket att bli mer involverade i framtagandet och vidareutveckling av de affärsprocesser som implementeras i IT-systemen. IBM:s väg att åstadkomma detta är att försöka gå ifrån beskrivningar av affärsprocesser gjorda i programkod mot XML-beskrivningar och metadata, detta för att få ett bättre stöd i grafiska verktyg för att beskriva processerna. Affäsprocesserna ska dynamiskt kunna ändras av verksamhetsanvändare genom att modifiera processer, policys och affärsregler.

IBM har också tagit fram en ny produkt som heter Business Modeller där verksamheten själva ska kunna modellera, bygga och ändra affärsprocesserna och sedan ladda upp och testa dom utan att behöva involvera IT i detta läge. Allt detta för att verksamheten ska bli mer involverad och säkert för att det ser bra ut vid införsäljning av produkterna. Erik menade dock att detta tillvägagångssätt enbart fungerade för ett fåtal processer i dagsläget men att man jobbade på ökat stöd.

En annan intressant sak är det går att konfigurera att ändringar i processerna och affärsreglerna måste godkännas av både verksamheten och IT. Detta verkar ju vettigt eftersom det då blir tydligt att ansvaret för affärsprocesserna är ett delat ansvar mellan verksamheten och IT.

tisdag 11 november 2008

Deltagarkris?

Det är tydligen ovanligt få deltagare på årets konferens. Enligt mina källor såg det ut att bli rekorddeltagande fram till september, sedan blev det tvärstopp. Framför allt är det kunder som uteblivit, vi partners har inte avbokat eller låtit bli att boka i samma utsträckning. Att kunderna sviker först är inte så konstigt, WebSphere är bara en detalj i deras it-miljö, men det är en del av vår kärnverksamhet. Så kunder har inte råd att komma, vi har inte råd att inte komma.

Min egen reflektion är att det är folk så att det räcker och blir över, men visst skulle det kunna finnas plats till några till i salarna.

Bonde söker SOA

UK Defra (motsvarar nog jordbruksdepartementet) presenterade tillsammans med IBM deras pågående övergång till SOA. Målet är att lösa upp dagens funktionsorienterade monolitiska applikationer i olika återanvändbara tjänster. Dessa tjänster kan sen kombineras till användarcentrerade portal-applikationer. En mjölkbond kan då få information och hantera sina ärenden via en enda portal, istället för som nu via flera separata (ibland även överlappande) system.

Intressanta erfarenheter:
  • SOA är oftast dyrare i början då tjänster, infrastruktur (ESB) och stjänster måste tas fram. Det kan ta flera år innan tjänster kan börja återanvändas och investeringarna ger utdelning.
  • Det är viktigt att räkna på hela livslängden för systemet när man jämför med traditionella system.
  • Man måste planera för återanvändning. Det sker inte av sig själv. Det krävs en avvägning kring hur mycket man skall förbereda för återanvändning. Titta framåt!
  • Flera hinder i form av ovillighet till samarbete mellan avdelningar och diskussioner kring vem som skall betala för en delad tjänst måste diskuteras.
  • Virtualiserade driftsmiljöer är dyrt i början men betalar sig i längden då det förenklar omfördelning av resurser när behoven ändras.
För att få prestanda i systemet använder webbportalen en egen lokal databas för cachning och lagring av GUI-relaterad data. Alla transaktioner sker dock via ESB:n. Ibland fick de även gå direkt från portalen till App-servern. Det visar på att man nog inte kan vara för dogmatisk i sin syn på SOA.

WMQ lever

IBM:s köhanterare har nyligen kommit i en ny version, WebSphere MQ v7, och dessutom har man en ny produkt, WMQ File Transfer Edition, som är ett filtransportlager ovanpå WMQ. WMQ har en maxstorlek på 100MB per meddelande, File Transfer Edition, sköter split och unsplit transparent av stora filer så man slipper tänka på det. Ett alternativ till ftp osv.

RESTful SOA

Första passet för dagen blev att lyssna på hur man kan och bör exponera sina tjänster med REST-gränssnitt. I princip alla IBM:s WebSphere-produkter har idag stöd för att exponera tjänsterna med REST för att på så sätt underlätta för den som ska anropa tjänsterna. För att få bra REST-stöd i WebSphere Application Server måste man installera Web 2.0 feature pack. Om man ska exponera en tjänst med REST så måste man vara medveten om de begränsningar detta sätter gällande t.ex. säkerhet, transaktionshantering, stöd för andra protokoll än HTTP osv, eftersom det ju är det som är hela grejen med REST att förenkla för klienten eftersom valen redan är gjorda. Jämför man med att exponera tjänsten som en Web Service så finns ju där en mycket större flexibilitet men komplexiteten är ju också betydligt högre. Föreläsaren gick igenom vad som är viktigt när man designar sina REST-tjänster. Här är några punkter:
  • Det är viktigt att alla GET-anrop aldrig uppdaterar något. För detta finns ju POST och DELETE.

  • Returkoderna bör inte bryta mot HTTP-specifikationen.

  • En strategi för namnsättning av URL:erna bör tas fram och man bör undvika att skicka in saker som parametrar eftersom man då lätt kan få sina tjänster att likna RPC-tjänster (t.ex. /doWork?action=delete)

  • Att skydda REST-tjänster gör man lämpligast genom att skydda URL:erna med hjälp av olika URL-mönster på vanligt maner. Det är här viktigt att tjänsterna sedan även kontrollerar att den som anropar har behörighet att komma åt den specifika informationen eftersom man i URL:erna enkelt kan ändra t.ex. olika id:n.

Öppet eller stängt

Jag var precis på en MQ-session, och out-of-the-box är WMQ vidöppet. I princip ingen säkerhet är påslagen. WASen har däremot mycket säkerhet påslagen per default. Vilket är bäst, att vara tvungen att öppna varje liten funktion man använder, eller att vara tvungen att stänga varje liten funktion man inte använder?

Problemet för en leverantör, som IBM, är förstås att om det är för krångligt att komma i gång med en produkt blir det svårare att sälja. Och även om man låser de mest uppenbara vägarna in i ett system, kanske man låter det var öppet som behöver vara öppet för ett "typiskt" användarmönster. Så kanske är det bättre att vara öppen med att användaren måste lägga på ALL säkerhet själv, än att invagga folk i en falsk känsla av säkerhet, när det "typiska" fallet inte finns.

måndag 10 november 2008

Business och IT

Ett av mina mål med konferensen är att få en bredare bild av integration och SOA. Jag följde därför med slipsnissarna in på ”SOA Tomorrow and Beyond”. Där fick jag reda på att IBM framöver kommer att fokusera på att få en bättre koppling mellan modellerade processer (BPM) och verkligheten. Målet är att få bättre mätbarhet på hur förändringar i processerna påverkar affärerna.

Föreläsaren tryckte även på vikten av att IT finns med i diskussionerna i företagets högsta ledning. Idag är IT en strategisk del av företaget och därför måste IT snabbt kunna anpassas vid förändringar. Lösningen på hur IT snabbt kan anpassa sig stavas naturligtvis SOA...

Dagens bästa föreläsning handlade om patterns med WebSphere Message Broker. Föreläsaren visade vad brokern kan användas till och gav exempel på verkliga implementationer. De användningsområden han nämnde var:
  • Service enablement - Skapa tjänster på applikationer som saknar externt gränssnitt.
  • Service virtualization - Bygga en façade mot en eller flera underliggande tjänster, ex: content based router.
  • Message enablement - Möjliggöra messaging mot system som normalt kommunicerar på annat sätt, t.ex. via DB eller Filer.
  • File processing - Brokern kan t.ex. dela upp en inkommande batch-fil i flera meddelanden som sedan processas parallellt av olika system.
  • Event Processing - Lyssna på händelser från ett eller flera system för att t.ex. detektera kortbedrägerier.
Brokern verkar vara en häftig liten pryl som nog kommer att leva länge till, trots IBM:s egen konkurrent WebSphere ESB.

Goa Buzz words från idag: KAI (Key Agility Index) och LOB (Line of Business).

Dag 1

Dagen började med ett öppningsanförande utav Craig Hayman som är Vice precident för IBM:s WebSphere division. Han började med att påtalade vikten av att kunna hantera förändringar. Han drog paralleller med det amerikanska valet där "change" var det vinnande budskapet.

Enligt en undersökning bland 1100 CIO:s över hela världen så svarade 83% att man ska genomföra omfattande ändringar i sina IT-system och 98% planerade att göra ändringar i sina affärsmodeller. Att ha en infrastruktur som kan hantera förändringar blir därför mer och mer viktigt och det är där IBM:s WebSphere produkter kommer in. TADA!

Efter det första passet så gick jag på föredraget Top Ten Web Application Attacks. Danny Allan från IBM:s säkerhetsteam höll i föredraget på ett strålande sätt och gick igenom OWASP topp tio vanligaste sårbarheter i webbapplikationer. Han hade ett antal bra demonstrationer är han visade på sårbarheter kring cross site scripting, SQL injection och cross site request forgery. För mig var dessa sårbarheter inga nyheter men det som var intressant var att det var nyheter för många av de övriga deltagarna och flera var mycket bekymrade efteråt. En bekymrad äldre man som jobbade på någon bank i tyskland gick efter presentationen fram till föreläsaren och undrade om inte IBM hade någon bra produkt som han bara kunde köpa och installera för att skydda sig mot sårbarheterna, tyvärr så hade inte ens IBM en sådan produkt :-)

Danny hade en hel del statistik där han bl.a. visade att över 80% av alla attacker görs genom att bara ladda ner ett eller två verktyg från Internet och sedan utföra attacken, d.v.s. den som attackerar behöver ingen säkerhetskunskap för att utföra attackerna. Han hade också statistik från en rapport på att 73% av attackerna kommer utifrån och att 18% utfördes från insidan, däremot så är de interna attackerna betydligt kostsammare och ger åtkomst till mer känslig information.

Jag tyckte det var kul att höra att Danny och hans säkerhetsteam jobbade för Rational, vilket är IBM:s division för utvecklingsverktyg. Som han själv sa det så är det ju under utvecklingen av applikationerna som säkerhetstänket måste komma in för att få en säker applikation och det verkar IBM tagit fasta på. Tyvärr hann föreläsaren inte gå in på IBM:s verktyg Rational AppScan vilket jag hade hoppats få höra mer om.

Senare under eftermiddagen blev jag uppdaterad på det senaste kring WebSphere Application Server v7.0. Nya versioner av WAS kommer att komma ut ungefär vartannat år och däremellan kommer det att komma "feature packs". Till version 7 kommer det att finnas två feature packs; SCA och Web 2.0. Det som är nytt i WAS 7 är att den är JEE 5 certifierad och körs på JSE 6 samt har stöd för den nya Portlet specifikationen JSR 286.

Utöver stöd för nya Java specifikationer har man jobbat en hel del med prestanda och framförallt kring Web Services där version 7 ska vara 40-100% snabbare än den tidigare versionen. Andra förbättringar är snabbare uppstart av servern samt mindre minnesförbrukning vilket ju är två förbättringar som är mycket välkomna.

Vad gäller nyheter för WebSphere MQ version 7 så är det framförallt JMS-prestandan som har blivit betydligt bättre. Till nyheterna hör även förenklad konfiguration med hjälp av grafiska verktyg för att konfigurera JMS samt Publish/Subscribe. En annan intressant nyhet är att MQ får Web 2.0 stöd i form av att det ska vara enkelt att konfigurera sina köer så att de får ett REST-gränssnitt. Det kommer med andra ord vara möjligt att på ett enkelt och smidigt sätt komma åt meddelanden på en kö utan att behöva lära sig JMS. Det känns verkligen som IBM är helt rätt ute vad gäller deras MQ-produkt.

WebSphere MQ File Transfer Edition är en ny produkt i WebSphere-familjen som IBM är mycket stolt över. Det produkten gör är att istället för att skicka filer via t.ex. ftp så skickas filen som meddelande på en WebSphere MQ kö och man får på så sätt bättre tillförlitlighet, övervakning och säkerhet kring överföringen. Ingen raketforskning precis men det verkar vara ett behov som finns i många företag och vettig filöverföring är ju något som inte borde vara omöjligt 2008.

SOA, sMash, REST


Något som slår en när man lyssnar på olika talare är att det är mycket agile, mashup och web 2.0.

Ett exempel: IBM håller på med ett nytt utvecklingsverktyg, sMash, som hade en framträdande plats på keynoten. sMash är tänkt att användas till web 2.0-utveckling. Tänk services a la REST, mash-ups och web så får du en bild av vad det är fråga om. Verktyget är i sig självt helt webbaserat.

Ett annat exempel: När man pratar SOA är det numera inte bara WS-stacken som diskuteras, nu finns också "RESTful SOA". Agile så det förslår. RESTful är den simpla, begränsade vägen till services. Det är inte lika kraftfullt som WS*, men eftersom man snabbt bygger enkla tjänster som enkelt kan kombinera, kan man kanske komma fram till lösningar snabbare.

sMash finns på projectzero.org

måndag 3 november 2008

Snart dax för IBM WebSphere Technical Conference

Nu på måndag, den 10 november, är det dax för årets tekniska IBM WebSphere konferens i Europa. Jag kommer tillsammans med två av mina kollegor från Omegapoint; Per Norman och Pierre Sandboge åka ner till Barcelona och delta under fem dagar.

Mer information finns på konferensens hemsida.

Det man kan konstatera är att det blir fem fullspäckade dagar med 16 parallella spår. Fokus för konferensen är på SOA, Business Process Management & Web 2.0 och hur IBM:s WebSphere-produkter kan hjälpa till inom dessa områden.

Vi kommer under konferensens gång att skriva inlägg på denna blogg så se till att följa bloggen om du är intresserad.