ZIAgent™ Configurable SIF Agent

The Role of a SIF Agent

SIF Agent Role

ZIAgent changes the rules in SIF-enabling existing applications. Instead of requiring users to develop code using a toolkit, it provides a simple to use web based interface that allows its user to configure an agent that takes advantage of existing facilities that the application has already, without requiring changes to the application itself.

Instead of taking weeks or months to develop and test, users can create deployable agents with ZIAgent in a matter of hours to days, depending on complexity. Level of expertise required? Typically, if you can build SQL queries, you can configure a SIF agent with ZIAgent.

ZIAgent is not an Agent Development Kit (ADK)

ADK is to building supplies...


With an Agent Development Kit, even though some of the pieces may have been built for you, the agent must still be built, debugged and tested. A customer of ours who had experience with both described it this way: "it's like building a house: even though some of the pieces come ready-built, most of the work still needs to be done. For example, house builders may use pre-fabricated truss (roof) systems and furnaces, but they still need to pour the foundation, build the walls, run the plumbing, electrical, etc.."

Regardless of which ADK you license, what you will receive are building materials and instructions, the difference between the kits being how much work will be left for you to do and if you get any support at all as you build it.

...as ZIAgent is to House


ZIAgent is unique - it is a configurable, stand-alone SIF agent. It was first built back in 2001 and has been in a process of being refined ever since. In our customer's analogy, it's the finished house - ready to configure (decorate) and use (move in).

Because of the way we designed ZIAgent, we don't re-build every new SIF agent from the beginning, or almost the beginning (as you would with an ADK). As a result, we've been able to spend many staff years making it more:

  • Scalable - deployments can be installed easily on a single server or across several servers to support large hosted environments with many customers
  • Flexible - agents can support applications that use almost every commercially available database through a variety of interfaces
  • Reliable - we've had years' of experience seeing what can happen in the field and have built detection and recovery procedures into ZIAgent. Companies who built agents using an ADK will likely gain this experience through trial and error.
  • Secure - ZIAgent has many built-in features for data security and privacy that have come from customer requests over the years such as message auditing, record filtering and activity logging.
  • Supported - ZIAgent was first built before the initial SIF release and we've been refining it ever since. Not only do we continually add new features, enhance the runtime engine and improve the user interface, but as soon as a new SIF release is made available, we make that version available to all current maintenance customers. With an unsupported ADK, where will your next SIF update come from?

How It Works

ZIAgent OverviewZIAgent, like other SIF agents, runs as a web site. It communicates with a Zone Integration Server using standard Internet protocols (HTTP or HTTPS) using formats defined in the SIF specifications.

ZIAgent supports all of the security and authentication models allowed in the SIF specification as well as all of the other parts all versions of the SIF specification.

When an agent is at the beginning of the configuration process, it already knows about every element and every attribute of every object. In its configuration database, it has tables that contain staging areas for incoming data, validation tables for all possible legal values in encoded fields and places to hold business rules that tell it how to handle everything concerning the SIF objects it manages.

Automatic Dependency Resolution

 ZIAgent has an internal capacity to automatically handle out of order or missing messages. These types of conditions occur when:

ZIAgent knows the "normal" pattern for the receipt of SIF messages by subscribing applications - in general, messages that depend on other messages are received after those messages. For example, a StudentSchoolEnrollment (showing where a student is enrolled) message would be received by an agent after a StudentPersonal message (showing who the student is).

If for some reason, it receives one out of order for the above reasons, it will hold the received message, request the missing message, then process both of them when all the data has arrived. This example is simple, but when a message has 5 or 15 dependencies or more, this resolution problem can get very difficult for an agent to handle. This is why we made this functionality automatic inside the agent, so that no agent configuration process would need to take any of this into consideration. (Just imagine trying to code this functionality directly using an ADK...)

How Dependencies are Managed

For each specification, the agent maintains table of dependencies between objects. For example, in the US 2.0R1 specification, the StudentSchoolEnrollment object depends on five other objects:

