• 532 Durham Rd., Newtown PA USA
  • Info@visualsi.com
  • Office Hours: 8:00 AM – 5:30PM (Eastern US)
ZIAgentOverview - ZIAgent - Configurable Application Adapter

The Interoperability Landscape

ZIAgent changes the rules in enabling existing applications to communicate with other applications. In general, applications are either built with interoperability features as part of their integral design or need an adapter to allow them to participate in a community of connected applications.

Some application makers who needed adapters have gone the expensive and time-consuming route of hand-writing their own  using a toolkit.  Many others, however, have chosen ZIAgent, a configurable adapter, that takes advantage of existing facilities that an application has already, without requiring changes to the application itself.

Instead of taking weeks or months to develop and test, users can create deployable adapters with ZIAgent in a matter of hours or days, depending on the complexity of the application and the amount of information being exchanged.

Level of expertise required? Typically, if you can build SQL queries, you can configure an application adapter with ZIAgent.

The Interoperability Challenge

The “interoperability challenge” has been addressed in the past, but wherever and whenever it was approached, very similar steps were taken: It started with making design changes in the application, writing new code, testing the code, finding out that extra levels of security are needed (because the connected community is larger), then implementing and testing the extra levels of security, etc.

With an Agent (Adapter) Development Kit, even though some of the pieces may have been built for you, the agent must still be built, debugged and tested. One of our customers 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.”

ZIAgent 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 rebuild every new adapter from the beginning or almost the beginning (as you would even with the best ADK). As a result, we’ve been able to spend many 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, so we have built detection and recovery procedures into ZIAgent. Companies who build 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 released in 2001, and we’ve been refining it ever since. We are continually adding new features, enhancing the runtime engine and improving the user interface.

Microsoft Certified

Microsoft Commercial App Certification is a validation service for cloud and on-premise applications built-on or integrated with commercial Microsoft technologies such as Azure, SQL Server, Windows Server and others. Certification logo badges give buyers confidence that this solution is:

  • Fully compatible with Microsoft technologies Certification tests validate that the solution follows coding principles and integrates seamlessly with Microsoft technologies.
  • Managed by a trusted partner:  Certified solutions are created and supported by validated and trustworthy partners.

WS2019 - ZIAgent - Configurable Application Adapter

Certified for Windows Server 2019

ZIAgent is certified by Microsoft to run reliably on the Windows Server 2019 platform and integrate seamlessly with other Microsoft technologies.

Microsoft Commercial App Certification is a validation service for cloud and on-premise applications built-on or integrated with commercial Microsoft technologies such as Azure, SQL Server, Windows Server and others. Certification logo badges give buyers confidence that this solution is:

  • Fully compatible with Microsoft technologies Certification tests validate that the solution follows coding principles and integrates seamlessly with Microsoft technologies.
  • Managed by a trusted partner Certified solutions are created and supported by validated and trustworthy partners.

 

WindowsServerCertification - ZIAgent - Configurable Application Adapter

Certified for Windows Server 2016

ZIAgent is certified by Microsoft to run reliably on the Windows Server 2016 platform and integrate seamlessly with other Microsoft technologies.

More Detailed Information

How it Works

The ZIAgent back end runs as a web site. It communicates with ZIServer using standard Internet protocols (HTTP or HTTPS)  and formats defined in the specifications created for the industry. For education, this the SIF specification; for healthcare, , while other industries may have their own standardized specifications. In other cases, specifications may have been developed to meet a particular need.ZIAgentOverview - ZIAgent - Configurable Application Adapter

ZIAgent supports several security and authentication models including all those listed in the specifications. We have also extended these models to reflect recommendations from the OWASP 2017 Top 10 list. See OWASP (pdf) for more information.

When ZIAgent is at the beginning of the configuration process, it already knows about every element and every attribute of every object defined in the specification to be used (this was set up beforehand). In its configuration database, it has tables that contain staging areas for incoming data, validation tables for all possible legal

Information Sharing Applications - Publishers

Publishers are applications that store information to be shared with other applications in a particular zone. Student management systems are typical examples of publishers. Many applications that mostly subscribe may also publish as well. For example, a transportation system may subscribe to student and workforce information, but it may also publish bus stop and route information.

Agents for publishing applications 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 standardized fields and determining if there should be translations set up for it.

screencapture nacho vsioffice 8082 Designer OutboundWizard aspx 2018 04 17 11 38 49 - ZIAgent - Configurable Application Adapter

Target Database Discovery

When configuring an object for publication, the ZIAgent designer asks for a statement that “requests all records” for the object being configured. With the results of that query, it takes whatever information it can (types, sizes, locations, etc.) and uses that information to build internal tables.

These tables are 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.

Note
If you look at the data shown in this example, there are two things to point out:
  • The names of the columns and the encoded field values in the application database do not need to match the definitions in the standard. ZIAgent handles mapping these names and values.
  • Student information used in these screen captures are for fictional student records randomly created from lists of popular last and first names. Any resemblance to real persons, living or dead, is purely coincidental.
screencapture nacho vsioffice 8082 Designer OutboundWizard aspx 2018 04 17 11 36 56 - ZIAgent - Configurable Application Adapter

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 message to be transferred.

If the data 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.

screencapture nacho vsioffice 8082 Designer OutboundWizard aspx 2018 04 17 11 41 12 - ZIAgent - Configurable Application Adapter

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 need to be mapped to the values defined by the standard.

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

Information Subscribing Applications

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 adapter already. There is a fourth rule type: “SYNC” – this rule type is executed for both “Add” and “Change” events.

 screencapture nacho vsioffice 8082 Designer Rules aspx 2018 04 18 09 28 22 - ZIAgent - Configurable Application Adapter

Event Rules Overview

In the following examples, we will use some examples from an education example that uses the SIF specification from the A4L organization.

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

Five of the rules are defined to handle incoming “Add” events and another three to handle “Change” events. Although it would be possible, this agent is not configured to handle “Delete” events. To see the details for one of the rules, the user clicks on the ‘Edit’ button.

screencapture nacho vsioffice 8082 Designer EditRule aspx 2018 04 18 10 20 24 - ZIAgent - Configurable Application Adapter

Event Rules – Dynamic Matching

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 adapter to search the application database (using the supplied matching criteria) before adding a new record 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’ event, 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.

screencapture nacho vsioffice 8082 Designer EditRule aspx 2018 04 18 10 17 59 - ZIAgent - Configurable Application Adapter

Event Rule – Add Event

This example is also an ‘Add’ event.

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

Only the 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.

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

  • Error Handling – ZIAgent provides extensive support for error handling, depending on the needs of the application. Some subscribing applications choose to only allow the agent to pass “clean” data from the input stream to it and send “less than clean” data to a “suspense” location. Others configure the rules so that all data is forwarded from the agent to the applications, allowing it to handle errors.. Some others are in-between. ZIAgent has the flexibility to support them all.
  • Self-healing Rules – These rules are written in a way that detects when something wrong has occurred, and they trigger other events to correct the problem and cause theto be repeated. For example, let’s say that in education, a StudentSchoolEnrollment (student enrollment in a school) event was received by an adapter, but it never received a StudentPersonal (student demographics) record for one of the students. The rule can make a request for the missing StudentPersonal record, exit, and then have the student’s complete record processed later after the StudentPersonal event  has been received.
  • Email Notifications – These can be attached to any rule (event or business rule) to notify someone that immediate attention is needed.

Common Features

Many applications behave as both publishers and subscribers. ZIAgent supports these more complex configurations as well as the features that are common to all applications that use the adapter:

  • Import/Export - Once a configuration is completed, it may be exported and saved to an XML file. This allows us to migrate a configuration from one standard XML version (SIF, HL7, or other) to the next. The migration process generally involves exporting from the old version and importing to the new version. It also eliminates the need for database backups and when deploying ZIAgent to multiple locations.
  • Business Rules - Business rules are much like event rules, except that they are not associated with any particular event. Business rules may be run on demand (from the agent dashboard) or may be scheduled to be run at prescribed intervals.
  • Web Service Call Auditing - Similar to the XML Message Ledger, ZIAgent also stores a Web Service Call Ledger that keeps track of any calls that the agent made to an external web service. This includes information passed to or returned from it, as well as the time it took to complete the action.
screencapture nacho vsioffice 8082 Designer Audits aspx 2018 04 18 12 11 44 - ZIAgent - Configurable Application Adapter

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 ZIServer, the agent it was sent to, and a drill-down feature that allows the user to view the contents.

screencapture nacho vsioffice 8082 Designer Audits aspx 2018 04 18 13 11 00 - ZIAgent - Configurable Application Adapter

Rule Tracing

While developing or troubleshooting an agent, tracing can be turned on through the administration panel. This causes 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.