Access control

The lowest for of access control is "none". All sessions and states are available from Remote kernels. This could be selectable.

Next step up, not all session/events should be accessable remotely. A session chooses which events are accessable and another session looks for sessions that allow access to the events it wants.

IKC1 uses publish/subscribe, but this is misnamed. Session/events should be 'exposed'. Other sessions aren't nessecairly interested in 'session/events', but rather in "interfaces". (Need a verb for "looking for a given interface". Using gank for the moment.)

Another abstraction is controling who can access a connection point, either via the firewall, unix access control, SSL certs, SSH keys, etc.

Higher up, certain sessions might only want allow certain other sessions to access them. This requires authentification and authorisation. Hooks must be provided to enable this, but it will not be part of core IKC2.