INTRODUCTION To

The Web

Submitted By: - Vijay Soni V Sem. (Computer Engineering) Govt. Engg. College, Ajmer

Written in : PHP, XML, JavaScript

Platform : Cross-platform

Available in : Multilingual

Type : Web Operating System

License : AGPL

Website : http://eyeos.org

Introduction :

WebOS and Web operating system are terms that describe nenetwonetwortworkrkk services for Internet scale distributed computing, as in the WebOS Project at UC Berkeley, and the WOS Project. In both cases the scale of the web operating system extends across the InIntternet,ernet, like the web..

“More generally, WebOS refers to a software platform that interacts with the user through a and does not depend on any particular local operating system ”

In a way the term is a misnomer, because it doesn’t mmeeanan a ‘real’ Operating System in the traditional sense - like Linux or Windows. A better term is probably ‘Web Desktop’…

WEBTOP is another name for WebOS…

What Is EyeOS? eyeOS is an open source web desktop following the concept that seeks to enable collaboration and communication among users. It is mainly written in PHP, XML, and JavaScript. It acts as a platform for web applications written using the eyeOS Toolkit. It includes a with applications and system utilities. It is accessible by portable devices via its mobile front end.

These services turn the desktop into a service that runs on the Internet rather than on the local computer. As these services include a file system and application management system, they increasingly overlap with the functionality of a traditional desktop computer operating system

From a technical point of view, eyeOS is a platform for web applications, created with the idea to make easier the development of these applications. Nowadays there are many web related technologies such as PHP, XHTML, CSS, Javascript, and it is required to know a lot of languages and understand a big number of concepts to create web applications. Furthermore, each web browser interprets this code in a different way and each version and PHP configuration behaves slightly different from the rest.

EyeOS seeks to satisfy these problems and some others derived from the web development, offering to the programmers a homogenous platform for their web applications, using only PHP and Javascript delegating to the system the resources management, the communication with the browser, the security, etc… Basic structure of eyeOS :

The platform is created over a client-server architecture, where eyeOS is the server and the client usually is a web browser. Cloud Computing

Cloud computing is Internet-based computing, whereby shared resources, softwaresoftware,, andand information are p rovided to computers and other devices on demand, llikikee the electricity grid.

 Cloud computing is a natural evolution of the widespwidespreadread adoption of virtualization, Service - oriented architecture and utility computing  This frequently takes the form of web -base d tools or applications that users can access and uusese through a web browser as if it were a program instainstalllleded locally on their own computer  Some of the larger IT firms that are actively involinvolvveded in cloud computing are Fujitsu, Micro soft, Hewlett Packard, I BM, VMware, NetApp and Dell.  Cloud Computing Is a Service o IaaS - Infrastructure as a Service o PaaS - Platform as a Service o SaaS - Software as a Service

History :

The first publicly available eyeOS version was released on August 1, 2005 as eyeOS 0.6.0 in Barcelona (Spain). At the time, it greatly participated in creating the definition of a web operating system and acted as a concept. Quickly, a worldwide community of developers took part in the project and helped improve it by translating, testing and developing it.

After two years of development, the eyeOS Team published eyeOS 1.0(on June 4, 2007). Compared with previous versions, eyeOS 1.0 introduced a complete reorganization of the code and some new web technologies, like eyeSoft, a -based web software installation system. Moreover, eyeOS also included the eyeOS Toolkit, a set of libraries allowing easy and fast development of new web Applications.

With the release of eyeOS 1.1 on July 2, 2007, eyeOS changed its license and migrated from GNU GPL Version 2 to Version 3.

Version 1.2 was released just a few months after the 1.1 version and integrated full compatibility with files.

eyeOS 1.5 Gala was released on January 15, 2008. This version is the first to support both and OpenOffice.org file formats for documents, presentations and spreadsheets. It also has the ability to import and export documents in both formats using server side scripting.[7]

eyeOS 1.6 was released on April 25, 2008 and included many improvements such as synchronization with local computers, drag and drop, a mobile version and more.[8]

eyeOS 1.8 Lars was released on January 7, 2009 and featured a completely rewritten file manager and a new sound API to develop media rich applications. Later, on April 1, 2009 1.8.5 was released with a new default theme and some rewritten apps such as the Word Processor or the Address Book. On July 13, 2009 1.8.6 was released with an interface for the iPhone and a new version of eyeMail with support for POP3 and IMAP. Features :

 File Sharing Platform With eyeOS you can manage and save your files with a synchronitzatoin between your computer and a virtual network drive connected with eyeOS..

