SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
X-Road in Finland – The
National Data Exchange
Layer
Petteri Kivimäki
Information Systems Manager
Index
• National Architecture for Digital Services
• The National Data Exchange Layer
– Schedule
– Organization
– Interest Groups
– Work Groups
National Architecture for Digital Services
• Programme owned by Ministry of Finance
• Operating unit Finnish Population Register Centre
• Programme period 2014-2017
• Building a digital infrastructure for digital services,
including four projects:
– National Data Exchange Layer
– Service Views (Citizens, Companies, Civil Servants)
– EIdentification
– Roles and Authorization
National Architecture for Digital Services
The National Data Exchange Layer -
Schedule
31.12.
2015
1.1.
2015
1.4.
2015
1.7.
2015
1.10.
2015
29.5.
Procurement
Today
X-Road development environment, publicly openPilot
Production environment
VRK
PRH
Trafi
MML
Vero
Finto
Kela
Organizations joining
production
18.11.
Test environment
Software development
14.9.
Organization
Development
Manager
Pauli Kartano (VM)
Coordinating Project
Manager
Eero Konttaniemi
X-Road
Development
Product Owner
Petteri Kivimäki
Scrum Master
Developer 1 Developer 2
Speacialist
(CSC)
Developer 3
Developer 4Working Groups
Service
Production
Information
Systems Manager
Petteri Kivimäki
Service Manager
Jani-Matti
Kaukonen
Specialist 1
(CSC)
Specialist 2
(CSC)
Specialist 3
(CSC)
Gofore
Information
Security
Information
Security
Specialist
Outi Juntura
Auditors
Lawyer
(Procurements)
Palveluväylä Concept
Information Systems
Manager
Petteri Kivimäki
Service Manager
Jani-Matti
Kaukonen
Integration
Architect
(ESB:t+X-Road)
Specialist
Specialists
Project Manager
(Service
Catalogue)
Developer 1 Developer 2
Productization
Specialists
Project Manager
(Service
Management)
Specialists 2
Service Manager
Jani-Matti
Kaukonen
Working Groups
Vendors (procurements)
VRK
Valtori / Valtori’s Subcontractors
Different Interest Groups
Contractors (KPMG)
Responsibilities
Interest Groups
• Public sector
– Governmental organizations, municipalities
• Private sector
– Companies, private persons
• Other
– Associations, non-profit organizations, educational institutions
etc.
Work Groups
• PERTIVA – coordinates collaboration between
organizations responsible for maintaining public base
registries (e.g. population register)
• Reference groups
– For organizations that want to participate in designing the
service view for citizens and organizations
– Divided by field/industry
• Public sector organizations, tele operators, finance sector,
libraries etc.
• LinkedIn Idea Group – open for everyone
• Developer community (building up)
• And many others…
REST Gateway – REST
Support for X-Road
Petteri Kivimäki
Information Systems Manager
Index
• Backround
• Requirements for REST support
• REST Gateway
Backround
• REST-to-SOAP conversion must be implemented in
adapter server
• No off-to-shelf components available
• Custom implementation for each system
– Some parts are system specific, but many parts of the
implementation could be shared between different systems
– Same features are being implemented multiple times by
different organizations
Service Provider
Service Consumer
Requirements for REST Support
• Must have
– Access REST / JSON services via WSDL-defined X-Road
services (service provider)
– Access legacy WSDL-defined X-Road services via REST /
JSON (service consumer)
– WSDLs in the security server must match the actual service to
facilitate service discovery
• Nice to have
– Automatic conversion for service descriptions
• RAML / Swagger / JSON Schema etc. -> WSDL
REST Gateway
• Off-the-shelf component
– Configuration over coding
– Can be customized
• Implements the common features that are needed in
all the REST integrations
– Features can be configured for a single system / service
– Everything cannot be done through configuration, some
coding may also be required
• Offers a framework for customizations
REST Gateway v0.0.7
REST Gateway v0.0.7
• Provider Gateway
– access REST services (JSON, XML) via WSDL-defined X-
Road services
• Consumer Gateway
– access WSDL-defined X-Road services in a RESTful manner
• Automatic conversions:
– JSON -> XML
– XML -> JSON
• New REST services can be added through
configuration - no coding needed
• Implements X-Road SOAP profile 4.0 (v6.3->)
Provider Gateway v0.0.7
• Provider Gateway
– HTTP GET, POST, PUT and DELETE supported
– WSDL must be created manually
– REST response can be wrapped in SOAP body or SOAP
attachment
– X-Road SOAP-headers are passed via HTTP headers
• X-XRd-Client, X-XRd-Service, X-XRd-UserId, X-XRd-MessageId
Provider Gateway v0.0.7
• Provider Gateway accepts SOAP messages following
the X-Road SOAP profile. It translates XML request
parameters to REST service request URI.
• Configuration
FI.GOV.123456-7.TestService.getRandom.v1
=>
[GET] http://www.restservice.com/
Provider Gateway v0.0.7
• HTTP POST with request body
– Request body is sent as SOAP attachment identified by
Content-ID Mime header
Consumer Gateway v0.0.7
• Consumer Gateway
– full support for services published through Provider Gateway
– limited support for legacy services
• only services which requests don't contain nested elements - all
the request parameters must be request element's children
– HTTP GET, POST, PUT and DELETE supported
– response's content type is defined using Accept header
• text/xml, application/json
– X-Road SOAP-headers are passed via HTTP headers
• X-XRd-UserId, X-XRd-MessageId
– reformatting of resource links
– support for browser-based access
Consumer Gateway v0.0.7
• Consumer Gateway accepts requests, and it
translates them to SOAP messages following the X-
Road v6 SOAP profile.
• Configuration
[GET] www.restservice.com
=>
FI.GOV.123456-7.TestService.getRandom.v1
Consumer Gateway v0.0.7
• HTTP POST request with request body
– Request body is sent as SOAP attachment identified by
Content-ID Mime header
Future development
• UI for managing configuration
• Packaging
– RPM (Centos, RHEL)
– Debian (Ubuntu)
• RAML / Swagger / JSON Schema -> WSDL
conversion
• Security measures
• Message queue
• Other ideas – why not contribute?!
Links
• REST Gateway in GitHub
– https://github.com/educloudalliance/xroad-rest-gateway
• XRd4J – X-Road v6 Java Library
– https://github.com/petkivim/xrd4j
• Adapter Server Example
– https://github.com/petkivim/x-road-adapter-example
• Test Client
– https://github.com/petkivim/x-road-test-client
• Test Service
– https://github.com/petkivim/x-road-test-service
Questions?
Petteri Kivimäki
Information Systems Manager
Population Register Center
petteri.kivimaki@vrk.fi
Tel.: +358 50 593 1710

