SOA-ready vs. Full-SOA applications

Applications can be more or less ready for a SOA. A non-SOA application is one without any service endpoint, which almost never exists. Each application would have some form of interface, whether it's a GUI or an API. If you got a no-empty interface, you got services!

Functions can be exposed using a service facade accessable from other applications. An application where you have created web service endpoints on top of the APIs is a SOA-ready application. A SOA-ready app is characterized as a black-box, built for a specific function but extended to support cross-functional services. They got immutable boundaries framing the application functionality, accessing internal datasource and internal transaction scope only. Applications as we know them today are SOA-ready whenever they are extended with a service layer.



The next generation of applications are Full SOA enabled. The functional black-box is gone and replaced with an extensible boundary based on access policies. A Full SOA app can rely on external datasources and transaction scopes, which will make it possible to route data access to an external source. They are orchestrated in terms of how they use other services, which will give the benefits of BPM. A Full SOA app is not an executable, it's a configuration of how services interact with each other.

No comments: