Content uploaded by Tommi Mikkonen
Author content
All content in this area was uploaded by Tommi Mikkonen on Apr 13, 2018
Content may be subject to copyright.
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.
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 Things “Upside 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)
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.