SOA/.NET oppitunti siitä, miten johtoasema säilytetään Ahti Haukilehto FCS Partners Oyj Microsoft Regional Director, Finland Ensinnäkin, MS taitaa johtaa WS-kisaa.NET 56% vrs. Java 44% Forrester, pohjois-amerikka, EAI-projektit noin puolet WS-projekteista on tehty pääosin.netillä Gartner, 2004, pohjois-amerikka 2
The State Of Technology Adoption Forrester Research, Inc. 2004 3 Gartner 2004: Mission-Critical Application Survey 4
Gartner 2004: Mission-Critical Application Survey Platform Environment for Web Services 5 Gartner 2004: Mission-Critical Application Survey Platform Environment for SOA 6
Miten johtoasema säilytetään divide et impera hajauta ja hallitse 7 Standardointi on "ihan kivaa" ja hyödyllistä kunhan standardointijärjestöt eivät kuvittele olevansa innovaattoreita nehän ovat jarrumiehiä 8
W3C XSD standardointi aloitettiin (varsinaisesti) 02.1999 valmistui 2.5.2001 XQuery Working Draft: 02/2001 tilanne tänään: Working Draft 9 WebServices standardointi " ' @ standardi @ ' " tai paremminkin speksi Järjestöt W3C Oasis Liberty Alliance UN/CEFACT IETF MS / IBM / BEA speksit Oracle / SUN / Fujitsu speksit 10
SOAP, vuosimalli 2002 <soap:envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema" <soap:body> <Yhteen xmlns="http://fcspartners.fi/"> <i1>5</i1> <i2>6</i2> </Yhteen> </soap:body> </soap:envelope> 3 (4) nimiavaruutta 1 standardointijärjestö w3.org xmlsoap.org -> w3.org 11 SOAP, vuosimalli 2002 edellisen esimerkin client-koodi TrePalvelu.Service1 palvelu = new TreTester.TrePalvelu.Service1(); palvelu.yhteen(5,6); 12
SOAP, vuosimalli 2004 Lisätään SOAP-viestin allekirjoitus ja nimenselvennys TrePalvelu.Service1 palvelu = new TreTester.TrePalvelu.Service1(); UsernameToken token = new UsernameToken( "Matti", "salainen", PasswordOption.SendPlainText); MessageSignature sig = new MessageSignature(token); palvelu.requestsoapcontext.security.elements.add(sig); palvelu.requestsoapcontext.security.tokens.add(token); palvelu.yhteen(5,6); 13 SOAP, vuosimalli 2004 <soap:envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis- 200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis- 200401-wss-wssecurity-utility-1.0.xsd"> <soap:header> <wsa:action wsu:id="id-015d00e0-f2ba-437f-bce9-188f3265292b"> http://fcspartners.fi/yhteen</wsa:action> <wsa:messageid wsu:id="id-2469c623-ae48-417e-b709-e..."> uuid:a7bdcad8-48a0-4d5e-...0ad3</wsa:messageid> <wsa:replyto wsu:id="id-49a1bd2f-6e10-42fb-9088-...4140"> <wsa:address> http://schemas.xmlsoap.org/ws/2004/03/addressing/role/anonymous </wsa:address> </wsa:replyto> 14
SOAP, vuosimalli 2004, jatkuu <wsa:to wsu:id="id-b6a254dc-b179-414c-ab7b-1444f8c91073"> http://localhost/trewebservice/service1.asmx</wsa:to> <wsse:security soap:mustunderstand="1"> <wsu:timestamp wsu:id="timestamp-b55b434a-...-b0f612c427c9"> <wsu:created>2004-12-14t19:41:59z</wsu:created> <wsu:expires>2004-12-14t19:46:59z</wsu:expires> </wsu:timestamp> <wsse:usernametoken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis- 200401-wss-wssecurity-utility-1.0.xsd" wsu:id="securitytoken-5925977c-f9cd-4d1d-be2e-4a39a895f388"> <wsse:username>matti</wsse:username> <wsse:password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401- wss-username-token-profile-1.0#passwordtext">salainen </wsse:password> <wsse:nonce>n3y1knb9++6nwz8uhjkdja==</wsse:nonce> <wsu:created>2004-12-14t19:41:59z</wsu:created> </wsse:usernametoken> 15 SOAP, vuosimalli 2004, jatkuu <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1" /> <Reference URI="#Id-015d00e0-f2ba-437f-bce9-188f3265292b"> <Transforms> <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <DigestValue>OZFGU6nv8I4+v2ZOt+/4paIjOUw=</DigestValue> </Reference> <Reference URI="#Id-2469c623-ae48-417e-b709-e0fbeae39088"> <Transforms> <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> </Transforms> 16
SOAP, vuosimalli 2004, jatkuu <Reference URI="#Id-49a1bd2f-6e10-42fb-9088-a5d4388d4140"> <Transforms> <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <DigestValue>GEnRIq5vx5CMXwPlsFLXSQw+YsQ=</DigestValue> </Reference> <Reference URI="#Id-b6a254dc-b179-414c-ab7b-1444f8c91073"> <Transforms> <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <DigestValue>kcKLJkfCo+dwSJBK/zxgLIjBDuI=</DigestValue> </Reference> 17 SOAP, vuosimalli 2004, jatkuu <Reference URI="#Timestamp-b55b434a-c80d-4ade-9ebd-b0f612c427c9"> <Transforms> <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <DigestValue>46OF3GTcmA0GjOvM+UxbKKECPg4=</DigestValue> </Reference> <Reference URI="#Id-b7d8c96a-b1e5-40c6-a360-2ce1ad33c4fd"> <Transforms> <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <DigestValue>YiA9jT05mbtvYxHZL8pa0BTF/BU=</DigestValue> </Reference> </SignedInfo> 18
SOAP, vuosimalli 2004, jatkuu <SignatureValue>gEiz/jdFTNwc0l/kxpfnZD/Z3R4=</SignatureValue> <KeyInfo> <wsse:securitytokenreference> <wsse:reference URI="#SecurityToken-5925977c-f9cd-4d1d-be2e-4a39a895f388" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401- wss-username-token-profile-1.0#usernametoken" /> </wsse:securitytokenreference> </KeyInfo> </Signature> </wsse:security> </soap:header> 19 SOAP, vuosimalli 2004, jatkuu <soap:body wsu:id="id-b7d8c96a-b1e5-40c6-a360-2ce1ad33c4fd"> <Yhteen xmlns="http://fcspartners.fi/"> <i1>5</i1> <i2>6</i2> </Yhteen> </soap:body> </soap:envelope> 9 (13) nimiavaruutta 2 standardointijärjestöä w3.org oasis 20
Standardit, jotka.net WSE hallitsee Specification WS-Security WS-SecurityPolicy WS-SecureConversation WS-Trust WS-Referral WS-Addressing WS-Policy DIME WS-Attachments XML namespace http://docs.oasis-open.org/wss/2004/01/oasis- 200401-wss-wssecurity-secext-1.0.xsd http://schemas.xmlsoap.org/ws/2002/12/secext http://schemas.xmlsoap.org/ws/2004/04/sc http://schemas.xmlsoap.org/ws/2004/04/trust http://schemas.xmlsoap.org/ws/2001/10/referral http://schemas.xmlsoap.org/ws/2004/03/addressing http://schemas.xmlsoap.org/ws/2002/12/policy June 17, 2002 version http://schemas.xmlsoap.org/ws/2002/06/dime/soap 21 WS standardit: protokollapinottain CBDI Web Services Roadmap 22
WS standardit: valmiusasteittain CBDI Web Services Roadmap 23 WS-Must XML SOAP WS-Addressing WS-MetadataExchange XSD + WSDL 24
WS-Tärkeät WS-Security WS-Trust WS-ReliableMessaging WS-Policy 25 WS-NewZealand WS-Eventing WS-Enumaration WS-AtomicTransaction 26
UDDI WS-Transfer WS-BusinessActivity MTOM BPEL4WS WS-Ugly 27 WS-Dream WS-Data (XPath/Sql-tyyppinen WSkyselykieli) SOAP over TCP XSD jossa tuki versionnille binary XML / WSDL binary XML / WSDL based on RELAX NG 28
Oppitunti siitä, miten... kompleksisuus jalostetaan liiketoiminnaksi: IBM Global Services 29 Oppitunti siitä, kuinka... kompleksi asia hanskataan:.net ja Indigo 30
Oikeesti RAD on tärkeä InterOp on tärkeä Alustariippumattomuus (portability) on tärkeä mutta vain ISV:lle asiakkaalle -käyttäjälle- harvoin 31