party planner jenifer valdes wilmer chavez shawn huntington mike chervony jonathan vidaurraza...

20
Party Planner Party Planner Jenifer Valdes Jenifer Valdes Wilmer Chavez Wilmer Chavez Shawn Huntington Shawn Huntington Mike Chervony Mike Chervony Jonathan Vidaurraza Jonathan Vidaurraza Prepared for COP-4991 Component-Based Software Development Professor: S. Masoud Sadjadi COP 4991 – Fall 2006 – Term Project Presentation

Upload: aubrie-fisher

Post on 01-Jan-2016

217 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Party Planner Jenifer Valdes Wilmer Chavez Shawn Huntington Mike Chervony Jonathan Vidaurraza Prepared for COP-4991 Component-Based Software Development

Party PlannerParty PlannerJenifer ValdesJenifer Valdes

Wilmer ChavezWilmer ChavezShawn HuntingtonShawn Huntington

Mike ChervonyMike ChervonyJonathan Vidaurraza Jonathan Vidaurraza

Prepared for COP-4991 Component-Based Software Development

Professor: S. Masoud Sadjadi

COP 4991 – Fall 2006 – Term Project Presentation

Page 2: Party Planner Jenifer Valdes Wilmer Chavez Shawn Huntington Mike Chervony Jonathan Vidaurraza Prepared for COP-4991 Component-Based Software Development

2COP 4991 – Fall 2006 – Term Project Presentation - <<Project Name>>

AgendaAgenda

Introduction Proposed System System Architecture BPEL Processes Web Service Partners Testing Demo Summary

Page 3: Party Planner Jenifer Valdes Wilmer Chavez Shawn Huntington Mike Chervony Jonathan Vidaurraza Prepared for COP-4991 Component-Based Software Development

3COP 4991 – Fall 2006 – Term Project Presentation - <<Project Name>>

IntroductionIntroduction

Our group consists of five people. Everyone worked together to come up with an idea for a web-service that met the professors specifications and everyone participated in writing code for this project. Everyone was assigned specific tasks that corresponded best with their talents.

Background: From the start we knew what we wanted to do. We wanted to do a party planner. We were a little discouraged at first when numerous web searches (including websites such as Xmethods provided by the professor) yielded no existing web services that would help. We pitched the idea to the professor stating we’d probably have to make all our own web-services and he approved the idea.

Scope of the system: Our system can be expected to provide the end users with an easy way to get an actual cost for planning a party with their own custom choices. The following workflow chart can give you an idea.

Objective and Success Criteria: We ask you evaluate our system on the functionality and complexity of the services and their weaving via BPEL, even if the foreground use to the user (party planner) might seem simplistic. We set out to do something that did not exist, there is no service we could find that helped an end user plan a party with all the choices we are giving. We adhered to the idea of the assignment while still being creative with its creation. An end user looking to plan a party can get a great idea of their financing requirements through our system.

Current System (if any): As previously stated, we could not find any existing system that worked the way our system does. At best, there are some services that may offer one of our services, not all four.

Page 4: Party Planner Jenifer Valdes Wilmer Chavez Shawn Huntington Mike Chervony Jonathan Vidaurraza Prepared for COP-4991 Component-Based Software Development

4COP 4991 – Fall 2006 – Term Project Presentation - <<Project Name>>

Proposed SystemProposed System

Purposed System and Architecture: We purpose a party planner that will help users create a complete party plan. It is scalable from small to large parties. There are some companies that will help in finding a specific component of a party, however our service offers the four main elements of party planning combined in one. We have five web services in total, the AdderService, the FoodService, TransporationService, LocationService, and the DJService. We created the system with the goal of integrating them all within one all encompassing BPEL process. This is done with the goal of making it as easy as possible on end users. Our system is designed from such a stand-point that fault-tolerance is not an issue due to the restrictions on user-end put and defaults. The integration runs smoothly from a performance stand-point and we foresee no security issues.

