1. Proposed Project Team Study Name
JSON / REST Pilot for converting PIDX XML standards
See Conversion To JSON/REST Pilot
2. Executive Summary
PIDX would like to explorer converting its existing XML based messaging to a newer architecture based on JSON messaging and RESTful APIs. JSON/REST is a standard that is used for mobile and modern application development and the PIDX community has requested support for it as more business transactions occur on mobile and modern platforms.
The project team will focus on Invoice submission and Response messages so that the PIDX community can more quickly, and easily, understand how the feasibility of JSON/REST. Upon completion of the project we will evaluate the roadmap for migration of all standards.
The purpose of this project is convert existing PIDX messaging and standards to use a JSON messaging format and REST API architecture.
The scope is limited to the Invoice submission and response process and messaging so that we can understand the technical challenges, risks, and potential solutions to the wider PIDX standards.
The scope will also include reviewing any existing PIDX users who have tried to use JSON and REST APIs on their own and to document their challenges, status, and current state.
3.3.1 Identify criteria for success of the deliverables / specification as deployed in industry.
- Convert existing Invoice and InvoiceResponse schemas to use a JSON messaging format
- Map REST API methods – GET, PUT, POST, DELETE – to Invoice submission and response business processes.
- Identify technical and business process gaps that may exist in a JSON/REST architecture that cannot be addressed
- Review any existing implementations that have done with JSON/REST based on PIDX standards. 3.3.2 Identify how the proposed deliverables / specification relates to existing or under development deliverables / specifications. Identify how these will relate to each other.
3.3.2 Identify how the proposed deliverables / specification relates to existing or under development deliverables / specifications. Identify how these will relate to each other.
|Existing Standards||New Standards/Deliverables|
|Invoice.xsd and InvoiceResponse.xsd||JSON specifications for Invoice and Response|
|Existing AS2 and RNIF Guidelines & Protocols||REST API specification for required RESTful methods|
3.3.3 Identify the integral sets of specifications that will be created or modified by the proposed work effort. (See 8.0 Initial Contributions)
- JSON specifications for Invoice and Response
- REST API specification for required RESTful methods
- Lessons learned from process of converting architecture
- Findings for other members or partners that have executed, successfully or unsuccessfully, to JSON/REST
3.3.4 Identify the expected useful life of the proposed deliverables / specification, e.g. estimated retirement dates or circumstances.
The useful life of JSON and RESTful APIs will be determine based on risks and gaps identified in this project.
3.4.1 Identify how this work is specific to the energy industry and to the primary area of focus for PIDX. Identify other sources for aspects of the required solution that are not industry specific.
The usage of this new architecture pairs well with the movement towards more mobile friendly devices, such as tablets and smart phones, and also is a potential leadin to Blockchain platforms.
3.4.2 Identify the solutions that currently exist in the area of the proposal. Identify competing technologies/solutions.
Other solutions in this area include legacy solutions, such as fixed width and XML, and non-standard solutions that are unique to specific proprietary platforms. The goal of PIDX is to drive standards that call can use so we don’t believe the proprietary platforms are viable solutions.
3.4.3 Identify other organizations that are doing similar work. Identify what they are doing and why additional work is needed. Identify how the proposed work effort will coordinate with related work efforts.
We believe that there are some PIDX members already using JSON and REST APIs. One of the goals of this project is to investigate them further, capture lessons learns, and any best practices that have been developed.
3.4.4 Identify the industry organizations / groups who want this deliverable / specification.
We are currently working with Baker Hughes, a GE Company (BHGE), Cortex, and Oildex on this specification.
3.4.5 Identify all of the stakeholders of which you are aware.
BHGE, Cortex, Oildex
3.4.6 Identify the stakeholders who are willing to join the work effort. (See Sponsor & Participants)
BHGE and Cortex have confirmed that they are willing to sponsor this initiative within PIDX.
The proposal includes migrating the Invoice and InvoiceResponse messaging over to JSON formats and then developing the RESTful APIs to receive these messages. The RESTful APIs should identify the mappings for GET/POST/PUT/DELETE operations and corresponding HTTP response codes for errors.
The goal of the project is to understand how current PIDX architecture would map, both technical and business process, and any gaps or challenges that are encountered.
The project team is also expected to canvas the PIDX community for existing usage of JSON/REST and capture lessons learned and best practices.
Key Benefits include:
Understand risk of using JSON/REST in a business transaction environment
Enable new architecture footprint that is compatible with mobile standards and applications
Identify effort to convert standards so that a longer term roadmap could be established
5. Sponsor and Participants
PIDX member/company sponsoring development of these specifications/this project:
The following PIDX members/companies are participants in the development of these specifications:
6. Deliverable Schedule
7. Anticipated Completion Date
February 28, 2019
8. Initial Contributions
|Document Name||Type of Document||Document Source|
|Invoice.xsd||Invoice PIDX Schema v1.61||PIDX|
|InvoiceResponse.xsd||Invoice Response Schema v1.61||PIDX|
|AS2 Usage Guideline||PIDX Guideline||PIDX|
|RNIF: Rosetta Net Implementation Framework||PIDX Guideline/Framework||PIDX|