Node.js is a good technology option on which to develop the interoperability layer core component for the following reasons:
- It is very lightweight
- It has a robust HTTP library
- It has robust support from 3rd party libraries for reading and modifying HTTP requests
- It is highly performant
Libraries to use
- Express - Express is a web application framework for node.js. It provides easy mechanisms to expose web endpoints.
- Connect - Connect provides middleware for node.js that allow HTTP requests and responses can be altered while in 'flight'. The express framework also uses connect middleware and middleware are exposed from the express framework as well.
Architecture
Authentication and Authorization
The are two possible combinations of authentication that the interoperability layer should provide to determine a users identity:
- HTTP basic authentication
- ATNAs Node Authentication (PKI)
Once identify has been established the IL core component should check if that user has the authority to access the requested service.
Authentication
TODO
Authorization
TODO
Persistence
Request persistence
TODO
Response persistence
TODO
Router
TODO