Page 5: Party Planner Jenifer Valdes Wilmer Chavez Shawn Huntington Mike Chervony Jonathan Vidaurraza Prepared for COP-4991 Component-Based Software Development

5COP 4991 – Fall 2006 – Term Project Presentation - <<Project Name>>

System ArchitectureSystem Architecture

Workflow model of our system

Page 6: Party Planner Jenifer Valdes Wilmer Chavez Shawn Huntington Mike Chervony Jonathan Vidaurraza Prepared for COP-4991 Component-Based Software Development

6COP 4991 – Fall 2006 – Term Project Presentation - <<Project Name>>

System ArchitectureSystem Architecture

Persistent Data Management: Persistent data is not an issue with our system. All required values are embedded within the web-service reflecting the current pricing found from our research for all the user options. The user is given the ability to print the output, however it is not saved in long term storage.

Access Control and Security: Given the nature of the system, no authentication is needed in its current form. The information is publicly available and our service is meant to serve as a tool for helping the end user put it all together. If the system were scaled in the future (perhaps in a web-interface) then implementing user authentication and perhaps even persistent data storage could be implemented without much trouble.

Page 7: Party Planner Jenifer Valdes Wilmer Chavez Shawn Huntington Mike Chervony Jonathan Vidaurraza Prepared for COP-4991 Component-Based Software Development

7COP 4991 – Fall 2006 – Term Project Presentation - <<Project Name>>

BPEL ProcessesBPEL Processes

As previously stated, our goal was to design one all encompassing BPEL process to integrate all five web-services. Parallel services were used to carry-out the required work-flow of the party specific web services and have them tie together with a with a final service that will add the returned values from each of the four party specific services. Initially the user will be prompted for input in the receive service (the client) and the values entered will be passed on to the corresponding web-service via the Assign activities. The invoke activities (web-services) will take the input passed to them from the Receive Activity and return a value depending from the web-service. This value returned will be the price that is within the java code for that specific web-service. Another set of assign activities are then used to pass on the returned price values to the AdderService. The adder service takes each input passed to it (the values from each web-service) and returns their total. From here the AdderService will send the total returned amount (the sum of all web-service prices) to a reply activity via an assign activity. Finally, the return activity returns the total to the client.

Page 8: Party Planner Jenifer Valdes Wilmer Chavez Shawn Huntington Mike Chervony Jonathan Vidaurraza Prepared for COP-4991 Component-Based Software Development

8COP 4991 – Fall 2006 – Term Project Presentation - <<Project Name>>

There are five total web-services used. The AdderService, the TransporationService, the FoodService, the LocationService, and the DJservice.

As previously explained, these five services interact via the BPEL process. The four party specific web-services return the cost for the users selection and the AdderService takes all the party specific web-services returned values as input and adds them all together. Examples of a party specific web-service and the adder service are available on the upcomming pages.

Web Service PartnersWeb Service Partners

Page 9: Party Planner Jenifer Valdes Wilmer Chavez Shawn Huntington Mike Chervony Jonathan Vidaurraza Prepared for COP-4991 Component-Based Software Development

9COP 4991 – Fall 2006 – Term Project Presentation - <<Project Name>>

djServicedjService

public class DJ { private double costPerHour; //variable to hold the hourly cost for each music genre private double totalCost; //variable to hold the total cost for the service

public DJ() throws RemoteException { }

public double getMusic(String music, double hours) { //condition statements that set the cost per hour based on the music genre if (music.equalsIgnoreCase("Rock & Pop")){ costPerHour = 200.00; //sets cost per hour variable } else if (music.equalsIgnoreCase("R&B/Hip-Hop")){ costPerHour = 250.00; //sets cost per hour variable } else if (music.equalsIgnoreCase("Country")){ costPerHour = 150.00; //sets cost per hour variable } else if (music.equalsIgnoreCase("Jazz")){ costPerHour = 100.00; //sets cost per hour variable } else if (music.equalsIgnoreCase("Classical")){ costPerHour = 100.00; //sets cost per hour variable } else if (music.equalsIgnoreCase("Latin")){ costPerHour = 200.00; //sets cost per hour variable } else if (music.equalsIgnoreCase("Christian")){ costPerHour = 80.00; //sets cost per hour variable } else costPerHour = 0.0; totalCost = costPerHour * hours; //calculates the total cost of service return totalCost; //return total cost of music service

}

}

