Skip Ribbon Commands
Skip to main content
Navigate Up

Developing a SIF Agent/Adapter

As a Developer, it isn't always easy to work out the best way forward... we receive lots of questions about how to develop Agents, where do you start, what should you do first... so we put together a very quick summary of the initial options available to you.  In addition, you may wish to review our 'Developer Guide'.
 
 
As always, if you have additional questions please Contact Us.

Developing a SIF 2.x Agent

The SIF v2.x Zone can be represented as a Star topology, with a Zone integration Service (ZIS) at the center (the hub). Each spoke consists of an Application at the edge, and between each Application and the ZIS sits the Agent. The SIF standard basically defines the “on the wire” data exchanges (transport, messaging and object schema) between the ZIS and the Agent. The Agent to application connection is specific to each application.
 
The Agent must support the following (all of which the application can remain blissfully unaware of):
  1. Utilizing the HTTPS transport as defined in the standard to ensure message security
  2. Execution of the SIF message sequences (ex: Register, Subscribe and only then get posted Events)
  3. Wrapping / unwrapping the Data in Query, Response or Event messages
  4. Optionally bridging between the way the application defines its data internally, and the way SIF expects to see that data externally
 
The ZIS provides the following functionality which “glues” the Agents (and their respective applications) together in a SIF Zone:
  • Automatic Service Discovery 
  • Content based routing
  • Guaranteed message delivery 
  • Data Change Event Publish and Subscribe
 
Now in terms of providing an Agent which will integrate your application into the SIF Zone (allowing it to seamlessly and securely exchange data with other applications), basically your options (which determine the kind of tasks your consultant will do and how long it will take) are:

Go it alone

Read the SIF specification, write the code, test it against our public test harness until it passes. This is a fairly major undertaking.

Use an Agent Developer Toolkit (ADK)

There are several of these, used with great success by most of the application vendors in the
SIF Certification Registry. They usually handle the infrastructure issues (HTTP/S security, Registration and Provisioning, publishing events, responding to requests, etc.). There is even a free open source ADK at https://launchpad.net/open-adk
 
Essentially you add a module to your code, map your data elements to the SIF equivalent using the tool, and 90% of the work is done. In some cases there is a training course that goes with the ADK, which most agent developers will need.

Let an existing SIF Agent supplier do the whole thing

Most of the applications that have successfully passed SIF Certification went this route.  The SIF Certification Registry indicates the 3rd party SIF Agent products that enabled these listed applications to be integrated into any of the thousands of existing SIF 2.x deployments.
 
Choosing this option will require the least involvement by your technical staff.  In fact, for those SIF Agents that use DB triggers or an equivalent to track changes within the internal database, little or no code in the application itself has to be changed to allow the Agent Vendor to make if 'SIF operational'.
 
Some SIF Agent Vendors can also take the Agent / Application pair through the entire SIF Certification Program if you are interested in outsourcing that effort as well.
 

Developing a SIF 3.x Adapter

Since August 2013, the SIF Specification has been separated into an infrastructure and a data model.  There are many reasons why this is such a value to the global Community, here are a few:
  • Each locale can publish a release as often as they wish, enabling responsiveness.
  • The SIF Association can release the global infrastructure free from data driven pressures, increasing quality.
  • Network architects now find many of the best practices they expect in the SIF specifications, promoting adoption.
  • Integrators can apply generic tools to each layer, allowing for the better sharing of existing network resources.
  • Network programers can use common REST tools to develop SIF Solutions, saving time and money.
  • Everyone implementing a SIF published data model may utilize data schema driven tools, greatly reducing effort.
  • Software architects are freed to design simpler components that naturally fit together, increasing maintainability.
  • Infrastructure products can be more flexible when working with modular data models, creating opportunities for reuse.
  • Everyone following a few conventions is now empowered to use their own data model with the SIF infrastructure, encouraging innovation.
  • Decision makers are free to chose the form of their data payloads including: alternate formats, efficient compression, and even end-to-end encryption, meeting more specialized needs.
 
The SIF 3.x Infrastructure defines:
  • a secure REST-based transport protocol for defining both direct and brokered connections between software applications (which can act as REST servers or clients)
  • a set of services to enable interactions between REST servers and clients, including creating environments, other administrative task, synchronous exchanges of data, and asynchronous message queues
  • an abstract, platform-independent definition of the API between one software application and another or a broker.
 
Now in terms of providing an Adapter which will integrate your application into a SIF Environment (allowing it to seamlessly and securely exchange data with other applications), basically your options (which determine the kind of tasks your consultant will do and how long it will take) are:

Do it yourself

SIF 3 is a standard of standards.  Another way of looking at this is it has a solid core of web technologies and patterns.  So your favorite languages, libraries, and frameworks for your favorite environment should serve you very well.  For the application requiring only simple interoperability, this may be the best option.

Leverage Open Source

Say you want to kick it up a notch and leverage a lot of SIF 3’s functionality or just build your own software without becoming an expert on SIF.  There exist some excellent Open Source tools specifically for SIF 3.  For the sophisticated application that needs to be completely under the owner’s control, this is a top option.

Find a Partner

It is fair to say that SIF would not be where it is today without our infrastructure vendors.  Beyond providing middleware, they combine database expertise and SIF know-how to quickly produce quality products for others.  When quality and timeline are your primary concerns, bringing in the experts is the finest option.

For additional help and information, why not consider joining the SIF Association?
As a member you can access development support from our Staff and Community members, gain full access to the SIF Community Site and get involved in specification development, get discounted registration at our 'Developer Camps', and help to define the SIF Specification for the education marketplace.