PLDA – Connectiviteit Rudolf de Schipper Geoffroy Fauveaux 09/11/2004
Agenda SOAP in het algemeen Error handling Beveiliging PLDA Concreet Q&A
SOAP.
Protocol vs. Formaat. Twee zeer verschillende niveaus Formaten -EDI -XML -… Communicatie protocollen -TCP/IP -SOAP -…
SOAP. SOAP: web services XML / HTTP Basis-protocol: Http Simpel voor passeren van firewalls -Geen speciale configuratie nodig -Geen additionele poorten te openen of protocollen nodig Eenvoudig te benaderen via een Internet connectie Synchroon protocol (Request / Response)
SOAP. Onafhankelijk van programmeertaal of implementatie Frameworks beschikbaar in verschillende talen en omgevingen Open Source Framework beschikbaar (voor Java / J2EE:
Presentatie web-page van een Web Service.
Voorbeeld van een WSDL.
Voorbeeld Java class. import weblogic.webservice.client.WLSSLAdapter; import weblogic.webservice.client.SSLAdapterFactory; import weblogic.jws.proxies.BiensArticleFrnb_Impl; import weblogic.jws.proxies.BiensArticleFrnbSoap; … // SSL parameters System.setProperty("javax.xml.rpc.ServiceFactory", "weblogic.webservice.core.rpc.ServiceFactoryImpl"); System.setProperty("java.protocol.handler.pkgs", "weblogic.webservice.client"); SSLAdapterFactory adapterFactory = SSLAdapterFactory.getDefaultFactory(); WLSSLAdapter adapter = (WLSSLAdapter) adapterFactory.getSSLAdapter(); adapter.setStrictChecking(false); adapterFactory.setDefaultAdapter(adapter); adapterFactory.setUseDefaultAdapter(true); // end SSL parameters BiensArticleFrnb_Impl baf=new BiensArticleFrnb_Impl(); BiensArticleFrnbSoap bafs=baf.getbiensArticleFrnbSoap("test.csv","ijxupiyu"); String result = bafs.findByArticleFRNB(2000," ","NL"); System.out.println(result); }catch(Exception e){ … }
Error Handling
Technische vs. Functionele fouten. Technische fouten Soap Exception Worden vertaald in een fout (Exception) in de programmeertaal Functionele fouten Resultaat bericht bevat de foutmelding (ex: CUSRES) Of Soap Exception
Voorbeeld Java class. import weblogic.webservice.client.WLSSLAdapter; import weblogic.webservice.client.SSLAdapterFactory; import weblogic.jws.proxies.BiensArticleFrnb_Impl; import weblogic.jws.proxies.BiensArticleFrnbSoap; … // SSL parameters System.setProperty("javax.xml.rpc.ServiceFactory", "weblogic.webservice.core.rpc.ServiceFactoryImpl"); System.setProperty("java.protocol.handler.pkgs", "weblogic.webservice.client"); SSLAdapterFactory adapterFactory = SSLAdapterFactory.getDefaultFactory(); WLSSLAdapter adapter = (WLSSLAdapter) adapterFactory.getSSLAdapter(); adapter.setStrictChecking(false); adapterFactory.setDefaultAdapter(adapter); adapterFactory.setUseDefaultAdapter(true); // end SSL parameters BiensArticleFrnb_Impl baf=new BiensArticleFrnb_Impl(); BiensArticleFrnbSoap bafs=baf.getbiensArticleFrnbSoap("test.csv","ijxupiyu"); String result = bafs.findByArticleFRNB(2000," ","NL"); System.out.println(result); }catch(ConnectionLostException e){ … }catch(Exception e) { … }
Voorbeeld Java class. BiensArticleFrnb_Impl baf=new BiensArticleFrnb_Impl(); BiensArticleFrnbSoap bafs=baf.getbiensArticleFrnbSoap("test.csv","ijxupiyu"); String result = bafs.findByArticleFRNB(2000," ","NL"); System.out.println(result); }catch(ConnectionLostException e){ … }catch(Exception e) { … do: Parsing result do: Functional error handling if (…) then { … } else if (…) then { … } else { … }
Beveiliging
Beveiliging. Applicatiebeveiliging Authentification Autorisation Gegevensbeveiliging
Data beveiliging. SSL Encryptie Confidentialiteit Digitaal certificaat Digitale handtekening (client-side en server-side) Verificatie Data integriteit
PLDA Concreet. Wat met EDI berichten? Blijven behouden, gebruiken bestaande interface(s) -Op termijn zal dit gerationaliseerd worden Langere termijn – een keuze -EDI via SOAP wordt geimplementeerd -Worden vervangen door XML via SOAP
PLDA Concreet. Gedefinieerde datasets Om te werken naar éénduidige berichten -Eén bericht voor iedere “case” Ieder bericht wordt geimplementeerd via een webservice Bijvoorbeeld: -Insturen Sales Informatie SalesInfoInsturen -Wijzigen Sales Informatie SalesInfoWijzigen
Q&A