Välkommen till Callista Enterprise blogg - här finns tekniska artiklar, presentationer och nyheter om arkitektur och systemutveckling. Håll dig uppdaterad genom att följa oss på Twitter.
Callista Enterprise medarbetare Johan Eltes

TSSS 2007 WebService Interop med .Net 3.0

// Johan Eltes

Arun Gipta - spec lead för JAX-WS presenterade WSIT - Suns tillägg till deras implementation av JAX-WS-specifikationen. JAX-WS är Javaplattformens standard för Web Services och XML-bindning fr.o.m. Java EE 5 och Java SE 5. JAX-WS-standarden täcker än så länge bara de WS-standards som profilerats av WS-I. Det är förstås på goda grunder. Användning av WS-*-standards utöver de få som WS-I hunnit profilera, innebär stora interoperabilitetsrisker.

WSIT - WebServices Interoperability Technology - syftar till att forcera interoperablitet mellan Suns JAX-WS implementation och Microsoft .Net web services för samtliga web-service specifikationer som stöds av .Net Windows Communication Framework version 3.0, även om WS-I ej profilerat dessa specifikationer.

Har jag någon nytta av detta om jag använder någon annan applikationsserver än Glassfish / Sun AS? För att dra nytta av WS-IT, måste man använda hela JAX-WS istället för den web-service-stack som följer med applikationservern . Det låter sig dock göras, t.ex. med WebSphere 6.1. Eftersom JAX-WS kräver Java SE 5, måste förstås applikationsservern stödja denna Java-version.

WSIT tillför interoperabilitet för följande WS-relaterade features:

  • WS-AtomicTransaction
  • WS-SecureConversation
  • WS-ReliableMessaging
  • FastInfoSet (binärform av XML för högprestanda-krav)
  • MTOM (XML-standard för hantering av binär-data, som stöds av Microsoft)
  • WebService messaging (WS-Addressing etc)
  • WS-MetadataExchange (SOAP-baserat / standardiserat utbyte av metadata, istället för REST-baserade konventionen …?wsdl)

Inget av detta påverkar programmeringsmodellen för JAXB-WS, utan hanteras via en WSIT-specifik konfigurationsfil som ska finnas i WEB-INF-katalogen eller i META-INF-katalogen (för EJB-baserade WebServices).

Exempel, WS-AtomicTransaction

Som exempel på “osynlighet” i koden, användes WS-AtomicTransaction. Med WSIT integreras WebService-baserade distribuerade transaktioner med container-transaktioner via EJB-baserade web-services. Givet att den WSIT-specifika deployment-descriptorn finns i EJB-jar:ens META-INF och där anger att den publicerade ENDPOINT:en ska ha stöd för WS-AtomicTransaction, behöver inget speciellt göras i koden, mer än att på standardiserat sätt ange att EJB:n ska vara en WS-endpoint:

@javax.jws.WebService
@javax.ejb.Stateless
@javax.ejb.TransactionManagement(CONTAINER)

public class Wirer {
  @javax.jws.WebMethod
  @javax.ejb.TransactionAttribute(REQUIRED)
  void wireFunds(...) throws ... {
    websrvc1.withdrawFromBankX(...);
    websrvc2.depositIntoBankY(...);
  }
}

Status och att komma igång

WSIT planeras få produktionsstatus i samband med release av Suns glassfish-baserade JavaEE 5-server Sun AS 9.1 - någon gång under 2007. För att testa, laddar man enklast hem Netbeans Enterprise Pack 5.5.1 Beta, enligt instruktioner i tidigare blog om Open ESB.

Tack för att du läser Callista Enterprise blogg.
Hjälp oss att nå ut med information genom att dela nyheter och artiklar i ditt nätverk.

Kommentarer