with efficient integration of existing (legacy) business System
IBM WebSphere Commerce
IBM WebSphere Commerce Information Center
Among major concerns in implementation of a new e-commerce solution is efficient integration of existing business information (legacy) system with newly developed web application. WebSphere Commerce (WSC) covers a lot of functionality already present in legacy systems such as product catalog management, customer registry, inventory management, order entry and invoicing systems. Decision should be made which one of two systems will perform particular functions. Generally we agree that existing solutions should remain such as they are and where they are because they are usually error free, cover all business rules and logic, are well tuned and are achieving adequate performances. Consequently e-store implementation must include efficient mechanisms to support cross application communication and re-usage.
Sanolabor and Salus are both sellers of pharmacological products, Sanolabor also covers medical care and instruments, their customers are drug stores, hospitals and ambulances. They decided to expand their offer and sales channels by implementing e-commerce using WSC. Due to complexity of inventory management and pricing algorithms we decided in both cases to duplicate product catalogs and use existing procedures of legacy system to cover inventory management (stocks), pricing, order fulfilment, invoicing and payment. WSC supports order creation using www interface (basket) and also by allowing user to upload files containing order data.
In a case of Salus, which was implemented years ago, we decided to use Remote Procedure Calls (RPC) as main mechanism to realize integration of legacy-WSC integration. Product catalog is replicated every day by means of procedure (Catalog Massload) which reads legacy DB (using JDBC) and creates XML file suitable for loading into WSC DB via Massload tool (see Fig. 1).
Fig 1. Salus integration of WSC with Legacy System (deployment diagram)
RPC procedures are used to:
- Read inventory/stock data
- Read pricing data for particular product and customer
- Translates order created within WSC to legacy order
- Read legacy order data, also for orders that arrive through some other channel
Main difference between solutions is technology used to support integration. Sanolabor uses Web Services instead of RPC directly. That way solution adopts widely used approach when two different systems must be integrated, is more standard, less vulnerable to changes, more platform independent, more transparent, easier to implement and maintain. Comparing to RPC we didn’t notice any significant performance degradation. Another difference is usage of XML file for bulk (i.e. complete) catalog replication. We believe that such solution is once more less changes dependent, more loosely coupled to both interacting systems, more transparent. As a matter of fact, direct DB reading was not an option as legacy system creator didn’t give necessary authorizations.
Fig 2. Sanolabor integration of WSC with Legacy System (deployment diagram)
Besides functions covered by RPS in Salus case Sanolabor solution also includes
- services which update WSC catalog immediately after change was made in legacy catalog
- replication of WSC order (basket) from legacy order
Besides basic e-store implementation, which first of all covers product presentation through various catalogs, different ways of order creation, order follow-up (all through www) and adaptations necessary to achieve desired look and feel, we take care for efficient legacy system integration using RPC in first and Web Services in other case. In this kind of implementation, business rules and logic are kept inside one place (mostly within legacy system). The goal was realized through implementing adequate RPCs and Web Services respectively and their coupling with proper WSC elements.