The DisciplineIncident object depends on 13 other objects; each of those object differs in the number of objects on which it depends; others are independent, like LEAInfo.

By default, rules are now constructed for groups of messages that are aligned with the subscribing application's need for data. In the above example, if the application only needs information from SchoolInfo, StudentPersonal and StudentSchoolEnrollment to satisfy its need for student information, only those three objects will be connected. As a manual override, each dependency has an "InUse" flag and the agent will never try to make requests for objects to which the agent does not subscribe. In other words, it does the right thing by default.

Since many of these dependencies can end up looping (A depends on B, which depends on C, which depends on D, which also depends on B...), ZIAgent keeps track of any and all requests that it has already made so that it doesn't make any duplicate requests. 

As a by-product, from time to time, this table can be made available externally, so that end users can know the identity of objects that are causing records to not be handled by a subscribing application.

Features - Publishing Agents

Publishing agents are those where the application stores information that is to be shared with other applications in the zone. Student management systems are typical examples of publishing agents although many agents that for the most part subscribe may also publish as well. For example, a transportation system may subscribe to student and workforce information, but may also publish bus stop information.

Publishing agents are configured through a simple two-step process using the ZIAgent designer. The first step involves specifying where the data can be found in the application's database. The second step consists of mapping each of the application's fields to corresponding SIF fields and determining if there should be translations set up for it.

Target Database Discovery
(click screen to see full size image)

Target Database Discovery - When configuring an object for publication, the ZIAgent designer will ask for a statement that "requests all records" for the object being configured. With the results of that query, it will take whatever information it can (types, sizes, locations, etc.) and use that information to build internal tables.

 These tables will be used in other parts of the designer for validation checks, to automate the process wherever possible or to make the process as error-free as possible.

Object Field Mapping
(click screen to see full size image)

Object Field Mapping - Once the designer has learned as much as it can from looking at the sample data, it presents a simple screen to the user, allowing him or her to select the fields from the SQL statement that match the XML field in the SIF message.

If the SIF element (or attribute) represents an encoded value, the last column will contain a "configuration" icon indicating that translations should be set up for this element or attribute. Clicking this icon brings the user to the next screen.

Automatic Translation Discovery
(click screen to see full size image)

Automatic Translation Discovery - If an application gives its users an ability to define or extend code value sets, then whenever the application is installed somewhere new, these new code values' values will need to be mapped to standard SIF values in a SIF agent (this is a point of failure for many new SIF agent developers).

To address this common problem, we added a feature that searches for any values that may have been added locally by a customer that may need to have a translation and alerts the user.

ZIAgent also provides multi-zone provider filtering. When ZIAgent is registered as a Provider in multiple SIF zones, the Designer interface allows users to define zone-level filtering rules, so that data matching user-defined criteria is only published to the desired zone.

Features - Subscribing Agents

Subscribing agents are configured by defining rules that are triggered on receipt of either an "Add", "Change" or "Delete" event. These same rules are reused when a response is received. In this case, the agent decides if it is proper to use the "Add" or "Change" rule depending on whether or not the object has been "seen" by the SIF agent already.

In this screen, we see a summary of the event rules defined for the StudentSchoolEnrollment object for a subscribing application SIF agent.

Six of the rules are defined to handle incoming 'Add' events and another six handle 'Change' events. Although it could be, this agent is not configured to handle 'Delete' events.  To see the details for one of the rules, the user clicks on the pencil icon...

Subscribing Agent Event Rules
(click screen to see full size image)

This is an example of a Dynamic Matching rule.  Some subscribing applications have multiple sources of input, including interactive user input. 

This rule tells the SIF agent to, before adding a new record, search the application database (using the supplied matching criteria) to see if there might already be a record that was created through another interface.

If the same record was already added, the 'Add' event is turned into a 'Change', and the two records are synchronized.  This avoids the possibility  of creating duplicate records.

Multiple DMATCH rules may be created for the same object using different matching patterns.

