Developer Resources:

Customer Quotes:

Frequently Asked Questions

General

Show all / Hide all

fold faq

What software version am I downloading from your website?

If you do not have a software license for the software you wish to download, the software you download will run in Development Mode.  If you have a prior licensed version of WebORB, your new download will simply update your prior copy of WebORB as long as it is within the same point release family.  What this means, is that if you have a license key for major point release 3, you can obtain all 3.x releases, but not 4.x releases unless you have an active support contract with Midnight Coders.  If you have an active support contract, you will be issued new license keys for the major point release.  

 

fold faq

Is WebORB for Java an alternative to LiveCycle Data Services?

WebORB for Java offers many of the same features available in LCDS plus a lot more. The product provides remoting support and integration between Flex, Flash, Silverlight and AJAX clients and Java objects, EJBs, Spring beans, Groovy objects and XML Web Services. WebORB includes an implementation of Data Management functionality, significantly simplifying the process of creating data-driven Flex applications with Java backends. Additionally, WebORB includes unique features like comprehensive Flex-based management console, code generation tools, invocation test drive and ActiveRecord-based data management framework.

See Feature Comparison Chart>>

fold faq

How compatible is WebORB with LiveCycle Data Services?

WebORB for Java is similar to LCDS and supports four major subsystems: Remoting, Data Management, Messaging and Streaming Media. WebORB for Java uses the same configuration files as LCDS, implements the same binary protocols (AMF0 and AMF3) and exposes similar architectural concepts as destinations, channels and service adapters. From the Flex developer perspective, working with WebORB for Java is a process very similar to working with LCDS with an additional benefit of having a more streamlined development process. For example, deploying and exposing a Java class or a Spring Bean as a remoting service, would only require copying the class or JAR files into WEB-INF\classes or WEB-INF\lib directories.

See Feature Comparison Chart>>

fold faq

Can I use Flex Builder or Flex SDK to develop Flex apps with WebORB?

Yes, WebORB integrates very well with both Flex Builder (both versions 2 and 3) as well as the Flex SDK. Flex developers can use the standard ActionScript API to communicate with server objects. This includes Flex remoting (RemoteObject), Flex data management (WDMF) and Flex messaging (Producer/Consumer or WeborbProducer/WeborbConsumer) MXML and API classes.

fold faq

What is the cost of a WebORB license?

WebORB for Java is available in Standalone Enterprise Edition and Cloud Enterprise Edition. The Enterprise Edition can be purchased on a perpetual, OEM or project licensing basis.  Please Contact Sales to discuss your licensing and support needs.

fold faq

How do I get started with WebORB for Java?

Download the Free Enterprise Edition (development mode) product.  You'll have access to most of the Enterprise Edition features, except that the free download is limited to 5 IP addresses and does not run in standalone mode.  You can familiarize yourself with some of the documentation included with the product or with documents and screencasts provided on our website. Contact Us if you need commercial support or want to discuss your licensing options.

fold faq

Where can I find Community Edition?

The Community Edition program has been discontinued

fold faq

What is Development Mode operation?

Development Mode operation is for those who want to develop with Enterprise Edition, but don't quite have the budget to purchase Enterprise Edition for their development servers, nor do they have a need for support.  WebORB running in Development Mode  is free and has many of the features included in the Enterprise Edition, except it is limited to 5 IP addresses. 

Learn About Other Modes of Operation>>

Development

Show all / Hide all

fold faq

Do I need anything special on the client side to integrate with Java?

No, since WebORB handles all the client/server integration, your Flex application does not require anything special. In fact, you can use the same Flex client code to communicate with  .NET, Java, PHP, CF or Ruby (assuming your server application supports the same functionality).

fold faq

Do my Java classes need to use any special APIs or dependencies on WebORB?

No, your server-side code can be 100% WebORB-free. Unless you require some advanced features, you do not need to use any special classes, interfaces or attributes. Your method arguments and return types can be standard Java classes, collections and interfaces or types from your application domain. WebORB will automatically handle all the translation between client objects and their server-side counterparts. You do not need to use any special base classes or attributes to expose your classes for remote access.

fold faq

Why would I want Enterprise Edition?

Enterprise Edition unlocks all enterprise functionality so that your application is not limited by # of IPs connecting to your application on a single server.  Enterprise Edition also enables the clustering feature, which allows WebORB to coexist in an environment that hosts multiple WebORB servers in the same network.  This is ideal for those environments that require load balancing, failover or clustering. Enterprise Edition does not require IIS for operation.  <See More Info>

