Google Apps Script
34
is a platform for developing
web applications intended to be run in a web browser.
Google Apps Script integrates with Google services.
However, if we need certain server-side computation
or database, we need to create a web service or some
API for that.
Google Chrome OS
35
pursues a different goal – to
make a browser act as an operating system, thus, mak-
ing the software dependent on a particular browser.
In contrast, webAppOS will support different web
browsers, different server-side operating systems as
well as different cloud services.
CloudRail Unified APIs
36
was a commercial ini-
tiative (with a free community version) for provid-
ing universal APIs for cloud services such as storage,
messaging, payments, etc. Unfortunately, support for
CloudRail APIs was discontinued on March 1, 2019.
Since CloudRail APIs align to webAppOS web I/O
device APIs, webAppOS drivers implementing simi-
lar unified APIs can eventually be developed.
CORBA is a set of standards proposed by OMG
for enabling interoperability between diverse pro-
gramming languages and operating systems (Object
Management Group, 2011a). Originated in 1991, it
was an excellent idea to implement web services via
distributed objects. However, CORBA implementa-
tions proved to be heavyweight and slow. Although
still available, it is considered deprecated (CORBA
has been even removed from Java11). Thus, to sup-
port inter-process communication, webAppOS relies
on a more lightweight Java RMI protocol for mak-
ing calls between the server-side bridge and web
processors (Pitt and McNiff, 2001). To synchro-
nize web memory, webAppOS relies on web sockets,
which use lower resources than CORBA or traditional
REST/AJAX requests.
An interesting approach for bringing traditional
desktop applications to the web is via cloud plat-
forms such as RollApp and AlwaysOnPC
37
. Each
connected user runs their own copy of some classi-
cal application at the server side, but application win-
dows are being forwarded to the web browser imple-
menting the X server (or its alternative). A similar
approach is used in open-source Gnome Broadway
38
and xpra
39
. Commercial Citrix Virtual Apps
40
(for-
34
https://www.google.com/script/start/
35
https://www.google.com/chromebook/
36
https://cloudrail.com/
37
https://www.rollapp.com,
http://www.alwaysonpc.com/
38
https://developer.gnome.org/gtk3/stable/gtk-broadway.
html
39
https://xpra.org
40
https://www.citrix.com/products/
merly XenApp and XenDesktop) provide access to
Windows, Linux, and SaaS applications in a way sim-
ilar to Microsoft Remote Desktop. Technically, the
approach of forwarding a remote window can be im-
plemented in webAppOS by assigning to each con-
nected user a server-side web processor running the
given desktop application. Web memory can be used
to exchange information on how to connect to the X
server running within a web browser. Input and out-
put streams of console applications can be forwarded
to the web browser in a similar way. However, with
such a forwarding-based approach, each web proces-
sor will be reserved for the whole user session, not
just one web call.
Since web memory is represented by a model,
which, in essence, is a graph, it can be easily mapped
to linked data and semantic web technologies such as
RDF and OWL (W3C, 2014b; W3C, 2014a; W3C,
2004; W3C, 2012). We can even introduce spe-
cific web processors implementing semantic reason-
ers, which can be considered specific instruction sets
(Corno and Farinetti, 2012).
Electron
41
is a convenient framework for devel-
oping cross-platform desktop applications by utiliz-
ing web technologies. Electron comes with a bundled
web browser and a set of APIs for accessing native OS
functionality. Electron resembles how webAppOS
is intended to support multiple target environments
(web, desktop, and mobile). However, webAppOS
does not restrict the developers to use JavaScript, –
virtually any technology available for the target plat-
form can be used.
Although some approaches to bring the classi-
cal single-PC thinking to the process of developing
web applications have been published, they required
program re-structuring (Matthews et al., 2004). In
webAppOS, existing technologies and even existing
code can be re-used. The only requirement is that the
code has to follow the calling conventions of the cor-
responding web call adapter.
To summarize, while there are excellent technolo-
gies that can solve particular tasks occurring during
the development of web applications, no project is
aimed to provide a centralized infrastructure to tie
all these technologies into one ecosystem. Currently,
this resembles how GNU had excellent software but
lacked the OS kernel. Initially, GNU aimed to adopt
the Hurd kernel, but Linux proved to be more viable
(Tozzi, 2017). Perhaps, webAppOS can eventually
become “a kernel” (or a Java Virtual Machine analog)
for web technologies. However, we have to admit that
to earn the market, significant efforts from the open-
citrix-virtual-apps-and-desktops/
41
https://electronjs.org/
The Web Computer and Its Operating System: A New Approach for Creating Web Applications
55