Accendia Inc is pleased to announce the release of Iris Application Server 1.0.1. The ideal use for Iris is to implement Java distributed applications where low memory footprint or communication performance are important. The implementation offers synchronous, asynchronous and client callback communication models as well as integrated application security and communication security.
An Iris hosted application is comprised of arbitrary Java objects called commands that are associated an external name. Clients connect to the server and invoke the application commands through proxies created at runtime. A client proxy implements all the interfaces implemented by the corresponding command object and delegates the invocation of any method in any interface to the remote server object.
Asynchronous method invocation is implemented by declaring the return type of the method void. If the return type of a method is not void the call is synchronous.
Client callbacks are implemented by declaring a set of callback interfaces. The client provides callback handler objects that implement these interfaces. The server obtains a client proxy that implements all the callback interfaces and invokes one of the interfaces. The invocation will be delegated to the callback handler registered on the client side for the corresponding callback interface.
The client-server communication relies on an efficient binary protocol and a Java NIO based implementation. Iris is using a configurable number of worker threads to process the client requests and a few threads to process socket events. This means the server can handle thousands of simultaneously connected clients using a limited number of threads.
The application security is implemented defining user roles and execution grants for these roles with application, command or interface granularity. After application deployment the administrator creates users and grants application roles to the users. The server loads the user roles at user login and performs execution privilege verifications on each invocations using only a few CPU cycles.
To enable secure communication the administrator must install a SSL certificate on the server side. The client can then specify the secure flag when connecting.
The JavaDoc for the (tiny) Iris API is available online as well as a tutorial that explains how we developed the datasynch sample application that is part of the distribution package. We believe the learning curve for Iris is small and we are waiting for your feedback.