Service Oriented Architecture (SOA) for Exchanging Data Between Systems
Exchanging data between systems can pose serious challenges if there are no defined standards to govern the process. This in turn creates major bottlenecks during system development and integration. As a result, several standards have been implemented to overcome these challenges. One such standard is the Service Oriented Architecture (SOA). Service Oriented Architecture is a software development standard for creating loosely coupled services independent of the underlying platform (Grønli and Bygstad, 2012). Service Oriented architectures enables applications built using different technologies and running on different platforms to communicate in a platform agnostic manner. This is achieved through standardized formats of making requests and consuming responses.
Requests are sent to end points that take the format of URLs and responses are accepted in the format of standard data formats such as JSON and XML formats pautasso and Wilde, 2010). The requests submit parameters, which are used to query data through the URL. Several parameters can be sent through the same route. Additionally, the requests can be made synchronously or asynchronously using request methods such as GET, POST, DELETE. POST requests do not require parameters because they can be sent in the request body. This is achieved by implementing the Hypertext Transfer Protocol (HTTP) standards that allow information transfer over network (R. Fielding et al., 2000).
2.0. Information Management and Integration
Service Oriented Architectures allow information management by providing methods of Creating, Updating and deleting (CRUD) information stored within an organization. These operations are exposed through end points that accept requests as defined in the HTTP protocol. Creation of data is performed by sending requests with data payload to the server.
The requests are accepted and data saved in corresponding formats. Therefore, in order to integrate two systems to be able to communicate, the client must send requests in the format accepted by the server. If a parameter is expected, the client must provide that parameter in the request. Additionally, the server must send responses in a format expected by the client. Thus, when both client and server implement the desired standards, crud operations become possible.
Common data formats make this possible regardless of the data objects being created. For example, when creating an employee record, data can be sent in form of JSON by the client. Upon receipt of the JSON object, the server converts the JSON object into an employee object that be persisted in the database either using Structured Query Language or Object Relation Mapping (ORM). Most programming languages provide convenient functions for manipulating JSON data formats and convert them into other formats such as XML, inbuilt data objects or user defined data objects.
3.0. Application and Data Storage Infrastructure Design
Data storage can be designed using various design architectures. The most famous method is the relational databases. However, data storage is not limited to this format only. Depending on the organization’s requirements, non-relational data storage methods such as noSQL can be used. Data can also be stored on-site or off-site using cloud based solutions.
In this respect, the organization should implement an Infrastructure as a Service approach (IaaS) towards cloud storage. This will enable the organization to cut down on the costs required to set up its own data center and the maintenance costs associated with running it. With this in mind, Victoria Health can be able to scale in time, as her storage need increases. Engaging an IaaS provider will also be beneficial as the availability of the services will be guaranteed due to redundancy offered by such providers. This may not be possible if Vitoria Health decides to store data onsite in their own data center.
Information Management and Integration
4.0. Data merging
When migrating an office applications from legacy applications that do not implement Service Oriented architecture, data may come from various applications that have different storage formats. Some may be storing information in form of XML documents while other may have stored information in Comma Separated values. Therefore, data merging becomes necessary in order to archive the desired migration. In this Victorian Health and Human services, data was in form of an XML document and comma separated values.
Therefore, data had to be merged to create one record with all the desired fields. The application that was developed was done in Python programming language. Python is very important technology in data analysis. Data merging was therefore achieved using inbuilt python functionalities as well as other libraries such as Petl and bottle. Petl provides functionality that makes data merging easy and more effective than using the native python methods. In this task, data was read using Petl from comma separated values to create a data frame. A similar operation was done on an XML file to create another data frame. The two data frames where merger using a common field named “suburb”. This field is common in both data files and hence used as a key field. The result were then written to a comma separated values file that was used in the next section.
5.0. Restful Web services.
Web service is an established way of devices to communicate over networks (Thu and Aung, 2016). RESTFul web services have become the most popular method of implementing service oriented architectures. REST is an abbreviation for Representational State Transfer. It is a data transfer method that is implemented on the HTTP stack. It is easy and efficient, thus earning the method more popularity as opposed to other SOA implementations that make more difficult to achieve the same functionality such as SOAP and CORBA (Alshahwan and Moessner, 2010). Therefore, RESTFul web services emerged to ease development and debugging of application. This fete was achieved courtesy of Roy Fielding and his group of developers who were researching on ways to enable servers communicate with each other easily.
In this method, HTTP requests are implemented to enable data transfer between various devices of varied hardware and software configurations. The methods implemented are GET, POST, PUT, DELETE. The server exposes endpoints that the client can send requests to and receive responses. These end points are in form of Uniform Resource Identifiers that look like normal web URLs. Each functionality is defined in its own end point. Therefore, the client must be able to identify in advance these endpoints in order to interact with the server. Each of these end point trigger an activity on the server much like a remote procedure call. However, RESTFul webservices are not as complex as earlier methods.
In this project, RESTFul web services were applied through the getlocation method. The GET method sends a postcode parameter to the server which in turn reads the comma separated values file. If the result is found, the server replies with a JSON object containing the Name, Suburb, longitude and latitude of the health facility. The javascript on the page set the longitude and latitude of the google map. This happens asynchronously using Ajax and thus there is no refresh. On the server side, the requests are handled using Bottle library. It implements the HTTP methods of handling user requests. The server script achieves this fete using routing to map the python function to a default route using annotations on the function.
6.0. Mashup Principles
Modern dynamic working environments create the need for applications that can be easily customized and adjusted to fit user needs (Hoyer et al., 2008). One principle of mashup design is reuse of existing resources. In this project, reuse of the developed application can be made very easy by just changing the number of parameters of an end point. For example, a new endpoint can be created such as getlocationbyname?name=vic . This would just involve copying the already implemented function of getlocation and changing the field queried. Thus, you can be able to add more functionality such as allowing the user to find a service provide using a name instead of a postcode.
This new functionality can be added in a very short time. The layer concept has also been applied where resources are identified using URI. The URI getlocation points to an underlying functionality that is exposed as a URI to the end users. Widgets concept has also been applied to enable user interact with the resources in an abstracted manner without exposing technical details. Finally, the beta development model has been used in that for the function that has been developed, more functionality and improvements can be added with time.
Conclusion
As business environments become more dynamic and more flexibility is desired, RESTFul web services have become more popular with many organizations. The advantages from this application model provides advantages in terms of development time as well as ease of use. The ability to integrate many non-homogenous applications in record time is another advantage offered by this architecture. For the Victorian Department of Health and Human Services, the development of this application promises to be a step in the right direction towards digitization of health care. More functionality and data can be added with time and therefore provide full functionality for the organization. Therefore, this project can be considered as a success.
References
Alshahwan, F. and Moessner, K. (2010) Providing SOAP Web services and RESTful Web services from mobile hosts. doi: 10.1109/ICIW.2010.33.
Grønli, T.-M. and Bygstad, B. (2012) A Successful Implementation of Service Oriented Architecture. doi:
Hoyer, V. et al. (2008) ‘Enterprise-Mashups: Designing Principles towards the Long Tail of User Needs’, 2, pp. 601–602.
Pautasso, C. and Wilde, E. (2010) RESTful Web Services: Principles, Patterns, Emerging Technologies, Proceedings of the 19th International Conference on World Wide Web,
Fielding, G. et al. (2000) Hypertext Transfer Protocol —
Thu, E. and Aung, T. N. (2016) ‘Developing mobile application framework by using RESTFuL web service with JSON parser’, 388(August). doi: 10.1007/978-3-319-23207-2.