|
|
YOUR FEEDBACK
SOA World Conference
Virtualization Conference $50 Savings Expire June 24, 2008... – Register Today! Did you read today's front page stories & breaking news?
SYS-CON.TV |
TODAY'S TOP SOA & WEBSERVICES LINKS WSJ Integration
Leveraging gSOAP for Legacy Systems Integration
The SOA revolution progresses
By: James Caple
Jun. 27, 2006 11:45 AM
Digg This!
Page 1 of 2
next page »
The world was about to change, argued Don Box of DevelopMentor when he extolled the virtues of SOAP, the Simple Object Access Protocol, at the 2001 USENIX Conference on Object-Oriented Technologies and Systems (COOTS).
Since this conference, slowly but surely, much of what Box prognosticated has come to pass, albeit not as swiftly or universally as initially indicated. Microsoft .NET has not exactly taken the Web Services World by storm (or HailStorm for that matter), but Web Services in general are making serious inroads nonetheless.
The SOA Revolution It seems much of the focus today with regard to SOA is on developing outwardly looking APIs for external consumers of an application's data and functionality (i.e., solving problems associated with extra-organizational data integration). For example, a lot of buzz has been generated by Representational State Transfer (REST) - and SOAP-based APIs made available by large commercial Web applications such as eBay, Google, Craigslist, and Yahoo, which are exposed so hackers around the world can create fanciful new mashups - and more market interest and brand awareness in the company exposing the interesting new functionality. Technologists and average users alike are intrigued to see what interesting new software and eye-candy can be built out of the Web-based building blocks emerging on the Internet today (e.g., Google Maps). This is the sexy side of SOA, (which is arguably most useful for selling ads). The not-so-sexy side of SOA means addressing the problems associated with the legacy software behind the average enterprise firewall that wasn't initially designed to share data with new and future software applications. It's, ironically, this not-so-sexy side of SOA that may offer the average enterprise the best return on investment (ROI), especially when patterns and technologies from the sexy side are employed. So without further ado the remainder of this article will focus on the dark side of SOA: integrating new software applications with legacy software. In particular, this article will discuss the use of the gSOAP framework to SOAP-enable legacy C/C++ applications so legacy systems can be turned into Web-enabled APIs, accessible by SOAP-based interfaces for easy internal and/or external integration with existing, as well as future, systems. As with the sexy side of SOA, agility and simplicity are key components of a successful data integration strategy. Lack of these ingredients may not prevent a working short-term solution, but may very well contribute to these system parts becoming more and more isolated and eventually abandoned over time.
Agility & Simplicity as Key Integration Ingredients Agility and simplicity are the raison d'être behind technologies like SOAP. The Common Object Request Broker Architecture (CORBA) and Java's Remote Method Invocation (RMI), for example, are arguably not agile or simple frameworks comparatively speaking for solving interoperability problems; they're rather complex to build with and unwieldy to deploy. RMI facilitates distributed computing, but only among homogeneous Java components. CORBA opens up distributed computing to a wider array of objects written in other programming languages, but neither can scale to the level of HTTP and SOAP. What the early SOA revolutionaries realized is that most organizations run a Web server, and many use the default port 80 with firewall provisions for external access to this port. They also realized that there was a large Web developer community that understood Web servers and the Hypertext Transfer Protocol (HTTP) and XML. Long-term ROI from the technologies used is closely tied to grassroots developer acceptance of a given technology today. HTTP, unlike the Internet Inter-Orb Protocol (IIOP) employed by both RMI and CORBA, offers ubiquity in terms of use and infrastructure. It's lightweight and easy to understand. HTTP is an agile, simple protocol. SOAP piggybacks on top of HTTP making it an agile cousin. Agile, simple tools and technologies, therefore, provide greater ROI than their less agile, more complicated counterparts primarily because of such things as application maintenance, the implementation time due to simplicity and documentation, the universality of acceptance and adherence to standards, scalability, etc. Intangibles such as agility and simplicity have nothing and everything to do with SOAP, the SOA Revolution, and gSOAP.
What is gSOAP?
A Quick Introduction
A Hello World gSOAP Server Once compiled, this server can be run as a Common Gateway Interface (CGI) script in Apache or IIS by putting the resulting binary in the cgi-bin directory of your Web server as a quick way of getting a gSOAP server up and running. But CGI-based gSOAP servers aren't the only option. While it's beyond the scope of this article to discuss gSOAP servers in depth, it's worth noting the various server options:
One key aspect of this simple example is the somewhat subtle integration of the SimpleLibrary class. This library can be compiled as a static or shared C++ library. If compiled as a static library, using this library in our example server class is straightforward when deploying the Web Service as a CGI server. Once compiled, the functions in the static SimpleLibrary class get baked into the end product - article.cgi - which requires no additional environmental configuration as in Listing 1. If SimpleLibrary is compiled as a shared library (*.so), however, the SimpleLibrary.so shared library contains functionality external to article.cgi (not baked in), and must therefore be properly referenced at runtime using environment configurations like LD_LIBRARY_PATH, or otherwise making sure gSOAP Server can find the required shared libraries. As a result, to run article.cgi in Apache using libSimpleLibrary.so, for example, one could configure Apache by adding the following line to httpd.conf:
httpd.conf Configuration You could also copy libSimpleLibrary.so to /usr/lib, for example, to ensure the library is found for use at runtime. Page 1 of 2 next page »
SOA WORLD LATEST STORIES
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
|
SYS-CON FEATURED WHITEPAPERS MOST READ THIS WEEK |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||