Page 10: Party Planner Jenifer Valdes Wilmer Chavez Shawn Huntington Mike Chervony Jonathan Vidaurraza Prepared for COP-4991 Component-Based Software Development

10COP 4991 – Fall 2006 – Term Project Presentation - <<Project Name>>

djService ExplaineddjService Explained

DJ web service description: The purpose of the DJ web service is to calculate the total cost associated with the services of a Disc Jockey given a genre of music and the hours of service needed. The service requires two inputs of type String, the genre or music type and the hours of service. The service calculates the total cost for the service and returns that value as a type Double.

The music genre available are as follows: "Rock & Pop" at $200 per hour "R&B/Hip-Hop" at $250 per hour "Country" at $150 per hour "Jazz" at $100 per hour "Classical" at 1200 per hour "Latin" at $200 per hour "Christian" at $80 per hour

Each of the services are offered for 3, 6, or hours.

Page 11: Party Planner Jenifer Valdes Wilmer Chavez Shawn Huntington Mike Chervony Jonathan Vidaurraza Prepared for COP-4991 Component-Based Software Development

11COP 4991 – Fall 2006 – Term Project Presentation - <<Project Name>>

Location ExampleLocation Example

public class Location { //Define the variables private final double smallHall = 1000 ; //Small Banquet Hall private final double medHall = 1700 ; //Medieum Banquet Hall private final double medVenetian = 1500 ; //Venetial Pool, Medium private final double largeHilton = 3000 ; //Miami Airport Hilton, Large private final double largeHardRock = 5000 ; //Seminole HardRock, large and expensive private final double nowhere = 0 ; //nowhere, your having the party at your house public Location() throws RemoteException { } public double locationPrice(String choice) { if (choice.equalsIgnoreCase("Small Banquet Hall")) { return smallHall ; } else if (choice.equalsIgnoreCase("Medium Banquet Hall")) { return medHall ; } else if (choice.equalsIgnoreCase("Venetian Pool")) { return medVenetian ; } else if (choice.equalsIgnoreCase("Miami Airport Hilton")) { return largeHilton ; } else if (choice.equalsIgnoreCase("Seminole Hard Rock Casino")) { return largeHardRock ; } else return nowhere ; } //end locationPrice method } //end class

Page 12: Party Planner Jenifer Valdes Wilmer Chavez Shawn Huntington Mike Chervony Jonathan Vidaurraza Prepared for COP-4991 Component-Based Software Development

12COP 4991 – Fall 2006 – Term Project Presentation - <<Project Name>>

Food ServiceFood Service

public class Food { private double coldBuffet = 499.99; private double classicHotBuffet = 599.99; private double specialtyBuffet = 749.99; //seafood, bbq, chinese private double zero = 0.00;

//Constructor public Food() throws RemoteException {

}

public double foodPricing(String choice) { if (choice.equalsIgnoreCase("Cold Buffet")) return coldBuffet; else if (choice.equalsIgnoreCase("Classic Hot Buffet")) return classicHotBuffet; else if (choice.equalsIgnoreCase("Specialty Buffet")) return specialtyBuffet; else return zero; } }

Page 13: Party Planner Jenifer Valdes Wilmer Chavez Shawn Huntington Mike Chervony Jonathan Vidaurraza Prepared for COP-4991 Component-Based Software Development

13COP 4991 – Fall 2006 – Term Project Presentation - <<Project Name>>

Transportation ServiceTransportation Service

