NetKernel

50 views
Skip to first unread message

Ryan Riley

unread,
Jul 21, 2014, 3:16:09 PM7/21/14
to web-st...@googlegroups.com
I had an all too brief chat with Brad in which he mentioned NetKernel. From what I can tell, the composition ideas in the product match my own. I thought it worth sharing and interested in others’ thoughts.

Christopher Atkins

unread,
Jul 22, 2014, 11:06:15 AM7/22/14
to web-st...@googlegroups.com
I see echoes of a lot of what Alan Kay talks about vis-à-vis composition, Unix philosophy, and "real objects [being] real computers all the way down". They also seem to have hit upon the idea of pushing REST constraints down the stack which is a big idea that I think we'll see more and more as people grok microservices. Juval Lowy used to give a talk where he made the claim that eventually all .NET objects would be WCF services; heaven forfend, but the core idea is not that far afield. The hypermedia constraint is just another kind of late-binding, after all.

The problem with creating your own "micro World-Wide Web" (quoting the author of NetKernel) is the cost of abstracting entity resolution. I started watching their resolution tutorials, and it looks like a bunch of XML indirection, just like old school EJB containers. Anyway, there are lots of decentralized messaging schemes out there; a particularly interesting one is Iris. I think Iris is interesting because it tries to avoid the indirection cost by doing discovery via IPv4 subnets, and it tries to formalize a higher level, addressable abstraction that ends up looking like a microservice. NetKernel does this too.

I think the software community in general will have gotten all this stuff right when the core abstraction scales easily (and simply) from a UI widget to a resource on the Web; Alan Kay said every "object" should have a URL. It may not be something that works well without VM support. For example, VPRI does all their research with their own VMs, and Erlang's distribution semantics are so clean because of the VM support. In the current Erlang implementation, this support creates a fully connected graph of nodes (in a global namespace), an approach that scales reasonably well, but I think an addressing scheme that is aligned with the modularity of the software being built could be made that scaled better and had just as simple language semantics.

What I'm getting at is that pushing distribution semantics into configuration is a dead end, cf. CORBA/IIOP, DISCO, etc. We need something more devops friendly.
Reply all
Reply to author
Forward
0 new messages