Isn't it Just a Protocol?
Much like EJB containers today support the RMI/JRMP and IIOP protocols, the J2EE container of the future will support SOAP access to J2EE components. The alphabet soup of new JAX related API's that Sun has introduced over the last six months will ensure that the level of standardization required will occur.
What is SOAP? When push comes to shove its' really just a protocol. Express the contents of the message as XML with a standard envelope and send it using one of the well known protocols - HTTP, FTP or SMTP. Once JAXB is released to formalize the mapping between XML and Java, and JAX-RPC is complete with support for EJBs as SOAP endpoints it will really just be some element in the ejb-jar.xml descriptor indicating this EJB should be available to service SOAP requests as well as requests using other protocols. This is very similar to how IIOP functions within the CORBA world. As an application developer I should not need to worry about how my request gets transmitted from client to server, just that it gets there.
Of course, Web Services and SOAP are a better protocol for cross-firewall applications since they use ports which are already open in the firewall, and network administrators are already capable of managing them. Contrast this with IIOP which can be tunneled via proprietary methods on HTTP, but otherwise requires configuration of the firewall and/or the ORB in order to operate across a firewall.
What are the implications of SOAP becoming just another protocol for accessing J2EE components? First, the vendors that are making a business today out of web enabling existing applications will be out of the luck. This will be basic plumbing provided by the application server vendors in compliance with J2EE specs. There will of course be room for pluggable vendors who can provide differentiation of their implementation, but that is a much smaller niche market than the one these vendors are operating in today.
Of course the best part will be that application programmers will be able to design their components for web services access and then just enable it via some element in the descriptor. Of course using 3rd party or proprietary tools we can do this today, but once the JAX/WSDP pack becomes a production reality these tools will be a standard part of every J2EE application server.