fold faq

What happens if I exceed 5 IP addresses in Development Mode?

WebORB running in Development Mode will not allow access from a 6th IP Address.  To get around this, either restart WebORB to reset the address register or Contact Sales to request a temporary or permanent Enterprise Edition license.

fold faq

How does WebORB map client-side objects to the corresponding Java types?

The WebORB client/server type mapping system is one of the most powerful features of our product. WebORB intelligently adapts client-side objects to any corresponding server type. For example, if a Flex or Flash client sends a linear array, the server side type can be any linear Java collection or a custom array of application objects. Additionally, the developer can override default type mapping mechanism and map specific Java types to their corresponding ActionScript classes.  Please review the documentation on Flex Remoting>>Data Type Mappings.  This is under the Documentation tab in your WebORB Console and also in the Developer Guide.

fold faq

How can my Java application deliver errors and exceptions to the client side?

Delivering exceptions to the client application does not require any special programming techniques. Your Java application code can simply throw an exception and WebORB takes care of serializing it as a Flex/Flash fault event. Your client application also receives all the information the server code passed with the exception (error message, error code, stack trace).

To learn about WebORB Logging, open the documentation tab in your WebORB console and navigate to Server Infrastructure>>Logging.  Alternatively, you can find this information in the Developer Guide.

fold faq

Where can I find coding examples?

Your WebORB console contains many helpful examples.  You can also go to our Developer Den for access to other helpful information.  Support Plan subscribers and Enterprise Edition subscribers have access to a rich online KnowledgeBase and support technicians as well.

fold faq

Show me a basic example of Flex to Java connectivity.

The following example demonstrates basic invocation of a method in a Java class. Consider the following very basic Java class:

namespace com.acme.example;


class BasicService

{

  public String SayHello()

  {

    return "hello world";

  }

}

The following code can be used to invoke the SayHello() method shown above from a Flex client:

 

var ro:RemoteObject = new RemoteObject( "GenericDestination" );

ro.source = "com.acme.example.BasicService";

ro.SayHello.addEventListener( ResultEvent.RESULT, gotHelloResult );

ro.SayHello();


public function gotHelloResult( result:ResultEvent ):void

{

  Alert.show( “Server responded – “ + result.result );

}

Deployment

Show all / Hide all

fold faq

How can I deploy my Java application so Flex clients can consume its objects and services?

Deployment of a Java application is as simple as copying the class files into a WebORB-enabled Java web application (running in any Java EE server or servlet container). WebORB does not require any additional configuration changes and once copied over, you can start accessing your Java classes from a Flex client.  For more detailed instructions on how to deploy WebORB and your Java application, please review the README file included with WebORB or click on Resources>Documentation>Deployment also included with WebORB.

fold faq

How can deploy WebORB into my existing Java application?

Deployment involves copying the WebORB jar  and configuration files as well as making a simple configuration change in web.xml to register the WebORB servlet.  Detailed instructions are provided within the WebORB console under the Deployment tab and also under the Documentation tab (go to Deployment).

Go to Detailed Instructions>>

fold faq

I'm ready to deploy into production, what are my options?

You may deploy into production with either the Standalone Enterprise Edition or the Cloud Enterprise Edition. There are several options available to fit any budget.  Please Contact Sales to discuss your options. 

fold faq

Why is it better to deploy into production with Enterprise Edition?

Enterprise Edition is the most reliable, scalable and secure integration and runtime solution available.  We're so sure about this that we certify our product's performance, scalability and security features, because we know they matter the most to you.  Commercial support is also available to Enterprise Edition customers.  If your name and business success depends upon the reliability of the applications you build, Enterprise Edition is the smart choice.  Please Contact Sales to learn more.

fold faq

Am I allowed to distribute WebORB with my application?

There are a four ways to look at distribution:  (1) You could be distributing access to your application through a SaaS model.  (2) You could be creating a custom application that would be distributed to one customer for their own use.  (3) You could be creating an application that would be distributed to multiple customers.  (4) You could be creating an application that would be distributed as a shrink-wrapped software offering or in non-standard computing products.  Scenarios (3) and (4) require you to license WebORB under an OEM/ISV licensing agreement.  Please Contact Us if you are unsure if your distribution would require an OEM/ISV license.

Security

Show all / Hide all

fold faq

