Java Petstore : A Case Study Rohit Nambiar July 2005
OBJECTIVE : Demonstrate, Java BluePrints help in building flexible, scalable, cross-platform Web-based applications. Show the recommended Architectural design pattern approaches to designing J2ee application. Discuss the Architecture of the Petstore Application. Discuss the consistent Petstore design conforming to the J2ee Design Patterns. Give an Overview as to how the application benefits from such Architecture and Design. Build and run the petstore application. Unit testing, Profiling and Load testing the Petstore application to get some performance statistics.
Background : Basic J2ee Architecture
Background continued…… J2EE application is hosted within a container Consists of Client Tier, Web Service container and Back end Database Web Service container – Web Container and EJB container Business logic is built using Enterprise JavaBeans (EJB) components. and connects to databases using JDBC or SQL/J Business partners can connect with J2EE applications through web services technologies (SOAP, UDDI, WSDL, ebXML)
Introduction Continued…… Use Case Diagram
ACTORACTION DESCRIPTION CustomerHomepageThe main page that loads when the user first starts the application. CustomerBrowse catalogEach category has several products associated to it CustomerBrowse DetailEach product variant has detailed view that displays the product description, a product image, price, and the quantity in stock. CustomerBrowse ItemEach Item is viewed. CustomerBrowse ProductsIf we now select a product the application will display all variants of the product. CustomerUpdate CartThis allows the user to manipulate the shopping cart (add, remove, and update line items). CustomerUpdate Personal InfoThis allows user to update and manage his personal information CustomerUpdate AccountThis allows user to view his Account. CustomerSign OffThe checkout page displays the shopping cart. CustomerSubmit OrderThe billing and the shipping addresses are displayed. CustomerPurchase OrderThe final step wherein the order is committed to the database.
Petstore Model View Controller Architecture: The MVC architecture provides flexibility, reusability, testability and clear design roles for application components.
Structural View Architecture:
Petstore Modules & Functionalities: MODULESFUNCTIONALITY SignOnIt helps a user to sign on before accessing certain screens, and manages the sign on process ControlSends request to the business logic, controls screen flow, also coordinates component interactions. Product CatalogUser can search for products and also shows the descriptions of the selected items CustomerThis module helps in representing customer information like address, credit card info and contact info. MailUsed for sending confirmation messages to the user. Shopping CartIt tracks the items a user has selected for purchase. Web Application Framework
Class Diagram – SignOn Module
Product Catalog Module
Shopping Cart Module
Mail Module:
Customer Module:
Control Module: Filter Request: Encoding Filter, which ensures that request and response encoding match and SignOnFilter, which enforces security and performs user signon. Front Controller - MainServlet processes all requests and handles request dispatch, screen flow, and view generation. Map request to HTML action and execute HTML action Map event to EJB action and execute EJB action View selection
Control Module Continued……..
PAGE FLOW DIAGRAM:
Evaluations: Web Application Framework - WAF provides a number of services including request filtering and dispatching, templated view generation, a set of reusable custom tags, and screen flow control. EJB centric design – For Petstore, the buisness logic is shifted to the EJB tier. This provides scalability, reliability, persistence, asynchronous communication and security control. Local enterprise beans – It provides high-performance access to fine- grained business logic, while maintaining the high-level services of an enterprise beans container. Code Complexity – Approximately lines of code. 100 Packages appx and 300 Classes appx.
Enhancement: Sun claims blueprints described are not for performance but is a kind of benchmark for building j2ee applications. No real performance measure were done to compare with other web applications. To have a comparative case study of the architectural and design differences of a java Petstore and an equivalent.Net Petshop and run some perfomance tests to get some statistics.
Refrences: [1] Sun Microsystems, ; [2] Java Blueprints, [3] Java Petstore Source code, [4] D. Alur, J. Crupi, D. Malks. Core J2EE Patterns., Prentice Hall PTR. [5] Model–View–Controller, er/ [6] Core j2ee Patterns, [7] Designing Enterprise Applications with the J2EETM Platform, Second Edition s_2e/ [8] Java Pet Store Sample Application Implements Core J2EE Patterns, [9] AppPerfect DevSuite 5.0 Testing Tool, er/ s_2e/