Mais conteúdo relacionado

Mais procurados

Client presentation k & n
Client presentation   k & nClient presentation   k & n
Client presentation k & n
Langn3r
 
Addressing Security Concerns with WSO2 Governance Registry Policy Store
Addressing Security Concerns with WSO2 Governance Registry Policy StoreAddressing Security Concerns with WSO2 Governance Registry Policy Store
Addressing Security Concerns with WSO2 Governance Registry Policy Store
WSO2
 
Governance and Security Solution Patterns
Governance and Security Solution Patterns Governance and Security Solution Patterns
Governance and Security Solution Patterns
WSO2
 

Mais procurados (19)

Introduction to BizTalk Server 2009
Introduction to BizTalk Server 2009Introduction to BizTalk Server 2009
Introduction to BizTalk Server 2009
 
SOA - Unit 1 - Introduction to SOA with Web Services
SOA - Unit   1 - Introduction to SOA with Web ServicesSOA - Unit   1 - Introduction to SOA with Web Services
SOA - Unit 1 - Introduction to SOA with Web Services
 
BizTalk Server Deep Dive Tips and Tricks For Developers and Admins at TUGA IT
BizTalk Server Deep Dive Tips and Tricks For Developers and Admins at TUGA ITBizTalk Server Deep Dive Tips and Tricks For Developers and Admins at TUGA IT
BizTalk Server Deep Dive Tips and Tricks For Developers and Admins at TUGA IT
 
