ZeroPoint Application Server (ZAppSvr) consists of several different components in a single package designed to provide seamless
development of Web Services. ZAppSvr is designed to provide not only an application software suite, but a complete Web
Service deployment environment.
Since application development costs are high, it is critical to keep the application design process lean. This
approach yields higher performance, more easily maintainable code, and reduced dependencies on external functionality outside
your control. ZAppSvr is designed to be as lightweight as possible, reserving processing power for your application.
Why Another Application Server?
One of the biggest problems in developing Web Services is the learning curve. While developers are always learning
and that is a good thing, the productivity hit of learning and implementing a complex application server is enormous. The faster a
developer can get a project completed, and the lighter the underlying technology the easier it is to turn a profit, and support
your product. ZAppSvr is easy to learn, lightweight, fast, and 24/7 reliable.
Another problem addressed by ZAppSvr is scalability. Building in load balancing allows application clustering that is far more flexible than
any existing technology. You can build applications that will not be obsoleted since you have not painted yourself into a
technological corner. You have an unlimited set of expansion options you can draw upon as your requirements grow.
Product debugging is greatly simplified, so you can easily step through code if problems arise. Your focus can be
limited to your application making you more effective. Custom logging features allows you to build in debugging options in the
event of failure. Your clients never see giant stack trace dumps. You can manage errors more professionally.
You can develop services of unlimited complexity and sophistication using the power of the Java language, without
the restrictions of an oversized, overweight environment that gets in your way.
- Request pre-processing
- Request post-processing
- Caching of static requests
- SSL support
- Request filters
- IP address filtering
- Robot filtering
- Integrated Load Balancing
- Simplified Application Design
- Simplified Application Deployment Environment
- Site monitoring and control
- Remote monitoring and control
- Multiple Listeners for DNS load balancing
- Request logging
- Custom logging resources
- Java cross platform deployment
- Simplified dynamic HTML
- Plugin access to a global object repository
Request Pre & Post Processing
When an incoming request is received, the IP of the incoming request is checked to determine whether it should be
filtered. Then the request is checked to see if the request should be processed by the Plugin (user application). The request is
also checked to determine whether it should be ignored. If the request can be cached safely, the data object is requested from
cache first. If the requested object is not already stored in a cache, the request is retrieved from the target and then stored in the
cache. Then the data is returned to the requestor. The cache process is based on user configured parameters.
If the request is SSL, the application is alerted as to the source.
Incoming request and header information is stored and passed to a plugin in a String array. This array is available to
the application for processing which can include robot filtering, security applications, data collection, etc.
POST requests are processed giving your application a reference to the post information for processing by your
By providing these services, without performing extra processing beyond the needs of your application, your
application can function more efficiently.
You have the ability with ZAppSvr to modify the request and response headers. This can be used to pass specific
information to a target application, modify responses to meet specific network requirements, etc.
ZAppSvr simplifies the processing of data requests making the developer’s life easy without imposing limitations or
abstractions that don’t fit your specific needs.
All threads have access to the ZAppSvr global Java Hashtable. This allows your application to store user, session, or
web page information, application wide. This effectively creates your own specialized global application cache which can be
used to greatly increase the speed of your application, and provide critical inter-thread communications and synchronization.
Dynamic HTML with Java programming
ZAppSvr includes a PageProcessor.class. This extensible class provides a simple mechanism to provide
both default and custom tag services for dynamic content. This class also allows you to add User Defined Methods which you
can use to create data for insertion into a web page, in addition to the ability to place page properties. This class provides a
unique caching system for dynamic pages. This means that the page is only parsed once, and then when a page is requested,
only the user methods require execution. Dynamic content is delivered at speeds close to static content!
This technology makes it much easier to develop, debug, and deploy complex dynamic web content, with standard
Java development tools.
The gui interface is optional and is normally not needed since ZAppSvr can be managed remotely. ZAppSvr has a
gui interface solely to simplify testing and initial installation. It can also come in handy for a developer testing his new
application. ZAppSvr Remote provides the ability to remotely manage and control all server parameters over a secure link
Web Deployment Environment
ZAppSvr is designed to accept and filter inbound requests, cache static requests, load balance external services, and
provide an application execution environment. ZAppSvr is often used without any plugin at all for load balancing, caching,
local and remote site monitoring, and request filtering. However, when you add your own plugin, ZAppSvr becomes a powerful
By using a provided mechanism, your application can directly access the integrated load balancer, so that your
application is provided the target server and port of the server ZAppSvr selected for best overall performance. Load balancing
then becomes an integral part of your application, providing seamless integration with more servers when they are needed.
Almost all ZAppSvr configuration parameters can be viewed and modified in real time without rebooting. This makes
administration of ZAppSvr easy and efficient. Adding or removing servers from load balancing is instant and reconfiguration is
Some deployment environments require cache directives to eliminate intermediate caching of dynamic data. This is
handled automatically in ZAppSvr by setting a configuration parameter. Of course you can simply modify response headers
manually if you need finer control for special situations.