Software Applications Integration using Web Services

  1. Assessment Requirements
  • The practical element (sections A & B) of the coursework will be viva examined. Please have a top-level schematic diagram ready for the viva.
  • You should submit a coursework report documenting your solution and answers to the research elements (sections C & D). The structure of the report should contain:
  1. Self-evaluation of the achieved implementation (please be brief and precise, no introductions or background information needed) including functional description of your program, and discussion of your major design decisions. Please include top-level design diagrams only. Try to fit in 2-3 pages.
  1. Maximum of 600 words for Section-C and any charts describing the results of your experiments.
  1. Maximum of 1000 words for Section-D. Again, please adhere to the required comparison, with minimum introductory information.
  1. List of references and appendices.
  1. Assessment Scenario/Problem

The goal of this coursework is to demonstrate an understanding of using Service Oriented Architecture principles in software applications integration. In the first section, you will utilise web services to compose a Shares Brokering system. The Shares Brokering system consists of a shares acquisition service that you should build yourself and an external currency conversion service that you need to consume and integrate with the shares acquisition service; both services can be complemented by consuming external APIs. The research element of the coursework investigates using advanced (semantic-based) techniques to further extend your application.

Software Applications Integration using Web Services

A - Core Web Service (weighting - 35%)

  1. Implement Shares Brokering service
  1. Current shares on trade should be held in an XML file based on an XSD schema containing: company name, company symbol on the stock exchange, number of available shares, a complex ‘share_price’ element containing currency and value, and date of the last-update of the share price.

v You can opt to use conventional structures to store the data (arrays, Lists, etc.) instead of XML objects.However, this will affect the standard of your work and also progression into Section-B.

  1. The web service should allow users to list shares details and update the number of shares on offer when a purchase is made. You might opt to utilise JAXB to generate helper Java classes, which allow reading and populating the XML documents.

v You may choose to implement the core Web Service using as a RESTful service, but for full marks youneed to evidence that you can build & communicate a Shares data structure similar to what can be provided by an XML Schema as in 1.a) above.

Software Applications Integration using Web Services

  1. Implement a search functionality allowing customers to list shares’ offerings using various criteria such as company details, highest price, etc. More sophisticated search functionality will merit higher marks.

v The choice of client is your decision. Java GUI Apps or JSP are more appreciated but should not beattempted at the expense of providing core functionality.

B – Web Service Composition (weighting - 35%)

  1. Integrate currency conversion service

Download the pre-coded project with the currency conversion web service from the module’s NOW room site and deploy it. Consume the currency conversion service in the shares brokering service to auto-convert the share price rate to the rate preferred by the customer.

  1. Extend functionality by utilising external REST APIs
  1. Research and utilise external RESTful service to extend the functionality of your shares brokering system. Example of such service can be:
  • A service that returns up-to-date currency exchange rate.
  • A service that returns the latest share value quote for a particular company.
  1. Implement your own RESTful service to persist the output of the consumed REST API for off-line use. For instance, your RESTful service can update the exchange rate of your currency conversion service or the latest value of the share price.

In order to achieve the highest marks, you must show initiative and inventiveness beyond the stated specification; the contribution of the advanced functionality depends on technical challenge in its implementation. Examples include:

utilising additional external REST APIs (e.g. to display relevant tweets or other info about theshares company)

implementing non-java clients to demonstrate SOA’s platform independence

creating user accounts for clients allowing them to sell shares back to the brokering service

C – Analysis of Quality of services ‘QoS’ (weighting - 10%)

Referring to your implementation, describe SOA Web Services’ performance and scalability challenges, in particular with the increase in service demand - such as the number of concurrent client connections and the size of the payload (response messages). Highest marks will be awarded to submissions that perform physical QoS testing for the developed application.

Explain how Cloud Computing provision can address these issues, and referring to the deployment model, elaborate on the challenges accompanying migration to the Cloud Infrastructure.

D – Application of Semantic Web and Linked Data technologies (weighting - 20%)

In the NOW room, find links to two articles discussing Semantic Web technologies and their application to publish Open Linked Data on the web; perform the following tasks:

  1. Carefully read and analyse the two papers, using external resources on the subject matter of ‘Semantic Web’ and ‘Linked Open Data’ to assist your understanding of the subject area.
  2. Explore how you can utilise Semantic technologies to extend the application you built in sections A&B to facilitate ‘smarter’ search for companies to trade shares with in the stock exchange. The search should enable finding suitable companies whose name/symbol/industry-section is not explicitly provided in the search keywords.

Refer to how the workflow of Domain Analysis, Ontology engineering, Semantic Tagging, and Reasoning, contributes to your recommender system. Also describe how you can consume Open Linked Datasets to boost its functionality. Endeavour to use other sources of information (papers, articles, etc.).