Automated exposure of the deployed classes sounds dangerous. How can I restrict access to my application?

WebORB supports a very powerful security system, which can limit access to the executable code at any level, starting with package names right down to a particular method declaration.

fold faq

How can I secure my application to prevent unauthorized use?

There are two ways to configure code-level security – using the WebORB Management Console or through the product configuration file. Security restrictions can be applied to package names, classes and methods. Access to any of these can be restricted to users with particular credentials, or users accessing the application from a defined IP address mask.

fold faq

Can I add my own authentication or authorization mechanism?

Yes, in fact, WebORB provides a rich extensibility mechanism for custom authentication and authorization implementations. Applications can be secured to authenticate users against a database or custom security domains.

fold faq

How can my Flex client know if authentication failed?

When WebORB security restricts access to a secured method (or class, or namespace), WebORB delivers an exception to the client as a FaultEvent. To indicate a security-related error, the extendedData field of the Fault object encapsulated within FaultEvent is set to 401. As a result, your Flex application code can do a simple check as shown below:

public function handleFault( event: FaultEvent ):void

{

  if( Number( event.fault.extendedData ) == 401 )

  {

     // authentication failure logic goes here

  }

}

fold faq

Can I use JDBC to fetch data from a database and display it in Flex?

Yes, WebORB contains special serialization logic to serialize JDBC java.sql.ResultSet objects as an array of complex types. Each complex type in the array is an object with fields corresponding to the column names. As a result, when the server code returns ResultSet, the client side can assign the return value as a data provider for the databindable components (DataGrid, List, etc). Server-side code does not need to include any WebORB specific code.

Data Management/Database Integration

Show all / Hide all

fold faq

Does WebORB support Flex Data Management Services (FDMS)?

WebORB currently implements a subset of the FDMS functionality. Applications can perform all four basic database operations (CRUD) using the mx.data.DataService API. Data destination classes can be registered in data-management-config.xml. Client applications can use mx.data.DataService class to perform fill and sync operations. Client synchronization and conflict resolution are made available in the Flex ActiveRecord implementation.

fold faq

What is Flex ActiveRecord for WebORB?

Flex ActiveRecord for WebORB is Midnight Coders enhanced implementation of Flex Data Management Services functionality. It borrows some of the best ideas from the frameworks like Ruby on Rails ActiveRecord and Hibernate. The system provides a rich interface for all data related operations (data retrieval, construction, update and deletion). It supports transactions and can be easily extended with custom operations. The framework includes a powerful code generator for both ActionScript and .NET (C#/VB.Net) classes. The client-side API is very similar to the Rails’ ActiveRecord with support for dynamic, patterned methods. For more info, see the WebORB Blog.

fold faq

Can I use JDBC to fetch data from a database and display it in Flex?

Yes, WebORB contains special serialization logic to serialize JDBC java.sql.ResultSet objects as an array of complex types. Each complex type in the array is an object with fields corresponding to the column names. As a result, when the server code returns ResultSet, the client side can assign the return value as a data provider for the databindable components (DataGrid, List, etc). Server-side code does not need to include any WebORB specific code.

Messaging & Streaming

Show all / Hide all

fold faq

Does WebORB support Flex Messaging?

Yes, WebORB supports both Flex Producer and Consumer MXML/API (as well as our own WeborbConsumer/WeborbProducer) and provides integration with JMS. WebORB delivers messages published by Flex producers to a messaging destination. A destination can be configured to route published messages to a JMS topic/queue or use a pluggable routing logic. Flex consumers subscribe to a destination and become destination listeners. WebORB facilitates the delivery of all messages from a destination to all consumers. Additionally, WebORB can deliver any messages published by non-Flex producers (JMS publishers) thus providing integration between Flex and Java applications.

fold faq

Does WebORB support real-time messaging?

WebORB contains an implementation of the Real-Time Messaging Protocol (RTMP). As a result, the product supports all the functionality delivered on top of RTMP, including support for Remote SharedObjects, client stream recording, video streaming, server-to-client invocations.

fold faq

Can Flex application use Remote SharedObjects in WebORB?

Yes, WebORB includes support for remote SharedObject API. 

fold faq

Can I send a message from a client to all other connected clients?

Yes, you can use the SharedObject API to perform a client-side function invocation from a client on all other clients connected to the same SharedObject.

fold faq

Can I stream Flash video to a Flex/Flash client through WebORB?

Yes, WebORB supports FLV video streaming.