public class Transportation { private double lCL = 220; private double hL = 396; private double cCL = 260; private double eL = 400; private double rR = 380; private double zero = 0;

public Transportation() throws RemoteException { }

public double transportPricing(String choice) { if (choice.equalsIgnoreCase("Lincoln Towncar Limo")) return lCL; else if (choice.equalsIgnoreCase("Hummer Limo")) return hL; else if (choice.equalsIgnoreCase("Chrysler 300C Limo")) return cCL; else if (choice.equalsIgnoreCase("Escalade Limo")) return eL; else if (choice.equalsIgnoreCase("Rolles Royce")) return rR; else return zero; } }

Page 14: Party Planner Jenifer Valdes Wilmer Chavez Shawn Huntington Mike Chervony Jonathan Vidaurraza Prepared for COP-4991 Component-Based Software Development

14COP 4991 – Fall 2006 – Term Project Presentation - <<Project Name>>

AdderService ExampleAdderService Example

import java.rmi.RemoteException;

public class Adder

{

public double add(double w, double x, double y, double z) throws RemoteException

{

return w + x + y + z;

}

}

Page 15: Party Planner Jenifer Valdes Wilmer Chavez Shawn Huntington Mike Chervony Jonathan Vidaurraza Prepared for COP-4991 Component-Based Software Development

15COP 4991 – Fall 2006 – Term Project Presentation - <<Project Name>>

TestingTesting

Our system is tested using a Windows Application. The client can be installed on any system. The user running the system will have to deploy each web-service

BPEL Adder Location Transportation Food DJ

The windows form will appear and prompt the user to enter their choices for our four party planning areas, once the user clicks submit they should see a returned value showing the total amount for their selection.

Page 16: Party Planner Jenifer Valdes Wilmer Chavez Shawn Huntington Mike Chervony Jonathan Vidaurraza Prepared for COP-4991 Component-Based Software Development

16COP 4991 – Fall 2006 – Term Project Presentation - <<Project Name>>

Issues in testingIssues in testing

We had a few issues in testing, however nothing major. All were simple coding issues.

Unsuccessful tests:

The DJ Service was deployed as DjService, BPEL pointed towards djService

Second parameter not declared in WSDL file

Page 17: Party Planner Jenifer Valdes Wilmer Chavez Shawn Huntington Mike Chervony Jonathan Vidaurraza Prepared for COP-4991 Component-Based Software Development

17COP 4991 – Fall 2006 – Term Project Presentation - <<Project Name>>

DemoDemo

If time allows, we can deploy the required services mentioned in slide 9 and actually run the client. If not examples are available on the upcoming slides:

Slide 12 = Client

Slide 13 = Results

Page 18: Party Planner Jenifer Valdes Wilmer Chavez Shawn Huntington Mike Chervony Jonathan Vidaurraza Prepared for COP-4991 Component-Based Software Development

18COP 4991 – Fall 2006 – Term Project Presentation - <<Project Name>>

ClientClient

Above is the Client Form that prompts the user for the required input to pass to the party specific services.

Page 19: Party Planner Jenifer Valdes Wilmer Chavez Shawn Huntington Mike Chervony Jonathan Vidaurraza Prepared for COP-4991 Component-Based Software Development

19COP 4991 – Fall 2006 – Term Project Presentation - <<Project Name>>

ResultsResults

Upon clicking submit, all the aforementioned background work is done and the user will see a new window showing their selection and total cost. They have the option to print or exit.

Page 20: Party Planner Jenifer Valdes Wilmer Chavez Shawn Huntington Mike Chervony Jonathan Vidaurraza Prepared for COP-4991 Component-Based Software Development

20COP 4991 – Fall 2006 – Term Project Presentation - <<Project Name>>

SummarySummary

Lessons Learned: Debugging: BPEL, web services (not deploying, creating

errors, not returning anticipated values, etc) Importance of System Architecture The true definition of web services (as opposed to the Google

definition I (Shawn) provided on the first day of class.

Estimated time spent on each part: Web Services: 3-4 Hours BPEL Process – 4 Hours Client – 4 Hours Deploying Processes – 1 Hour Debugging – 1 Hour PowerPoint – 1 Hour Waiting for PowerPoint template from professor: 4 days 37

minutes