How and Why WebRTC Helps Us to Fundamentally Change Communications Architecture
Sep 24th, 2019 by Aswath
This blog post started as a comment to a post by Olle E. Johansson in Facebook. But it grew in length so much so, I decided to capture my thoughts here and post just a link as a comment. I have a long held opinion on this that I have expressed in other fora, but so far have not gotten much traction. I even showed a working demo in VON Spring 2008. Yes it is before WebRTC, but we had used prototypical ideas that later on were included in Websocket and WebRTC. I will express them here as well, with the understanding that I am not being argumentative.
First of all, federation at the application level is unnecessary. We have all the federation we need at the Network Layer as provided by Internet. Whenever an application talks about federation, it invariably dies in real life, both at a technical level, but also due to administrative policies. For example, two autonomous entities find it difficult to federate at protocol level due to mismatch of features. Introducing a new feature becomes a coordination nightmare.
Second, it is misleading to view WebRTC apps as small islands (slide 19); on the contrary it is a castle with a moat, since we individually decide whom we will allow in and the level of access we will allow. Even though we may have our own WebRTC apps, my app is not involved when I originate a conversation session with you- it is between us two and your app. It is the other way around when you originate a session. This eliminates any need for federation between our servers. Whereas federation requires a bilateral agreement, WebRTC affords for unilateral decision.
Third, I propose that our global identity be a HTTP URI. In 2007, we started with OpenID as the identity. Since it didn’t get much traction, we moved onto IndieAuth with the plan to adopt WebID when it becomes widely adopted. The advantage of adopting IndieAuth is that portability is not a concern: one can easily move where the ID is “hosted” or who is the provider of the WebRTC app. Furthermore the authenticator can be independent of id provider. It is a true user-centric id.
Finally in answer to what the calling card would look like, take a look at what I suggested in 2007. This one resembles very much to what Olle suggests in the last slide. Also to see a working example of an id page, how it can be used to serve other contact information according to who is asking for it and how it can be the place from which one can contact you, please see my id page.