Using Oracle B2B in a Dutch
Government Project
Ronald van Luttikhuizen
2 | x
Ronald van Luttikhuizen
• Managing Partner at Vennster
• Oracle ACE Director for Fusion Middleware and SOA
• Author of different articles, co-author Oracle SOA Book 11g book
• Upcoming book SOA Made Simple
• Architect, consultant, trainer for Oracle, SOA, EDA, Java
• More than 10 years of software development and architecture
experience
• Contact:
ronald.van.luttikhuizen@vennster.nl
• Blog:
blog.vennster.nl
Agenda
1. Introduction
2.
Case
3.
Solution
4.
Oracle B2B
5.
Summary
4 | x
Introduction
Figures ● Inhabitants: 16,7m ● Density: 403/km2 ● Capital: Amsterdam● Government: The Hague
● Income: $48.222/capita
Government
● 11 state departments & > 200 nation wide agencies
● 12 provinces
Introduction
Figures
● Inhabitants: 1,1m (6th)
● Surface: 3.421 km2, density: 321/km2
● Capital: Zwolle
● Workforce (province): approx. 1.000
Tasks
● Regional tasks around themes: territorial planning, water management, stimulating culture, economy, and tourism, improving environment, (financial) governance of
municipalities, etc.
● Products: permits, subsidies, supervision and enforcement
Drivers
● Mergers, shift in tasks, budget cuts
● Chain cooperation
6 | x
Government and IT
Reference Architectures
NORA GEMMAStandards
Shared Solutions
PETRA ORA Digi Netwerk DigiKoppeling WUS and ebMSStUF Internet MARIJ Specific solution Specific solution Specific solution Specific solution … … … … Specific solution Colle ge Sta n d aa rd is at ie
Agenda
1.
Introduction
2. Case
3.
Solution
4.
Oracle B2B
5.
Summary
9 | x
Permits |
how it used to be…
Permits |
how it is now…
Clients Omgevingsloket Online Governments
(OLO)
Province of Overijssel ebMS
11 | x
ebMS
http://the-pink-shrink.blogspot.nl/2011/03/80-data-exchange-protocol.html 1. Request message 2. Acknowledge 3. Response message 4. AcknowledgeDigiKoppeling: WUS and ebMS
<eb:From> <eb:PartyId eb:type="urn:osb:oin">0123456789</eb:PartyId> <eb:Role>LVO</eb:Role> </eb:From> <eb:To> <eb:PartyId eb:type="urn:osb:oin">0123456789</eb:PartyId> <eb:Role>BevoegdGezag</eb:Role> </eb:To> <eb:CPAId>CPAID_Minvrom_OLO_abcd-1234</eb:CPAId> <eb:ConversationId>123456-123456</eb:ConversationId> <eb:Service eb:type="urn:osb:services">LVO:2:0:0:I</eb:Service> <eb:Action>omvDi01AanbiedenAanvraag</eb:Action> <eb:MessageId>20120725-115045-00499-63_13F2</eb:MessageId> <eb:Timestamp>2012-07-25T11:50:45</eb:Timestamp> <eb:TimeToLive>2012-07-26T11:50:45</eb:TimeToLive> <eb:DuplicateElimination/> <eb:AckRequested SOAP:actor="urn:oasis:names:tc:ebxml-msg:actor:toPartyMSH" SOAP:mustUnderstand="1" eb:signed="false" eb:version="2.0"/>● WUS: “plain” SOAP
14 | x
DigiKoppeling: WUS and ebMS
For
mal
DigiKoppeling WUS (DK-WUS) DigiKoppeling ebMS (DK-ebMS)
DigiKoppeling type: Request/Response (synchronous, unreliable)
Note: Reliable messaging via WS-RM added to DK spec
DigiKoppeling type: Publication (asynchronous, reliable)
Multiple profiles: 2W-be, 2W-be-S, 2W-be-SE Note: be (best effort), S (signed), E (encrypted)
Multiple profiles: osb-be, osb-rm, osb-be-s, osb-rm-s, osb-be-e, osb-rm-e
WUS: QoS is optional, DK-WUS: QoS through profiles ebMS: addresses security, reliability, QoS Based on a set of standards: WSDL, SOAP, XML, XSD,
WS-Addressing, SSL/TLS
Multiple optional and additional standards (WS-*)
Based on a set of standards: SOAP, XML, XSD, XML D-SIG, PKI, SSL/TLS
Independent of transport: HTTP, JMS, FTP, etc. Independent of transport: HTTP, JMS, FTP, etc. Wide adoption (tools, #developers) Little adoption (tools, #developers)
Committees: W3C, OASIS Committees: OASIS and UN/CEFACT Point-to-many integration (provider independent of
consumer)
Point-to-point integration (tight-coupling between provider and consumer through CPA and CPP)
+
_
ebMS
WUS
Agenda
1.
Introduction
2.
Case
3. Solution
4.
Oracle B2B
5.
Summary
16 | x
Solution
OLO HTTP Server Oracle B2B Oracle Service Bus
JMS ebMS over HTTP ebMS over HTTPS SOAP FTPS FTPS LAN DMZ
Agenda
1.
Introduction
2.
Case
3.
Solution
4. Oracle B2B
5.
Summary
18 | x
Oracle B2B |
introduction
Overview
● Exchange of documents between businesses (industry standards, security, reliability) • Document types: HL7, EDI, RosettaNet, xCBL, Custom (XML, CSV, flat, etc.), and so on • Packaging: MIME, SMIME, gZIP, XMLDSig, XMLEncryp, SOAP (as part of ebMS)
• Transport: AQ, JMS, File, (s)FTP(s), HTTP(s), SMTP, IMAP, POP3, MLLP, TCP/IP
• Messaging & requirements: RNIF, AS1, AS2, ebMS & digital signing, time to ack, retry
● Component of Oracle SOA Suite, separate license for “adapters”: EDI, Healthcare, RosettaNet and ebXML
Integration
● SOA Suite: services and references in SCA (native/default, AQ and JMS)
● OSB or 3rd party: use transports such as JMS or AQ
● Gateway Management
● WLS Console, EM, B2B Console, command-line, APIs, Web Service (http://server:port/b2b/services)
Oracle B2B |
steps to implement scenario
Start
● Acquire “Overheid Identificatie Nummer” (OIN) and PKI certificates
Configure Infrastructure
● Install WebLogic Server, SOA Suite, and B2B
● Configure transport security (SSL/TLS)
● Configure firewall
Configure B2B
● Create Collaboration Protocol Agreement (CPA) using Government Service Registry and CPA tool
● Configure B2B: import CPA, import B2B configuration, and/or use B2B Console
Integrate B2B
● Connect B2B with OSB (JMS) and OSB with backend system (SOAP)
● Configure Web Server and set endpoint in B2B
● Configure OLO using Admin Console
Test and management
● Validate compliancy of Oracle B2B with ebMS compliancy tool
● Integration testing
20 | x
Oracle B2B |
collaboration protocol agreement (CPA)
• DigiKoppeling Service Registry (DSR): provider specification (OLO) • KeyInfo: Certificates
Oracle B2B |
configure B2B
●
Manual configuration using B2B Console
●
Export/import B2B Configuration
22 | x
Oracle B2B |
configure B2B
Listening channels: where do inbound messages come from?
Oracle B2B
ga
tew
ay
• Oracle Service Bus • Partners
• Oracle SOA Suite • 3rd party
• Packaged Apps • Oracle Database • ….
Oracle B2B |
configure B2B
24 | x
Oracle B2B |
configure B2B
Delivery channels: how are outbound messages delivered?
Oracle B2B |
configure B2B
26 | x
Oracle B2B |
configure B2B
Oracle B2B |
configure B2B
Agreements: putting it together!
28 | x
Oracle B2B |
integration of B2B and backend using OSB
Oracle B2B |
integration of B2B and backend using OSB
30 | x
Oracle B2B |
integration of B2B and backend using OSB
31 | x
Oracle B2B |
integration of B2B and backend using OSB
More information: http://tomhofte.blogspot.nl/search?q=b2b
32 | x
Oracle B2B |
integration of B2B and HTTP Server
OLO
ebMS (2-way SSL)
HTTP Server
ebMS
Oracle B2B
●
SSL and Certificates
●
WebLogic Server plugin
●
Virtual hosts
httpd-ssl.conf SSLEngine on SSLProtocol -ALL +SSLv3 +TLSv1 SSLCipherSuite HIGH ServerName [server].[domain].nl SSLVerifyClient require httpd.conf <IfModule mod_weblogic.c> WebLogicHost [ip-number] WebLogicPort [port] </IfModule> <Location /b2b/httpReceiver> SetHandler weblogic-handler </Location> httpd-vhosts.confProxyPass /olo https://[olo].nl/ebms/inbound
Oracle B2B |
management & reporting
●
Proactive monitoring of B2B log files and B2B Console by IT operations
●
Use B2B Console for ad hoc questions from users or OLO, and to resubmit
34 | x
Agenda
1.
Introduction
2.
Case
3.
Solution
4.
Oracle B2B
5. Summary
Summary
Dutch government● Architecture, standards, and shared solutions
● DigiKoppeling WUS and ebMS: Moving towards WUS with WS-RM
ebMS
● ebMS tighly-couples and creates point-to-point integrations (overhead in management)
● Focus on quality-of-service aspects: reliability, security, and so on
● Compared to “plain” Web Services
• Optionality for QoS
• Complexity
• Adoption, knowledge, experience, tooling
● Status of ebMS standard
B2B
● A gateway to integrate organizations using industry standards that are supported out-of-the-box
● Different ways to integrate B2B with your infrastructure: SOA Suite (native/AQ/JMS) and OSB/3rd
36 | x