Power of Microservices Architecture in Drupal Development
Power of Microservices Architecture in Drupal DevelopmentPower of Microservices Architecture in Drupal Development
Power of Microservices Architecture in Drupal Development
 
Biztalk
BiztalkBiztalk
Biztalk
 
Client presentation k & n
Client presentation   k & nClient presentation   k & n
Client presentation k & n
 
ARIN 35 Tutorial: How to certify your ARIN resources with RPKI
ARIN 35 Tutorial: How to certify your ARIN resources with RPKIARIN 35 Tutorial: How to certify your ARIN resources with RPKI
ARIN 35 Tutorial: How to certify your ARIN resources with RPKI
 
Addressing Security Concerns with WSO2 Governance Registry Policy Store
Addressing Security Concerns with WSO2 Governance Registry Policy StoreAddressing Security Concerns with WSO2 Governance Registry Policy Store
Addressing Security Concerns with WSO2 Governance Registry Policy Store
 
Semantic Web Services: State of the Art
Semantic Web Services: State of the ArtSemantic Web Services: State of the Art
Semantic Web Services: State of the Art
 
Governance and Security Solution Patterns
Governance and Security Solution Patterns Governance and Security Solution Patterns
Governance and Security Solution Patterns
 
Migration as a Service - Eskindir Abdela, Knowit
Migration as a Service - Eskindir Abdela, KnowitMigration as a Service - Eskindir Abdela, Knowit
Migration as a Service - Eskindir Abdela, Knowit
 
WSO2 Product Release Webinar: WSO2 Developer Studio 3.8
WSO2 Product Release Webinar: WSO2 Developer Studio 3.8WSO2 Product Release Webinar: WSO2 Developer Studio 3.8
WSO2 Product Release Webinar: WSO2 Developer Studio 3.8
 
Xml XPath Integration Synchronization Codeless
Xml XPath Integration Synchronization CodelessXml XPath Integration Synchronization Codeless
Xml XPath Integration Synchronization Codeless
 
[WSO2Con EU 2017] Open Interoperability of WSO2 Analytics Platform
[WSO2Con EU 2017] Open Interoperability of WSO2 Analytics Platform[WSO2Con EU 2017] Open Interoperability of WSO2 Analytics Platform
[WSO2Con EU 2017] Open Interoperability of WSO2 Analytics Platform
 
ChainTrack Profile
ChainTrack ProfileChainTrack Profile
ChainTrack Profile
 
ChainTrack Profile
ChainTrack ProfileChainTrack Profile
ChainTrack Profile
 
Mis 6
Mis 6Mis 6
Mis 6
 
LoCloud Technical Poster
LoCloud Technical PosterLoCloud Technical Poster
LoCloud Technical Poster
 
BizTalk 2016 Webinar - Facts and Features
BizTalk 2016 Webinar - Facts and FeaturesBizTalk 2016 Webinar - Facts and Features
BizTalk 2016 Webinar - Facts and Features
 

Destaque

2016-09-16-NationalArchitectureForDigitalServices
2016-09-16-NationalArchitectureForDigitalServices2016-09-16-NationalArchitectureForDigitalServices
2016-09-16-NationalArchitectureForDigitalServices
Petteri Kivimäki
 

Destaque (6)

2016-09-16-NationalArchitectureForDigitalServices
2016-09-16-NationalArchitectureForDigitalServices2016-09-16-NationalArchitectureForDigitalServices
2016-09-16-NationalArchitectureForDigitalServices
 
Петербургский ДЕМО Центр
Петербургский ДЕМО ЦентрПетербургский ДЕМО Центр
Петербургский ДЕМО Центр
 
