SIF 3.0 has introduced new terminology for concepts that may have already existed in SIF 2.x and of course for concepts that have not exited in SIF 2.x. Below is a list of terms we will be using throughout the bootcamp and connect-a-thon. Please note that not all terms of SIF 3.0 are listed. For a full list of SIF 3.0 terms please refer to section 2.1 of the SIF 3.0 Base Architecture document (see Resources).
An “instantiation” or instance of a Data Object Type. A Data Object is created in XML and can be validated against the XML schema of the Data Type which it represents.
The unique and immutable identifier of a specific Data Object.
A set of defined functionality encapsulated behind a standardized CRUD interface, which is implemented by a Service “Provider” for clients (the “Service Consumers”) to utilize.
A Service Consumer implementation makes requests of, and subscribes to and receives Events from, one or more Service Provider components.
SIF 2.x Equivalent: Client
A Service Provider implementation accepts, processes and responds to requests from Consumers for object type or function-specific services, and publishes related Events in accordance with the type of Service Provider Interface it is implementing. Every independent Service Provider initially registers as a Service Consumer, and may be (and generally is) a Consumer of one or more other Services.
SIF 2.x Equivalent: Object Provider
The “SIF 3.0 Environment” is made available to a Service Consumer when it initially registers. It comprises the totality of every service the Consumer might possibly provision itself to access. Based upon authentication constraints however, the Consumer’s access to some services it can see might be restricted.
The Environment is defined by the set of Infrastructure Service URLs returned to a Service Consumer in response to a successful Registration Request. These URLs allow the Environments Provider to provide a “customized” environment for each Consumer. For example, depending on the authentication provided by the Consumer at registration time, the URLs returned may insert it into either a production or test environment, or one which provides access to only a limited subset of authorized available Service Providers
The Direct Environment connects a single Consumer to a fixed set of one or more directly accessible Service Providers. These include, at a minimum, the mandatory set of Infrastructure Services, all mandatory Utility Services and at least one Data Object or Functional Service.
A Direct Environment conceptually does not leverage middleware. All Consumer to Provider connections are direct (no intermediary), because the Environments Provider Interface and all Service Provider Interfaces are implemented by an Environments Provider Adapter front-ending a single application (such as an SIS or LMS).
The Brokered Environment securely and reliably connects N Service Consumers to a dynamically changing list of M Service Providers through a centrally secure, separate and discrete Message Broker. Unlike the Direct Environment, any Service Consumer with the proper authorization rights can provision itself as a Service Provider, and receive Requests from and publish Events to, other Service Consumers with the appropriate authorization rights.
The Response to a Request is provided synchronously in the immediate HTTPS response, and the Requester thread for that connection “blocks” until the Response arrives. This is new to SIF 3.0. It matches the standard RESTful Client design pattern and must be supported in both Direct and Brokered Environments.
SIF 2.x Equivalent: Synchronous
The Consumer issues the Request which is replied to with an “Accept” status code in the immediate HTTPS response, which indicates “Request is legal and can and will be delivered to the indicated Service Provider”. This frees a single-threaded Consumer to do other things.
The Response issued by the Service Provider arrives asynchronously at a later time, in a manner identical with that of an incoming Event. It contains the Message ID of the original Request it completes.
SIF 2.x Equivalent: Asynchronous