SOAP-Based Tool Targets Legacy C/C++ Integration

Developers at Softintegration have released the latest upgrade of their Ch tools aimed at making C/C++ code more portable and accessible from the glass house. The Ch scripting language, SDK and tools can be used to better hook C/C++ code into web services using SOAP, integrate with front-end databases, and even pass C/C++ calc functions to PCs and PDAs. Get a tour of Ch, and download the code.

Tags: C/C, Developers, Legacy, Scripting Language, Interface, Toolkit, Programming,

Options to help C/C++ legacy developers more actively participate in integration and/or web services projects are now available, as SoftIntegration releases its latest Ch Control System Toolkit (version 2.0).

Ch is a scripting language environment for C/C++ that can be used to deliver SOAP messages to communicate invoices to customers. A Ch ODBC feature is also available to enable C/C++ back ends to communicate with an ODBC-compliant database. Further, for non-B2B applications, Ch can be used to extend or share C/C++ functions, such as 2D/3D plotting, numerical analysis, OpenGL graphics, and control system design and analysis, across other platforms.

Ch is a superset of C/C++, Wayne Cheng, SoftIntegration's VP for application and business development, told IDN.

Ch has high-level extensions from C and salient features from C++ to provide interactive web-based calculation. As a result, Ch provides a C-compatible scripting language that can offer middleware infrastructure to enable legacy apps (and business logic) to better interoperate with a variety of platforms, ranging from supercomputers and workstations to PCs and PDAs. The Ch Control System Toolkit 2.0 is available for free download.

IDN spoke with Cheng to get a deeper look at this Open Source scripting technology for leveraging legacy assets. The interview follows:

IDN: Could you describe your approach and vision to your "embedded C/C++ interpreter for cross-platform" scripting? It sounds like you're trying to enable better legacy integration by making old-fashioned C/C++ more integratable from the start of coding -- not just as an afterthought.

Cheng: Most legacy systems were developed in C/C++. Embedding Ch (a C/C++ interpreter) into these C/C++ applications allows for an open architecture interface that connects with external programs in a very straightforward and natural way. This is especially true for web services. Our embedded C/C++ interpreter will save companies years of development time, make the best use of their limited resources and greatly enhance their overall competitive advantage through a better time to market for important products and services.

Embedded Ch provides an efficient development environment for a number of time-consuming processes. One example is remote debugging. Ch is an ideal macro language for recording, saving, and replaying the executed steps without time-consuming and complicated recompilation and linking steps across different platforms.

IDN: Would you describe Ch as a toolkit, an IDE, a scripting language -- or something else? Put Ch into context with today's enterprise app developer.

Cheng: At present, many companies are burdened with using multiple languages for important projects. Ch extends C and C++ with a built-in string type, cross platform plotting, a for each loop and numerous shell programming features for easy and consistent scripting.

Ch is an excellent gluing scripting language that is fully compatible with the most portable language in use world wide: C. Ch bridges the gap between systems programming and very high-level languages including shell programming. Our C/C++-compatible scripting engine will save the cost of having to train employees to learn multiple scripting languages while dramatically decreasing the time to market.

In specific, Ch provides interfaces to legacy libraries such as ODBC, X/Motif, Win32 and GTK+. The benefits of Ch are apparent by noticing that key applications such as OpenCV, Motion Control, Data Acquisition, and LAPACK have all been ported to Ch in a straightforward and timely manner.

Ch also supports C99 (the current C Standard) numerical computing features and computational arrays for matrix operations. Linear system equation b = A*x can be written verbatim in Ch. This is a comfortable and congenial environment for engineers and scientists. By using C, Ch and C++, we believe the cost of maintaining a heterogeneous computing environment in a company is dramatically reduced without losing any productivity, performance or maintainability.

IDN: Can you provide a "use case" example of how an enterprise might use Ch to accomplish a legacy-driven integration or web services project?

Cheng: Since the Ch SDK allows a Ch application to interface with existing shared or dynamic libraries, existing services can be packaged into newly developed applications with little effort. The reuse factor is very high. For example, in B2B application, Ch can be used to deliver SOAP messages to communicate invoices to customers. Ch ODBC can be used to communicate back-end with the database.

IDN: What types of "cross-platform" developers will Ch work best with today? Aside from other legacy developers, does Ch provide a way for C/C++ developers to better share code with Java, ASP/.NET or XML developers/programmers?

Cheng: There are numerous cross-platform developers who can benefit from Ch: hardware testing engineers, system administrators, researchers who want to share code without being concerned about how to build the applications, CGI web developers and programmers who have to interface with legacy code. There are toolkits to accommodate all of these needs. Soon the Ch XML Toolkit will also be available. Ch may call Java via JNI.

The APIs for Ch CGI Toolkit in Windows behaves in a similar manner as ASP and JSP. Our C/C++ interpreter can interface with C/C++ binary libraries in both directions (calling to and being called from). It's ideal for hardware testing because interfaces to the existing C/C++ library make the testing interactive. Testing scripts are easy to develop and maintain.