170 likes | 392 Views
Pet Store. PetStore Proposed Solution. pet store e-commerce Web site (“ petstore ”) . A Web application which shoppers use to purchase merchandise through a Web browser
E N D
PetStore Proposed Solution • pet store e-commerce Web site (“petstore”). A Web application which shoppers use to purchase merchandise through a Web browser • pet store administration application (“petstoreadmin”). A Web application that enterprise administrators use to view sales statistics and manually accept or reject orders. While petstoreadmin is a Web application, its user interface is a rich client that uses XML messaging, rather than an HTML Web browser • order processing center (“OPC”). A process-oriented application that manages order fulfillment by providing the following services to other enterprise participants: • receives and processes XML documents, via JMS, containing orders from the petstore • provides petstoreadmin application with order data using XML messaging over HTTP sends email to customers acknowledging orders using JavaMail. • sends XML order documents to suppliers via JMS • maintains purchase order database • supplier. A process-oriented application that manages shipping products to customers by providing the following services: • receives XML order documents from opc via JMS • ships products to customers provides manual inventory management through a Web-based interface maintains inventory database
Requirements Categories and description • All pets should have a description, a price, and a link to add it to the shopping cart • All pets should be categorized according to their type and sub-type, i.e., a male chihuahua would be of type Dog, and of sub-type Chihuahua. • All subtypes and all pets should include a short description. Shopping cart • The user should be allowed to select items to buy, group them, change the quantities, and track this information. This functionality will be described as shopping cart from now on. • The shopping cart should allow the user to purchase the items before placing an order. Pets can be easily added to the shopping cart. Adding pets to the cart should be as ubiquous as possible. • The shopping cart should shortly describe the pets that have been added to it, their price, their quantity, and the total amount to pay. • There is one and only one cart per user.
Requirements cont.. User information • Any user should be allowed to save personal information in the website. • The personal information that a user may save is: • First name and last name • Street address, city, state, zip code, country • Telephone • email • Credit card information. number, type, expiry date • Store personalization options. prefered language, favorite object, banners. • One or more shipping addresses • The user should be allowed to have several shipping addresses • A shipping address includes the following information: label, street address, city, state, zip code, country • User information should only be accessible to the user and it should be protected by username and password. • The user should be allowed to delete or modify his/her user information. • Unregistered users are not allowed to purchase items
Requirements cont.. Interaction with the Order Processsing Center • The petstore should asynchronically communicate with the Order Processsing Center (OPC). • Message delivery must be reliable. When the pet store sends a message, the OPC must receive and process the message exactly once. • If the OPC is not available when the message is sent, the message must be stored and delivered when the OPC becomes available. • The interface between the OPC and the pet store must be flexible. It should be easy to change the implementation of either the pet store or the OPC. • The interface to the OPC should be easily extendable to clients other than the pet store, including clients not written in the Java language. • Each order transmitted by the pet store must include a globally-unique identifier. Purchasing • When the user decides to place an order (buy the items in the shopping cart), he/she must be informed that the transaction took place and be given a unique confirmation code for the transaction
Architectural Approaches • Use of an MVC framework. Functional separation makes applications more reliable and asier to maintain and extend. Application components developed for a MVC framework are often more reusable, as well. • Separation of web and business logic. The application will use enterprise beans to have scalability, reliability, a component-based development model, and common horizontal services such as persistence, asynchronous communication,and declarative transaction and security control. • Local bean logic. The Pet Store site uses enterprise beans that reside on the same machine, and JVM, as their clients. This approach "improve(s) performance and simplif(ies) development". When enterprise beans are distributed among several machines the communication between components is done through remote interfaces. This "improve(s) scalability and availability, [...] but the high cost of remote communication makes them appropriate mostly for coarsegrained operations". • Communication. The Java Pet Store website uses both synchronous and asynchronous communication. It "accesses its catalog synchronously, because accessing a catalog is a fast operation. [It] transmits purchase orders asynchronously because orders may take a long while to complete, and the order processing center may not always be available."
References • https://wiki.sei.cmu.edu/sad/index.php/PetStore_DocumentRoadmap