Feature Comparison Chart
Feature/Product BlazeDS GraniteDS LiveCycle DS WebORB WebORB Specific Notes
Developer Productivity
Management console       X WebORB Management console is a graphical interface for performing management, configuration, monitoring and productivity tasks.
Service browser displaying POJOs, Spring beans, EJBs and a list of deployed JAR files       X Graphical display of all deployed components (POJOs, EJBs, Spring beans, etc). Packages, classes and methods organized in a collapsible tree view structure. Product provides support to eliminate certain jar files or packages from the tree. Additionally, there is API to enable custom renderers adding non-standards components and remoting services to the service browser tree.
Remoting code generators   X X X Automates creation of the client-side code for a particular class. Generated code enables client application to communicate with the remote class over RPC. WebORB code generation supports Flex, AJAX and Silverlight clients. Generated code formats include basic AS3 code, Flash AS2, JavaScript, Cairngorm and PureMVC frameworks, as well as Silverlight C#/VB.NET clients. Will support adding custom code generators in next release.
Invocation test drive       X Enables developers to perform a remote method invocation through a graphical interface (management console). The console displays a dynamic interface for the selected method where the user can enter values for the method arguments, invoke the method and see the return value. Supports primitive method arguments, complex types and collections.
Data management code generator     X X integrated into the Data Modeler and responsible for creating client-side (ActionScript) and server-side code to handle all database operations, including data retrieval, creation of new records, updating and deletion of existing records.
Data management Data modeller     X X Generates fully functional test/demo application demonstrating all database operations (CRUD) from the Flex client
IDE support Adobe FlashBuilder/ Eclipse Plugin   Adobe FlashBuilder/ Eclipse Plugin Adobe FlashBuilder/ Eclipse Plugin Eclipse users working with Flex can use the same project wizards included with FlexBuilder or FlashBuilder. We have created several helpful tutorials showing how to configure FlexBuilder and FlashBuilder with our products.
Runtime
Runtime server X X X X Runtime server provides support for RPC infrastructure, marshalling and unmarshalling of arguments/return values for remoting invocations, messaging and streaming.
Software clustering X X X X Clustering support in Enterprise Edition.
Remote Invocation
WS/JSON proxy service X X X X  
Flash/Flex remoting X X X X  
NIO Remoting     X X  
AJAX client support X   X X  
Silverlight support       X  
Spring framework integration X X X X  
EJB1.0, EJB 2.0 and EJB 3.0 integration X X X X  
Custom configurable serialization X1   X1 X Enables overriding default serialization algorithm for complex types.
Server-side component framework integration X X X X  
Stateful services X X X X Session scope for Java objects
Singleton services X X X X Application scope for Java objects
Custom object activation       X Allows developers to extend WebORB by implementing a custom activator.
Server-Client method invocation       X  
Visual security configuration       X Supports graphical environment for securing namespaces, classes and methods using a variety of security constraints (role names, IP masks, IP address). Product provides an extensible infrastructure for custom security handling (custom authentication, authorization and role management)
Custom Invocation pre- and post- handling       X Provides support for expanding the invocation processing chain with custom code executed by the container before and after specific method invocation takes place. Pre/Post invocation handler can be plugged in using method attributes. Enables developers to observe method arguments, return value, and measure invocation performance and control security.
Service life cycle management X2   X2 X Controls how the remoting gateway manages instances of the deployed services. Most common schemes are “request”, “session” and “application”, where instances are created once for each request, session and application respectively. Unlike other solutions, WebORB allows to configure activation via class attributes, Flex xml configuration files (channel configuration, destination configuration) or by modifying gateway URL on the client-side.
Custom service activation       X Provides a way to control service instance management in a custom way. For instance creating pooled services can be accomplished with this feature.
Pluggable service handler for custom service types       X The product supports the following service types out of the box: POJOs, Spring beans, EJBs, Web services. WebORB provides an API to expand the list of supported services using custom handlers.
Service aliasing       X Enables decoupling of server-side class names from the client application.
Service factories       X Default mechanism for instantiation of remoting services (POJOs for instance) is the default no-argument constructor. For the scenarios when classes do not have such constructor, WebORB supports the concept of service factories. A factory is mapped to a class and is responsible for creating instances of the class so invocations can take place.
Argument factories       X Similar to Service Factories described above, Argument factories are responsible for creating argument objects based on the data received from client.
Abstract argument mappings       X When arguments of remoting service method signature reference abstract types or interfaces, WebORB provides a way to establish mapping to a concrete type to be used to represent the value. For instance in the following method:
           
          public void addCustomers( List customers )
           
          List is an interface. WebORB has a mapping between List and ArrayList, as a result the product will use ArrayList to contain the values received from client for the method invocation.
Generic destination support       X A Flex destination enabling to invoke methods on any deployed class. Simplifies the process of development and eliminates configuration changes. Is not recommended for use in production environments.
iExternalizable support X   X X  
Event logging X   X X Framework allows customizable logging categories and supports multiple logging agents or loggers.
Data Management
Flex data management framework     X X A framework for operating with data in a distributed client/server environment. Must support basic database operations (CRUD) and client synchronization.
Integrated real-time data (client) synchronization   X X X Delivers notification of data changes to the clients that have (or would have) retrieved changed/new data.
Conflict resolution     X    
Transaction (batch processing)     X X  
Data paging   X X X  
Lazy loading     X X  
SQL adapter/query execution   X X X  
Hybernate adapter   X X X  
Support for loading of related entities       X  
Supports multiple DBMS X   X X  
Offline application support     X X Supports both data caching and local message queuing.
Real-Time Messaging & Streaming
Real-time Data push X (polling only)   X X  
Real-time Pub/Sub X (polling only)   X X Supports multiple producers and consumers in several different exchange paradigms.
RTMP     X X  
RTMPT     X X  
Integration with JMS X X X X  
High volume, dedicated messaging     X X  
NIO messaging     X    
Data throttling     X    
Remote shared object support       X  
Real-time video streaming and broadcast       X  
Document Services
RIA to PDF Conversion     X X Add-on solutions. WebORB PDF Generator supports server-side template generation for Flex, Flash, AJAX and Silverlight clients.
           
1 - BlazeDS and LiveCycle DS support custom serialization only through the IExternalizable interface. Classes serialized in a custom way MUST provide a serialization implementation both on the client and server sides.
2- The only way to control service life cycle with BlazeDS is by specifying scope in destination configuration.