How Can SOA and Cloud Computing affect the world of C++?
Monday, June 29th, 2009This question was posed recently in an online group discussion, and I thought it was an interesting topic - so here is the response that I posted:
WOA/SOA can fit with C++ and be used to combine the agility benefits of SOA with the performance and control that C++ offers. However, there are several things to consider. These may not all apply to your project, depending on your business and technical requirements.
1. Developing new C++ services
- Need to support web service standards like WSDL, but SOAP is optional. REST use is growing quickly.
- May also need higher level protocols like WS-* depending on business requirements.
- Code generation tools can save significant time
- IDEs like Eclipse can also save significant time
2. Existing C++ applications
- Need to be exposed as web services so that they can work with other services without being rewritten. There are several ways to accomplish this.
- Or if the existing app is modular, it might make more sense to wrap dlls or other components as services and host in a service runtime. This may be more work but has advantages that may make it worthwhile.
3. Maintaining / managing the application
- A middleware environment that can host C++ services can make it easier to maintain
- Management tools for deploying new services will make ongoing maintenance easier.
4. Scalability & performance
- If latency is a consideration, try taking the “web” out of web services when possible. Services running on the same server should be able to call each other in memory without marshaling to XML and going through the network stack.
- Writing code to do threading can work but is difficult to do well. There are several new tools to help with parallel computing for C++.
- Distributing services across multiple cores or servers can help with scale out, but again consider using infrastructure as this can be very involved.
There are not as many SOA tools for C++ developers as there are for Java, but there are some good ones now so you don’t need to do this from scratch.

