Frequently Asked Questions
Search:
This FAQ contains the following sections:
General
Development
Deployment
Security
Database Integration / Data Management
Discussion forum questions

If you have a question and do not find the answer in this FAQ, please contact us at support@themidnightcoders.com or post your question on the  WebORB discussion forum.

General

  • 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 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.
     
  • How compatible is WebORB with LiveCycle Data Services?
    Similar to FDS, the product supports three major subsystems: Remoting, Data Management and Messaging. WebORB uses the same configuration files as FDS, 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 is a process very similar to working with LCDS. In some ways, WebORB offers 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.
     
  • 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.
     
  • How much does WebORB for Java cost?
    WebORB for Java is available at no cost. You can develop, deploy and distribute the product free of charge. We encourage you to obtain a support package so you can get an assurance of help at the time when you need it.
     
  • How do I get started with WebORB?
    We recommend going through the Getting Started with WebORB guide.

Development

  • 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 or Ruby (assuming your server application supports the same functionality).
     
  • Do my Java classes need to use any special APIs or dependencies on WebORB?
    No, your server side code can be 100% WebORB-API-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 mapping 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.
     
  • 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.
     
  • 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).
     
  • 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

  • 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.
     
  • 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. There are detailed instructions on deploying WebORB into an existing Java application.

Security

  • 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.
     
  • 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.
     
  • 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.
     
  • 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
      }
    }

Data Management/Database integration

  • 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.
     
  • What is WebORB Data Management for Flex?
    WebORB Data Management for Flex (WDMF) is an innovative data management framework designed to facilitate client/server integration for data-driven Flex applications. WDMF consists of a design-time code generator and a runtime data management and object relational mapping engine. The code generator accepts a configurable data model which may consist of one or more data tables from one or more databases. Generated code consists of a set of ActionScript v3 classes as well as all the supporting Java backend code. Using WDMF, Flex developers can focus on the core application logic without spending time on creating code for ‘data management plumbing’. The framework includes rich support for all fundamental database operations (CRUD), as well as the ability to dynamically compose data retrieval queries using the dynamic method composition technique.

Messaging

  • 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.
Discussion Forum Questions
WebORB features / Miscellaneous

Database Integration

Alternative Solutions

Service Invocation

 

Product Information

 

Development Resources

 

Licensing and Purchasing

 
Copyright © 2003-2008 Midnight Coders, Inc.  Privacy Policy | Contact Webmaster
Home | Products | Customers | Download | Licensing| Forum | About