2.5 Steps of development of dataservices of X-Road

2.5.1 Determination of business needs

The objective of the stage is to determine the business needs and translate them into web service requirements (properties, functional and non-functional requirements, restrictions). This phase should involve all parties (including end-users).

Result of the stage is specifications of requirements.

2.5.2 Stage of analysis and design

This stage involves the identification of suitable available dataservices; if these are lacking, determination of technological platform of dataservice, drafting of architectural specification of planned software solution and detailed description of planned X-Road dataservices, whereby upon specification of dataservices it is ensured that the described dataservices conform to SOA principles (see also previous chapters):

  • reusability (dataservice is described in the way facilitating its reuse; hence, the logic of dataservice is universal and not very specific);
  • weak coupling (dataservice is independent of any specific user of dataservice or other dataservices);
  • composition (the logic of dataservices is structured to enable using dataservices for solving various major tasks; thus, each dataservice separately could solve a simple problem).

For the identification and description of services, it can also be useful to use X-Road pattern directory (see clause 2.5).

A detailed description of dataservice interfaces is created (including specification of elements and data types) and descriptions of dataservice interfaces are drafted in XSD and/or WSDL format.

Results of the stage consist of detailed specifications of software architecture and dataservices.

2.5.3 Development stage

The realisation of a software solution based on the specifications created in the previous stage.

Various methods can be used for the development of X-Road dataservices: Source code -> WSDL(Bottom Up)

This method includes:

  • first, creation of source code of dataservice;
  • then, generation of WSDL from source code.

Several contemporary development environments or IDEs support creation of web service and WSDL based on ready-written source code (e.g. Java).

Weaknesses of this method are:

  • the available means create a standard WSDL, which does not include obligatory WSDL elements of X-Road (e.g. header fields of X-Road message, xrd:version, xrd:title). Therefore, it is necessary to update WSDL and the update must be performed from the beginning after every change of WSDL.
  • For this reason, it is generally not recommended to use this method for creating X-Road service, except when a suitable tool has been found for an automatic update of WSDL. -> source code (Top Down, Contract-first)

This method includes:

  • First, creation of WSDL description of dataservice

WSDL can be created manually (with regular text editor) or with a special WSDL editor. Manual creation of WSDL is troublesome, whereas also a manual creation of WSDL can be efficient if you have a template or an example.

There are also graphic WSDL editors for different platforms, e.g. for Eclipse IDE.

  • Frame of the source code of a web service is generated from WSDL (for Java, .NET or any other platform), where the part of SOAP interface of dataservice has been realised. The developer must update this source code frame, adding business logic, which fills the generated frame with data.

This method is also used in the practical part of training for the realisation of X-Road dataservice; hence, you will find further instructions for using this method in different development environments in module 6. Agile method (Meet in the middle)

This method combines the two methods described above:

  • First, WSDL of the service is created.
  • Frame of source code of X-Road dataservice is generated from WSDL.
  • If the components of business logic are not already available (legacy software), these are realised in a suitable way.
  • Conversion is realised between the components of business logic and the components of generated service.

Results of the stage: validated and commented WSDL and realisation of dataservice.

2.5.4 Testing

This phase must include the following:

  • testing of functionality (conformity to functional requirements);
  • testing of cooperation ability (compatibility with various platforms and clients);
  • testing of performance (non-functional conditions).

2.5.5 Launching

Registration of the service in RIHA system and implementation of the service.

Last modified: Wednesday, 3 May 2017, 3:51 PM