CloserLook
SimpleIPC 1.0
Isolate errors in .NET remoting applications
By Anand Narayanaswamy
SimpleIPC
Rating: 4
stars (out of 5)
Website:
http://www.cognitier.com
Price: $299
Traditional .NET Framework applications communicate
over the database located in the same system or over a LAN. But .NET remoting
applications share and exchange data across networks in a distributed
client-server architecture. Hence, there should be some kind of fault-tolerance
mechanism in place in case the application throws an error during the communication
process. SimpleIPC, developed by Dallas-based Cognitier, isolates all exceptions to a
separate process without causing any interruption to the main project.
SimpleIPC Overview
The main function of SimpleIPC is to keep unhandled
exceptions and subsequent process crashes out of your main web application
process. This mechanism will help your application run without interruption by
repeating the call against a different external process, thus causing no impact
for your end users. To work with the product, developers should write server
and client code separately. Although the server code is used to run inside the
IPC server, the client code is incorporated into your client application for
exchanging information with the IPC server, which can either be a Windows Forms
project or an ASP.NET page.
The server routines are written either using C# or
Visual Basic and mainly consist of functions, which form the core part of your
application, as the resulting client project makes a call to the functions
mentioned in the server routine. You just need to establish references to
certain DLLs included with the product and implement certain interfaces if you
have Visual Studio 2008. If you don't have Visual Studio, you can use the GUI-based
script editor utility included with the product to author and compile DLLs in
Jscript.NET as well as templates that automatically add references to your project.
Figure 1: Coding
scripts
In addition to providing the editor, SimpleIPC also
lets you tweak system, server, and logic settings and management of routines
and events. Moreover, the product supports advanced mechanisms such as
throttling, caching, and object pooling. These features are meant to make applications
secure and enable them to load faster with great efficiency.
Figure 2: Efficient
event management
Monitoring .NET Remoting
SimpleIPC smartly acts like a middle layer on the
top of .NET remoting that monitors the output of your application via
reflection at runtime. Exceptions are isolated in IPC Server, so that your main
application will run without any interruption. As a developer, you have to
register your custom code modules at design time, and the product analyzes your
DLL to determine the class names.
While the client code passes through .NET, the
additional layers accommodate clients using Java, COM, or web services.
Moreover, the permission to activate and access servers is controlled via
membership in designated local computer groups, which I hope will enhance
security. The product also enables you to define inputs and run tests with a
configurable number of simulated clients making a configurable number of
invocations each through various programming APIs.
Figure 3: Fine-tuning
your applications by testing
The product also recycles frequently in case your
code has memory leakage, thus enabling you to control memory consumption. I expect
that this feature will be highly useful for resource-intensive applications.
Moreover, developers will be able to call the server code in a Java client
application through COM using the product. The product team has provided an
article at http://www.cognitier.com/downloads/ServletWordDocSample.pdf
that examines this concept in a comprehensive manner.
SimpleIPC includes comprehensive documentation in
PDF format, which you can download at http://www.cognitier.com/All-Docs_ep_66.html.
I found it little difficult to understand the content, but the support team
provided excellent assistance within one business day. Cognitier also provides
exercises and articles that include step-by-step solutions to reproduce
procedures, along with complete source code and screenshots. I don't recommended
SimpleIPC for beginners because they wouldn't use it in the scenarios for which
it was developed. I suggest that the vendor create exercises in video format to
help developers more easily understand how the product works.
Error-Prevention Tool
SimpleIPC should be useful for developers who are
engaged in the development of advanced distributed projects in which runtime
errors can be fatal for their applications' performance and stability. If you
don't want any unforeseen events to occur during an application's life cycle, I
suggest you invest in SimpleIPC.
Anand Narayanaswamy (visualanand@gmail.com)
is a Microsoft MVP who works as an independent consultant based in Trivandrum,
India, and runs http://www.learnxpress.com.