200 likes | 542 Views
NOSQL Ecommerce Web Application. By: Raj Akula . Professor: Wei Hao . Course: CSC 599. Semester: Fall 2011. Overview. Discuss TPC-W benchmark. What is NOSQL, and what are the benefits of using NOSQL versus a relational database.
E N D
NOSQL Ecommerce Web Application By: Raj Akula . Professor: Wei Hao. Course: CSC 599. Semester: Fall 2011.
Overview • Discuss TPC-W benchmark. • What is NOSQL, and what are the benefits of using NOSQL versus a relational database. • Purpose of Research. • About Web Application Prototype, Demo. • Problems faced, and how they were dealt. • What is Edge Computing. • Comparison to some of the similar memory management techniques. • Future Development.
TPC-W - Transactional Web E-Commerce Benchmark • TPC Members include companies such as IBM, Intel, Oracle, Siemens, Dell, HP, and Microsoft. • TPC-W is a benchmark for E-Commerce web applications. It describes everything from, the web application have the capability to handle a period of sales on items to the performance metrics such as response time needed to effectively build a Ecommerce web application. • We used only a subset of these specifications.
What is NOSQL, and why is better then relational databases. • NOSQL database are not typical the way we think of database, no join statements. They store information without requiring the need to specify a scheme. • Its better then relational database because of the fact that we don’t have a typical definition of a scheme NOSQL can be expanded easily and can scale based on the needs of your application. • This is something that isn’t possible with relational databases due to the fixed scheme constraints.
Purpose • Demonstrate NOSQL database can be used to run a large ecommerce web application. • The design of the web application used a subset of the TCP-W specs to show. • To be used as a prototype to build an E-Commerce website that takes advantage of Edge Computing concepts. • Understand the challenges of using NOSQL databases.
Application Overview: Amazon Simple DB - NOSQL Web Server, JSP Pages, Java Classes Web Browser Users
Prototype Development and Deployment: • For development used Eclipse, Apache Tomcat, JSP, Java Classes, SimpleDB Packages for Java. • Deploy Web Application on laptop, connect to Amazon’s Simple DB which is a NOSQL.
JSP Pages Java Classes • Account • Address • Customer • DatabaseAccess • Import • Item • ItemChange • ItemListChange • Order • Payment • ShoppingCart • Home • Import • Item • LogIn • PlaceOrder • Search • ShippingCart • SignUp • StoreUserSignUp • ViewOrder
Problems faced and their solutions: • ID’s having relationships between different tables/domains. • For example storing a customer’s record in an order. We don’t want duplicate information so we don’t store each time. Also this keeps data consistent when we try to pull data, like all orders this customer has placed. • So created a ID generator mechanism. • No reporting to fetch the number of orders per day and number of items ordered. • Created extra reporting domains to keep track of this. For future use.
Edge Computing • Is what the name suggests. Computing at the edge of the internet. It is used to take the load of a centralized server. Have several servers deployed on the different edges of the internet and have an addresses specified to that region. For example .com, .in, .ch, .ln, .fr, and so forth… • This will take the balance of the central server. The duplicate servers running an instance of the application will take the load and just pass the data nightly to the central server.
Consideration? • How will the data be spread out? Meaning how will inventory be spread out to the different servers? So a call to the central server can be minimized. • At what times will an update to the central server take place, to sync data? Different time zones, help keep the load of the edge servers low. • How do we route data traffic. Do we base it only on location or a combination of location and load? • What are the current ways edge computing is handled in relational database can we use the same concepts in NOSQL.
K Clustering • Is a method clustering based on the number of events or observations. • Partitions inventory in our case and specifies them to a specific server.
Memory Management Techniques • Simple solution have one server that handles everything. Since different time zones load will not be very high at one time. It will be spread out evenly. • A bit more complicated give each server on the edge a equal number of items inventory and then keep a little for backup in the central server. • Use a SMART Algorithm, one memory management principle is to see what happened in the past to predict the future. Look at the last 30 days and see the number of products bought. Depending on the day in the past 30 days give the quantity a different weight-age.
Further Development: • To the prototype add nightly syncing to central server. • Add kron jobs that calculates the inventory distributions at different intervals. • Add elements such as quantity to items. • Create reporting tables to create tab of which items were purchased within the past month, at which location(edge server). • Launch instances on cloud.
Thesis Question • Will the smart algorithm to divide inventory based on previous purchases be the fastest in terms of response time? • Results expected are the following • Simple Solution takes the highest response time. • Equal divided inventory takes the second highest response time. • Smart Algorithm will take the lowest response time.