SOA (Service Oriented Architecture) is to re-factor different logical components into different “Services” – typically, “Services” means “Web Services” – obvious advantages?
- Enterprise components can be efficiently re-used
- Components developed in different languages (Java/.NET/C++/Perl…etc) can talk to each other.
- Services can be hosted on Cloud [Optional]
Typically, architecture perceived by IT vendors are very generic, with intention that structure be adaptable to biggest number of clients from different sectors and industries. For example, in above diagram:
- \Operation Services \ Logging and Monitoring – Example, ITRS (http://www.itrsgroup.com/product-overview) – with wide range of adapters feeding monitoring console Operating System health/performance statistics
- \Application Services \ Persistence – Example, Applied Algo ETL Suite (http://appliedalgo.com), ETL with automatic persistence and schema versioning (In additional to job execution and computing grid)
- \ Application Services \ Messaging – Example, Tibco Rendezvous (http://www.tibco.com/products/automation/messaging/high-performance-messaging/rendezvous/default.jsp) and RabbitMQ both very popular in Investment Banking.
- \ Application Services \ Scheduling and Computing Grid – Example, BMC Control M (http://www.bmc.com/products/control-m-workload-automation/job-scheduling-software.html ), Applied Algo ETL Suite (http://appliedalgo.com)
These are generic Enterprise Services.
Businesses typically elaborate this structure and layer on top sector specific implementations. From perspective of Financial Services, in particular, asset management firms, hedge funds, investment banks, you’d see for example:
- Market Data Service (For example aggregate across multiple data vendors Bloomberg, Reuters, Morningstar…etc)
- Yield Curve Service
- Deals Execution, Allocation and Audit Service (Pre-trade/post-trade analysis, Compliance…etc)
- Position Service (Trading positions)
- Risk Management Services (VAR calculations, Derivative pricing, sensitivity analysis. Stressing and Scenario Analysis)
- RFQ (Request for Quotation, for structured OTC products)
Despite the differences, a well layered IT architecture in the bottom is critical in how easily businesses can layer sector-specific application services on top. Unfortunately, very often, this is not the case. Anti-patterns commonly observed:
- One application logs to enterprise logging service, and another logs to another database with different log table schema
- One application load balance computations using BMC Control-m (http://www.bmc.com/products/control-m-workload-automation/job-scheduling-software.html ), another to Applied Algo ETL Suite (http://appliedalgo.com), yet another build their own.
- Equity derivative trading desk uses home grown risk engine for derivative risk management. Swap desks uses VBA sheets. Convertible trading desk could be using a vendor solution such as Derivation (Derivation.co.uk) – all risk system computes derivatives sensitivity Delta/Gamma/Vega/Theta… and persists EOD figures in different database tables, each with different schema.
Architectural break down typically happens during corporate mergers, or a result of ineffective IT governance – typically characterized by constantly changing or divergent chain of command.
This said, while properly layered SOA is critical for large enterprises, for small hedge funds, too much layering may not be economically feasible. It is thus a delicate balance for CIO’s and IT managers to remain vigilant so the business, its management architecture, and technical architecture evolve in lock steps.