• Fast access to your information from any device with a web browser; • You can create workgroups, managing user profiles and groups to facilitate collaborative work between them; • Blackboard to send messages between users and members of your groups; • Work collaboratively with the same document at the same moment • Allows an eyeOS platform to connect with the end users outside the system by allowing any eyeOS user to share his/her files with everyone, getting a simple URL for any file which should be shared; • Files links can also be sent via e-mail; • Files can also be shared with a password protection and only for certain groups of users;

 The Base Applications eyeOS comes by default with applications to create and work with Office files (with a word processor and a spreadsheet program), calendar, diary, email (with POP3/IMAP support) and much more. EyeOs aims to be a great stable suite for comfortable online work, both individually and with other users simultaneously.

 Better, Easier Development Making eyeOs 2.0 applications is easier than ever. The GUI () is completely implemented in JavaScript, and the system is based on OOP (object-oriented programming) and can be expanded or modified by adding classes and methods. The new store methods (GenericDao) allow you to save and retrieve data from the database transparently: it is not necessary to know SQL. Creating RIA (rich Internet applications) is easy and fast. Now eyeOS is a framework that combines JavaScript and PHP: there is no quicker and easier way to create a RIA.

 RIA Framework EyeOS is not only a web desktop with its own valuable applications; it has been designed from the beginning to enable easy development and creation of new applications. EyeOS 2.0 is the perfect development framework for quick and easy creation of rich Internet applications. It has been completely developed with open technology and widely accepted standards such as PHP, MySQL, JavaScript, log4php, PHPUnit, OpenOffice and others, enabling the system to function on a common web server without any modifications, and using any standard browser without any additional plug-ins installed.

 Open Source It is simple to access the EyeOS code, because it follows an open development model with a public SVN, version control system, which tracks the development of the project. Furthermore, all of the EyeOs code is documented so that you can start using it from day one.

 Develop Easily Learning to program in EyeOs is quick and easy. And once it is done, you don’t have to worry about the system at all! Thus, it is very easy to create an application. EyeOs has been designed as a totally extensible system so that anyone can create an application using PHP and JavaScript and integrate it into the system. Its free software model and free license mean that the software can be adapted without problems.

 EyeOS as the Cloud Computing Working together IBM and eyeOS are making available a sample virtual Linux desktop workload for the Solution Edition for Cloud Computing. Clients who choose to the eyeOS sample workload can:

• Accelerate the learning process for cloud computing with an open source software workload. • Understand the anatomy of cloud images the contain operating systems, middleware and applications. • Increase the speed to value for the Solution Edition for Cloud Computing. Extras :

 Ublquity : Access your documents, files and applications from anywhere and any device.  Flexibility : From the small business to the big corporation. Also for individual use. There is an eyeOS for you!  Integration : The eyeOS architecture makes easier and faster the integration of any that you use  Slmpllclty : From its first steps. eyeOS has been planned and created to be intuitive and easy to use.  Collaboration : Share files and edit them in a real-time collaboration suite with other users.  Privacy : Decide where your files are: You can have your own eyeOS server!  Security : Control your eyeOS. You are who manage roles and permissions for each user.  Low costs : All in one in a single platform: the best way to optimize time and resources.

Structure And API :

For developers, eyeOS provides the eyeOS Toolkit, a set of libraries and functions to develop applications for eyeOS. Using the integrated Portage-based eyeSoft system, one can create their own repository for eyeOS and distribute applications through it.

Each core part of the desktop is its own application, using to send server commands as the user interacts. As actions are performed using (such as launching an application), it sends event information to the server. The server then sends back tasks for the client to do in XML format, such as drawing a widget.

On the server, eyeOS uses XML files to store information. This makes it simple for a user to set up on the server, as it requires zero configuration other than the account information for the first user, making it simple to deploy. To avoid bottlenecks that flat files present, each user's information and settings are stored in different files, preventing resource starvation from occurring.

What is the "eyeOS Toolkit"?

The eyeOS toolkit consists in a group of Widgets, which are PHP+AJAX classes prepared to receive instructions and communicate with the application. Making an application is as simple as choosing your widgets, grouping them through the addFriend method and adding events to them (e.g. what should the application do when a button is clicked).

The system will automatically call the events when they are fired, add the app to the Processes table so it can run in multiple instances (e.g. two or more opened documents in a text editor), and protect the app against external attacks.

Please note that eyeos Toolkit comes by default with any version of eyeos. It's not visible, it's just under the hood. It lets you to create your apps using it. You will learn more about the eyeos toolkit and how to use it on the eyeOS Developers Manual.

Working Of EyeOS

Screen Shots :

EyeOS Installation

EyeOS is Open Source Can be Downloaded from Popular Website http://sourceforge.net known for Hosting Open Source Project..( http://sourceforge.net/projects/eyeos ).

There Are 2 Versions Of EyeOS.

• EyeOS 1.* • EyeOS 2.*

EyeOS 2.* Server Requirements:

• PHP 5.2.10 • Curl extension • GD extension • Mbstring extension • Mcrypt extension • Mysql extension • Mysqli extension • SQLite extension • PDO extension • PDO MySQL Driver • PDO SQLite Driver • JSON Support • shm memory support • Python 2.5.0

Note : EyeOS 1.* will install on a fresh CentOS LAMP server install however CentOS does not release the required packages for an EyeOS 2.* install as standard

Lets Get To The Programming

EyeOS directory structure

It is important to know how eyeOS is organized to be able to develop applications. In eyeOS everything has a specific place to be located.

The eyeOS directory tree can be summarized as seen below: eyeos/apps : Directory where the applications are located. eyeos/extern: Files visible from outside, as CSS style sheets, images, etc… eyeos/extras : Extra files. eyeos/system: System directory, it contains services, libraries, the kernel and global configurations. eyeos/users: Users directory with all their documents and configuration files. eyeos/workgroups: It contains the files referred to the user groups.

General configuration of eyeOS

One of the most important files that defines the operation of eyeOS is the settings. file, which is located on the eyeOS root, along with the index.php file. In this file constants are defined and later used in all the eyeOS code. For example: define('SQL_USERNAME', 'root'); which defines the username for the database connection.

Preparing the environment

All the projects must be developed in an adequate environment. If, for example we are developing an application for GNU/Linux, it is better to use a GNU/Linux environment, otherwise the task would become quite bothersome task. Let’s see which requirements our environment should have:

• Subversion Client: we will need it to download the latest eyeOS code.

• Servidor Apache 2 : the only server officially supported. • PHP 5.2 : the required version since eyeOS 2.0 and above.

• PHP Editor : any suitable text editor is valid.

Furthermore you must have activated the following PHP modules: curl, gd, mbstring, mcrypt, mysql, mysqli, sqlite, pdo, pdo_mysql, pdo_sqlite, suport shared memory (recommended), Json support activated (recommended).

We also recommend the use of Mozilla Firefox on its version 3.5. Moreover we suggest the use of the Firebug extension that makes the application development easier.

Application structure

An important aspect to know is the structure of an application. The directory tree must be as shown below: eyeos/apps/ Directory that contains the code of each application eyeos/apps/applicationname/ Main directory of the application eyeos/apps/applicationname/applicationname.js GUI code of the application eyeos/apps/applicationname/applicationname.php Code that receives the messages generated on the GUI and emits the results. eyeos/apps/applicationname/info. XML that contains the information of the application, it is not mandatory but its existence is highly recommended. eyeos/apps/applicationname/extern/ Contains the files of the application that must be accessible from the browser, such as the images, the EyeOS 2.0 Developer Manual 4 css…

Initializing and ending of an application

When an application is initiated, the system takes care of loading the javascript code contained in the file applicationname.js . If we want certain code to be executed when the application starts or we want to load additional javascript code, we must define the “_run” function on the applicationname.php file and insert the initialization code on it.

When we close the application the system takes care of free the resources but offers us the possibility of executing additional code. To do this, we must define the function “close” in the file applicationname.php. Messages

So, in a common way, an application contains two files: applicationname.php and applicationname.js (besides info.xml ). The javascript file is executed by the browser when the application is initiated. This is the responsible of operating with the graphic interface of the application and manages all its events.

To interact with the server, the javascript code use de call eyeos.callMessage which send an asynchronous message and that have as parameters the name of the message, all the specific parameters and the callback function that will be executed when the response is returned.

These messages are received by the file applicationname.php which is located on the server side. This file has a function for each possible message. Let’s see this on an example:

We can see a snippet of js code that sends the message bellow:

This code, on being executed by the browser would send a message whose name is “whatDayIs” and that send by parameter an array with a string. On returning from the message, the specified function would be executed that, in this case, would tell us what day of the week is in a dialog. We must note that the variable rPars on the callback function contains the results emitted on the return of the message.

As we have said, this message is received on the server side by a php file. This file is the responsible of returning the corresponding response:

As we can see, it describes the behavior of the function that has by name the name of the message, and returns what day of the week we are.

Complete example Now that we know how the files are and how the functions affect the behavior of an application it is the time to see an example:

Demo.php

Demo.js

Bibliography :

i. http://www.eyeos.org/

ii. http://forums.eyeos.org

iii. http://sourceforge.net/projects/eyeos/

iv. http://www.linuxjournal.com/content/eyeos-web-based-desktop-os