Architecture

Architecture Overview

Zocalo is based upon a three-tier architecture:

Within each tier, components may be extended, added, or replaced with alternative implementations. In addition to the components that make up Zocalo, there are related projects that augment the Zocalo system, making it easier for developers to use the technologies. Each tier and component is described in more detail below.

The concepts that underlie Zocalo can also be found in previous work on Mimesis; however, Zocalo differs from Mimesis in ways that make it more extendable and easier to integrate into many dissimilar platforms and environments.


Interconnection of Zocalo components

Web Services

The Zocalo Web services provide the fundamental problem-solving functionality within Zocalo. They handle planning and mediation problems, which can be computationally expensive. Providing this functionality on powerful servers rather than on the end-user's machine, allows planning-based applications to be delivered to virtually any device with an Internet connection.

Using an architecture based around Web services also allows for components to be replaced, extended, or added. The open APIs for the Web services could be used for alternative implementations without necessitating changes to the Execution Manager or the execution environments. The Web services methodology also allows for applications to choose among multiple deployments at runtime; it would be practical to have multiple servers running Fletcher  with the Execution Manager choosing the server with the lowest load.

Read more about the details of the Fletcher, CrossWind, and Kyudo Web services.

Execution Manager

The Execution Manager bridges the gap between the Web services, which compute plans involving conceptual operators, and the execution environments, which realize plans in concrete ways. It is provided in three different forms: a .NET DLL, a C DLL that uses the .NET framework internally, and a socket-based stand-alone executable. All three forms provide the same functionality and are available for download; the variety is provided to ease integration with execution environments running in different types of applications.

Information must be pulled from the Web services, by making HTTP requests; however, execution environments that support user interactivity are well suited for push-style information sources. The Execution Manager stands between these two components, pulling information from the Web services, combining it with information from an execution environment, and then pushing the processed data to the execution environment in the form of executable plan steps.

Execution Environments

Developers can write clients that communicate with Zocalo's Execution Manager in order to execute partial-order plans. A Zocalo client for Unreal Tournament 2004 (UT2k4) has been completed and is available for download. There are also movies that showcase aspects of Zocalo within the UT2k4 client. Extension of the UT2k4 client is ongoing as well as development of a Half Life 2 client.

Planning Schemas

Complex pieces of information are frequently transferred among the Web services and other components in Zocalo. These planning problems, plans, action sets, and other documents need to conform to a standard format in order to be usable by the Zocalo components. The planning schemas and the Planning.Xml assembly provide an API that developers can program against, making it easier to work with these documents.

The planning schemas are written in the W3C XML Schema Definition Language and are embedded into the Planning.Xml assembly. The classes in the Planning.Xml assembly include readers that validate XML documents against these schemas as they are read, parsers that push XML data via strongly-typed methods, and writers that write new XML documents from calls to strongly-typed methods. These classes used throughout the Zocalo components and may also be useful when developing new execution environments. The .NET assembly and the schema files are available for download.

About Us | Site Map | Privacy Policy | Contact Us | ©2005 NC State University