Conference PaperPDF Available

Web Browser as an Application Platform

Authors:

Abstract

For better or worse, the web browser has become a widely used target platform for software applications. Desktop-style applications such as word processors, spreadsheets, calendars, games and instant messaging systems that were earlier written for specific operating systems, CPU architectures or devices are now written for the World Wide Web, to be used from a web browser. In this paper we summarize our experiences in using the web browser as a target platform for real applications. As a concrete example, we use the Sun¿ Labs Lively Kernel, a system that implements an exceptionally interactive web programming environment running in a web browser without any plug-in components. Based on this work, we analyze the limitations, challenges and opportunities related to the web browser as an application platform.
Web Browser as an
Application Platform
Antero Taivalsaari
Sun Microsystems Laboratories
November 27, 2007
http://research.sun.com/projects/lively
lively@sun.com
2
Sun Microsystems Laboratories
Background
The widespread adoption of the World Wide Web
has dramatically altered the landscape of software
development.
Documents, photos, music, videos, news and
various other services have already started
migrating to the web.
Software will be next!
3
Sun Microsystems Laboratories
Paradigm Shift!
The software industry is currently in the middle
of a paradigm shift.
Applications are moving to the Web.
>Applications are no longer written for a specific type
of computer, operating system or device.
>Rather, they will be written for the Web, to be used
via a web browser from anywhere, anytime.
Web browser is increasingly taking the role that
the operating system used to have.
4
Sun Microsystems Laboratories
Evolution of the Web
What's
Next?
1) Simple pages with text and static images only
(e.g., www.google.com)
2) Animated pages with plug-ins
(e.g., www.cadillac.com)
3) Rich Internet Applications
(e.g., docs.google.com)
5
Sun Microsystems Laboratories
Web 2.0 What Is It, Really?
Support for “social” behavior.
>Support for worldwide sharing and collaboration.
>The same systems shared by users worldwide.
========================================
Real applications on the Internet.
>Not just “pages” or “documents”.
Compelling user interaction capabilities.
>Support for direct manipulation.
>No more full page refresh (à la IBM 3270 of the 1970s)
when something changes.
>No more back button, reload button, stop button, ...
6
Sun Microsystems Laboratories
Unfortunately...
The web browser was not designed for running
real, desktop-style applications.
>It was designed in the early 1990s for viewing
documents, forms and other page-structured
artifacts not applications.
Programming capabilities on the web were an
afterthought, not something inherent in the
design of the browser.
But this is the direction people are heading anyway.
7
Sun Microsystems Laboratories
Sun Labs
Lively Kernel
Project
8
Sun Microsystems Laboratories
The New Era (like it or not...)
The Web is the new Application Platform.
The Web Browser is the new Operating
System.
JavaScript is the de facto Programming
Language on the Web.
9
Sun Microsystems Laboratories
Sun Labs Lively Kernel
Lively Kernel is a web application development
environment written entirely in JavaScript.
Runs in a regular web browser with no installation
or plug-ins whatsoever.
Supports real applications on the Web, with rich
user interface features and direct manipulation
capabilities.
Enables application development and deployment
without installation or upgrade hassles.
Built around existing web technologies.
10
Sun Microsystems Laboratories
Turning ThingsUpside Down
Start with JavaScript and a desktop-style graphics architecture.
De-emphasize HTML and the current document-oriented
approach to web development.
Operating system
Conventional Web Client Stack Lively Kernel Stack
Operating system
Low-level graphics
HTML, CSS, DOM
JavaScript
Advanced graphics (optional)
Advanced graphics
JavaScript
HTML, CSS, DOM (optional)
Low-level graphics
11
Sun Microsystems Laboratories
Lively Kernel In a Nutshell
Key components:
JavaScript programming language
Asynchronous networking support (async HTTP)
Desktop-style graphics model with zooming support
Morphic application framework and widgets
Use existing technologies wherever possible!
12
Sun Microsystems Laboratories
Demo!
13
Sun Microsystems Laboratories
Web as a Platform – Experiences
During our project, we've discovered problems in
various areas related to the use of the web browser
as an application platform.
1) Usability and user interface issues
2) Networking and security issues
3) Browser interoperability and compatibility issues
4) Development style and testing issues
5) Deployment issues
6) Performance issues
14
Sun Microsystems Laboratories
Usability and User Interface Issues
Highlights:
Limited direct manipulation capabilities.
Poorly suited I/O model between JavaScript and
the browser (via DOM)
Poorly suited networking model between the client
and the server.
“Legacy buttons” in the browser.
15
Sun Microsystems Laboratories
Networking and Security Issues
Highlights:
“Same origin” networking policy restrictions.
Only a limited number of simultaneous network
requests allowed.
No local storage support / no access to the local
file system.
In general: Limited access to host platform
capabilities.
16
Sun Microsystems Laboratories
Browser Compatibility Issues
Highlights:
Incompatible DOM implementations.
Incompatible JavaScript implementations.
Incompatible graphics library implementations.
Disregard for official standards.
Lack of official standards (e.g., lack of advanced
JavaScript libraries, no agreement on the future of
the JavaScript language itself).
Plug-in availability.
17
Sun Microsystems Laboratories
Development Style and Deployment
Issues
Highlights:
JavaScript is an extremely permissive, dynamic
language -> different development style required.
Incompatible programs allowed (no static checking)
-> code coverage testing is very important.
JavaScript APIs are still limited.
====
It is not clear what constitutes a “release.”
Applications are online 24x7 -- when is it safe to
update them?
18
Sun Microsystems Laboratories
Performance Issues
JavaScript virtual machines are still very slow.
Browser graphics libraries (e.g., SVG engines) are
also slow.
When people start writing more serious web
applications, performance issues will become
more evident.
On the positive side: There are a lot of opportunities
to improve performance.
Current JavaScript VMs are surprisingly reliable and
almost impossible to crash.
19
Sun Microsystems Laboratories
Conclusions
Like it or not, the Web is increasingly the platform
of choice for advanced software applications.
Web-based applications have major benefits: no
installation or upgrades needed, instant worldwide
deployment, the ability to “own” the users' data.
Web-based applications will dramatically change
the way people develop, deploy and use software
-> paradigm shift!
We will provide a detailed summary of our
experiences in a forthcoming research paper.
20
Sun Microsystems Laboratories
Evolution of the Web What's Next?
Shared 2D/3D
Worlds
on the Web
Logical next step: combine interaction & collaboration
4) Shared 2D/3D Worlds running on the Web
1) Simple pages with text and static images only
(e.g., www.google.com)
2) Animated pages with plug-ins
(e.g., www.cadillac.com)
3) Rich Internet Applications
(e.g., docs.google.com)
Antero Taivalsaari
http://research.sun.com/projects/lively
lively@sun.com
Discussion
22
Sun Microsystems Laboratories
Why JavaScript?
JavaScript is ubiquitous.
>Every web browser has a JavaScript engine in it.
JavaScript has developer appeal.
>Familiar to people with C, C++ or Java background.
>Not a “geek” language.
JavaScript is dynamic.
>No more edit-compile-link-run-crash-debug cycles.
>Applications can be created, deployed and updated
on the fly in a seamless environment.
JavaScript has potential.
>Momentum still growing; performance will improve.
... Rather, they will be written for the Web, to be used via a web browser from anywhere, anytime." (Taivalsaari, 2008) Somit haben sie etwa auch ChromeOS von Google vorhergesagt, das genau das ist: ein Betriebssystem, das im Prinzip nur aus einem Browser besteht, in dem Apps, also Webseiten, laufen. Und genauso sagten sie damit auch Teile von iOS vorher, denn auf Apple-Geräten werden Progressive Web Appsebenfalls Webseiten -gerne in iOS-Apps untergebracht und über den App Store verteilt. ...
... Web-based applications have major benefits: no installation or upgrades needed, instant worldwide deployment, the ability to "own" the users' data. Web-based applications will dramatically change the way people develop, deploy and use software -> paradigm shift!" (Taivalsaari, 2008) Mit einem Web-Browser ist also im Prinzip schon eine mächtige Game-Engine auf jedem Computer oder Mobilgerät vorinstalliert oder sehr leicht zu installieren. Der nächste Schritt wäre also eine flächendeckende Nutzung der Web-Technologien für neue Spiele und Apps. ...
Article
Full-text available
Game engines have been around since the 1980s. One of the first game engines was used by Shigeru Miyamoto's team in their motorcycle racing game Excitebike (NES, 1984). Later, they used the engine to give Mario a run for his money in Super Mario Bros (NES, 1985). There are many game engines on the market, each with its advantages and disadvantages. And every current game needs some kind of game engine, but can it be the browser?
... Using a map dashboard, stakeholders can plan, monitor, and evaluate policy faster and right on target [13], [14]. We suggest using website-based because can be accessible using any device that is connected to the internet (multi-platform) and has become a popular deployment environment for new systems [15], [16]. Besides that, if the government needs to collect data by name by address, a map dashboard also can reduce cost and effort at the data collection stage by focusing only on residential areas that lack access to improved water. ...
Article
Full-text available
This study aims to develop an engaging, web-based visualization dashboard for improved water access in Indonesia. The dashboard map was made using three technologies: the Qgis2web Python plugin for producing two-dimensional (2D) dashboard maps, JavaScript leaflets for map visualization, and Hypertext Markup Language (HTML), Cascade Stylesheet (CSS), and JavaScript for the user interface. The built-in map dashboard has several features, including grid click, legend, zoom, search, and measure distance, which are meant to help users determine the location of the nearest water treatment facilities, identify geographical features, and keep track of areas that have poor access to improved water. Evaluation using the system usability scale (SUS) concludes the dashboard is acceptable with an excellent rating. Our results reiterate and enhance support for government institution and relevant stakeholders in providing sustainable access to public water.
... Implementing a system that enables researchers in a multidisciplinary project to share information and research artifacts calls for developing a purpose-specific data management tool. Access to the proposed system is provided using a Web application, as the availability of up-to-date Web browsers supporting current technologies has become ubiquitous across all principal desktop and mobile operating systems [12,13]. Software development current practices have identified the benefits of a Microservices Architecture (MSA) in opposition to a monolithic design, as they allow for granular services that can be tightly integrated, providing benefits such as high availability, flexibility, scalability, and speed [14]. ...
Article
Full-text available
Environmental research calls for a multidisciplinary approach, where highly specialized research teams collaborate in data analysis. Nevertheless, managing the data lifecycle and research artifacts becomes challenging because the project teams require techniques and tools tailored to their study fields. Another pain point is the unavailability of essential analysis and data representation formats for querying and interpreting the shared results. In addition, managing progress reports across the teams is demanding because they manage different platforms and systems. These concerns discourage the knowledge-sharing process and lead to researchers’ low adherence to the system. A hybrid methodology based on Design Thinking and an Agile approach enables us to understand and attend to the research process needs. As a result, a microservices-based architecture of the system, which can be deployed in cloud, hybrid, or standalone environments and adapt the computing resources according to the actual requirements with an access control system based on users and roles, enables the security and confidentiality, allowing the team’s lead to share or revoke access. Additionally, intelligent assistance is available for document searches and dataset analyses. A multidisciplinary researchers’ team that uses this system as a knowledge-sharing workspace reported an 83% acceptance.
... Implementing a system that enables researchers in a multidisciplinary project to share information and research artifacts calls for developing a purpose-specific data management tool. Access to the proposed system is provided using a Web application, as the availability of up-to-date Web browsers supporting current technologies has become ubiquitous across all principal desktop and mobile operating systems [12,13]. Software development current practices have identified the benefits of a Microservices Architecture (MSA) in opposition to a monolithic design, as they allow for granular services that can be tightly integrated, providing benefits such as high availability, flexibility, scalability, and speed [14]. ...
Chapter
The objective of this work is to create a system that allows a group of researchers to manage scientific information derived from their research activities in a safe way to promote interdisciplinary collaboration. Design Thinking (DT) was used for the development of the system. DT is focused on the continuous interaction of end-users with the development team. Each design step is centered on understanding user needs and motivations. The system implementation was done under the Scrumban methodology, using edge computing, microservices in the cloud, and artificial intelligence elements for information search. It was subdivided into two stages of development, with end-user feedback in each stage. The validation of the system was carried out with 16 researchers participating in a multidisciplinary project. The system lets each researcher control the information they share with their work leader, which, under a modular scheme, gives access to the publications to the other module members or modules. Users publish and consult shared documents and databases, and the system allows them to view, filter, calculate statistics, graph, and download the information. The system is available as a web application for this research group. However, it can be replicated to be used by other collaborative groups that seek levels of controlled access and portability of information within a secure environment, that is not constrained to a particular choice of hardware or operating system.
... Effectively, this process has made releasing software so simple and cheap that to a degree, development and deployment activities are entangled. New parts of software are experimentally deployed, and feedback from released software is used to assist in Tuomas Granlund and Taivalsaari et al. (2008), this leads to a new type of development approach, advancing in evolutionary fashion, where software is always on, and updates are tiny changes in the code. Concrete models for such continuous software engineering (Fitzgerald & Stol, 2017) include continuous delivery (Humble & Farley, 2010) and DevOps (Ebert et al., 2016). ...
Article
Full-text available
Continuous software engineering has become commonplace in numerous fields. However, in regulating intensive sectors, where additional concerns needs to be taken into account, it is often considered difficult to apply continuous development approaches, such as devops. In this paper, we present an approach for using pull requests as design controls, and apply this approach to machine learning in certified medical systems leveraging model cards, a novel technique developed to add explainability to machine learning systems, as a regulatory audit trail. The approach is demonstrated with an industrial system that we have used previously to show how medical systems can be developed in a continuous fashion.
... Our main motivation is to help our target group, software developers, to better understand the need for usability design, evaluation and testing in the field of medical informatics. Building upon current usability methods and standards [2], we wish to enhance three motivational factors in software developers: First, the intrinsic reward associated with the development of high-quality software; second, the personal fulfilment resulting from meaningful tasks in healthcare; third, the economic motivation of cost-efficient web-development [3]. ...
Chapter
Full-text available
This short paper aims to raise awareness of good usability design in medical computer sciences. We present a research plan about developing usability design guidelines for web application development in medical informatics. Following a nimble creation process we shall create a guideline tailored for software developers, that aims to improve communication between the developer and the medical professional. Results are therefore expected to impact the way applications are being developed within the medical sector.
Article
Full-text available
Desa Limbung terletak di wilayah Kecamatan Sungai Raya Kabupaten Kubu Raya Kalimantan Barat. Desa ini memiliki luas wilayah 5.251,06 ha dan telah mengalami beberapa kali pengembangan dan perubahan batas wilayah dari tahun ke tahun. Salah satu faktor yang menentukan masa depan dari suatu wilayah adalah ketersediaan infrastruktur sarana dan prasarana seperti sistem jaringan jalan. Sistem ini turut mempengaruhi perkembangan dan aksesibilitas wilayah. Aksesibilitas wilayah yang optimal akan meningkatkan interaksi masyarakat untuk pemerataan pembangunan. Pembangunan desa perlu menyertakan penyebaran informasi pembangunan kepada masyarakat untuk menanamkan jiwa kemandirian. Akses masyarakat terhadap informasi pengembangan desa memunculan kesenjangan informasi yang menyebabkan pembangunan yang dilaksanakan berjalan lambat dan berorientasi proyek. Sistem informasi geografis pemetaan jalan yang diusulkan, merupakan bentuk kegiatan program pengabdian kepada masyarakat untuk desa Limbung. Pelatihan yang berfokus pada pengenalan dan penggunaan sistem ini juga akan dilaksanakan dengan melibatkan para pejabat RT dan RW sebagai peserta kegiatan pelatihan. Kegiatan ini diharapkan dapat diselesaikan dalam waktu dua bulan. Hasil luaran kegiatan akan berbentuk laporan akhir yang akan dipublikasikan ke jurnal ilmiah. Luaran lainnya adalah sistem informasi geografis yang memetakan jalan desa.
Conference Paper
Full-text available
Morphic is a user interface construction environment that strives to embody directness and liveness. Directness means a user interface designer can initiate the process of examining or changing the attributes, structure, and behavior of user interface components by pointing at their graphical representations directly. Liveness means the user interface is always active and reactive-+bjects respond to user actions, animations run, layout happens, and information displays update continuously. Four implementation techniques work together to support directness and liveness in Morphic: structural reification, layout reification, ubiquitous animation, and live editing.
Article
The creative activity of programming--to be distinguished from coding--is usually taught by examples serving to exhibit certain techniques. It is here considered as a sequence of design decisions concerning the decomposition of tasks into subtasks and of data into data structures. The process of successive refinement of specifications is illustrated by a short but nontrivial example, from which a number of conclusions are drawn regarding the art and the instruction of programming.
Article
With the increasing popularity of the World Wide Web, scripting languages and other dynamic languages are currently experiencing a renaissance. A whole new genera-tion of programmers are growing up with languages such as JavaScript, Perl, PHP, Python and Ruby. The attention that dynamic languages are receiving is remarkable, and is something that has not occurred since the early days of personal computers and the BASIC programming language in the late 1970s and early 1980s. At the same time, the web is becoming the de facto target platform for advanced soft-ware applications, including social networking systems, games, productivity applica-tions, and so on. Software systems that were conventionally written using static programming languages such as C, C++ or Java™, are now built with dynamic lan-guages that were originally designed for scripting rather than full-scale application development.
Conference Paper
The software industry is currently in the middle of a paradigm shift. Applications are increasingly written for the World Wide Web. Unfortunately, the technologies used for web application development today violate well-known software engineering principles, and they have reintroduced problems that had already been eliminated years ago in the aftermath of the “spaghetti code wars” of the 1970s. In this paper, we investigate web application development from the viewpoint of software engineering principles. We argue that current web technologies are inadequate in supporting many of these principles, but also that there is no fundamental reason for web applications to be any worse than conventional applications in any of these areas. Rather, the current inadequacies are an accidental consequence of the poor conceptual and technological foundation of the web development technologies today.
Article
Software developers are always looking for ways to boost their effectiveness and productivity and perform complex jobs more quickly and easily, particularly as projects have become increasingly large and complex. Programmers want to shed unneeded complexity and outdated methodologies and move to approaches that focus on making programming simpler and faster. With this in mind, many developers are increasingly using dynamic languages such as JavaScript, Perl, Python, and Ruby. Although software experts disagree on the exact definition, a dynamic language basically enables programs that can change their code and logical structures at runtime, adding variable types, module names, classes, and functions as they are running. These languages frequently are interpreted and generally check typing at runtime