190 likes | 354 Views
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.
E N D
PLDA – Connectiviteit Rudolf de Schipper Geoffroy Fauveaux 09/11/2004
Agenda • SOAP in het algemeen • Error handling • Beveiliging • PLDA Concreet • Q&A
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: http://ws.apache.org/soap/)
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,"000000196","NL"); System.out.println(result); }catch(Exception e){ … }
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,"000000196","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,"000000196","NL"); System.out.println(result); }catch(ConnectionLostException e){ … }catch(Exception e) { … } @to do: Parsing result … @to do: Functional error handling if (…) then { … } else if (…) then { … } else { … }
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