Example Dynamic Matching Rule
(click screen to see full size image)

This example is also an 'Add' event.

It also combines information from several objects, adds information from the environment and passes the information to an CEDS Data Warehouse that is housed in an Oracle environment on another server. 

Only those records that have passed all of the validation checks in rules 20, 30 and 40 will update the Oracle DW; the records that fail validation will be set aside for alternative processing.

Inserting a validated record into the Oracle CEDS Data Warehouse
(click screen to see full size image)

In addition to sending information to target applications using a variety of methods, ZIAgent also provides a number of other unique features:

Features - CommonZIAgent Picture

ZIAgent Message Audits
(click screen to see full size image)

Message Auditing - ZIAgent keeps track of its message activity in a message ledger and presents it through a searchable, sortable user interface.

This message ledger keeps track of when the message was sent, any errors returned by the ZIS, which agent it was sent to and a drill-down feature that allows the user to view the contents.

ZIAgent Message Tracing
(click screen to see full size image)

Rule Tracing - While developing or troubleshooting an agent, tracing can be turned on through the administration panel.  This will cause it to maintain a limited set of "rolling logfiles" that store, on a very detailed level, what the agent is doing internally.

This allows support staff to easily track down issues with the agent's configuration or possibly with data it is receiving from other agents.



We offer several licensing models that vary depending on differing needs.

  License Includes License Characteristics
Application Supplier (Vendor)
  • ZIAgent Designer
  • ZIAgent Runtime
  • Licensed for supplier's application
  • No runtime royalties
  • VSI developer spends time with supplier's staff, configures agent, runs through SIF certification process.
  • Support includes new versions
  • Includes 20 hours of Tier 2 support during first 6 months (Standard Edition) or unlimited Tier 2 support during first year (Platinum Edition) to help you with your first agent deployments
School District or other School Organization
  • ZIAgent Designer
  • ZIAgent Runtime
  • Licensed for all applications developed by organization staff
  • No runtime royalties - may be installed and used anywhere in the organization
  • VSI developers provide training to organization's staff on how to configure SIF agents. Developers use one or two applications from the school organization during the training session so that the school staff, at the end of the session, have working useful examples.
  • Support includes new versions
School District or other School Organization
  • ZIAgent Runtime
  • Licensed per-school for the purpose of running publicly available configuration sets
  • Support includes new versions
Systems Integrator
  • ZIAgent Designer
  • integrator gets in-depth training on how to configure agents
  • integrator pays per-installation royalty for each agent configured
Regional, State or National Education Office
  • ZIAgent Designer
  • ZIAgent Runtime
  • region or state-wide license available for all non-commercial applications
  • no runtime royalties
  • VSI provides Regional or State office staff training and provides classroom training to member organizations.

How Does ZIAgent Cost Compare?

If you compare the price of ZIAgent with that of an Agent Development Kit (ADK), you want to make sure that when you make your comparison, you consider what your real costs will be. With ZIAgent, we include with our standard packages all of the above features and services and what you receive at the end of the process is a ready-to-install agent. With an ADK, you do almost everything yourself.

ZIAgent Cost ComparisonIf you assign a cost to labor (as almost everyone does), then the differences between ZIAgent and ADKs become very clear.

The graph to the right illustrates the cost differences between using ZIAgent and developing an agent using an ADK. Although the initial cost may be a little more with ZIAgent, there is no intensive labor cost as there is with using an ADK.

There is no drawn out unit testing process as there is with using an ADK. ZIAgent has been tested and has been in use since 2001.

We do most of the certification process for you - we do not leave you on your own to learn the ins and outs of that process.

We provide you with access to a large test database of pre-matched student, teacher and contact data so that you can do as much testing of your new agent as you would like before installing at a customer site.

We provide you with an agent that has advanced facilities such as auditing, dynamic record matching and stanging that most do not introduce until third and fourth revisions of their agents.

If you would like more information about licensing ZIAgent, please feel free to contact us at any of the numbers below or by filling out the form at Contact Us.