Hsl open data_ok_fest_2012
Hsl open data_ok_fest_2012Hsl open data_ok_fest_2012
Hsl open data_ok_fest_2012
 
СМЭВ СПб и веб-службы на основе SOAP
СМЭВ СПб и веб-службы на основе SOAP СМЭВ СПб и веб-службы на основе SOAP
СМЭВ СПб и веб-службы на основе SOAP
 
Biometric identification
Biometric identificationBiometric identification
Biometric identification
 
Web Services PHP Tutorial
Web Services PHP TutorialWeb Services PHP Tutorial
Web Services PHP Tutorial
 

Semelhante a X-Road in Finland & REST Gateway

Exploring the WSO2 ESB 4.7
Exploring the WSO2 ESB 4.7 Exploring the WSO2 ESB 4.7
Exploring the WSO2 ESB 4.7
WSO2
 
SOA and WCF (Windows Communication Foundation) basics
SOA and WCF (Windows Communication Foundation) basicsSOA and WCF (Windows Communication Foundation) basics
SOA and WCF (Windows Communication Foundation) basics
Yaniv Pessach
 
Introducing the WSO2 Platform
Introducing the WSO2 PlatformIntroducing the WSO2 Platform
Introducing the WSO2 Platform
WSO2
 

Semelhante a X-Road in Finland & REST Gateway (20)

OUGN 2016: Experiences with REST support on OSB/SOA Suite
OUGN 2016: Experiences with REST support on OSB/SOA SuiteOUGN 2016: Experiences with REST support on OSB/SOA Suite
OUGN 2016: Experiences with REST support on OSB/SOA Suite
 
Windows 8 Metro apps and the outside world
Windows 8 Metro apps and the outside worldWindows 8 Metro apps and the outside world
Windows 8 Metro apps and the outside world
 
REST - Why, When and How? at AMIS25
REST - Why, When and How? at AMIS25REST - Why, When and How? at AMIS25
REST - Why, When and How? at AMIS25
 
SharePoint 2013 - What's New
SharePoint 2013 - What's NewSharePoint 2013 - What's New
SharePoint 2013 - What's New
 
Exploring the WSO2 ESB 4.7
Exploring the WSO2 ESB 4.7 Exploring the WSO2 ESB 4.7
Exploring the WSO2 ESB 4.7
 
SUE AGILE Architecture (English)
SUE AGILE Architecture (English)SUE AGILE Architecture (English)
SUE AGILE Architecture (English)
 
web services-May 25.ppt
web services-May 25.pptweb services-May 25.ppt
web services-May 25.ppt
 
Hybrid integration platform reference architecture
Hybrid integration platform reference architectureHybrid integration platform reference architecture
Hybrid integration platform reference architecture
 
SpringPeople Introduction to JAVA Web Services
SpringPeople Introduction to JAVA Web ServicesSpringPeople Introduction to JAVA Web Services
SpringPeople Introduction to JAVA Web Services
 
Mini-Training: Let's have a rest
Mini-Training: Let's have a restMini-Training: Let's have a rest
Mini-Training: Let's have a rest
 
MNAssociationEnterpriseArchitectsCloudFoundryJuly2017
MNAssociationEnterpriseArchitectsCloudFoundryJuly2017MNAssociationEnterpriseArchitectsCloudFoundryJuly2017
MNAssociationEnterpriseArchitectsCloudFoundryJuly2017
 
SOA and WCF (Windows Communication Foundation) basics
SOA and WCF (Windows Communication Foundation) basicsSOA and WCF (Windows Communication Foundation) basics
SOA and WCF (Windows Communication Foundation) basics
 
AMIS OOW Review 2012 - Deel 7 - Lucas Jellema
AMIS OOW Review 2012 - Deel 7 - Lucas JellemaAMIS OOW Review 2012 - Deel 7 - Lucas Jellema
AMIS OOW Review 2012 - Deel 7 - Lucas Jellema
 
