|
Comments
Did you read today's front page stories & breaking news?
SYS-CON.TV
|
Product Review DreamFactory Suite from DreamFactory
A user experience for service-oriented architectures
By: Ahmed Sako
Aug. 31, 2004 12:00 AM
The DreamFactory suite is a mature development and execution platform for crafting rich, event-driven interfaces. DreamFactory picks up the UI development "gauntlet" with a thoroughly thought out metaphor, framework, and tools whose sophistication matches, and usually exceeds, that of the other application components while remaining straightforward to develop in. The resulting lightweight applications run in Internet Explorer, Mozilla, and Netscape (on the Windows and Apple Macintosh platforms, with Pocket PC, Palm OS, and Linux versions in development). DreamFactory Flavors Rather than being locked into the browser environment (and its limitations), DF chose to find a standard, portable way to provide rich UI functionality on a variety of platforms, and settled on implementing DF as a MIME type. Within the browser (and most other MIME-aware applications, such as Word), a DF Runtime can be rendered in full-screen mode or embedded in a Web page (even as multiple instances). DF Professional, on the other hand, is a stand-alone application. DF Enterprise supports the installation and deployment of DF media across networks. Developing Applications The DF IDE includes the standard development tools: UI Builder, GUI Objects (Nodes) Palettes, XML/SOAP/WSDL viewers, and wizards, script editors, debugger, etc. While these tools are not uncommon, the completeness of the assembled set is surprising, along with the depth of the functionality available and the ease of use. For example, rather than supporting a single scripting language, DF supports three (JavaScript, VBScript, and DFScript)! Better yet, developers can change the default scripting language on the fly, resulting in the scripting languages being seamlessly converted from one to the other. As another example, variable, method, and object names can be auto-corrected while typing. The project-structuring metaphor in DF is the XML Tree, with a DF project a hierarchical collection of objects called nodes. The relationships and operations (traversals, tree and node management, introspection), supported on the DF Node Tree are similar to the operations that can be performed on an XML tree. Dynamic behavior is implemented using scripts. Scripts can be associated with nodes to respond to events and provide utility functions. In addition, every project has a special script called "project" that receives most system messages and parcels them out to the appropriate node. Finally, the DF libraries also contain scripts that can be invoked. The hierarchical structure of the nodes not only determines the visual organization of the screen and the logical organization of the project, it also establishes the default message passing hierarchy when events are triggered. The messages flow via scripts, from node to node along the tree, up to the project script and then to the libraries, searching for a handler. A developer can control the delegation of, handle, trap, hook, reroute, and trigger events to and from other controls (even in other projects, depending on the security settings), allowing for fine control over the application behavior and messaging flows. The default behavior of the nodes is generated in the node script when the node added to the project. This gives the developer even more control over the behavior by permitting him or her to modify the scripts controlling the node's implicit behavior. Similarly, errors and system responses to abnormal conditions (errors, warnings, exceptions, etc.) can also be precisely controlled (from the code). Rendering nodes is platform independent with DF controlling the rendering and not the browser (as DF is a MIME type). This allows for a degree of isolation from the variations and issues related to the underlying platform (browser, O/S, etc.) which DF abstracts and resolves to prevent issues from affecting the users. As a result, applications developed on one platform look identical on the other supported platforms. To achieve this result, the nodes (or any other DF component like scripts, etc.) have no direct interaction with the native environment and DF marshals the requests. Yet, the platform feels very responsive (even under loads), without the delay experienced, between action and response in some purely scripted environments. Even system resources such as fonts, cursors, etc., are abstracted. For a system-specific resource to become available for development in DF, it is first captured and compressed by DF into a neutral format (for fonts this format is the "DreamFactory Font") that is native to the DF platform, enabling the developer to access the newly created resource. Every node-type superclass is associated with a plugin that provides its implementation. The plugins, written in C, leverage a cross-platform library provided by DF (making your developed code instantly portable, across OSs and browsers). The runtime and nodes, are lightweight (400K one time runtime environment download, with additional nodes downloaded as needed, then cached). While most of the node types used to create nodes (e.g., Document Window, XML Palette, etc.) and the features they provide (advanced media types, fonts, drag/drop, etc.) are available in other environments, the large number of node types and the quality of each one is surprising (see Figure 1). Using XML, WSDL, SOAP, and Web Services Here are some enhancements that DF is planning for their next release:
Project Security and Application Deployment DF provides security controls through the VM security policies and the project security (e.g., disabling the key sequence to access to the development environment at runtime). Company Info The DreamFactory Runtime and DreamFactory Professional editions are available at no cost. The DreamFactory Enterprise, providing application maintenance and network deployment facilities, can be evaluated for 30 days, after which a license agreement is required. Summary The abundance of well fleshed out components and tools married to an intuitive, easily relatable application model, coupled with a solid implementation, makes the platform shine. The platform has a "mature" feel, with the richness of the environment making the development experience akin to developing a native graphical application where most of the heavy lifting has been done for you and you can focus on the end-user features. No wonder then, that some of the leading Web services providers (SalesForce.com, Grand Central) are using DreamFactory. Reader Feedback: Page 1 of 1
SOA World Latest Stories
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
|
SYS-CON Featured Whitepapers
Most Read This Week |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||