HomeDigital EditionSys-Con RadioSearch Java Cd
Advanced Java AWT Book Reviews/Excerpts Client Server Corba Editorials Embedded Java Enterprise Java IDE's Industry Watch Integration Interviews Java Applet Java & Databases Java & Web Services Java Fundamentals Java Native Interface Java Servlets Java Beans J2ME Libraries .NET Object Orientation Observations/IMHO Product Reviews Scalability & Performance Security Server Side Source Code Straight Talking Swing Threads Using Java with others Wireless XML

Droplets by Droplets Inc.

Tired of using that Web access e-mail client? Going crazy filling out those expense reports using a clunky Web-based system? Missing the superior and responsive desktop application? You're not alone! According to the usability research firm Nielsen Norman Group, "Billions of dollars are wasted yearly in lost productivity as people wait for Web pages to perform duties that could be better handled by a 1984 Macintosh-style GUI application."

The promise of Web architecture (no deployment, large scalability, no firewall opening) is hard to refuse. Yet the wide deployment of HTML-based applications has left end users craving for a responsive and productive user interface. There have been several efforts to combine both the Web and the rich UI (DHTML/ActiveX/Java applets). Unfortunately, these add more pain rather than soothe.

The Droplets application platform, with the User Interface Server and the SDK, enables developers to create software that combines the convenient, instant deployment benefits of the Web with the high usability and rich UI of traditional clients. Droplets GUIs can be dragged directly off of Web pages and onto the desktop, acting as double-clickable icons to launch Web-based apps that look and feel like Windows applications. As there is zero application code on the client machine, Droplets is less prone to security breaches.

Droplets Overview
Droplets has a downloadable SDK from the Droplets Web site developers zone (www.droplets.com/developer). There is an initial evaluation license and plenty of starter materials (tutorials, samples, documentation) to get started. The first time I installed Droplets and tried it out, I could get to a quick sample of mine in less than two hours. Command-line and Notepad-based development is possible. Droplets also has a plug-in for JBuilder and Eclipse. Easy integration with webMethods' Glue makes it possible to hook up with back-end Web services.

The key components of Droplets are as follows.

Droplets UI Server
The Droplets UI Server hosts application logic, instructs the client about GUI rendering, manages client connections, and provides GUI updates in response to both user-initiated and server-side events. The UI Server can also integrate with application servers and back-end components like XML–Web services or EJB/CORBA.

Droplets Client
The client is a lightweight engine transparent to the end user that renders all Droplets applications at the client computer. The Droplets client does require a small, one-time download (~1MB). Thereafter, no application downloads are required and all upgrades are automatic on application startup. The client has two responsibilities: the presentation of the GUI and the reporting of user events to the UI Server. To accomplish this, a small (1–2KB) text file called a "DRP" is used. It holds basic information like the server URL, the server port, and the name of the Droplet to present. The Droplets client also has the ability to support a "Dripline", a desktop alert that allows the UI server to contact a client whenever the state of a given Droplet has changed. This allows the client to update the Droplet's desktop icon, e.g., alerting the user of server events like a change in a stock price or an inventory level dipping below a threshold.

Figure 2

Communication Layer Enables Superior Performance
The Droplets client and server communicates via an optimized communications layer running over TCP/IP sockets. The UI Server instructs the client as to the layout of the applications at start-up, and transmits both server-side and user-initiated updates. Droplets transmit only events and individual field updates, whereas an HTML-based application reloads the entire page for each user event. This makes a Droplets application faster and requires less bandwidth than an equivalent Web application.

Droplets SDK
The Droplets Software Development Kit (SDK) is a remote GUI toolkit that allows development using a single standard language. Java and C++ are the current choices. OO-COBOL, C#, and VB should be available in early 2004. The API library is based on Java's AWT package and also incorporates components and interfaces from the Swing package. The Droplets platform provides several infrastructural components such as networking, encryption support, an authentication mechanism, and monitoring. Droplets' server-based architecture allows customization of the look and feel of application instances via "skins," allowing enterprises to blend the Droplet into the look of their other online content.

Figure 1

A Real-Life Scenario
The following is an example of a real-life scenario: a large chemical company uses a standardized set of key business performance measures. The company's executives use the key measures that span financial, economic, and customer satisfaction data to make critical business decisions. A business intelligence system from COGNOS was used to gain visibility into a number of different business units using various IT systems. There are over 200 business units, and each unit is measured by around 50 measures. This data is currently loaded every month through a complex ETL procedure, then Excel and paper reports are prepared for the management. These reports are available every 30 days and are largely static in nature. However, the existing Web-based GUI was too slow, cumbersome, and user-unfriendly. It became so unwieldy that the management staff preferred paper reports.

