• Home
  • Events
  • About
  • RIA for Business Software

    July 27th, 2007

    In the news:
    Blickpunkt KMU, a Swiss business magazine addressing small and medium sized enterprises, published an article on Rich Internet Applications (RIA) for business software. The article is in German and was written by Tobias Baumann at Soreco. Soreco is an ISV that has decided to use Canoo’s Java RIA library for their business software.

    Besides discussing AJAX and Flash-based technologies, the article mentions two main reasons for choosing a Java-based approach:

    • robust technology,
    • and excellent performance.

    In more general terms, the article concludes that the next generation of business software will offer a marked increase in efficiency, thanks to RIA technology. Business management applications will resemble conventional desktop applications regarding usability, features and performance, while offering all the benefits of a web-based solution. Current costs for software acquisition, maintenance and distribution will be reduced to a minimum.

    Download the article here (pdf, in German).

    See also:
    Jazoon Thursday
    RIA Technology for BPM Software

    Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
    • email
    • Print
    • Twitter
    • LinkedIn
    • XING
    • Facebook
    • Google Bookmarks

    JFX and the "Consumer JRE"

    July 23rd, 2007

    Between releases 1.0 and 1.1 of the Music Pinboard application, we succeeded in reducing the application’s footprint significantly. As we described in the overview that footprint is now around 5.1MB, which includes the Java FX (JFX) Runtime and a hefty (2.8MB) blob of an XML API called JAXB, which we could potentially replace with something lighter, given a little bit of time for re-design.

    Large as this may still seem, there is actually plenty of reason to assume that this figure could come down (without any re-design of the application) by using Sun’s Pack200 technology. Unfortunately, when we tried to use Pack200 we ran into bleeding edge syndrome in conjunction with Java Webstart described here.

    But when it comes to consumer satisfaction, it is not typically application size which causes irritation, but the cumbersome, lumbering JRE itself. By now you have probably heard what Steve Jobs apparently said of Java on mobile devices:

    “Java’s not worth building in [to the phone]. Nobody uses Java anymore. It’s this big heavyweight ball and chain.”

    Given the ubiquity of Java on mobile devices today (estimated at around 4 billion JREs) this statement seems pretty harsh. And true to his word the iPhone does not come delivered with a JRE and nor is it likely to in future. It also has to be said that even some of Java’s most fervent supporters agree the JRE contains too much machinery by default, much of which never gets to be executed in the average application.

    For many attendees of JavaOne 2007, one of the biggest and brightest announcement concerned “Consumer JRE”. Consumer JRE seeks to address the Java end-user’s points of pain directly i.e.

    1. Startup times: Consumer JRE introduces functionality called Quickstarter, which according to Sun should “radically” reduce application and applet startup times.
    2. JRE install and launch times: The Java Kernel project seeks to break up the monolithic Java platform into discrete units of functionality. These then get downloaded and installed according specific application needs. the remainder of the platform is then streamed down to the consumer’s device in the background.
    3. Deployment: Also part of Consumer JRE, a Deployment Toolkit should make it easier to detect and install a prerequisite JRE.
    4. User-friendliness: Startup pop-up windows containing licensing information are to be re-designed to (hopefully) look a little less like a legal writ.

    You can read more about these and yet more positive sounding developments here. Release is currently set for an update to Java SE6 in early 2008.

    So what does all this mean for JFX? Obviously as long as the promise of “radical” improvement turns out to be true, it can only be great news for a technology that itself seeks to enhance the end-user experience. For too long Sun has been relying on increasing bandwidth, more powerful devices on the patience of end-users. In the meantime many have already switched to leaner solutions, and in the case of arguably the biggest advance in the mobile phone experience in recent years, Java has been left out in the cold altogether.

    See also:

    Some Background Information about the “Music Pinboard” Application

    Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
    • email
    • Print
    • Twitter
    • LinkedIn
    • XING
    • Facebook
    • Google Bookmarks

    Canoo's UltraLightClient within the RIA space

    July 18th, 2007

    By special request I have annotated the chart I mentioned in my previous post to show where Canoo’s Java RIA library, UltraLightClient (ULC) is positioned within the Rich Internet Application (RIA) space:

    Positioning of UltraLightClient

    Thin Swing

    UltraLightClient is a Java library which offers the full Swing widget set for your web applications, i.e. a server-side API for Swing. It is a thin client where no application code is deployed on the client. A small, generic Presentation Engine displays the user interface and solves typical versioning and distribution issues experienced with conventional Swing fat clients.

    A drawback for some consumer applications is the Java plugin requirement on the client and the size of the JRE download. This is one of the reasons why Canoo is closely watching JavaFX (see Mike’s posts on JavaFX) and other consumer JRE discussions. In a business scenario, UltraLightClient is a cost-effective alternative to offer responsive, desktop-like user interfaces for web applications that need to run on various platforms.

    See the UltraLightClient product website for further details:
    Top reasons to use UltraLightClient
    Advantages vs. Swing and Java Web Start
    Case Studies

    Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
    • email
    • Print
    • Twitter
    • LinkedIn
    • XING
    • Facebook
    • Google Bookmarks

    JavaFX Script Productivity Part II of II: Developing

    July 17th, 2007

    Cheetah

    High velocity in software development translates to more than just profits. High velocity is the ability to respond fast to continuously changing conditions – either in the marketplace or on an ongoing project. Velocity enables innovation. Velocity reduces development costs. Any company that wishes to remain viable long-term needs to focus on velocity, and to ensure that velocity continually increases over time.

    Aside
    The term velocity has found increased usage in the agile development community of late, which is why I choose to use it here. However, my preferred term is actually throughput, which in terms of software development I define as the rate at which features [feature = unit of client-valued functionality] can be produced by a team or organization. Throughput is also the preferred term of process guru Eliyahu Goldratt of The Goal and Theory of Constraints (TOC) fame. Among other things Goldratt and the TOC movement have argued (and convincingly demonstrated) that focus on throughput as opposed to cost is a vastly superior strategy for increasing profits, among many other advantages. Indeed, cost focus turns out to be detrimental to the performance of virtually any business process, not to mention potentially destructive for employee relations. I’m aware that making this claim is akin to heresy in many CTO’s books, and in any case we don’t want to lose sight of the purpose of this post, so suffice it to say that if you want to make money now and in the future, then throughput/velocity has to be one of your top priorities.
    End aside

    Now if we compare our experience with the JFX-based Music Pinboard application with our experiences in developing RIA applications in alternative technologies, which include Swing, ULC, SWT/JFace, Ajax, Flex and others, then we are forced to conclude the following: The rate of feature development is impressively high with JFX. Here, roughly, is a list of features which comprise the Music Pinboard application:

    1. Enter search criteria
    2. Display artist name as title
    3. Display “related artists”
    4. Display associated albums
    5. Display associated videos
    6. Display associated pictures
    7. Scrolling through associated albums
    8. Scrolling through associated videos
    9. Scrolling through associated pictures
    10. Display and allow scrolling in a “display shelf”
    11. Video playback
    12. Consistent look and feel throughout
    13. Minimal response time enabled through parallel loading of items
    14. Download and run application
    15. Present application in a movable, shrinkable, closable window; closing window terminates app [this feature was introduced in Release 1.1 of MP]

    So knowing the number of features (originally 14), developers (2-4) and the number of person days invested (20), it would not be difficult to compute a rate of feature development. Of course, the MP effort included learning time (discussed in Part I), so such a computation would not be terribly meaningful until a number of projects gone through the pipeline. The rate of feature development is clearly also influenced by feature complexity. This a further motivation for collecting productivity data over a series of projects over time, as only then can a meaningful average rate by calculated.

    Nevertheless, we feel it is safe to say that JFX looks like a very promising technology when it comes to developer productivity. Certainly the development of equivalent functionality using Swing or equivalent object-oriented framework with no additional high-level support for Java2D effects (such as are provided in JFX) would have taken significantly longer.

    And this can only be a good thing for the organization’s long-term financial health, as well as – let us not forget – our clients.

    See also: JavaFX Script Productivity Part I of II: Learning.

    Source: Photo by Joe McDonald

    Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
    • email
    • Print
    • Twitter
    • LinkedIn
    • XING
    • Facebook
    • Google Bookmarks

    RIA Link Roundup

    July 13th, 2007

    In the past couple of weeks I noticed an increase in blog posts discussing possible definitions of Rich Internet Applications (RIA). Not surprising given that companies such as Microsoft, Sun and Adobe are staking their claim.

    Java FX Comparison
    RIA Classification

    The above diagram shows Philip’s classification of Java FX versus other UI technologies.

    RIA versus AJAX

    Redmonk analyst Michael Coté suggests the following criteria to define RIAs:

    My simple sieve consists of three parts:

    1. Is it something trying to act like a web application (only better!), including connecting to and interacting with the web?
    2. Is it trying to go beyond standard web application UI technology using something more than Ajax?
    3. Did you have to download a browser plugin or other runtime?

    He suggests differentiating between RIA and AJAX. This is indeed interesting, since RIA and AJAX have often been used as synonyms. At Canoo, we are using RIA as an umbrella term to refer to “rich client capabilities in a web infrastructure”. It really depends a lot on your project requirements what technology you should select to offer a better GUI. If one of your requirements is “no browser plugin” then AJAX is a viable option to consider to improve usability. If the web application will run within a corporate environment where a Java plugin is pre-installed, a Java-based approach will probably save you time and money.

    I find his discussion of possible areas of application more significant. See also Ryan Stewart’s response, who lists Pownce, Nike+, British library and Finetunes as examples of RIAs.

    The Three Religions of RIA

    InfoQ provides a summary of a recent blog post by Simon Morris discussing a possible taxonomy.

    These attempts to classify RIA are not new. And we’ll probably see many similar posts.

    Planet-RIA.org

    Canoo has set up a blog aggregator to help you keep up with RIA news and developments:
    http://www.planet-ria.org

    The feed aggregator is based on work by Glen Smith at http://groovyblogs.org and collects news about RIA. It is a beta version, i.e. if you have suggestions how to improve it, please feel free to leave a comment below.

    (update July 19th) Simon Morris takes the discussion further:

    “Rich Internet Application” denotes a type of client application which is functionally identical to regular desktop applications, but uses a means of deployment closer to a web page. Physically it is transient, living only at the end of a URL.

    Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
    • email
    • Print
    • Twitter
    • LinkedIn
    • XING
    • Facebook
    • Google Bookmarks

    css.php