NetKernel is an implementation of theÂ resource oriented computing (ROC) abstraction.Now you can compose your architectural design, prove that it works with unit tests and modify and perfect your design with agility before you even consider if code is needed.
NetKernel manages a dynamically populated virtual URI address space, composed by linking modules. Modules may expose software services and resources on their public URI interface and have a protected internal URI space which itself may consist of local and imported address spaces.
TheÂ NetKernel URI address-space is analogous to the way Unix abstracts multiple file-systems into a uniform, logical file-system. The Unix abstraction treats everything as a file. InÂ NetKernel everything is a URI-addressable resource.
NetKernel is good at Information integration, ESB, general middleware, REST serviceÂ platform, embeddable cache/transform process engine, XML pipelines, multi-transport adaption and bridging.
It also makes an excellent and very high performance webÂ platform, especially with the XRL composition language.
Key Features of NetKernel:
- Incredible flexibility
- Long term stability â€“ generational stability of information and structure
- Dynamic type adaptation and pipelined conversion discovery
- Elimination of brittleness
- Higher performance â€“ typically 2-3x on the same hardware.
- Scale your solution â€“ add more cores and see your systemÂ scale linearly
- Do more with less â€“ deploy more applications per system.
- Memory Efficient â€“ unexpectedly perhaps, NetKernelâ€™s abstraction actually leads to reduced memory footprints and is more JVM GC friendly
- For example, this dynamic web site and theÂ NetKernel Portal are running on a singleNetKernel instance with 128MB heap.
- Also running are theÂ Bugxter bug tracking system, download and mirroring services, REST SOA callback services and mailing list services.
- Typically it balances with a total memory footprint of about 40MB. So we have 3x margin of comfort.
- Faster development â€“ less code, less coupling, more reuse.
- Human-scale modularity â€“ partition your problem in to engineer sized units, bring them together without needing glue code.
- Shorter code, test, deploy lifecycles
- Hot deployment and transactional rollback
- Progressive update and version migration
- Legacy coexistence â€“ new features never need to disturb existing functionality allowing for progressive evolutionary solutions.
- since clients and servers are not directly connected they can be modified and updated independently. Just as a change of browser or web server does not impact the workings of the World-Wide-Web, you can modify client or server code within aÂ NetKernel software system and it will gently flex and tolerate the change. You no longer have a rippling impact through a system from low level changes.
System separability and extensibility
- Web sites can be extended indefinitely and progressively without ground-up redevelopment. So canÂ NetKernel software systems. Services are independent and can be modified and new ones introduced without fear of side-effects.