2.5 Steps of development of dataservices of X-Road
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.
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):
(dataservice is described in the way facilitating its reuse; hence, the logic
of dataservice is universal and not very specific);
coupling (dataservice is independent of any specific user of dataservice or
(the logic of dataservices is structured to enable using dataservices for
solving various major tasks; thus, each dataservice separately could solve a
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.
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:
18.104.22.168 Source code -> WSDL(Bottom Up)
This method includes:
creation of source code of dataservice;
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:
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.
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
22.214.171.124WSDL -> source code (Top Down, Contract-first)
This method includes:
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.
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.
126.96.36.199 Agile method (Meet in the middle)
This method combines the two methods described above:
WSDL of the service is created.
of source code of X-Road dataservice is generated from WSDL.
the components of business logic are not already available (legacy software), these
are realised in a suitable way.
is realised between the components of business logic and the components of
Results of the stage: validated and commented WSDL and realisation of dataservice.
This phase must include the following:
of functionality (conformity to functional requirements);
of cooperation ability (compatibility with various platforms and clients);
of performance (non-functional conditions).