集團資訊科技總監陳煜民先生近日在APAC CIO Outlook 發表署名文章：
Being agile and adapting to the new normal has completely changed the architecture of software applications, with business lines no longer having to wait six months or more for an IT system to go live.
An application programming interface (API) has now replaced enterprise resource planning (ERP) as the centre of enterprise applications, enabling the improved inter-connectivity of internal applications and external SaaS. Think how the App Store enhances the functionality of your smartphone; similarly, the API gateway enables our company to access a huge pool of ready-to-use SaaS.
Jebsen’s core application landscape has now shifted to an API gateway that we have named “LEGO”. There are three design principles of this gateway:
Our “LEGO” is divided into front and back of house components. Front of house is used to connect to customer-facing applications like online stores, POS, third-party trading platforms and third-party logistics. The level of reusability is less than 30 percent as each customer-facing application is different.
Back of house is used to connect to our management applications, such as order, product and inventory management systems and our general ledgers. The level of reusability is more than 80 percent as each management application receives and processes almost the same set of data from front of house.
Reusable modules not only reduce development time but crucially, reduce system testing efforts and the possibility of programme bugs. When we add an online store for a new brand, we need only change the front of house integration as all the back of house integration to our management platform can be re-used and therefore, does not need to be re-tested.
As our “LEGO” simply transfers data from one application to another, data integrity cannot be guaranteed by either application. Therefore, auto-reconciliation must be built into the role of the “LEGO”.
Data is synchronised in real-time among systems. To ensure there is no loss of data during integration, our “LEGO” has deployed three distinct levels of control:
- Data synchronisation is designed to automatically re-try if the other side does not respond
- An error-trapping mechanism logs any data synchronisation failures and automatically alerts system administrators
- Data synchronisation happens in real-time. At regular intervals and at least once a day, data will be re-read from the source and compared with the target system to ensure there is no data loss in transit. For example, at the end of each day, the ‘LEGO’ will extract all online orders and compare them with those captured in the Order Management system to ensure both sides reconcile.
Besides using traditional tools like High Availability to avoid a single point of failure at the “LEGO” layer, we have implemented one additional architecture design – that all customer-facing applications should continue to operate, even when the “LEGO” is not available. When the “LEGO” resumes, all pending transactions will be automatically re-sent to their relevant back of house systems. The term “LEGO” replaces the technical jargon “API” when we communicate with our internal business lines. The term “ERP” will also be unnecessary, since our business lines can now source best-of-breed applications for their respective domains.