party planner jenifer valdes wilmer chavez shawn huntington mike chervony jonathan vidaurraza...
TRANSCRIPT
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
2COP 4991 – Fall 2006 – Term Project Presentation - <<Project Name>>
AgendaAgenda
Introduction Proposed System System Architecture BPEL Processes Web Service Partners Testing Demo Summary
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.
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.
5COP 4991 – Fall 2006 – Term Project Presentation - <<Project Name>>
System ArchitectureSystem Architecture
Workflow model of our system
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.
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.
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
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
}
}
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.
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
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; } }
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; } }
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;
}
}
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.
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
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
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.
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.
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