The Web Computer OS: webAppOS
Developers do not access the web computer directly. They do that via a set of services and APIs provided by the web computer OS, webAppOS. Now you can proceed without diving into numerous technical and implementaion detatails. However, if you wish to do so, then refer to (in the order of increasing detalization):
|
|
Apps, Engines (Libraries), and Services in webAppOS
Apps
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).
Projects
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.
Engines
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.
Services
Besides applications, there are also services. A webAppOS
service is a module that provides useful functionality to applications but is invisible to end users. Services can be implemented as Java servlets, as client-side JavaScript code, non-HTTP services, etc. Service adapters are used for different service types (refer to the
webservice.properties file format, where the
service_type property is defined).