Section II Assignment/Project Questions (Submission required)
The purpose of this project is to exercise service development, service deployment, service discovery, remote binding, and application composition using your own services and external public services. Some of the services to be developed can be synthetic, e.g., banking service, while others can be realistic, e.g., en/decoding, en/decryption, and product catalog. However, you should make your services and overall application as realistic as possible.
In this project, each team should develop a requirement document, a service directory, and the architecture of the Web application, and a set of services.
1 Main Page (group assignment question) [15 points]
This assignment question must be done jointly by the entire group. The main page can be an html page, an aspx page, or a page that can be opened by a standard Web browser. The main page must be named use the default convention, e.g., index.html or default.aspx, so that the page can be accessed without using the page name. The main page must contain the following contents:
1.1 The project name, team name, and team member names, the link (URL) to the deployed main page in the server (WebStrar or V-Lab). 
1.2 Description of the service-oriented computing system that your team plans to develop: What does the system do? 
1.3 A diagram showing the overall system design, its layers, components, and the connections among the components. A sample diagram is given in figure 1. Your team must come up with your own system. You will not implement the entire system outlined here in this assignment. The focus of this assignment is the service development and deployment. 
Figure 1. A sample of a four-tier service-oriented computing system
1.4 Service directory (a table) listing the services and links to the test page and services. The schema and a list of example services are shown in the table below, which is similar to the service list in ASU Repository in text Appendix C. 
End UsersSubmitorderApplication Logic LayerService LayerGUIplacing order: Item listingItem identityBank detailDelivery addressEmail addressDisplay the approvalconfirmationWorkflowOrder ProcessingFor example:Address / zip codeverificationCredit card chargeItem deliveryCatalog services Add to CartText fileXML fileDelivery services. . .Presentation LayerDataManagementLayerBank services. . .Encryption services
Page 3 of 6
Provider name Service name and deployed URL in server Service description Server link to test page Language and Platform
Cipher encryption and decryption
Output annual KW number for given panel size
Use an existing online service or API to find the provided storeName
Send a text to a cell phone
A link to the “Requirement Document” must be provided here.
(1) Provider: Name of the service developer (your name). One name per service is allowed.
(2) Service Name and link: The URL of the deployed service in WebStrar or in V-Lab to the service must be given.
(3) Service description: Describe the function of the service, including the input and output.
(4) Link to test (Try It): The link to the test page of the service must be given behind TryIt. The TryIt page must test the services deployed to the server, not the local host service.
(5) Language and Platform: The programming language and the development environment used to develop the service. Only C# and Java are allowed in this assignment. WebStrar (v-lab) supports IIS and C# only. If you use Java, you have to find your own hosting server.
2 Service Development (individual assignment question) [55 points total]
This is an individual task within the group assignment. Each team member must independently implement and deploy their services. There are two types of services to develop: required services and elective services.
2.1 Required Services: A set of required services and their requirements are listed in a separate document named “List of Required Services”. Each team member must choose and implement at least two services from the given list. The members in the same team must choose different services from the given list. [15+15 points]
2.2 Elective Services: Each member must develop at least three elective services (or service operations). For the elective services, the team members must discuss what services are needed based on the scope defined in question 1 and who should develop what services. All team members must define and implement different elective services. The elective services should be related to the scope defined in question 1. One can choose the required services as elective services as long as no other team members are implementing them. If a member chooses to implement the services in the list of required services, this service does not have to be related to the application scope that your team plans to develop. [25 points]
Page 4 of 6
The difficulty level of the elective services (operations) that you developed will be rated by the instructor and the teaching assistant into one of the three difficulty levels:
(1) Easy: The method (operation) in this service implements a simple math function and can be done using less than 50 lines of code. For example, Fahrenheit and Celsius temperature conversion. [5 each]
(2) Moderate: There are algorithmic issues to address and the code for each method will be at least 50 lines. For example, encryption/decryption service, efficient sorting, and equation system solving. If a service operation can be done in less than 50 lines, but you use more than 50 lines, it will be counted as an easy service. [10 each]
(3) Challenging: Services that will use states, such as creating a simulated (synthetic) banking service that allows users to sign up, create an account, deposit fund, spend fund, etc; or services that make use of multiple available services (operations) or APIs provided by other providers, such as Microsoft services (e.g., Bing map service), Google code’s APIs, Amazon’s services, or the ASU services. These services and APIs may or may not have WSDL interface. Your services must provide WSDL interfaces. The data received from other services should be processed and combined before returning to the clients. The given required services are examples of challenging services: If you choose to implement these services, they count as challenging services. Database is not allowed in this assignment. If you need to store states, you can either a text file (See Chapter 3 L12 Slides) or an XML file (Read Text Chapter 5, Section 5.4). [15 each]
To obtain the full point 25 in question 2.2, you need to develop at least two services and at most four services. It implies that you cannot write five easy services in this question. If you write easy services only, the maximum points you can obtain in this question is 20 out 25. On the other hand, you can obtain 25 points at most, even if you develop more services and more difficult services than required. From the format point of view, you can either define these services methods in one big service, or define them as separate services. Each service and methods must be commented in detail, including the functionality, parameters, types, and the return value type.
3 TryIt Test Pages (individual assignment question) [15 points]
For each service and operation that you developed, you must develop a TryIt test page to allow the human user to test the service. Each test page must contain the following contents:
(A) A sentence to describe the functions of each service (operation);
(B) Server URL of each service (.svc file),
(C) Server URL of the WSDL file,
(D) Method names, with parameter type list and the return type for each endpoint.
(E) Text boxes for entering inputs
(F) Invoke buttons to call the services
(G) a place (e.g., label) to display the service response (output)
You can combine the test pages of multiple services and operations into one test page. You must make sure that you have a GUI to test every service operation that you developed for credit. An example of 3.E, 3.F, and 3.G is given in the figure and in the link below:
Page 5 of 6
More examples of test page are at:
4 Blackboard Submission and Server Deployment [15 points]
4.1 Blackboard Submission (Individual assignment) 
This is an individual submission. Each member must submit all the services into the blackboard submission site. Notice that you must submit the entire project folder with all the sources files, so that the TA can test the code and grade the assignment. You must NOT submit the pre-compiled code. All folders must be zipped into a single file for submission.
One of the team member must submit question 1.
4.2 Deployment of services and TryIt test pages (individual assignment) 
The services should be first developed and tested on .Net development server or on your own IIS. After successfully testing the services and service directory, you must follow the given tutorial to deploy your project into the server. If you are using the WebStrar server, you must deploy the files and the subfolders, without the root folder of each service, into the WebStrar. You must use one of the pre-created folders as the service-root folder for a service. For v-lab users, you must create your own service-root folders and convert these folders into application.
After you have successfully deployed the services, you must link your services into your TryIt test pages. Both services and test pages must be linked into your team’s main page.
4.3 Deployment of main page (group assignment) 
This step is a group task. The joint work (main page) must be submitted into the blackboard and deployed into the server by one of the members. The main page, with the name Default.aspx or index.html, must be deployed into the root folder of your server, so that we can access your main page using the server address without having to specify the sub-path and page name.
Page 6 of 6
Note: Questions 1 and 4.3 are group assignments (20 points), and all the other questions are individual assignments (80 points). In the case that a team is not working properly, you (each member) can submit your own part of the joint work. In this case, the maximum points each member can obtain is 10 out 20