关键词 > CSE445/598

CSE445/598 Project 3 (Assignments 4 and 5 – 50+50 Points) Summer 2023

发布时间:2023-05-30

Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

CSE445/598 Project 3 (Assignments 4 and 5 50+50 Points)

Summer 2023

A4 Due by 11:59pm of June 10, 2023, in Canvas

A5 Due by 11:59pm of June 17, 2023, in WebStrar Server and in Canvas

Plus a one-day grace period for each assignment.

Introduction

The aim of this assignment is to make sure that you understand and are familiar with the concepts covered in the lectures, including service development, service registration, service deployment, service hosting, service proxy, service binding, service invocation, and application building using your own services and public services. By the end of the assignment, you should have applied these concepts in programming your services, deploying your services, and have used your own services and public services to compose your SOC applications.

In summer session, this project is an individual project and each student will be assigned a server. No cooperation of any kind is allowed. The final project must be deployed into the given Web server: WebStrar. When submitting the services and service test pages into the Canvas, you must submit the folder (folders) with the source code (We will read the source code from Canvas and test the code from the server). For the

server deployment, you can submit folders with the source code or with the precompiled files in the folder. WebStrar Tutorial is given in a separate file, and you can assigned a server site number in another file.

Section I Practice Exercises (No submission required)

No submission is required for this part of exercises. However, doing these exercises can help you better understand the concepts and thus help you in quizzes, exams, as well as the assignment questions.

1.      Reading: Textbook Chapter 3 and Appendix C.

2.      Answer the multiple choice questions 1.1 through 1.16 of the text section 3.10. Study the material covered in these questions can help you prepare for the class exercises, quizzes, and the exams. Answer keys to the questions can be found in the course web page. To better learn these concepts, you should do the exercises based on your understanding, and then check the answer keys.

3.      Study for the questions 2 through  16 in text section 3.10. Make sure that you understand these questions and can briefly answer these questions. Study the material covered in these questions can help you prepare for tests and understand the homework assignment.

4.      Questions 17 through 19 are largely covered by the assignment questions in Part II.

Section II Project Questions (Submission required for all students)

This project is an individual project, and it is an open-ended type of project. Each student must perform and submit independent and unique work based on project requirements.

The  purpose  of this  project  is  to  exercise  service  development,  service  discovery,  remote  binding, application composition using your own services and external public services. You will also exercise service and application deployment in this project. Some of the services to be developed can be synthetic, e.g., banking service, while some should be realistic, e.g., en/decoding, en/decryption, and product catalog. However, you should make your overall application as realistic as possible. The project will be completed in two assignments, each with multiple parts.

Assignment 4: Include Questions 1 and 2

1 Requirement Document [10 points]

The requirement document will contain the following contents.

1.1    Description of the service-oriented computing system that you plan to develop.                             [2]

1.2    A diagram showing the overall system design, its layers, components, and the connections among the services. A sample diagram is given in Figure 1. You must come up with your own system. You will not implement the application logic layer of system outlined here in this assignment. It will be implemented in Project 5. The focus of this assignment is to develop and deploy the services outlined in this requirement document. Thus, you must pay more attention to the services in this assignment. [2]

1.3    Create a service directory (a table) listing the services that you plan to develop. You must list all services that you use this assignment in this table. Each service must be described in such detail that shows the feasibility of implementing the service in a reasonable amount of time, e.g., 10 hours. All the services must be related to the application that you outlined in the question above and support the composition of the application. The contents of the table below are examples, and you need fill the table based on your own work plan.              [6]

This page is deployed at: Fill out the URL in A6 submission.

This project is developed by: Put your name here.

Provider name

Service name, with input and output types

TryIt

link

Service description

Planned resources need to

implement the service

Your

name

Encryption and decryption: Input: String Output: String

TryIt

Cipher encryption and decryption

Use library class and local component to implement the service

Your

name

SolarPower Inputs: zip code and size Output: integer

TryIt

Output annual KW        number for a given        panel size at a given zip code location

Retrieve information from national database at: http://graphical.weather.gov/xml/

Your

name

findStore Input: zipcode Output: list of string

TryIt

Use an existing online service or API to find the locations of a given store name

Use the service from Yelp site at: http://www.yelp.com/

Your

name

textToPhone

inputs:

