Juice Pipes XML for "Live" Desktop Integration

Juice Software is providing developers with an XML-based data integration platform that can bring "live" data updates directly to their end users' desktops from a variety of back-end software systems -- ranging from simple web pages, networked Microsoft Office applications, SQL databases and even high-end ERP systems.

Tags: Juice, Server, Developers, Client, Request, Connection, Updates,

Juice Software is providing developers with an XML-powered data integration platform that can bring "live" data updates directly to their end users' desktops from a variety of back-end software systems -- ranging from simple web pages, networked Microsoft Office applications, SQL databases and even high-end ERP systems

The company earlier this year went to web-to-Excel integration, with a partnership with salesforce.com, the sales automation hosted service. With mewly-launched Juice Pro, users can to co-mingle their hosted salesforce.com data with their local Excel data to create real-time analytic reports and executive summaries.

To get a deeper drill-down inside how Juice operates, Integration Developer News spoke with Dr. Alan Warren, Juice's CTO & cofounder.

"We provide a brokering server function. Essentially, we provide a usage and access model to work with back-end data, but abstract the technology to talk to a particular system," Warren told IDN. "Users don't need to know if a web service, or SQL server scrape off a web page. We have a model insulated from that detail. Under the hood, we can pull from a wide variety of platforms."

Businesses that would benefit most from the Juice approach are those that want to provide their users -- or partners -- with desktop access to data so they can offer updated reports, as well as live queries on inventories, shipping, payments, etc. Juice is especially tuned to help squeeze data from multiple databases or applications.

While large enterprises in the past may have taken a data warehousing approach, such projects require budgets and resources not often available today. And basic SQL-to-XML conversions often provide access to preset documents, but not individual, granular pieces of data.

The Juice approach is aimed at this middle area, where companies need an approach that is less expensive and complex than a data warehouse, yet more custom-controllable than simple access to XML documents.

"We've designed the Juice client/server approach to give a lightweight way to expose systems so a knowledgeable end user can connect them and work with them," Warren told IDN. "To expose a database is as simple as defining a data source, a connection and a couple of queries. Then you wrap the queries as Juice requests," he added.

When the Juice Client sends a query (in the form of an XML message) to the Juice Server, the server routes the request to the appropriate data service, which executes the query and returns the requested data to the Juice Server in uniform XML. The server then routes the information back to the requesting client.

Inside Juice's 'Live' Integration
In specific, the engineers at Juice have created a request broker architecture based on current and emerging open standards (XML, SQL, SOAP, HTTP, etc.) that links front-end desktop users with a variety of back-end data sources. Unlike many point-to-point approaches, however, Juice's architecture does not require the coding of dozens of A-to-B dataflow calls, and the user doesn't need to know the data's location or format to link into the most recent data.

Juice's platform magic lies in its use of a customizable client add-on along with its back-end request broker. Both the Juice client and Juice server support a wide array of functions -- across different protocols -- that allow developers to skip many time-consuming desktop-to-back-end integration steps.

The Juice Server provides several core functions: connectivity, security, administration, logging, monitoring and application services management. In addition, it also comes with a central repository, where queries can be saved and managed.

The server also comes with two other key components:
  1. The data transport between client and server and back-end software and back again to the Juice client is handled through a variety of Juice's plug-in Data Adaptors; and
  2. A publish-and-subscribe engine that interacts with the data services to monitor requested data changes and proactively sends data updates to the requesting client.

The Juice Client architecture leverages a number of developer skill sets:

COM APIs - Asynchronous, COM APIs for accessing and subscribing to information from any remote system. Base services for XML payload packaging and parsing, synchronous and asynchronous message handling, intelligent parameter substitution, server and data source connectivity and authentication handling, and query management service and repository.

ODBC Driver - Client-side ODBC access to any data source connected to the Juice Server. Exposes all queries in the Juice library as a unified database (with each query appearing as a different table), thereby enabling joins across disjointed data sources.

Web-Services Access - Developers can access the Juice Server using SOAP requests to execute queries and UDDI to view the contents of the query repository. This functionality enables the instant exposure and use of all data sources connected to the Juice Server as web services.

Browser / HTML Access - Developers can embed Juice queries into HTML documents and use tags to distribute returned information within the page. Information returned by the Juice Server updates automatically, without the viewer having to refresh the page, and inherits the surrounding formatting.

For securing access control, Juice provides a Security Provider Interface (SPI) that enables developers/sysadmins to integrate Juice access with a company's existing directory and security services.

Juice CTO Warren makes an important distinction between the Juice approach and generic application servers. "An application server is a very general vehicle for running code that needs to execute on a middle tier. What we do is act as a request broker to move information seamlessly back and forth between the front and back end without running the code," he explained.

Mapping the Info Flow
But Juice does a bit more: It triggers a two-way (asynchronous) link between requesting client and target server -- even when the underlying protocol may not support asynchronous communication, as in the case of the current version of SOAP.

Warren explained it this way: Juice is not just sending a message from A to B, it's setting a flow connection in place for a continuous live update of data, if desired. Juice knows the initial communication from (A) is a query and so notifies the target server (B) that, if there are changes in its data, to send those updates to the Juice server, which in turn will pass them on to the original requesting client. "So, in this sense," Warren told IDN, "Juice supports asynchronous communications."

One of the keys to saving time and money, Warren said, is that Juice has "abstracted out the information flow and objects," so that developers don't have to hand-craft each connection to accommodate individual users' needs. "Juice has centralized the control points and management points for how [users and data] interrelate," Warren said. "All the developer needs to do is map the workflow at the most basic level."

To construct this workflow, the Juice Toolset can let you visually grab the query and pass it through to the target. "Our Juice library [of data connectors, protocols, etc.] wires it up," Warren said. "We write an app where appropriate for the client to sit in Word or Excel; then we give a very clean mechanism where metadata connects to the back-end system, SAP code or servlets or whatever the flavor is."

The process is similar to using ActiveX controls, but Warren noted it can sometimes be difficult to use ActiveX to hook up to data elements with multiple dependencies -- or to hook up to the other ActiveX targets. "What our model does is plug into the user interface of the document (Excel, Word, etc.) and lets you interrelate things at that point," he explained.

According to Warren, while Juice is heavily XML-based, it is prepared for new web services integration -- where the updates may need to go from server-to-server or service-to-service, without any client ever being involved. "Under the covers, our XML messaging infrastructure is very SOAP-like," he said. "When we started, SOAP was on the radar but not mature enough to use just off-the-shelf. But our underlying platform is SOAP-like in terms of abstraction and communication protocols, and we have SOAP plug-ins for developers working with native web services."

The Juice server lists at $25K for starting implementation. Developer seats are available at $10K and under.