Dalhousie University, Faculty of Computer Science
CSCI 4145/5409 - Cloud Computing – Summer 2018
Assigned: June 29th, 2018
Due: July 9th, 2018, 11:55 pm
ASSIGNMENT 4
Workflows and Workflow Management
In this assignment, you will deal with the workflows via a scenario mentioned below. In this scenario,
there are a couple of different entities interacting in order to fulfill a task (namely mortgage application).
Consider the following scenario. A customer, called Bob, is considering purchasing a house and is
applying for a mortgage from a mortgage broker, called MBR. The company MBR has a web portal that
Bob enters and fills out appropriate information on the form. his name, address, phone number, and names
of his employer and his life-insurance company. The result of the submission is either an error message,
if some information is missing, or it is confirmation that all information Bob filled in on the form. was
received and an ID of his mortgage application. He is also informed that they need information from his
employer and his insurance company. The broker informs Bob that all he needs to do is use his employer’s
portal to fill-out a form. requesting the employer to supply information about Bob to the mortgage broker.
Similarly, Bob should go to the portal of the insurance company to request the insurer to provide the
mortgage broker with the information on Bob’s life insurance.
Bob enters his employer’s portal, finds appropriate menu option that, when selected, asks him for his
employee ID and then authenticates him. Once Bob is authenticated, he is asked for the broker’s ID and
presented with a form. seeking consent to provide his information to the mortgage broker, namely his
name, position/occupation, years of service with the employer, and yearly salary. Once Bob agrees (clicks
on the Agree button on the form), a web service is invoked to retrieve Bob’s information from the
employer’s DB and then automatically submits it to the broker by invoking the broker’s web service and
passing it Bob’s information. Of course, Bob is informed of the result. Furthermore, he can also login to
the broker’s portal and view the status of his application.
Bob interacts with his life insurance company in a similar way to have the life insurance company to
provide to the broker information in his life insurance policy, namely the policy number and its value.
Your task is to create the various web services and control the workflow to support the above scenario.
Please see the following details about the implementation.
Notes on Implementation
1. Normally, each company would have their own web server, maybe in a cloud, that would host the
company’s portal and its web services. For simplification, you may use one web server to host
web pages and web services for all companies. The web server should be on AWS or Azure. Of
course, two companies cannot share a web page or a web service. Furthermore, each URL must
identify the company that owns it (e.g., by using the company’s acronym as a part of URL).
2. Furthermore, each company would have its own DB, preferably in a cloud, that would hold the
necessary data. However, for simplicity, you may use one DB, hosted in a cloud, that holds tables
for all companies. However, for each company you need to have a separate set of tables, such
that each table name identifies the company that owns it (e.g., by using the owning company’s
acronym as a part of the table name).
3. You are not expected to implement a secure authentication schema in the scope of this assignment.
For authentication purposes, it is sufficient to match the ID information submitted with the one in
the DB.
4. Last, but not the least, you are expected to use cloud workflow tools such as AWS SWF or Azure
Logic App for the coordination of workflows. Please do not invent your own workflow
coordination mechanism. The details on how to use cloud workflow tools will be / were given in
labs.
Submission Requirements
You have to submit (to Brightspace) a zip file that contains:
• A PDF document that includes:
o Title page with the usual information (identifies course/assignment and you)
o Table of Contents
o URL of your hosting application
o Resources used (Hardware/software platform, including software libraries, used to develop
your client, e.g., MacBook Pro with OS X10.9.5 Eclipse SDK v. 3.7.2, … and to develop
your web services).
o Identification of any code from other sources that you used (e.g., code snippets form. tutorials):
Identify source and also where in your code you used the code.
o Schemas for your tables.
o Description about any framework used to implement web services (like Spring, Jersey, etc.).
Description of configuration of the log services, if any o Sufficient description of your
program’s tests (input/output) that demonstrates that your software works. Your description
needs to state what is tested/shown (e.g., which specific cases) and needs to be supported by
figures showing your input/output (e.g., screen snapshots).
• Source code (in appropriate folder structure) and documentation sufficient to install and deploy the
application to the cloud server and test it. In some cases, you may be invited to a demo.
• All the files should be uploaded in “CSCI{4145/5409}-A4-{Name}-{B00Number}.zip” format.
Grading Criteria
90%: Correct functionality
10%: Documentation (including testing part)