![]()
Droplets Platform Architectural Overview |
|
Introduction IntroductionThe Droplets Platform is a powerful new tool that lets developers build and deploy thin Internet application GUIs with the persistence and rich interactivity of local software using only open standards languages and tools, and with zero application code on the client.
Droplets constitute a leap forward from traditional Web-based User Interfaces
because they replace the Web page's inflexible, page-based HTML forms
with rich, component-based GUIs that feature real-time, server-side updates.
Droplets GUIs can be dragged directly off of Web pages and onto the end-user's
PC, where they behave as branded, double-clickable icons that end-users
access just as they would any other desktop application, provided they're
online. The Droplets SDK makes developing online applications just as straightforward as writing a local application, and allows developers to quickly enable existing network applications to be deployed as Droplets GUIs. Droplets can be deployed in conjunction with EJB Servers and/or XML-based Web services and can interoperate with all major application servers, Web servers and databases. If desired, the entire application can also be hosted by the Droplets UI Server. The
components of the Droplets Platform include:
The Droplets UI ServerThe Droplets UI Server hosts the application logic, and instructs the Client as to 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 that use EJB, COM or CORBA, and its applications can incorporate the use of remote, XML-based Web services. Regardless, all application logic resides on the server, and none is ever passed to the client. When working with other application servers, the presentation layer is hosted by the Droplets Server, with the rest of the application logic on the application server. Each Droplets UI Server in a given deployment is associated with a single Web server. The UI Servers can be load balanced and maintain session state even if a connection is lost, and can be monitored through its SNMP plug-in. Client and Server communicate through an optimized communications layer (port 8194) or, if prevented from doing so by a firewall, using HTTP Tunneling (port 80). Once a Client initiates a connection, the UI Server communicates the GUI layout and any necessary start-up actions. Once this is done the Server runs the application's presentation logic, transmitting updates of value, color, size and location to the Client based on both user behavior and server-side events.
The Droplets ClientThe Droplets Client is an extremely thin engine that is invisible to the end-user, and presents all Droplets GUIs with very little cost to the client-side computer, and with zero application download. Placing the Droplets Client does require one small, one-time download (~1MB); thereafter, no application downloads are required and all upgrades are automatic on application startup. The Client contains no application-specific software; just as all Web pages can be viewed through a Web browser, all Droplets can be viewed with the same Droplets Client. The Client has two major responsibilities: the presentation of the GUI and the reporting of user events to the UI Server. To accomplish this, all that is necessary is a 1-2k text file called a "DRP", which holds essential information like the URL of the UI Server, the port over which to communicate and the name of the Droplet to present. In addition, the Client listens for desktop alerts from the server in the form of system tray icons, pop-up windows and/or sound alerts, which can be posted to the client machine even when the Droplets application is closed. Droplets typically run as standalone applications from the desktop. To accomplish this, the Droplets Client executable must be installed on the user's computer. Once this client is installed once, the computer is "Droplets-enabled" and can run any and all Droplets without further configuration. Users can also run Droplets directly from the Web, causing the browser to download a client applet (~100k) automatically. This gives end-users the freedom to access their Droplets from any connected device in the world with no Client download, provided they have proper authentication credentials. Another important aspect of the Droplets Client is its ability to support a "Dripline", a desktop alert which allows the UI Server to contact a Client whenever the state of a given Droplet has changed. This allows the client to update that Droplet's desktop icon, alerting the user of off-line events such as the receipt of a message in Droplets Email or the posting of a new high bid on an online auction watcher.
Optimized Communications LayerDroplets Client and Server communicate via an optimized communications layer that runs over TCP/IP sockets. Using this protocol, the UI Server instructs the client as to the layout of applications at start-up, and transmits both server-side and user-initiated updates as required. As a result, Droplets is far faster and takes up eight to ten times less bandwidth than the Web. Performance is improved further because Droplets transmits only events and individual field updates, whereas HTML-based applications are forced to reload the entire page from start to finish for each user event. The Droplets Platform is capable of fully interacting with clients that reside behind proxy servers and firewalls. Natively, the Droplets Client maintains an open connection to the Droplets UI Server, which enables asynchronous communication and runs over port 8194. When a client is behind a firewall with port 8194 closed, the Droplets UI Server instead communicates with HTTP over port 80. This is made possible by a small HTTP Tunnel which resides on the same machine as the deployment's Web server. The Droplets Platform also includes a configurable polling frequency which allows Clients to respond to Server-initiated messages, thus maintaining the ability to communicate asynchronously.
The Droplets SDKThe Droplets Software Development Kit (SDK) is a remote GUI toolkit that allows developers to build their own Droplets using a single standard language (either Java or C++). The bulk of the API is a GUI component library based on Java's popular AWT package and incorporating components and interfaces from the more powerful Swing package. All networking issues are addressed by the platform, making the building of network applications every bit as simple as building local software. It also features a number of powerful platform resources, such as encryption, authentication and monitoring mechanisms.
The Droplets Platform's server-based architecture also allows you to individualize the look and feel of application instances via "skins". A Droplet skin encompasses a set of foreground and background colors defined as parameters of the component, and can also include a set of GIFs imposed atop the window's components. The GIFs provide much greater flexibility in the look and feel of the application, and allow enterprises to blend the Droplet seamlessly into the look of their other online content, including enterprise branding. Each Droplet can support multiple skins, allowing you to customize the view of each end-user according to their function.
Applications presented as Droplets are fully capable of interoperating with EJB/J2EE-based application servers, and accessing XML-based Web services. Developers access Web Services from Droplets applications using standard Java XML & HTTP libraries, a commercial or open-source SOAP toolkit, or a middleware platform like GLUE. When the Droplets Platform is used to present EJB applications, the presentation logic resides on the Droplets UI Server, with the rest of the application logic hosted by the EJB server. As such, the Droplets Server acts as an EJB client to the application server, and communication takes place over a VM-to-VM communication channel like RMI. This architecture allows you reuse existing EJB business logic with a next-generation online UI powered by Droplets.
ConclusionThe Droplets Platform is an open-standards tool that for the first time enables enterprises to merge the benefits of local software and browser-based services, in terms of both functionality and cost savings. End-users receive a Windows-style GUI which is updated in real-time without user intervention, and which is accessible without download from every connected computer in the world. Developers are spared the mundane complexities of Web-based application projects, and can use their existing skill set to write next-generation Internet software. And enterprises gain significant cost savings in terms of bandwidth, administration and worker productivity. |