A Revolutionary Approach to Software Delivery
Software delivery is a major challenge for developers of devices, applications and services, and users alike. Standards organizations, integration tools and services developers, and major funding investments by the software industry have yet to deliver a comprehensive solution that is responsive to the demands of an increasingly connected world that has rapidly changing requirements.
Imagine a world where every device, application and service can be easily delivered and integrated, with near zero down time. A new approach offers an exciting path for secure and trusted behavior delivery in IoT, IIoT, Edge, Cloud, Mobile, and every other class of computing. That is our vision of software delivery for the Essence® Project.
Behavior Integration Essence® Style
A Modular Architecture
Essence® uses a modular architecture, somewhat like an operating system kernel. This modularity enables dynamic loading of specialized code while allowing the core [~50kb Essence® Agent] to remain small and optimized for general purposes.
The Essence® Agent is comprised of a code generator, profiler, scheduler, platform bridge, resource balancer, and a formula processor (for transforming and translating data and machine behaviors). The Essence® Agent [currently running on Mac OS X] only needs to be ported to other platforms [Android, iOS, Windows, Linux] once and then every Essence® app becomes platform agnostic. When combined with drivers (e.g. BSD/Unix drivers or the upcoming effort to produce Essence® drivers), apps based on Essence® do not need an operating system at all. A pure Essence® version will mark a paradigm shifting milestone for computing for many reasons that we will share in future articles and blog posts.
Specialized code used by Essence®, such as a device driver or a codec, is provided as an external package called a Ditto which is conceptually similar to a loadable kernel module (LKM). However, the Ditto specification provides several benefits over any other LKM implementation. Developers use the Ditto Maker tool to create Dittos.
The Essence® Ditto
The purpose of the Essence® Ditto Maker is to provide a method to safely and securely test, compile, encrypt, compress, authenticate, and process (in real-time) packaged content (source code, Essence® instructions, and data). Essence-based Apps examine and integrate authorized behaviors packaged in Dittos at runtime, without needing to shutdown. Every Essence App makes use of hot-swappable features that are continuously checked [at every clock cycle] for authorized behaviors. This eliminates numerous classes of defects and vulnerabilities (e.g. eliminates the possibility of memory, arithmetic, logic, syntax, parallelism and many other errors that can be exploited by hackers).
Here’s how it works:
- Ditto Package – The Ditto Maker tool is used to evaluate source code (e.g. drivers, APIs, emulators, browser engines, operating systems, network code, virtual machines, almost any legacy code), data and Essence® instructions [meaning-units describing what the App/Aptiv needs to do] for the purpose of generating a media package (e.g. png, jpeg, PDF, mov) as a Ditto Package.
- Unit Testing – The target content is subjected to unit tests and only content that passes units tests get compiled into binaries.
- A New Encryption Model – Compiled code, Essence® instructions and data are encrypted with 9 different encryption algorithms and 43 variants in a parallelized obfuscation scheme, which is auto-generated. It’s important to emphasize that no singular algorithm is applied, but all of them are.
- Multi-Compression – The resultant binaries are compressed with 3 different lossless compression algorithms.
- Authentication – The binaries are code-signed for authentication and checked at runtime during every clock cycle.
- Behavior Interpretation – Any product based on Essence® technology will interpret the Ditto Package and adopt [authenticated only] behaviors, while still running. No need to shut down for updating purposes, with few exceptions.
- Runtime Integration – Each Ditto Package has access to the Essence® Powers System (more details in a future post), which makes it possible to integrate the contents of the Ditto Package with Essence® applications. This is a new and powerful way of aligning behaviors to capabilities of hardware devices, services, operating systems, web browsers, and much more.
Fig. 1 – Ditto Maker Workflow
Ditto Key Benefits List:
- Broad Release Day Support – Creators of practically any platform (e.g. hardware, services, network protocols, etc.) who package their platform code and data, immediately gain access to a vast number of features that will work with their platform on the day of product release. This is an entirely new level of interoperability.
- Live Updating – With source code supplied via the Essence® interface, the application only needs to be built once and can remain running all day long, and new code can be incorporated into the app without the need to rebuild the entire program, and only building in the new changes. When building a traditional application, the process of linking to existing code projects (i.e. libraries) is a long and arduous process that cannot generally be skipped. Depending on the size of the application, the linking phase of compiling a build can take in the tens of minutes, sometimes only to incorporate and test a very minor change. This is a major time sink for developers, as it means there is a delay between implementing a feature or fix and verifying that the new code behaves as expected.
- Advanced Encryption and Trusted Behaviors – New apps that bifurcate tested and authenticated (trusted) binaries that exhibit authorized behaviors from corrupted or compromised (e.g. inserted) code that would negatively impact the app or its data. A new look at encryption delivers a higher level of protection. This is a new way to provide continued assess to legitimate software behaviors, even during a period of attack from a wide variety of security attack types.
- Real-time Feature Switching – Essence® is able to load multiple versions of the same code via the Ditto interface, and can dynamically load/unload specific functionality from each one. Example: Imagine if you could use features/behaviors from two different versions of Microsoft Word, without having to go back and forth between the two applications, all of this is handled in one version of Word that amalgamates the functionality of the different releases. Example: If a new feature is broken, you can load the version of that feature that worked in the previous release in its place and continue to be productive.
We will release the Ditto Maker tool as a part of the Essence® SDK [to be announced]. Read this blog post for more details about the contents of a Ditto Package and the next generation Apps/Aptivs that a Ditto Package delivers.
Follow us on this blog, social media, and our website as we unveil more potentially world-changing solutions.
Get ready to ‘create at the speed of thought®‘
Ken Granville & Jake Kolb
Cofounders of MindAptiv®