Sie sind auf Seite 1von 11

Service Oriented Architecture

Rama Adisurja
Mark Chi
Ramesh Ramakrishnan
Agenda

Current Architecture Premier/BID


SOA based Targeted Architecture
Current Architecture Premier/BID
Problem Statement

Current Architecture more tunes towards monolithic system


architecture.
Almost all modules are deployed on all application servers.
Current Architecture requires non-necessary required knowledge of ATG
on developers who dont directly work on the codes that utilize the ATG
eCommerce functions.
Every layer of current architecture tightly coupled with technology
(ATG).
Teams participate in various layer of the software requires knowledge of
ATG.
There is no flexibility of plug in and out new modules which are depend
on non ATG based technology
Resources working on different layers of the codebase, needs to be
aware of ATG Technology even though there is no need.
SOA based Targeted Architecture
Benefits
The proposed architecture focus on modularization using SOA oriented framework.
Modularization helps moving away from current monolithic architecture. Developers
and testers can work on specific modules without the need of others software
components.
Each of the modules can be deployed on different servers independently of other
modules. The approach scale to meet increased demanding on certain functions.
Architecture reduced non-necessary knowledge of ATG on developers who dont
directly work on the ATG eCommerce functions.
Proposed architecture can easily support both SOAP and RESTful web services via
configuration.
SOA based architecture allows appropriate resources concentrate on their expertise
compared with steep learning curve. For example, the UI team can concentrate on
developing UI technologies instead of learning ATG internals.
The architecture support plug and play model with modules.
OSGI container responsible for managing life cycle of deployed modules.
Allows support for module with different versions.
Software Modules
Akamai
Architecture stack will continue use Akamai as front door for request generated through HTTP.
Akamai will help caching static content files/data as of today

Webserver
Webservers will be used as of today as pass through between Akamai and application server layer

Coherence
Coherence grid will be used to store data across modules (e.g. CSI, Catalog, Profile, etc)

ATG + Endeca Commerce


ATG layer will be used for Session Management
The layer will expose RESTful API for clients to consume data along with ATG session.
Page templates required to be authored and maintained by business team, will use this layer to provide the content to
front end through RESTful API

RESTful API

ATG + Endeca Commerce

Session Content
Content Content
Mgmt HTML/AJAX

Livesite Endeca XM
Software Module

OSGI Layer
It is an abstract layer between frontend systems and middle tier.
Apache CXF - SOAP, XML/HTTP, RESTful HTTP, or CORBA and work over a variety of
transports such as HTTP, JMS or JBI.
Apache Karaf a light weight container Apache Felix OSGi container
Each of the services (e.g. CSI API, Catalog Data, Search) requires to be exposed to
clients, will be required to create a service module and register with OSGi layer.
The deployed modules output can be expose to outside client with various formats.

SOAP, XML/HTTP, RESTful HTTP, CORBA

Apache CXF Apache Karaf


OSGi Layer
Apache Felix

Service Modules

Backend API Endeca Search ATG eCommerce

CSI, ROME, GEARS Catalog Data, Teamsite Catalog, Profile, Price


Reference - Current Architecture
Reference Proposed Architecture

Module Layer
The module layer defines the OSGi module called a bundle, which is a JAR file with extra metadata
Bundles are more powerful than standard JAR files.
It declares which contained packages are externally visible (that is, exported packages)
It can explicitly declare on which external packages the bundles depend (that is, imported
packages)
Lifecycle Layer
The lifecycle layer serves two different functionality
External to your application, it defines the bundle lifecycle operations (install, update, start, stop, and
uninstall).
Internal to your application, how bundles gain access to their execution context, which provides them
with a way to interact with the OSGi framework and the facilities it provides during execution.
Service Layer
The main concepts revolve around the service-oriented publish, find, and bind interaction pattern.
Reference Proposed Architecture Sample Code