Among several new features in Sitecore 9, xConnect is definitely one of the bigger ones. It changes the way we interface with Experience Database (xDB) and opens the gate for utilizing it's Experience Platform with Machine Learning and Internet of Things. By introducing it with Cortex, Sitecore reveals their vision into the platform development roadmap: to make a powerful, full fledged web system creation tool, using cutting edge technologies.
How Does it Work?
Sitecore xConnect is a web server installed with a Sitecore 9 instance, as <yourInstanceName>.xconnect IIS website. It uses SSL certificates to authenticate clients, and oData protocol to define communication rules.
xConnect offers an API to fetch and add contacts, facets, interactions and other Experience Platform entities directly to xDB.
Sitecore provides us two SSL certificates, to ensure secure TLS mutual authentication: public key and private key. When a client wants to interface with xConnect server, it must open an SSL connection by using a client certificate. That way, only authorized devices are able to access xDB.
OData defines a set of best practices for building and consuming RESTful APIs. The metadata XML definition file contains info about every entity and method we can use through xConnect. By following the definition file, we can start constructing HTTP requests and inspect results in Sitecore XP.
Sitecore 9 ships with the official xConnect .NET library. It implements entities and methods provided by the metadata definition file. The xConnect library is officially now decoupled from the Sitecore API. When targeting .NET 4.6, writing lightweight xConnect bridge applications using the official library is a straight forward process.
Since communication is defined using the OData protocol, it's also possible to use existing language or platform specific OData libraries. If an IOT device does not support .NET framework, or if Python is the language of choice, we can still make OData compliant requests to interface with xConnect.
Network analyzers are very handy debugging tools when working with RESTful service layers such as xConnect.
In the next part of our Developing with xConnect blog series, we will send network requests to xConnect using Fiddler. To fully understand how xConnect works, we will manually create OData compliant JSON payloads and analyze the results.