PENS Technical Overview
PENS is a rather simple protocol implemented as a series of HTTP messages. All PENS communication happens between a Content System (such as an authoring tool or LCMS) and a Target System (such as an LMS).
The Content System initiates a PENS notification by sending a COLLECT message to the Target System.
A COLLECT message (and every other PENS message) is simply an HTTP request to a URL provided by the Target System. The Content System includes a set of name-value parameters in the message via either HTTP-GET or HTTP-POST.
These parameters provide the Target System with the information it needs to import the content. Most importantly, the parameters include a URL and credentials the Target System can use to access the content.
The Target System is then responsible for downloading and importing the content. Once it is finished, it sends a message back to the Content System. If the Target System has a multi-step import process, it can send back intermediate progress messages as well. During the initial COLLECT request, the Content System indicates how it wishes to receive status updates. These messages can take the form of either HTTP requests (designed to be machine readable) or SMTP email messages (designed to be human readable).
The Nitty Gritty
There’s a bit more to it than the description above lets on. For all the nitty gritty technical details, check out the official documentation. As specs go, it’s a fairly quick read…only 33 pages!