The Web Computer OS: webAppOS
Apps, Engines (Libraries), and Services in webAppOS
A webAppOS application consists of:
A set of actions (from the code space).
Some configuration, which (among other settings) instructs how a web app has to be delivered to the end user (refer to the webapp.properties file format). For instance, an app can be delivered as static HTML/JS/CSS files, as a PHP application, as a Java servlet, etc. To support various delivery methods, webAppOS relies on app adapters (specified via the app_type property).
When client-side part of an webAppOS app has been delivered to the web browser, it can initialize a web memory instance (or a slot). Either a new empty slot (without any data in the web memory) can be occupied, or a slot with some predefined data can be created from a template. After an app manipulates web memory, its state is saved into a project, which can later be reopened. A project is a zipped folder containing a web memory dump plus some additional app-specific files.
Certain actions can be factored out into libraries called engines (analogs of DLLs or shared libraries), which can be re-used by different apps. Platform-specific aspects can also be factored out into engines. In this case, the engine will have multiple platform-specific implementations, which all contain a similar set of web calls actions (the target environment will enforce a particular implementation).
To support pure model transformation languages that are unable to make web calls, webAppOS provides the ability to invoke actions by creating a link in the model.
Besides applications, there are also services. A webAppOS service
, where the service_type
property is defined).