This was a shorter presentation (hour), which was a nice change.
Good set of demos with no gremlins striking.
Still have no definitive definition of MS. I think the pragmatists think of them as just yet-another service that is well designed and has a process boundary.
But even the process boundary stuff does not look hard-n-fast, since this presentation talk about the reality of small IoT environments that will normally require all services to be co-located in a single device runtime.
Nothing new here, but Modularity mentioned as being important, not only in the context of MS, but good design.
This point was worth the talk, and i think is a great usecase for MS.
"Any organization that designs a system will inevitably produce a design whose structure is a copy of the organization's communication structure."
Wow, that’s cool. Particularly since the law stated generally, not just for software systems.
Given this reality, then it would be worth considering having micorservice design and boundaries mirror the development org structure?
Or if that is completely unreasonable, then maybe the org structure should be changed to reflect a better software design structure?-)
Sure enough if you google “conways law microservices” there are many articles floating around on this topic.
Case Study: Entertainment System
A sample product that ran through the rest of the talk was an Entertainment system.
It modeled a Dashboard that could have an arbitrary collection of Applications plugged into it.
Here is where things turned not as cool for me, but once i embraced it, then i was glad to take the detour.
It turns out that everything following was implemented in the context of OSGI.
Not that i’m not a fan of OSGI, but i felt it was not fair that the title of the talk not include OSGI since it was such a heavy part of the talk.
But once i got over that, it became an opportunity to see some cool things from the world of OSGI.
If it was not for Jigswaw creating OSGI uncertainty, i would persue it more deeply.
OSGI has some flaw that only the VM can solve (Jigsaw). But it is battle tested and proven for almost a decade and has quite a mature ecosystem of tools.
Some of the tools that were used:
Apache Felix (very large OSGI framework)
Amdatu (OS project with an impressive array of tools for modular OSGI development)
BND for Eclipse (popular utility tool for OSGI dev).
Apache ACE (an impressive looking framework to manage OSGI artifacts and automated deployments).
The demo included an OSGI component that provides very cool shell for an app. He used the shell to control the components.
He used JaxRS to implement REST API endpoints. But did not use REST for intra-MS communication.
He used OSGI Remote Services for MS communication (an OSGI remoting extension).
So the OSGI container hosted the OSGI MS’s.
He used an OSGI registry to dynamically wire MS’s together.
The Dashboard is listening for Application Registry changes, then plug and play depending on events.
He demonstrated Apache ACE to automate the deployment of OSGI modules to target machines. It also acts as an artifact repository (similar to Maven), with versioned components.
The IoT discussion was just jammed in the end of the talk.
talk about device Sessors.
Communication: Bluetooth, ZigBee, WiFi.
Need to deal with a not-always-on.
In many cases the device must be autonomous.
All MS on the same device.
Updates done over limited connections.
He did make the point that IoT MS’s are often all co-located on the same device, but there is still value in having strong MS-like module boundaries (which OSGI provides).
Overall was very impressed with OSGI.