MEC Technologies was hired to build a management dashboard to improve the ease of accessing and reporting data for the management staff. While enriching the end-user experience was critical, it was also important to use industry-standard XML Web services to integrate data from BI Systems, back-end DB, and other third-party data sources. Considering the user base, a highly polished and easy-to-use application was desirable.

Using the Droplets Java API, an executive management dashboard was developed in less than two months. Since the entire application was server-based, hooking up with back-end Web services was quite simple. Initially, both Apache Axis and webMethods Glue were used to create Web services proxies and access the measures data. Finally, webMethods Glue was chosen. The user community used NTLM security to get authenticated and then access a URL within the intranet. That URL would launch the Droplets application. Most users remained with the browser-based UI. However, a few advanced users preferred to use the Droplets client. A controlled version was beta tested by the financial analysts community. Once they were satisfied, the application was launched in production for the executive management staff.

Experience Summary
The overall experience of developing with Droplets and using it was quite encouraging. There were very few platform- and Droplets (SDK)- related roadblocks. Data integration (using Web services) was simple due to the server-side architecture and usage of XML and SOAP-based services. Thanks to the Droplets system and access logs, debugging applications during development and production was easy. Session-specific debugging was also enabled. What was really nice was the post-production extension of the application. An application-level usage reporting module was requested, and it was developed and deployed in less than two weeks. The entire new application extension was launched with minimum downtime.

Conclusion
The Droplets platform presents a nice alternative for both developers and IT managers. Developers can use their favorite IDE and use a high-level component-based environment. IT managers can still enjoy their zero-touch deployment.

Microsoft has recognized this space and presents a solid case with smart clients (www.microsoft.com/net/products/client.asp). Let's compare Droplets with .NET smart clients.

With smart clients, any machine that has a .NET CLR installed can download a .NET assembly and can do anything that the CLR classes and the security framework allow, so it fits the "rich client" aspect quite nicely. On top of this, .NET allows automatic synchronization of code versions. The IEEXEC component (integrated with IE) keeps a local cache synchronized with the server-side assembly and does delta updates automatically.

Droplets, a Java-based server, is platform independent. Currently it runs on Windows, HP Unix, Sun Solaris, and mainframe Linux. Microsoft .NET remains a Windows family–only solution. This is major for IT shops having disparate systems and trying to put sharper front ends to their traditional back-end systems.

Smart Clients Promise Offline Capability
The Droplets platform always needs a network connection to the server. However, smart clients are capable of working with local caches (both file system and DB engine based). The promise of being able to work on an application with or without a network connection is huge and will fuel an entire class of on-the-road applications.

However, Droplets has a strong story in the security area. A .NET smart client depends on code being downloaded to the client machine and running on an environment managed by a CLR. It's quite cumbersome to set up the client-side privileges of downloaded code using the Code Access Security (CAS) model. This also leaves much to worry about considering what security door might be left open in downloaded code, exposing it to some serious security breach.

The Droplets platform presents a compelling option for building rich Web applications using a secure and a platform-independent architecture.

Resource

  • Source code: or www.mectechnologies.com/articles/JDJ/Droplets/Trader.zip

    Droplets Inc.
    636 Avenue of the Americas
    New York, NY 10011
    Web: www.droplets.com
    Phone: 212 691-0800
    Fax: 212 691-6335

    Specifications

  • Deploys standalone, or with any J2EE-compliant application server
  • Supports Windows NT, Windows 2000, Linux, Solaris
  • Programming tools for Java and C++; OO Cobol and VB.Net coming soon
  • Integration with Borland JBuilder; Oracle JDeveloper and Eclipse in beta
  • Windows, Linux, Unix, wireless devices as standalone apps/within a Web browser
  • Integrate with Web services protocols with webMethods’ Glue

    Snapshot
    Pros:

  • Easy-to-build, highly rich Web-based applications
  • Secure application deployment
  • Java-based server enables cross-platform support

    Con:

  • No offline capability

    About the Author
    Somnath Banerjee is the founder of MEC Technologies, a provider of Web services and X-Internet–related technology products and services. He has 18 years of experience in the development of software products. Somnath has a BS in EE from the Indian Institute of Technology and an MS in CS. He has authored several technical papers and shares patents. [email protected]

    "Droplets by Droplets Inc."
    Vol. 9, Issue 2, p. 63

    Source Code for this Article zip file ~49.3 KB

    All Rights Reserved
    Copyright ©  2004 SYS-CON Media, Inc.
      E-mail: [email protected]

    Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. SYS-CON Publications, Inc. is independent of Sun Microsystems, Inc.