YOUR FEEDBACK
Gregor Rosenauer wrote: well, not what's your take on this? Did I miss a second page of this article or...
SOA World Conference
Virtualization Conference
$300 Savings Expire October 10, 2008... – Register Today!


2008 East
DIAMOND SPONSOR:
Data Direct
Frontiers in Data Access: The Coming Wave in Data Services
PLATINUM SPONSORS:
Red Hat
The Opening of Virtualization
Intel
Virtualization – Path to Predictive Enterprise
Green Hills
IT Security in a Hostile World
JBoss / freedom oss
Practical SOA Approach
GOLD SPONSORS:
Software AG
The Art & Science of SOA: How Governance Enables Adoption
PlateSpin
Effective Planning for Virtual Infrastructure Growth
Fujitsu
Automated Business Process Discovery & Virtualization Service
Ceedo
Workspace Virtualization
Click For 2007 West
Event Webcasts

2008 East
PLATINUM SPONSORS:
Appcelerator
Think Fast: Accelerate AJAX Development with Appcelerator
GOLD SPONSORS:
DreamFace Interactive
The Ultimate Framework for Creating Personalized Web 2.0 Mashups
ICEsoft
AJAX and Social Computing for the Enterprise
Kaazing
Enterprise Comet: Real–Time, Real–Time, or Real–Time Web 2.0?
Nexaweb
Now Playing: Desktop Apps in the Browser!
Sun
jMaki as an AJAX Mashup Framework
POWER PANELS:
The Business Value
of RIAs
What Lies Beyond AJAX?
KEYNOTES:
Douglas Crockford
Can We Fix the Web?
Anthony Franco
2008: The Year of the RIA
Click For 2007 Event Webcasts
I remember (vaguely) when I was in kindergarten, playing with my classmates, learning to make things out of clay and paper, and generally enjoying that sneaky introduction to education. Little did I know that my teacher (I forget her name, it was a long time ago) was grading my performance, checking...
SYS-CON.TV
TODAY'S TOP SOA & WEBSERVICES LINKS


WebFace & WebFace Studio by Vultus
WebFace & WebFace Studio by Vultus

As Web services proliferate and more and more applications expose their business logic in this manner, the need for effective user interfaces to consume these services grows. WebFace and WebFace Studio, from Vultus, provide a means of creating rich, Windows-like user interfaces distributed in a browser for Web services. The interface behaves like a traditional client/server application and does not require browser refreshes. The technology is built upon XML, HTML, and JavaScript, and requires that the user be running at least Internet Explorer 5.0. For this review, the focus will be on WebFace Studio and the development process.

Development in WebFace Studio
WebFace Studio is an IDE that provides a graphical environment in which to build applications using an event-driven model. The user interface itself, and each of its controls, comprise an XML document following Vultus' WebFace Application Markup Language (WAML) specification. At runtime, client-side WebFace JavaScript libraries interpret the XML document to paint the windows and controls for the user in the browser.

To start developing an application, the SOAP Application Builder wizard is executed. From an existing WSDL specification, the wizard generates a basic set of display, data, and communications components, along with supporting code to execute the service and display its results. As an example, I've created a simple Web service that allows you to manage your gym workouts. To demonstrate the wizard, I have requested it to generate the components necessary to retrieve a specific workout definition from the system. Figure 1 shows the results of the operation.

 

The parameters of the request include a workout ID and a user name and are shown by the two text boxes on the left side of the generated window. The result is an XML document that defines a specific workout and will be placed in the text box located in the right portion of the window.

Behind every GUI component or combination of components that display data is a DataSet object. These DataSets are part of WebFace's Model-View-Control (MVC) architecture and function similarly to the Java Swing GUI components and their models (i.e., JTable and DefaultTable Model). In the case of the workout ID and username text boxes, a DataSet with one row and two columns (one for each field) exists behind the scenes. This DataSet is the source of the data for the SOAP call, not the controls themselves. To establish a relationship between the DataSet and the controls, a DataController object is defined. This ensures that changes to the data in the DataSet are reflected in the controls and vice versa.

