SOA and webMethods aren’t exactly the same. webMethods integration server and most of the webMethods products have Service Oriented Architecture, meaning it has this architectural pattern and that’s it. You can implement anything with SOA. You don’t even need to have SOAP (simple object access protocol) anywhere to implement SOA(service oriented architeture) because they are not really related at all.
SOA is basically an architectural pattern that lets you implement loosely coupled systems. As an example, imagine functional programming and replace every function with a webservice. That’s what SOA is. When you have this architecture, you can change any webservice with some other service, as long as you don’t change the service signatures. In webMethods, even simple sum functions are webservices.
It is possible to do anything with webMethods. When you can’t do something with predefined services, you can implement a new service using JAVA(native language for webMethods), C/C++, C# and even pyton, or bash and so on.
I usually like wikipedia as a starting point. You don’t need webMethods for SOA. You can implement SOA with any programing language that has web service support.
Consider this scenario for a better picture. You have a 3rd party system that has a certain functionality, like sending emails or printing files or creating pdf documents. Assume you need a library to access these features and you have multiple clients that use the same functionality. If you deploy the library to implement these functions on client side, next time you want to make changes to the implementation(you might even want to change the product itself or move some of the functions elsewhere), you need to update every client. This simple task can become pretty problematic. For example, that app itself may need an update/upgrade for support, and the upgrade may require library change, and sometimes you can’t find the responsible team at all. Every user story is finished, project is live and itis no longer supported because there aren’t any issues/bugs left so it doesn’t even have a responsible team. What SOA provides here is, you wrap the library with a service, and next time you need to make changes to the implementation, you update the service. You can even add versions to the service end point to support previous versions. Other then this benefit, its pretty much the same as functional programing.
#webMethods