(ATS6-DEV09) Deep Dive into REST and SOAP Integration for Protocol Authors
(ATS6-DEV09) Deep Dive into REST and SOAP Integration for Protocol Authors(ATS6-DEV09) Deep Dive into REST and SOAP Integration for Protocol Authors
(ATS6-DEV09) Deep Dive into REST and SOAP Integration for Protocol Authors
 
Introducing the WSO2 Platform
Introducing the WSO2 PlatformIntroducing the WSO2 Platform
Introducing the WSO2 Platform
 
Oow2016 review--paas-microservices-
Oow2016 review--paas-microservices-Oow2016 review--paas-microservices-
Oow2016 review--paas-microservices-
 
WSO2Con USA 2017: Implement an Effective Digital Platform Using WSO2 Integration
WSO2Con USA 2017: Implement an Effective Digital Platform Using WSO2 IntegrationWSO2Con USA 2017: Implement an Effective Digital Platform Using WSO2 Integration
WSO2Con USA 2017: Implement an Effective Digital Platform Using WSO2 Integration
 
Introduction to WSO2 Integration Platform
Introduction to WSO2 Integration PlatformIntroduction to WSO2 Integration Platform
Introduction to WSO2 Integration Platform
 
DEVNET-1175 OpenDaylight Service Function Chaining
DEVNET-1175	OpenDaylight Service Function ChainingDEVNET-1175	OpenDaylight Service Function Chaining
DEVNET-1175 OpenDaylight Service Function Chaining
 
An overview of BizTalk
An overview of BizTalkAn overview of BizTalk
An overview of BizTalk
 

Último

