Chapter 4. Architecture

Table of Contents

Software Architecture
Deployment Architecture

KonaKart has a flexible architecture lending itself to a variety of different physical implementations to suit different needs.

Software Architecture

KonaKart has a modular architecture consisting of different software layers as can be seen in the diagram below. Source code is provided for the JSPs, HTML, Struts Actions, KonaKart Client (Business and Enterprise only) and all the modules and reports. The diagram shows how storefront applications written in Java and other technologies may interface to the KonaKart engines using one of the supported API technologies.

KonaKart Architecture

KonaKart - Software Architecture

The KonaKart Server is a multi-threaded component that contains the core functionality of the eCommerce application. It exposes a JAXWS SOAP Web Service interface ( WSDL ), an RMI interface, a JSON interface and a Java API ( Javadoc ). It interfaces to a persistence layer and plug in modules for calculating shipping costs, promotional discounts and for connecting to payment gateways. The persistence layer supports databases from many different vendors such as Oracle, Microsoft’s SQL Server, DB2 from IBM, MySQL, PostgreSQL and many others.

The KonaKart Client manages the state of a user (associated with the user’s session) as he navigates around the application. The process of writing a web based application is greatly simplified by using the API of the KonaKart client ( Javadoc ) rather than by calling the KonaKart Server directly. Note however that you do lose some flexibility calling the Client rather than the Server since the Client has been written for a certain type of storefront application which may not exactly match the storefront that you need to build.

Struts is a popular framework that implements the Model-View-Controller (MVC) architecture. The source code of the Struts Action classes (for the store front application ) is included in the download package in order to provide examples of how to call the KonaKart Client API. The store front application uses JSPs to generate the UI. However, different technologies can easily be implemented thanks to the modular approach of KonaKart. An example of this is the jQuery demo that uses the KonaKart jQuery library to make JavaScript calls directly to the KonaKart server engine from within an HTML page on the browser.