WebORB for Java vs BlazeDS vs LCDS

Many people have asked for a comparison between WebORB for Java, BlazeDS and LCDS, so we have compiled a list of the features/benefits others have pointed out as being important and then we’ve added our own key differentiators. WebORB for Java works nicely with Adobe FlexBuilder and Microsoft Visual Studio to ease developer workflow. (Note: This chart does not seem to show up if using IE7 for your browser. Please try FireFox or email me and I’ll send the chart to you.)

Feature Comparison Chart

Feature/ Product

Blaze DS

LCDS

WebORB

Notes

Remoting

Basic runtime

x

x

X

Basic runtime provides support for the RPC infrastructure, argument/return value marshalling and unmarshalling

Custom configurable serialization

X1

X1

X

Enables overriding default serialization algorithm for complex types.

Code generation

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.

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.

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)

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.

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.

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.

Event logging

X

X

X

IDE Support

Eclipse/ Flex Builder

Eclipse/ Flex Builder

Eclipse/ Flex Builder/ Visual Studio

Data Management

Provides a 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

Delivers notification of data changes to the clients that have (or would have) retrieved changed/new data.

Data management code generator

X

Supports generation of both client-side (ActionScript) and server-side (Java, C#, VB.NET, Coldfusion) code based on database schema. The generated code supports all database operations in a client/server environment including client synchronization.

Creates all the CRUD code for client (ActionScript) and server (Java, C#, VB) out of the box

X

The generated code functions as a framework capable to perform full CRUD directly from Flex client using intuitive API based on the ActiveRecord pattern. The code is extensible with extensibility stubs created by the code generator.

Generates fully functional test/demo application demonstrating all database operations (CRUD) from the Flex client

X

Support for loading related entities

X

Platform independent (supports .NET, Java, PHP, Coldfusion)

X

Supports multiple DBMS

X

X

X

Messaging

Supports data push

X

X

X

Supports real-time messaging protocol

X

X

Integration with JMS

X

X

X

High volume, dedicated messaging

X

X

Integration with MSMQ (.NET)

X

RTMP Tunneling

X

X

Remote shared object support

X

Real-time video streaming and broadcast

X

Native implementation for both Java and .NET

X

Data paging

X

X

SQL Adapter/Query execution

X

X

Licensing and Support

Software License

Free

$6K-$20Kper CPU

$750-$4999/ server/ year

WebORB subscriptions include a perpetual software license bundled with commercial support. OEM licensing is negotiated on a case by case basis.

Commercial Support

$3K to $24K per year

$3K to $24K per year

Bundled with software subscription

1 – BlazeDS an LCDS 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 and LCDS is by specifying scope in destination configuration.

WebORB for Java is available in Free Developer and Community Editions or on a subscription basis for the unlimited Enterprise Edition feature-set. Additional new Enterprise Edition features will be available soon, so stay tuned!

Advertisements

9 Comments (+add yours?)

  1. Jose Ferreiro
    Mar 09, 2009 @ 21:16:00

    Thank you for the substantive work. I found this article very useful.

    Reply

  2. Eman
    Dec 11, 2009 @ 01:33:17

    Hello,

    Nice comaprison. Btw, where is GraniteDS? And I think it is time to update this comparison?

    Thanks you for your post. It gives a lot of useful info.

    cheers.

    Reply

  3. Fabricio Eduardo Reche
    Mar 27, 2010 @ 15:47:42

    Great job! I was searching for some time to compare the bladeDS and WebOrb and that was the best I found, based on that I can do my job of completing the course I do.
    Thank you very much!

    Reply

    • mcoderkat
      Mar 28, 2010 @ 00:03:43

      Thanks Fabricio. It’s a little dated, but still useful. I’ll post an update soon as we’re close to releasing WebORB Version 4 for .NET and Java. Stay tuned.

      Happy Coding,
      Kathleen

      Reply

  4. Trackback: BlazeDS vs Granite DS vs WebORB vs LiveCycle DS for business applications on Flex and Java « Artem's blog
  5. Boris
    May 07, 2010 @ 08:15:59

    THNX for the nice comparison!!! Still I’m also missing GraniteDS. Anyway, thumbs up!

    Reply

  6. mcoderkat
    May 14, 2010 @ 04:56:11

    Hi All,

    I don’t know if something has changed with WordPress, but I’m having a huge amount of difficulty getting a new chart with updated information into this blog and my corporate blog. (BIG ARGH!) We have provided some updated info though and you can find it here: http://www.scribd.com/full/31340900?access_key=key-25qt9a1d8lzjytajt17h

    Reply

  7. Trackback: Vergleichsmatrix von extern Blaze / Granite / LC DS « The Guide Poster

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: