• Home
  • About
  • Sample Apps
  • Server-side Architecture (Part 2)

    August 20th, 2008

    In this blog post series, I am revisiting some of the arguments for a Java-based RIA library such as UltraLightClient. Please leave a comment and share your views. Read Part 1 here.

    Why ULC? (Part 2)

    Within UltraLightClient the programming model and the execution model are server side based. ULC applications are installed and run on the web server. On the client side, a small, browser-like presentation engine, that is generic for all applications, links up with the server to display the corresponding user interface component.

    Fair enough. But how will your business web application project benefit?

    Consider the following reasons:

    1) Faster development - re-use instead of re-invent

    UltraLightClient was designed for complex web applications in the business world, such as typical data entry applications with tonnes of data, tables, table trees, tabs, forms, charts. The library offers a full range of user interface components to build better web interfaces for enterprise applications.

    From a developer’s angle, UltraLightClient takes care of the client/server environment. It handles distribution between the two very efficiently, and as a developer, you do not need to worry about the client/server split. All the application code, presentation and domain logic are run on the server. Development tasks such as distributing the logic between client and server are not required.

    Another huge advantage during development time is that you can preview, test and debug without deploying the application. See Chapter 2 of the ULC Essentials Guide for a detailed description of the ULC DevelopmentRunner.

    2) Re-use existing HTML application platform

    ULC applications share the entire software platform with HTML applications and are easy to integrate with HTML applications. ULC has a typical web application architecture and can be easily used alongside many excellent tools and libraries (e.g. Spring, Hibernate)

    3) Better security

    In general, ULC applications are easier to protect against security attacks than AJAX-based applications. Java is less vulnerable than JavaScript. ULC applications are secure from cross site scripting (XSS) attacks.

    No application code is shipped to or run on the client. The presentation engine is generic and is less susceptible.

    4) Profit from Java EE scalabilty options

    Standard Java EE is supported. This means that all the scaling options available for Java EE can be used to deploy ULC applications.

    5) Highly responsive applications

    From the very start UltraLightClient was designed to develop web applications with a desktop-like user interface. The communication has been highly optimized for the web. This ensures fast responses and ensures an increase in user productivity in comparison to the sluggish performance of AJAX applications. ULC applications easily keep pace with the performance requirements of knowledge workers and supports this user requirement out-of-the-box, i.e. you will not need to spend extra time trying to make your web application more responsive.

    Link summary:
    Why UltraLightClient? (Part 1)
    Top reasons to use ULC
    Case Studies


    One file to rule them all

    April 11th, 2008

    This is the fourth post in a series of posts that offer a preview of the new features in the upcoming UltraLightClient ‘08 release. The first post was about forms, the second post discusses invisible table models, the third post introduced the new application services. This post describes how to configure an UltraLightClient ‘08 application.

    UltraLightClient 08

    UltraLightClient ‘08 will provide an ultra easy way to configure your application. Currently, the application configuration is distributed in several places. And, the configuration method differs from place to place:

    Environment Configuration Method
    Applet launcher Java code and/or HTML tags
    JNLP launcher Java code and/or Runtime arguments
    Servlet container Java code and/or init parameters in the Servlet deployment descriptor
    Development setup Java code and/or static properties of the DevelopmentRunner class

    For example, to change the look and feel of your application you have to code this in your Applet launcher, your JNLP launcher, and your DevelopmentRunner. Or to configure a custom carrier stream provider (to compress transferred data or not), you have to code this in your Applet launcher, your JNLP launcher, your DevelopmentRunner. And for this configuration option you have to be careful to match the Servlet deployment descriptor to your client-side code changes. The result is error prone and redundant code.

    This will change in UltraLightClient ‘08!

    UltraLightClient ‘08 provides one central configuration file that holds all the configuration information. The configuration file format is an XML file. This format enables your IDE to provide code completion and documentation for the configuration options. This support makes it a lot easier and less error prone to configure your application than before:

    As an example, let’s change the look and feel for your application. The <ulc:lookAndFeel> tag configures the look and feel to be used by all client environments. All environments read this configuration file and configure themselves accordingly. No need to write custom launchers or custom DevelopmentRunners! The configuration file that sets the system look and feel looks like this:

    <?xml version="1.0" encoding="UTF-8"?>
     
    <ulc:ULCApplicationConfiguration xmlns:ulc="http://www.canoo.com/ulc"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.canoo.com/ulc ULCApplicationConfiguration.xsd ">
     
      <ulc:applicationName>
        com.canoo.ulc.testproject.view.HelloApplication
      </ulc:applicationName>
     
      <ulc:lookAndFeel>
        <ulc:standardLookAndFeel>SYSTEM</ulc:standardLookAndFeel>
      </ulc:lookAndFeel>
     
    </ulc:ULCApplicationConfiguration>

    Summary: UltraLightClient ‘08 makes it ultra easy to configure your application. No more need to write custom launchers and custom DevelopmentRunners.

    Try out the new features in the latest milestone. Send us your feedback and help improve the UltraLightClient ‘08 release!


    UltraLightClient ‘08: Milestone Released

    April 11th, 2008

    UltraLightClient 6.3 Milestone 1 of the upcoming ‘08 release is now available for download.

    UltraLightClient 08

    Evaluate the new features and send us your feedback!

    For details see the milestone release notes or these recent blog posts discussing:

    Please note: Milestone releases are not official releases. They provide early access to new features and fixed problem reports. They are provided for evaluation and testing purposes only. Please do not use milestone releases in a productive environment.