A revolutionary approach built for developers
The Ditto Program is a revolutionary solution for packaging, distributing and real-time updating source code (e.g. hardware drivers, network services, APIs, emulators, OSes, Virtual Machines, browser engines, etc.), data and instructions used by the Essence® Agent to generate machine-level instructions for real-time features/functionality. The Ditto Program provides capabilities that are not available via any other software model.
Example: Consider a new network device is produced or there’s an update to an existing one…
Source Code Packaging
The manufacturer provides a driver that implements the interface specification expected by Essence® and packaged as a Ditto for each platform (e.g. Windows, Linux, Mac, iOS, Android etc.).
Source Code Processing
Essence® translates the source code so that it works on each of the platforms, with the added benefits of runtime testing and compiling, compression, encryption, and authentication & validation.
Essentially, 100% uptime during software deliveries becomes achievable.
The new Ditto Package becomes processed in real-time without any of the Apps or devices that use it being restarted.
Four Core Benefits of the Ditto Paradigm
- Multiple Versions of Code Running Simultaneously
- Live Updating of the software (for zero downtime during updates)
- 3rd Party Code Support (unmatched ability to rapidly integrate source code)
- Levels of Trust (Security)
Security Level 1
Allows the code to manage its own memory and tasks.
Security Level 2
Allows the code to obtain memory via Essence and leverages Essence for its task management.
Security Level 3
Only allows the code to interface with 3rd party services and is the most secure as all of the code is converted to Elixir (our meaning representation system) that is used to generate highly parallelized code on the fly.
A revolutionary tool built for developers
Developers and Users: How many times have you updated an application, had to close it down, download/install the update, start it back up, and a functionality you used before the update is removed, changed completely, or is no longer functional due to a bug from the update?
Allow users to pick what works for them.
Essence® is able to load multiple versions of the same code via the Ditto interface, and can dynamically load/unload [hot swapping] specific functionality from each one. This eliminates the need to uninstall the installed version to access new features.
Live updating makes everyone’s life better.
When building an 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 your 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.
Live updating saves time.
With source code supplied via the Ditto interface, the application only needs to be built once and can remain running, and new code can be incorporated into the app without the need to rebuild the entire program, and only building in the new changes. Imagine the productivity gains that zero downtime for updates enables, especially at critical times.
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). 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. Learn more about the Ditto Maker Tool here.
The Ditto specification provides several feature advantages over any other LKM implementation: