onsdag, augusti 02, 2006

Ajax - Del II

Så vilka krav ställer SOA på Ajax om det nu ska vara en frälsare som kommer med något nytt till den krampaktiga ställning webben befunnit sig i sedan sent 90-tal?

De första Ajax-applikationerna använder säkert den nya tekniken för att dra fördelar av den asynkrona kommunikationen. Detta är ju knappast något nytt eftersom man har kunnat göra det i vilken .NET, Java eller Win32 applikation som helst innan. Ett stort steg för webben dock.

Ajax implementeras alltså som ramverk som anropar Web Services från Javascript i browsern. Anropen mellan browsern och ramverket är asynkrona, vilket betyder att man får hantera resultatet från anropet i en event handler. Vad Ajax däremot inte supporterar är asynkron kommunikation mellan ramverket och servern eftersom Ajax inte själv kan sätta upp en endpoint och därmed finns ingen väg tillbaka från servern.

Bristen på en asynkron kommunikation mellan ramverket och en Web Service omöjliggör vissa scenarios som är vanliga i en SOA.

Scenario 1 - Callbacks
Callbacks används vid asynkron kommunikation mellan 2 parter. En part gör ett tjänsteanrop till en annan part som tar lång tid på sig att utföra jobbet och därför erbjuder sig att göra ett anrop tillbaka till den anropande parten då den är klar. För det krävs att bägge parter kan kommunicera med den andra.

Scenario 2 - Events
Events avser kommunikation från en part till en annan då specifika händelser inträffar som ska notifieras (ex. genom WS-Eventing). Om en part ska kunna prenumurera på händelser som inträffar hos en annan part så måste händelserna kunna kommuniceras till en service endpoint.

I och med att Ajax inte kan sätta upp en Web Service endpoint så kommer webbapplikationerna fortfarande att leva utan dessa scenarios. Ska Ajax spela en större roll i framtiden så måste dessa supporteras. Idag finns det omvägar för den som önskar 2-vägskommunikation. Man kan använda sig av protokoll som stödjer full duplex för att kommunicera fram och tillbaka eller pollning där man frågar servern om något nytt hänt vid jämna intervall. Det finns även ramverk som sköter pollningen åt dig (Periodic Refresh).

Men så länge Ajax inte stödjer service endpoints så är det inte att betrakta som varken en disruptiv teknologi eller något stort teknikskifte för webben.

Inga kommentarer: