Loading presentation...

Present Remotely

Send the link below via email or IM


Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.


WebOS Prezi

Technical Presentation on WebOS

Shanawar Hasnain

on 8 April 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of WebOS Prezi

WebOS Application
Process Control
Resource Discovery

A Global Cache Coherent File System

Cache coherent access to the global name space for unmodified application
A fully file system interface supporting arbitrary file/directory operations
Performance comparable to standard file systems for cache access
User App
WebFS Daemon
WebFS File
WebFS Syscall
Block on Semaphore
Not Cached?
User-Level Request
Work Queue
Fill in Request
Release Semaphore
Request to
Remote Node
User Level

Loadable Kernal
WebFS Performance
The performance of WebFS relative to the performance of NFS on the modified Andrew Benchmark suite

Network File System (NFS) is a distributed file system that allows files to be accessed by client computers over a network as easily as if the files were located on clients’ local disks.

Root Directory
Index.html AboutUs.html Index.html AboutUs.html
Root directory is defined to contain all HTTP/WebFS sites and is initially empty
When access one HTTP/WebFS site -> system checks for the presence of first a WebFS and second an HTTP server.
WebFS Naming
webFS is mounted on /http
cd /http/www.mvit-college.edu
cat index.html

WebFS cache coherence policies
Examples of Cache Coherrent Policy
Internet Chat: Append Only
General File Sharing: Last Writer Wins
Stock Ticker: Multicast Updates
The choice of caching policy for application correctness, performance, and development use.
WebFS allows read access to the existing HTTP namespace
Request the contents of a directory containing a pre-determined filename, but HTTP returns the contents of the file rather than the contents of the directory
WebFS must address is the limited file statistics exported by HTTP when providing directory information

WebFS HTTP limitations
Uses Public Key Cryptography

Each file is associated with ACL (Access control lists) -> enumerate users who read, write or excurse permission on individual files

Users are uniquely identified by their public keys

WebFS Authentication
Operating System: provide common services to applications: IO, communication, storage.

With multiprogramming: include abstracting shared resource.

Local Area Network: birth of Network OS to provide access to network resources.

We need similar services for Wide Area Network distributed applications.

World Wide Web is the most widely used applications on the Internet.

Web made geographically distributed read-only data easy to use, but geographically distributed computing resources are not.

The result is that wide area applications that require access to remote CPU cycles, memory, or disk must be programmed in an ad hoc and application-specific manner.

=>Increase complexity!


A framework for supporting applications that are geographically distributed, highly available, incrementally scalable, and dynamically reconfiguring.

Resource discovery
A global namespace
Remote process execution
Resource management
Authentication and security

Web OS versus tradition single PC OS

Technology AJAX +FLASH c /assembly
Built on any other OS directly on hardware
Internet online on browser Offline is ok
Application installed on server installed on local disk
Security volatile safe
File System wide areas file system ntfs,fat32,ext2,ext3

Core-apps include the following Enyo 1.0 applications: accounts, calculator, calendar, clock, contacts, email, and memos, and the Node.js-based services required to run them.
Open webOS Architecture
Enyo is an object-oriented JavaScript
application framework emphasizing modularity
and encapsulation.
The luna-sysmgr GitHub repository is here. It contains the webOS System Manager, which is a key webOS component responsible for:

Managing the application and service interface for physical devices, such as keys, accelerometer and vibrator.
Managing the running of applications and passing of messages between applications.
Managing the installation and removal of applications.
Managing display and notify applications and services.
Managing the sharing of system resources between different applications and services.
Managing the dock mode status.
Managing the security policy and access to a locked device.
Providing for the display of notifications.
Providing for system menus.
Providing for the coordinated rendering of applications.
Rendering webOS card view, lock screen, status bar, system menus, virtual keyboard, notifications, and launcher, in addition to other system management features that are viewable in the System Manager User Interface.

WebAppMgr is provided by System Manager and is responsible for running Enyo applications.
System Manager
Resource Discovery

To provide the best overall system performance, client applications must be able to dynamically locate the server able to deliver the highest quality of service.

Resource discovery includes mapping a service name to multiple servers, an algorithm for balancing load among available servers, and maintaining enough state to perform fail-over if a server becomes unavailable

These operations are performed through Smart Clients.

Wide Area File System:

To support replication and wide-scale sharing, WebOS provides a cache coherent wide area file system.

WebOS extends to wide area applications running in a secure HTTP name space the same interface, caching, and performance of existing distributed file systems.

Security and Authentication:

To support applications operating across organizational boundaries, WebOS defines a model of trust providing both security guarantees and an interface for authenticating the identity of principals.
A key enabling feature is fine-grained control of capabilities provided to remote processes executing on behalf of principals.

Process Control:

In WebOS, executing a process on a remote node should be as simple as the corresponding local operation.

The underlying system is responsible for authenticating the identity of the requester and determining if the proper access rights are held.

Resource Discovery
First, a service name must be mapped onto the replicated service representatives.

Next, a load balancing decision must be made to determine which server is able to deliver the best performance.

Finally, enough state is maintained to perform fail over if a service provider becomes unavailable.

Current Approach

Round Robin algorithm and many open source software like HAproxy is used for load balancing. Load balancing across the wide area is achieved by instructing users to access a particular “mirror site” based on their location.

To distribute load across servers, techniques such as HTTP redirect or DNS Aliasing can be used to send user requests to individual machines.

Smart Clients

Smart Clients enable extensions of server functionality to be dynamically loaded onto the client machine.

Java’s portability and availability in all major Internet browsers allow distributing these extensions as Java applets.

Naming, load balancing, and fail over are performed from the perspective of the client.

Smart Client architecture

The GUI thread presents the service interface and passes user requests to the Director Thread.

The Director is responsible for picking a service provider likely to provide best service to the user. The decision is made in a service-specific manner. In this case, the nearest mirror site is chosen.

Bootstrapping Applet Retrieval

How smart clients retrieve applets on browser .

Global namespace

Fast internet access .
Not able to access all computational resources .

WebOS includes
Step 1: users transfer some portion of their access rights to webOS server when attempting to access a remote resource

Step 2: WebOS servers communicate using SSL

Step 3: The remote server checks if the proper
credentials are held in local ACL’s

Transfer of Rights
Principals register with web os and control the transfer of portions
of their rights to servers acting on their behalf

A webOS server can recursively transfer rights to a second server by signing the appropriate transfer certificate if has a transfer right.

Principals transfer rights by creating a transfer certificate
What is a Transfer Certificate?
The dictionary defines certificate as an official
document attesting
some facts

So what simple facts make up a transfer certificate?

Time Period
Target WebOS Server
Access Control Lists (ACLs) are employed to describe the principals and groups privileged to access particular resources

Two types of ACLs are
File ACL
Process Execution ACL

Check for a valid timestamp
Proper authority of the requesting web browser
Check its local ACL’s
Process Control
Goals: safety and fairness
As simple as forking a process on the local processor.
Using scheduling mechanism of local operating
system to allocate fairness
Using resource manager is responsible for jobs requests
from remote sites

Internet Chat
WebOS Applications
Rent-A-Server allows sites to deal with peak loads
Benefits for Rent-A-Server:
Geographic Locality
Dynamic Reconfiguration
Transparent End-to-End Availability
Secure Coherent Data Access
Safe Remote Execution

WebOS actually is as simple as it seems so it has found its usage in various domains like Thin TV's and gears.

It has a bright prospect in the near future with its innovative infiniteness.
WebOS Overview
Security & Authentication
Server sends a copy of its asymmetric public key.
Browser creates a symmetric session key and encrypts it with the server’s asymmetric public key.
Server decrypts the asymmetric public key with its asymmetric private key to get the symmetric session key.
Server and Browser now encrypt and decrypt all transmitted data with the symmetric session key. This allows for a secure channel because only the browser and the server know the symmetric session key, and the session key is only used for that session. If the browser was to connect to the same server the next day, a new session key would be created
Full transcript