The workhorse of WebFace applications is the Task object. Several types of tasks exist within WebFace:

  • Load Task: Retrieves partial WAML documents from a host server. This may be used to request GUI components on demand.
  • Open Task: Retrieves a complete window document from a host server.
  • Search Task: Executed to retrieve data from a server, for example the result of a Web service.
  • Submit Task: Submits data to the host server with no returned data.
  • Conduit Task: Allows data to be transferred between DataSets.
  • Window Conduit Task: Allows data to be transferred between DataSets across WebFace windows.

    All tasks may be executed synchronously or asynchronously depending on the process requirement. A Task object contains the definitions of and source control references for the input parameters, the destination control references for its results, and the operations that it must perform.

    In the workout example, the SOAP wizard created a Search Task to execute the appropriate Web service for retrieving the workout definition. When the submit button is clicked, the associated onClick event executes the Task to retrieve the data. The resulting XML document is displayed in the output textbox.

    While tasks handle data associated with the request/response of service calls, a Request Broker object handles the details of the communications process. Three broker types may be used in WebFace: Local, SOAP, and HTTP. The Local broker may only be used in conjunction with an Open Task to retrieve a window definition from the local machine. The remaining tasks may be used to execute remote services either via SOAP calls or HTTP calls.

    In the workout example, the result of the Web service call is an XML document that is displayed in a text box. In order to work with the data, however, a more sophisticated view of the information, such as a grid, must be presented to the user. To accommodate a grid display, a DataSet must be defined to hold the information. Figure 2 shows the DataSet Editor dialog in WebFace Studio. This allows the developer to specify the columns and rows for the data grid. Constraints may be placed on the data, including data types, whether a value in a column is required, or its nullability. Once the DataSet is defined, a DataController is created to link the DataSet to the display grid.

     

    To populate the new DataSet, the information from the XML document produced by the Web service must be mapped appropriately. Recall that WebFace windows and their controls are themselves XML documents. Therefore, an XSL stylesheet may be used to transform the result of the Web service into the appropriate DataSet object (note that parameters for a request are also transformed via XSL stylesheets from their source DataSets into the service call). To assign a stylesheet to perform the transformation, the task is edited to include an xsltReplyTranslator that points to the desired XSL stylesheet. Figure 3 is a new window created in WebFace Studio that leverages the communications components and input fields created by the SOAP Wizard, but with the output transformed by an XSL stylesheet to fill a data grid.

     

    As mentioned earlier, WebFace applications are event driven. Event handlers and all supporting code are written using JavaScript. In the WebFace Studio IDE, the developer may switch to the source view of the window to reveal the WAML document. From here, the CDATA element of the customCode tag may be edited to include any supporting JavaScript. All controls created are accessible as objects from the JavaScript code and may be manipulated or inspected at runtime. To wire an individual event handler to a control, the function name is assigned to the desired event in the properties editor for the control.

    Deploying Applications
    WebFace Studio provides a wizard to deploy applications for testing. The wizard may be used to deploy locally or remotely to a server. The local deployment simply copies the application files to a local directory on the developer's machine. Internet Explorer may be pointed to this directory using a file URL to launch the application. For server deployments, the destination machine must provide FTP write access. At deploy time, the application's configuration files are updated to reflect the runtime environment.

    Summary
    WebFace and WebFace Studio from Vultus provide the means to deliver rich, Windows-like user interfaces for Web services to a browser. By leveraging XML, HTML, and JavaScript they negate the need for browser refreshes when executing service calls and manipulating data. It does require some time to become comfortable with the development environment and the relationship between the various controls and components, but once acclimated, application development is relatively straightforward. For Internet Explorer-based applications, the WebFace product suite from Vultus is a good alternative.

    Company Info
    Vultus, Inc.
    355 South 520 West, Suite 150
    Lindon, UT 84042

    SALES
    sales@vultus.com
    801.852.0880

  • About Brian Barbash
    Brian R. Barbash is the product review editor for Web Services Journal. He is a senior consultant and technical architect for Envision Consulting, a unit of IMS Health, providing management consulting and systems integration that focuses on contracting, pricing, and account management in the pharmaceutical industry.

    SOA WORLD LATEST STORIES
    HP announced a new release of its service-oriented architecture (SOA) governance software, HP SOA Systinet 3.00, which helps IT organizations use their resources more efficiently to deliver better business value from their SOA initiatives. HP SOA Systinet 3.00 helps increase the busine...
    Managed Methods has announced the availability of their SOA management and runtime governance product JaxView 4.5. While providing full support for the SOA and Web service management for the IT operations, JaxView 4.5 expanded runtime policy enforcement features and expanded integratio...
    Since its emergence, Web Service technology has gone a long way towards perfecting itself and finding its right application in the real world. With the maturity of the specifications, Web Service technology, with its power of interoperability, is now the major enabling technology of SO...
    We often say SOA is a discipline in enterprise architecture and if you want to get the most out of it, you have to approach SOA from business, architectural, organizational, and technological perspectives. However, most of the organizations we've worked with are taking a project-driven...
    Virtualization is a buzzword that is living up to its hype as it takes hold in IT. It has spawned magazine covers, conferences, and analyst reports, and all with good reason. Virtualization allows applications to be deployed in a highly efficient manner. By taking the physical servers ...
    "Data services apply the same philosophy of reuse and flexibility that SOA offers, but to the data tier," explains John Goodson, executive leader of DataDirect Technologies, in this Exclusive Q&A in the run-up to the inuaugural DataServices World on June 24th in New York City, of which...
    SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
    SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
    Click to Add our RSS Feeds to the Service of Your Choice:
    Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
    myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
    Publish Your Article! Please send it to editorial(at)sys-con.com!

    Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021


    SYS-CON FEATURED WHITEPAPERS


    ADS BY GOOGLE