Último (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

X-Road in Finland & REST Gateway

  • 1. X-Road in Finland – The National Data Exchange Layer Petteri Kivimäki Information Systems Manager
  • 2. Index • National Architecture for Digital Services • The National Data Exchange Layer – Schedule – Organization – Interest Groups – Work Groups
  • 3. National Architecture for Digital Services • Programme owned by Ministry of Finance • Operating unit Finnish Population Register Centre • Programme period 2014-2017 • Building a digital infrastructure for digital services, including four projects: – National Data Exchange Layer – Service Views (Citizens, Companies, Civil Servants) – EIdentification – Roles and Authorization
  • 4. National Architecture for Digital Services
  • 5. The National Data Exchange Layer - Schedule 31.12. 2015 1.1. 2015 1.4. 2015 1.7. 2015 1.10. 2015 29.5. Procurement Today X-Road development environment, publicly openPilot Production environment VRK PRH Trafi MML Vero Finto Kela Organizations joining production 18.11. Test environment Software development 14.9.
  • 6. Organization Development Manager Pauli Kartano (VM) Coordinating Project Manager Eero Konttaniemi X-Road Development Product Owner Petteri Kivimäki Scrum Master Developer 1 Developer 2 Speacialist (CSC) Developer 3 Developer 4Working Groups Service Production Information Systems Manager Petteri Kivimäki Service Manager Jani-Matti Kaukonen Specialist 1 (CSC) Specialist 2 (CSC) Specialist 3 (CSC) Gofore Information Security Information Security Specialist Outi Juntura Auditors Lawyer (Procurements) Palveluväylä Concept Information Systems Manager Petteri Kivimäki Service Manager Jani-Matti Kaukonen Integration Architect (ESB:t+X-Road) Specialist Specialists Project Manager (Service Catalogue) Developer 1 Developer 2 Productization Specialists Project Manager (Service Management) Specialists 2 Service Manager Jani-Matti Kaukonen Working Groups Vendors (procurements) VRK Valtori / Valtori’s Subcontractors Different Interest Groups Contractors (KPMG)
  • 8. Interest Groups • Public sector – Governmental organizations, municipalities • Private sector – Companies, private persons • Other – Associations, non-profit organizations, educational institutions etc.
  • 9. Work Groups • PERTIVA – coordinates collaboration between organizations responsible for maintaining public base registries (e.g. population register) • Reference groups – For organizations that want to participate in designing the service view for citizens and organizations – Divided by field/industry • Public sector organizations, tele operators, finance sector, libraries etc. • LinkedIn Idea Group – open for everyone • Developer community (building up) • And many others…
  • 10. REST Gateway – REST Support for X-Road Petteri Kivimäki Information Systems Manager
  • 11. Index • Backround • Requirements for REST support • REST Gateway
  • 12. Backround • REST-to-SOAP conversion must be implemented in adapter server • No off-to-shelf components available • Custom implementation for each system – Some parts are system specific, but many parts of the implementation could be shared between different systems – Same features are being implemented multiple times by different organizations
  • 15. Requirements for REST Support • Must have – Access REST / JSON services via WSDL-defined X-Road services (service provider) – Access legacy WSDL-defined X-Road services via REST / JSON (service consumer) – WSDLs in the security server must match the actual service to facilitate service discovery • Nice to have – Automatic conversion for service descriptions • RAML / Swagger / JSON Schema etc. -> WSDL
  • 16. REST Gateway • Off-the-shelf component – Configuration over coding – Can be customized • Implements the common features that are needed in all the REST integrations – Features can be configured for a single system / service – Everything cannot be done through configuration, some coding may also be required • Offers a framework for customizations
  • 18. REST Gateway v0.0.7 • Provider Gateway – access REST services (JSON, XML) via WSDL-defined X- Road services • Consumer Gateway – access WSDL-defined X-Road services in a RESTful manner • Automatic conversions: – JSON -> XML – XML -> JSON • New REST services can be added through configuration - no coding needed • Implements X-Road SOAP profile 4.0 (v6.3->)
  • 19. Provider Gateway v0.0.7 • Provider Gateway – HTTP GET, POST, PUT and DELETE supported – WSDL must be created manually – REST response can be wrapped in SOAP body or SOAP attachment – X-Road SOAP-headers are passed via HTTP headers • X-XRd-Client, X-XRd-Service, X-XRd-UserId, X-XRd-MessageId
  • 20. Provider Gateway v0.0.7 • Provider Gateway accepts SOAP messages following the X-Road SOAP profile. It translates XML request parameters to REST service request URI. • Configuration FI.GOV.123456-7.TestService.getRandom.v1 => [GET] http://www.restservice.com/
  • 21. Provider Gateway v0.0.7 • HTTP POST with request body – Request body is sent as SOAP attachment identified by Content-ID Mime header
  • 22. Consumer Gateway v0.0.7 • Consumer Gateway – full support for services published through Provider Gateway – limited support for legacy services • only services which requests don't contain nested elements - all the request parameters must be request element's children – HTTP GET, POST, PUT and DELETE supported – response's content type is defined using Accept header • text/xml, application/json – X-Road SOAP-headers are passed via HTTP headers • X-XRd-UserId, X-XRd-MessageId – reformatting of resource links – support for browser-based access
  • 23. Consumer Gateway v0.0.7 • Consumer Gateway accepts requests, and it translates them to SOAP messages following the X- Road v6 SOAP profile. • Configuration [GET] www.restservice.com => FI.GOV.123456-7.TestService.getRandom.v1
  • 24. Consumer Gateway v0.0.7 • HTTP POST request with request body – Request body is sent as SOAP attachment identified by Content-ID Mime header
  • 25. Future development • UI for managing configuration • Packaging – RPM (Centos, RHEL) – Debian (Ubuntu) • RAML / Swagger / JSON Schema -> WSDL conversion • Security measures • Message queue • Other ideas – why not contribute?!
  • 26. Links • REST Gateway in GitHub – https://github.com/educloudalliance/xroad-rest-gateway • XRd4J – X-Road v6 Java Library – https://github.com/petkivim/xrd4j • Adapter Server Example – https://github.com/petkivim/x-road-adapter-example • Test Client – https://github.com/petkivim/x-road-test-client • Test Service – https://github.com/petkivim/x-road-test-service
  • 27. Questions? Petteri Kivimäki Information Systems Manager Population Register Center petteri.kivimaki@vrk.fi Tel.: +358 50 593 1710