View Source

h3. !|width=100px! Aggregated Core Services

{tip:title=Aggregated Core Services}
{excerpt}Aggregated Core Services is extensions to [Core Services|CS]. ACS is usually either context-specializing (CustomerCustomer and VendorCustomer) or aggregations from several [Core Services|CS] like in CustomerDashboard which aggregates from Customer Service, Order Service and possibly more services{excerpt}





h3. Characteristics

Services combined and orchestrated to produce
aggregated services
* Aggregated functionality from several services
* Context mapping
** Translating between contexts
** Anti corruption layer
* No central persistence
** Could (should) have cache (state full)

h3. Code-Patterns for Aggregated Core Services

* [Evolving Service Endpoint Pattern]
* [Recording Command Pattern]
* [Recording Proxy Pattern]
* [Smart Service Proxy Pattern]


{tip:title=Context Map-oriented Aggregated Core Services}

{tip:title=EDR-aggregated Aggregated Core Services}


h3. Technology/Implementation strategy (Java)

* Code-centric ESB products
* Space-Oriented Architecture
* EDA products
* AOP-oriented containers (services _inlined_ as aspects)

*Implementation and products*
* Java code
* Use mobile code if you can
** Jini/JavaSpaces or XML/XSD
* ESB/EDA products
** Mule, OpenESB (Glassfish), ServiceMix
** OSGi containers
** Esper (EDA-container)
* Wrappers
** Glue, XFire, SpringWS, (Axis)

h3. Technology/Implementation strategy (.NET)

* .NET 1.0/2.0 ASMX
* Windows Communication Foundation (WCF)
* IIS Hosted
* Windows service / Self-hosted
* In-proc (rarely)

*Implementation and products*
* .NETcode
* BizTalk orchestrations can do a good job for mapping and high throughput

h3. Design rules (often called design-time governance)


* [Designtime governance for ACS-services|Design-Time Governance for ACS Services]


h3. Other technical discussions