How is Platform 6 architectured?
Platform 6 benefits from a responsive-design web user interface called P6 Portal. It provides access to all Platform 6 services and features. It is meant to be used by Application Developers, Publishers and Users.
Actions on P6 Portal trigger requests that are sent to a proxy server called P6 Proxy that redirects them to the targeted Platform 6 instance or infrastructure server.
Requests are handled by an authentication and authorisation server named P6 Auth, which relies on the OAuth 2.0 protocol. P6 Auth checks the user’s credentials and if they are correct, sends back an access token to the P6 Portal. This token is then added to the headers of the subsequent requests, granting the user access to a Platform 6 instance.
A Platform 6 instance is actually a P6 Core instance, composed of several specialized services known as Platform 6 built-in services.
If specific features are required that cannot be configured thanks to Platform 6 built-in services, a Developer can develop a custom service. Such a new service shall be registered on a Platform 6 instance. The deployment process requires configuring a few settings: the name, the properties of the menu entry in P6 Portal and the path of redirection made by P6 Proxy to the service’s server. More information is available in the create a custom service section.
Communication between services is possible through a client. This library will send the messages to the Platform 6 instance, which will redirect them to the service recipient. The development of several clients in different languages (Java, Scala, TypeScript, C#, Golang …) is in progress. If you prefer not to use these clients provided by Platform 6, you will need to integrate directly - i.e. send common message objects encoded in Protocol buffers via Hazelcast.
The Platform 6 architecture is designed to always provide P6 Portal access via portal.platform6.io or portal.amalto.com. As such, this part of the architecture cannot be replicated elsewhere. In a nutshell, P6 Portal, P6 Proxy and P6 Auth are part of the platform6.io infrastructure whereas P6 App Developers, Publishers and Users rely on their own P6 Core instances.