njit creating a online music store using amazon web services final project cs633:851 joe dosanjos ~...
TRANSCRIPT
NJIT
Creating a Online Music Store using Amazon Web Services
Final Project CS633:851Joe DosAnjos ~ Puneet Kaur
Deepti Madiraju ~ Slavica Pepovska
Prem Saggar ~ Nashid Salahuddin
Arun Sharma ~ Glenn Pozo
04/18/232
Project Description
Creating a web site that will connect to Amazon Web Services and successfully draw all the music products available on the Amazon Server
Users are able to search our web site for music products which connects to Amazon using web services, and purchase products through Amazon’s shopping process
04/18/233
Project Description (2)
Users are able to view our “Top Ten” searches (what people are looking for), which we are tracking in our MySQL database
Users are able to sample mp3 music on our web site, using the MP3 widget
04/18/234
Project Design/Requirements For this project, the team decided to use agile
software development with rapid prototyping Considering the fact that our requirements
frequently changed and evolved throughout the project life-cycle, agile methods were the most well suited for the task at hand
Project was frequently adapted to the business needs and allowing timeframe, where teamwork was constantly promoted to create balance between requirements and deliverables
04/18/235
Team meetings conducted every 2-3 days Recorded sessions from the meeting were
posted on Moodle the following day Requirements:
Install and setup applications needed for the project
Design 3-tier client/server project (Presentation Layer, Application Layer and Database Layer)
Use Amazon Web Services Use a professional database Create a presentation
Project Design/Requirements
04/18/2310
The Purpose of the Project To show Development of a 3-tier client
server project To demonstrate Amazon Web Services
concepts To illustrate connectivity to a professional
MySQL database To implement a distributed system using
J2EE technologies
04/18/2311
Major technologies used
JDBC JUnit Java SQL JSP/Servlets
Apache Tomcat Server SOAP Web Services Test Driven
Development
04/18/2312
WAR File
The code was distributed between the developers in a war file (web application archive)
War file contained our JUnit tests, Java server pages, HTML pages, Servlets and Java classes, xml files
04/18/2313
Amazon Web Services
One of the requirements for this project was to use Amazon Web Services (AWS)
AWS is a collection of services offered from Amazon via the Internet
For our project we used: Amazon Elastic Compute Cloud (EC2) Amazon Widgets Amazon Associates Web Service (A2S,
formerly Amazon E-Commerce Service or ECS)
04/18/2314
Amazon Elastic Cloud (EC2)
Amazon Web Service that allows users to rent computers and install their own applications on them
For our project AWS was donated to NJIT, so we as students can gain experience in cloud computing
Amazon virtual server is monitored with Xen system
04/18/2315
EC2 continued
XEN system is virtual monitor that allows for several operating systems to be installed on the same computer hardware
XEN is structured with hypervisor, which lies in the most privileged layer
Hypervisor monitors the operating systems installed in the upper layers across the physical CPUs
04/18/2316
EC2 continued
Currently supported operating systems are Solaris, Linux and NetBSD (Unix derivative OS)
For our project we used a Linux operating system
04/18/2317
Amazon Associates Web Services (A2S)
Part of the Amazon Web Services It is a application programming interface
(API) that can be accessed with SOAP or REST protocols
For our project we used SOAP protocol to access the web service. We chose SOAP because Amazon SOAP is more mature and well documented vs REST
04/18/2318
Amazon Associates Web Services (A2S)
A2S allows developers to retrieve information from Amazon’s product catalog, including images, product descriptions, reviews; and interfaces with shopping carts
For our project we decided to retrieve information on music products available in Amazon’s catalog
04/18/2319
Amazon Widgets
Part of Amazon Web Services Customizable elements (via web interface)
that users can deploy to their web site to feature products from Amazon’s Catalog
For our project we used Carousel Widget, and Mp3 Widget
For the widget to work we need JavaScript and Flash enabled
04/18/2320
Location of the project
http://174.129.241.187:8080/AmazonWebProject/WebContent/index.jsp
Click on the link above to go to the working Implementation of the Music Store Project
04/18/2322
Screenshots from the working project cont.
Previous slide provides a view of the searched results from the Amazon’s product catalog in the left column when the user on the web site typed justin timberlake in the search box
Note that on the right column justin timberlake is displaying a count of 6 searches in the music category. This shows that justin timberlake was searched 6 times on our web site in the music category
04/18/2324
Screenshots from the working project cont.
The previous screenshot provides a view from our MySQL database, showing the count of searches for a Search_String ‘justin timberlake’. Please note that the 2 instances for category All, were from the early stages of our development stage, after which we decided to delete this category
04/18/2326
Screenshots from the working project cont.
The previous screenshot provides a view from our web site, showing results from the search ‘madonna’
Please note that now on the right column, the count for Madonna has increased to value 7, vs the previous screenshot which showed value of 6
04/18/2328
Screenshots from the working project cont.
The previous screenshot provides a view from our MySQL database, showing the count of searches for a Search_String ‘madonna’ as 7
04/18/2330
Screenshots from the working project cont.
The previous screenshot provides a view from our mp3 clips page, showing the Amazon widget where users can sample mp3 music available in the Amazon’s product catalog
04/18/2333
Conclusion
Controlling an unpredictable project is a huge responsibility. Quality team work is especially important when using a agile software development approach for the project, because everyone’s work is dependent upon fellow team members. As an example, frequent communication between agile team members plays a vital role in the success of the project's longevity
04/18/2334
Conclusion cont.
In our project, we played the role of both, the customer and the developer, and our adaptation to requirement changes were easier than typical real world projects, where the customer will probably want to stick to the original idea and the developers will have to make sure that those requirements are met (depending on budget and resources available for the particular project)
04/18/2335
Conclusion cont.
As any other project, time restrictions played an important role in our project and were the main reason for our requirement changes.
Example: We originally decided to implement our own shopping cart, but because of time restrictions of the project, we changed the requirement and decided to use Amazon’s shopping cart instead
04/18/2336
References
https://widgets.amazon.com/ https://affiliate-program.amazon.com http://aws.amazon.com/ http://aws.amazon.com/ec2/