string Account, string Password, string Receiver, string Subject, string Body Output: boolean

TryIt

Send a text to a cell     phone and return if the message is sent successfully

Use google gmail account and carrier services:

phone_[email protected]

phone_number@messaging.sprin

tpcs.com

phone_[email protected]

phone_[email protected]

2 You must implement a set of services in this assignment. There are two types of services to be developed: required services and elective services. You will implement the required services in Assignment 4 and the elective services in Assignment 5.

2.1 Required Services [30 = 15+15]

A set of required services and their requirements are listed in a separate document named List of Required Services” . You must choose and implement two services from the given list. For the elective services in the next section, you will be asked to develop at least one RESTful service.

2.2 TryIt Pages of the Required Services [10]

What is a TryIt page? It is a simple Web application that allows you to test your services by entering inputs and displaying outputs. The TryIt page mainly provides a GUI for the input and output of the Web services or APIs that you have developed. The difference between a TryIt page and a normal Web application is that a TryIt page focuses on showing the functionality of individual services (like unit testing in software testing), while a Web application focuses on providing the overall functionality of the application that makes use of the services and components (like integrated testing in software testing).

For each service or service operation that you developed, you must develop a TryIt test page to allow the human user to test the service. The TryIt test page must contain the following contents:

(A) A sentence to describe the functions of each service (operation);

(B) The URL of the service

1.   For Part 1 submission: use the Localhost URL of the WSDL file.

2.   For the final submission in Part 2, the service URL of each service (or its WSDL     address) must be used in the TryIt page must be the URL in the server. No localhost address can be used. For the required services, you will develop WSDL/SOAP         services.

(C) Method names, with parameter type list and the return type for each endpoint.

(D) Text boxes for entering inputs

(E) Invoke buttons to call the services

(F) a place (e.g., label) to display the service response (output)

The two services and the TryIt page will be tested on the localhost in part 1 submission. You must make sure that the TAs can test your services and TryIt pages on their computer.

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:

http://venus.sod.asu.edu/wsrepository/Services/FileServiceTryIt/

More examples of TryIt test page are at:

http://venus.sod.asu.edu/WSRepository/CoffeeMachine/

https://venus.sod.asu.edu/WSRepository/Services/ImageVerifierTryIt/TryIt.aspx

https://venus.sod.asu.edu/WSRepository/Services/RandomStringSvc/Tryit.aspx

You must submit a single zip file into Canvas. The zip file must contain all the required services and their TryIt pages developed in assignment.

Assignment 5: Include the following questions:

3 In this question, you will develop and deploy the elective services and their TryIt pages into WebStrar server. You must also deploy the required services developed in Assignment 4.

3.1 Elective Services: You must develop at least two elective services (or service operations). The elective services must be related to the application defined in question 1. At least one service must be converted to the RESTful service. For the rest of the services, you can choose to develop WSDL services or RESTful services. For developing RESTful service, please follow Lecture Slides L10 or textbook section 7.3.3.2. [25 points for 3.1]

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 points 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 points 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 use a text file (See Chapter 3 L12 Slides), a JSON file, or an XML file (Read Text Chapter 4 and also Chapter 5, Section 5.4).                         [15 each]

To obtain the full points in question 3.1, 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. 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.2 Development of TryIt Pages for Elective Services [5 points for 3.2]

You must develop TryIt test page for elective services. The requirement is the same as defined in question 2.2, but all the URLs must be based on the server URLs because the services have been deployed to the server. You must also have the URL of the Main page (See next question) linked to the test pages, so that one can return to the main page from the TryIt page.

3.3 Deployment of Required Services, Elective Services, and TryIt pages [5 points for 3.3]

All the services (required and elective) and their TryIt pages must be deployed into WebStrar server. You must deploy the services first. Before deploying the TryIt pages, you must change all the service references from localhost addresses to the server addresses, so that the services can be tested from the server.

4 The main page must be an html page. The main page must be named index.html, so that the page can be accessed through the link:http://webstrarX.fulton.asu.edu/index.html, where X is your site number. The main page must contain the following contents:

4.1    Service directory (a table) listing the services and links to the test pages (TryIt pages) and services. The schema and a list of example services are shown in the table below, which is similar to the table in the requirement document, except that the TryIt pages must be linked into the page.                  [8]