目前,有大量的使用多种编程语言编写的应用程序可以用作服务。可以使用面向服务的体系结构(SOA)和 WebSphere ESB 来将这些应用程序作为服务提供,而对这些应用程序只需稍作更改甚至无需更改。
将现有应用程序作为服务提供的一种方法是:创建一个 SOA 网关,它会将现有应用程序的接口转换为适用于 SOA 的接口。这种方法不会破坏应用程序编码,因此,不需要对应用程序进行任何回归测试。可以通过现有接口继续使用该应用程序而不会产生破坏作用,但是,由于要转换为 SOA 接口,因此会对性能造成一定影响。
还可以采用另外一种方法:在应用程序的现有接口旁边为它添加 SOA 接口。通常,这样做会获得更好的接口设计和更高的总体性能,这是因为无需任何转换开销就可以直接使用这些 SOA 接口。新的 SOA 接口将需要一些开发和测试资源,并且在部署新接口时服务可能会暂时中断。在部署之后,可以通过现有接口或新的 SOA 接口来使用应用程序。
可以将应用程序改变为可复用的 SOA 组件,然后将这些组件组合成 SOA 模块化解决方案。这就提供了更灵活的应用程序,它们可以更好地复用业务逻辑,并且可以利用 SOA 技术和其他先进编程技术。这种将现有应用程序作为服务来提供的方法对现有应用程序及其使用具有重大影响,通常最适合将这种方法用于核心系统。