P. 1
Project Report on Interface to Cloud Computing

Project Report on Interface to Cloud Computing

|Views: 178|Likes:
Published by Inbotics Labs

More info:

Published by: Inbotics Labs on Aug 06, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

03/18/2014

pdf

text

original

Sections

  • 1.1What is Interface to Cloude Computing
  • 1.2 Interface to Cloude Computing basic structure
  • 1.3 The Kernel
  • 1.4 System Services
  • 1.5 Libraries
  • 2.2 UM, User Manager
  • 2.3 MMAP Message Mapping
  • 2.4 PROC
  • 2.5 eyeX
  • 2.6 Extern, external file manage
  • 2.7 Log
  • 2.8 Sec
  • 1.Processor: Pentium 4 2.RAM: 512 MB or more 3.Hard disk: 16 GB or more
  • 1.WAMP Server 2.WINDOWS OR
  • 3 Weeks
  • 4.4 Initializing an ending of an application
  • 4.5 Events
  • 4.6 Extern
  • 4.7 Explained Example
  • 5. Cost Reduction
  • 6. Environmentally Friendly
  • 7.Control Panel

A Report on

:

“Interface to Cloude Computing”

Submitted by:

Under guidance of: Mrs.

Department of Computer Engineering XYZ OF ENGINEERING 2009-2010

CERTIFICATE

This is to certify that the pre report on the project entitled

“Interface to Cloude Computing”

Submitted by:

A partial fulfillment for BACHELOR OF COMPUTER ENGINEERING degree course of Mumbai University for year 2009-2010.

INTERNAL GUIDE ( Prof. )

HOD (Prof. )

INTERNAL EXAMINER

PRINCIPAL

EXTERNAL EXAMINER

ACKNOWLEDGEMENT
No project is ever complete without the guidance of those expert how have already traded this past before and hence become master of it and as a result, our leader. So we would like to take this opportunity to take all those individuals how have helped us in visualizing this project. We express out deep gratitude to our project guide Mrs. for providing timely assistant to our query and guidance that she gave owing to her experience in this field for past many year. She had indeed been a lighthouse for us in this journey. We would also take this opportunity to thank our project co-ordinate Mr. for his guidance in selecting this project and also for providing us all this details on proper presentation of this project. We extend our sincerity appreciation to all our Professor form COLLEGE OF ENGINEERING for their valuable inside and tip during the designing of the project. Their contributions have been valuable in so many ways that we find it difficult to acknowledge of them individual. We also great full to our HOD Mrs. for extending her help directly and indirectly through various channel in our project work. .

Thanking You, ________________

and dynamically reconfiguring. and web server. INTERFACE TO CLOUDE COMPUTING in three categories: Remotely Hosted Interface to Cloude Computing. highly available. Interface to Cloude Computing is a computing environment running within a web browser. IM. and Remote Desktops. The main parts of the system are: web browser. This makes Interface to Cloude Computing very mobile as people can use it everywhere.e. SelfHosted Interface to Cloude Computing. web application.ABSTRACT In this project we describe an operating system based on the web or what is known as “INTERFACE TO CLOUDE COMPUTING”. except that this web application/service is a desktop that allow more functions to be performed inside it.e. It's quite similar to many Ajax based web applications on the net right now (i. This specific name has started as a computing research project at an American universities then developed to be an operating system that provides basic operating systems services needed to build applications that are geographically distributed. incrementally scalable. User can run applications (i. it is accessible from anywhere with net connection. Writely). . word processor) from within the "desktop". In addition.

NO 1) 2) 3) 4) 5) 6) 7) 8) 9) 10) 11) 12) 13) INTRODUCTION LITERATURE SURVEY PROBLEM DEFINITION REQUIREMENT ANALYSIS PLANNING AND ESTIMATION 15 ALGORITHM 22 IMPLEMENTATION ADVANTAGES & DISADVANTAGES FUTURE MODIFICATIONS APPLICATION BIBLIOGRAPHY SCREENSHOTS SOURCE CODE TITLE PG.INDEX SR.NO 1 5 8 11 13 27 29 31 33 48 .

.

Chapter 1 INTRODUCTION 1 .

different applications and different documents.INTRODUCTION This document is an introduction to the application development for the Interface to Cloude Computing web Operating System. User can run applications (i. a different scene awaits us .it gives you the new ability to use it remotely and not be restricted to one PC. although knowing these technologies will help you understand better Interface to Cloude Computing and its internal functioning. 1. JavaScript or XHTML. Interface to Cloude Computing can solve this inefficiency. It's quite similar to many Ajax based web applications on the net right now (i. except that this web application/service is a desktop that allow more functions to be performed inside it.e. But that's not all . This makes Interface to Cloude Computing very mobile as people can use it everywhere. word processor) from within the "desktop". Some PHP knowledge is required to read this document. And that's the advantage of a Web-based "OS" . So each time we sit down to a computer. Writely). and it is not necessary to have experience programming with CSS. because increasingly we use more than one computer from various different locations. IM. in addition. APIs) to develop new applications and add new utilities.a Interface to Cloude Computing should be an expandable platform (just like Windows) that gives developers the right tools (IDE. This is a huge need in today's world. by taking your productivity with you everywhere you go.e. Everywhere Any Place 2 User DATA files Any Device USE R .1 What is Interface to Cloude Computing Interface to Cloude Computing is a computing environment running within a web browser. One note characteristic of the Interface to Cloude Computing is the capability to connect and access to storage like local disk. it is accessible from anywhere with net connection.

performs services. CSS and JavaScript. the layout. and manages data on their local machine and on the Web. or IE. 3 . but would be capable of running locally installed Web applications. a local Web server to handle the data delivery and content display from the local machine to the browser. This local server will likely be highly optimized for its task. Interface to Cloude Computing intends to cover those and other problems derived from the web development. every web browser has a different interpretation of the code and every PHP version and configuration works slightly different from the others. and modification of files on disk . such as PHP. often without even knowing the difference. web application. and web server. retrieval. the security. Web server is a must. In addition. New Operating System A traditional operating system manages: the interaction between hardware and software via drivers. the communication with the browser. etc Main Parts of the System The main parts of the system are: web browser. offering the programmers a homogeneous platform to develop their web applications. XHTML. and preferences .user management. Safari. The web browser (along with other browser-ish applications like Konfabulator) becomes the primary application interface through which the user views content. permissions. Traditional VS. and a higher level functionality like networking and user interface widgets. using only PHP code and leaving to the system the resource management. created with the idea to make easy the application development. Interface to Cloude Computing is a platform for web applications. so it is required to master a lot of languages and understanding numerous concepts to be able to create web applications. Something likes Firefox. There are currently a lot of web-related technologies.From a technical point of view. the memory and execution of programs.

Note: Unless specifying the contrary.2 Interface to Cloude Computing basic structure Before studying the Interface to Cloude Computing components. service() takes 3 arguments: service( string $servicename . The second argument corresponds to the function to call.It's fair to say though. this manual will assume the client is a web browser. The first argument specifies the name of the service to call. Since Interface to Cloude Computing is a microkernel-based platform. as stated above in section 1. and they will be studied later. security is guaranteed since the services apply restrictions to the applications' requests. Interface to Cloude Computing has many services for specific tasks. the applications do not manipulate files directly: instead of that. and the kernel is responsible for its communication and location.4 System Services The Services in Interface to Cloude Computing perform low-level tasks. string $functionName [. Thus. hardly notices the seamless integration between application. The platform is created over a client-server architecture.2. OS. they just need to know its name.php) must be used. the kernel is only thought to unify the system services. 1. the service() function (defined in system/kernel/kernel. and hardware. The only form to communicate with a service is the kernel.3 The Kernel The first step we must take to know Interface to Cloude Computing is the study of its kernel. and the kernel does the rest of the job.many operating systems do far more than this. we must know its basic structure.A new Interface to Cloude Computing: this is not a comprehensive list . in which Interface to Cloude Computing is the server. The common user. often blurring the distinction between OS and application . that most operating systems do everything on this list and do it well. For example. 1. 1. In Interface to Cloude Computing there are eight services. and the client is usually a web browser. In other words. applications don't need to specify how to invoke a service. array $params] ). they use a service designed for that purpose. To do that. With this architecture. given that a service is a collection of functions and we must specify what function we want to 4 . we would venture.

txt. They too are called using the kernel. making available sets of functions the applications might need. we need to specify if we want to copy. PHP is free software released under the PHP License. PHP: Hypertext Preprocessor is a widely used. PHP code is processed by an interpreter application in command-line mode performing desired operating system operations and producing program output on its standard output channel.5 Libraries The libraries in Interface to Cloude Computing are similar to the services. An example of a call would be: service('vfs'. PHP is available as a processor for most modern web servers and as standalone interpreter on most operating systems and computing platforms.'delete'. This code would call the vfs service (the filesystem manager) to delete a file named file. The main implementation of PHP is now produced by The PHP Group and serves as the de facto standard for PHP as there is no formal specification. general-purpose scripting language that was originally designed for web development to produce dynamic web pages. delete or create a file. users or processes). but unlike the services. we need to tell it which file we want to delete. For this purpose. For example. if we are using the filesystem manager service. It may also function as a graphical application. As a general-purpose programming language. if we are using the filesystem manager service. they do not handle low level tasks (such as files. 5 . PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module. 1.use. which generates the web page document.array('file. For example. The third and last argument is an array containing the parameters passed to the function. instead they make the development of applications easier. PHP was originally created by Rasmus Lerdorf in 1995 and has been in continuous development ever since.txt')).

and usability over the Internet. with strong support via Unicode for the languages of the world. XML's design goals emphasize simplicity. for example in web services. Although XML's design focuses on documents. 6 .0 Specification produced by the W3C. generality. all gratis open standards.XML XML (Extensible Markup Language) is a set of rules for encoding documents in machinereadable form. It is defined in the XML 1. and several schema systems designed to aid in the definition of XML-based languages. and several other related specifications. It is a textual data format. There are many programming interfaces that software developers may use to access XML data. it is widely used for the representation of arbitrary data structures.

Chapter 2 LITERATURE SURVEY 7 .

it's VFS that ensures the security and not the applications. which is the responsible of providing functions to work with files and directories. Absolutely no operation with files must be performed directly using PHP functions such as fopen() and unlink(). which are: • extern • eyeX • log • mmap • proc • sec • um • vfs They are located in the Interface to Cloude Computing/system/services/ directory. The applications do not need to 8 .Basic services There are 8 services in Interface to Cloude Computing.1 VFS. The VFS service must always be used in these operations. Virtual File System One of the most important services in Interface to Cloude Computing is VFS. VFS will return false and will activate the error code VFS_INSUFFICIENT_PERMISSIONS (read chapter 3. 2. If an application executed by a user requests VFS to read a file over which the user does not have enough permissions.1). VFS guarantees that a user is unable to read or edit another user's files. Thus.

'open'.array('file. fwrite() and fclose() from PHP. its real name (file. And another called: file.php file.txt')).txt')).txt in the system. The virtual module uses two files for every file the user creates. If we want to open the file to read it: $fp = service('vfs'. making it impossible to guess from the outside the name of a file. The real methods work exactly like the virtual ones.'real_create'.array('file.'r')). which will store the content of the new file.worry whether the user has enough permissions on a file.webFile. real_create. Let's see an example: service('vfs'. real_delete.array('file. In addition. but their name is preceded with the prefix real_. The system will actually create two files. The VFS internal work is done in a modular way. the virtual module concatenates a 32 character length random string to every file name. being one called: file. although it can be specified which module to use changing the value of the VFS_MODULE parameter on the settings. The reason there exist real methods (real_open.txt) and the creation date. This means that the VFS functioning can be modified using new modules. One file is used to store the content of the file and other file is used to store information about it using the XML format. For example.txt_[RANDOM_STRING].array('file. For example.txt'.txt we just need to call VFS once and both files will be deleted: service('vfs'. if we call VFS with the virtual module to create a file: service('vfs'. if we want to delete the file called file. The default module is the virtual module. This code would generate a file called file. Apart from this method using pairs of files. the virtual module has methods to deal with normal files which do not use the webInfo and webFile pairs. such as its author.txt')). These methods are called real methods. etc) and virtual methods 9 . The opening modes of VFS open are the same as the fopen() function used in PHP. It would not create an webFile and webInfo file. VFS always manages these lowlevel tasks.webInfo.txt_[RANDOM_STRING]. and from here we can use the file resource $fp using fread(). which will contain information about the new file.'create'.'delete'.

The virtual functions have permissions to read and write the files in the files/ directory of a user's home. their author and other parameters. logging in. such as a user's configurations. etc. UM provides indispensable methods to build applications. obtaining the path to a user's home. conf/. create.txt' inside of the “Documents” folder of the user's home: 10 . • files/ .2 UM. The form to decide whether to use a virtual or a real method is as simple as thinking: “Do I need to work with a user's file or with a configuration file?” One detail to bear in mind is that the real functions do not have the same restrictions as the virtual ones. for example. These restrictions exist for security reasons.the virtual files (using webInfo and webFile) are stored here. Inside a group's directory. which contains the username of the current user.the configuration files are stored here as real files with XML format. applications can know which user executes them. are real files. and to create files in the groups' directories where the user belongs (see chapter 6). like getCurrentUserDir(). For example: global $currentUser. every user has a home directory to work in. and are visible to the user from the File Manager. while the system files.'getCurrentUserDir'). This way. called $currentUser. 2. Knowing the path to the home of the user that executed the application is useful to save files. Furthermore. For example: $path = service('um'. It would be dangerous that real files of groups could be altered. The real functions have permissions to create and edit files everywhere in a user's home (including files/. the virtual functions can only edit and delete files that belong to the user.(open. One important characteristic is that UM provides a global variable accessible at any place. which returns the path to the current user's home directory. User Manager The UM service manages the users in the system and provides the methods necessary for registering. delete) is that a user's files are stored as virtual files to control their creation date. so they can only be accessed with virtual functions.2. Inside every home directory there are: • conf/ . Let's imagine. but they have no read nor write permissions on the groups's folders. etc). As stated in chapter 2. we are creating a text editor and we want to save what the user wrote (using methods explained later) to a file called 'myFile.

When a mail arrives to the post central. A good comparison could be made with a postal system. //We get the user's home dir $path . the client is responsible of displaying a window. since it classifies and transmits the message to the applications.3 MMAP Message Mapping Before introducing MMAP. //We add the rest of the path to the file service('vfs'. although it is 8 characters length and identifies every process in the client-server 11 . is a unique number. just like myPid. The communication between the client and the server is done via messages. For example. With this code.array($path)). two very important variables for the application development are defined: myPid and checknum. //We add files/ since user's files are in this folder $path .= 'Documentors/myFile. As a final note. and provides methods to launch. A message is a petition made by the client to the server. being for the client the medium to visualize and interact with the application.'create'. you must know that MMAP is an automated service: it does not require any interaction with the developer at all. it is important to know how to receive its messages. etc. MMAP is responsible for routing every received message in the server to the applications. end. it is classified according to its addressee. When an application is launched with PROC. MMAP would do the parts of organizing and delivery. The Interface to Cloude Computing applications reside in the server. and finally it is delivered by the postman. storing and processing the data in it.= 'files/'. myPid is a unique 4 characters length numerical value that identifies every process and checknum.4 PROC PROC is responsible for the process managing. 2. For that process.$path = service('um'. Now that we know what a message is. sending or asking certain information. or sending a message to the server indicating a button has been clicked. we needed to obtain the path to the user's home directory to create the file. list processes.'getCurrentUserDir').txt'. we can move on and explain how MMAP takes part in this process. we must first get to know the communication between the client and the server. 2. Nevertheless. we have created the empty file.

The applications request eyeX basic operations. CSS files. etc. All messages have a response in XML format.array('app2'). Extern allows to create URLs accessible from the outside. the message goes from the browser to the server. Those files must be located inside the extern/ directory.'messageBox'. application “app1” executes the application “app2” and then it terminates itself. just calling eyeX with service(): service('eyeX'. stylesheets and other files in their 12 . we create a button that creates a new window when it is clicked: In the first case. the response to the message includes the orders for the browser to create a new window.css This service exists to allow the developers to use images. global $myPid. indicating the name of the application to open service('proc'.3. the mmap service manages the messages coming from the client. which is interpreted by the browser. In the second case.'close'.css inside of a directory called 'test' located in Interface to Cloude Computing/extern/ we just should use the URL: index.communication. //Pid of application “app1” $pid = $myPid. external file manage The extern service allows the client to download files from the server. and it is eyeX that transforms those orders in an XML message. For example. //We store the pid in another variable service('proc'. allowing to host images.array('content'=>'This is a message')).'launch'. In this application.array($pid). For example. JavaScript files. For example. 2. locates a given process with specified pid and returns the name of its application name. Its working is very simple: if we want to get a file called style. such as creating windows or showing an image.6 Extern.php?extern=test/style.5 eyeX As said in chapter 2. The response XML contains basic orders to modify the interface of the client. the findPidByName() function. we can use eyeX to create a message box in the browser. //We call launch. //We call close indicating the pid of app1 PROC provides a wide variety of process managing methods. The eyeX service is the responsible for managing the response XML sent by the server. 2. not limited to launching or closing applications.

annotating the time and user of every action. although it reverberates on the developers.8 Sec Sec is another autonomous system service. it disables PHP's magic_quotes and register_globals when initiating. unlike the log service. 2. without worrying about the Interface to Cloude Computing/ directory is not visible from the outside. Thus it's not necessary to worry whether these options are enabled or not: you will always see them disabled. Sec is responsible of making Interface to Cloude Computing run in a secure environment. It works autonomously registering the system's activity to log files. 13 . 2. To do that. Its presence does not reverberate at all at the time of building applications.7 Log Log does not require any interaction with the developer.applications.

Chapter 3 PROBLEM DEFINITION 14 .

private clouds. However. yet many technology experts have differing views about what it means to the IT landscape and what cloud computing can do for business. you'll learn about cloud computing defined. Today. agility. 15 . and resource sharing. forward-thinking business leaders are using the cloud within their enterprise data centers to take advantage of the best practices that cloud computing has established. reducing both capital and operational costs and automating the management of complex technologies. This hybrid approach allows IT departments to focus on innovation for the business. Forrester. public clouds vs. SMBs and enterprises alike. leading analysts—including thought leaders from Gartner. namely scalability. In the following sections. drivers for adoption. and IDC—agree that this new model offers significant advantages for fast-paced startups. how enterprises are using the cloud. companies can choose a hybrid approach to cloud computing that employs an organization's existing infrastructure to launch new cloud-enabled applications. automation. and the future of cloud computing.Cloud computing has matured from buzzword to a dynamic infrastructure used today by several organizations. cloud characteristics. By using a cloud-enabled application platform.

Chapter 3 HARDWARE & SOFTWARE REQUIREMENT 16 .

WINDOWS Linux Based Web Server Or system 1.Hardware and Software requirements Hardware: 1. WAMP Server OR 2. RAM: 512 MB or more 3. Hard disk: 16 GB or more Software 1. Processor: Pentium 4 2. 17 .

Chapter 4 PLANNING AND ESTIMATION

18

Software development Life Cycle The entire project spanned for duration of 6 months. In order to effectively design and develop a cost-effective model the Waterfall model was practiced.

Requirement gathering and Analysis phase: This phase started at the beginning of our project, we had formed groups and modularized the project. Important points of consideration were
19

1 Define and visualize all the objectives clearly. 2 Gather requirements and evaluate them. 3 Consider the technical requirements needed and then collect technical specifications of various peripheral components (Hardware) required. 4 Analyze the coding languages needed for the project. 5 Define coding strategies. 6 Analyze future risks / problems. 7 Define strategies to avoid this risks else define alternate solutions to this risks. 8 Check financial feasibility. 9 Define Gantt charts and assign time span for each phase. By studying the project extensively we developed a Gantt chart to track and schedule the project. Below is the Gantt chart of our project.

TimeLine

20

Task Name ID Start Finish Duration Requirement gathering 1 7/29/09 8/19/09 3 Weeks Problem definition 2 8/12/09 8/19/09 1 Week Literature survey 3 8/19/09 9/16/09 4 Weeks Analysis 4 9/2/09 9/16/09 2 Weeks Flowchart 5 9/16/09 9/23/09 1 Week Block diagram 6 9/30/09 10/14/09 2 Weeks Cost Estimation H/W specification 7 10/7/09 10/14/09 1 Week S/W specification 8 10/7/09 10/14/09 1 Week Each week begins on Wednesday 21 .

13 1.10 1.00 1.82 0.24 1.00 1.00 1.00 0.83 1.00 1.10 1.00 1.30 1.70 1.08 1.65 1.91 0.08 1.15 1.88 0.46 1.00 1.17 1.91 0.21 1.40 1.42 1.11 1.86 0.14 1.15 1.87 0.10 1.15 0.24 1.82 0.Cost estimation is done using cocomo model Ratings Nomin Low al High 0.90 0.71 0.94 0.10 .00 1.07 0.23 22 1.70 Very Extra High High 1.29 1.16 1.56 0.85 1.00 1.15 1.06 1.87 1.21 1.00 1.75 0.00 1.00 1.30 1.00 1.30 1.07 1.04 cost Drivers Product attributes Required software reliability Size of application database Complexity of the product Hardware attributes Run-time performance constraints Memory constraints Volatility of the virtual machine envir onment Required turnabout time Personnel attributes Analyst capability Applications experience Software engineer capability Virtual machine experience Programming language experience Project attributes Use of software tools Application of software engineering methods Required development schedule Very Low 0.91 1.86 0.00 1.00 1.66 1.19 1.95 0.

000 23 .72.000 .12. the per month cost comes out to be Rs. so the total comes to be Rs.EAF Using above calculation we found that The total time period of the project is around 6 months.The Intermediate Cocomo formula now takes the form: E=ai(KLoC)(bi).

Chapter 5 ALGORITHM Structure of an application One important thing you should know to manage in Interface to Cloude Computing is the structure of an application. The directory and files tree of an application is as follows: • Interface to Cloude Computing/apps/ -Directory that contains the PHP code of each application • Interface to Cloude Computing/apps/Application/ -Application's main directory 24 .

A graphical application normally uses it to initialize the User Interface.php file. MMAP is able to deliver every message thanks to the fact that each message contains the checknum of the addressee application and the name of the event. For example. Its use varies enormously depending of the kind and size of the application. We will focus to explain the use of every file and directory in the next sections.• Interface to Cloude Computing/apps/Application/apps. 4.php -Initializing and ending code of an application • Interface to Cloude Computing/apps/Application/events. • ApplicationName_end: function called by PROC when terminating an application in case it exists. To deliver the message. but non-graphical and small applications concentrate all their code in this function.5 Events An event is described as an interaction by the user with the interface of our application. The only required function in this file is the _run function.4 Initializing an ending of an application The initialization and ending of an application is contained in the apps.php -Event reception code • Interface to Cloude Computing/extern/apps/Application -Main directory for the external resources of an application The files and directorios marked in bold are required for an application to work properly.php in the directory of the 25 . when a user clicks a button an event is produced. This file contains two functions: • ApplicationName_run: function called by PROC when launching an application. As we explained above. 4. MMAP finds a file named events. the responsible part of treating those messages is the MMAP service. The generated information of every event is sent to the server in the form of a message.

The use of extern in an application is quite useful since it allows to load icons. //We draw the window now that it is defined $myWindow1‐>show(). We only have to place the file we want to access in extern/apps/ApplicationName/ and then use a URL to the file as stated. CSS files.7 Explained Example Now that we know how the files and functions affect an application's working.addressee application and tries to call a function named ApplicationName_on_EventName. 26 .etc. images. 4. 'width' => 250. 'cent' => 1. it is time to see an example: apps. Click me!'.6 Extern Using extern in our application is very easy. 'title' => 'Example webApp' )). passing as an argument the body of the message. 'father'=>'webBasic_WND_Content'. 'height' => 150.php: //Initializing function that created the interface function webBasic_run($params=null) { //Window widget $myWindow1 = new Window(array( 'name' => 'webBasic_WND'. 4. 'father' => 'webApps'. 'caption'=>'I'm a basic webApp. //Button widget $myButton1 = new Button(array( 'name'=>'webBasic_BTN'.

'end'). //We draw the button $myButton1‐>show(). As we can see. events. } //Ending function: it removes the interface function webBasic_end($params=null) { webWidgets('unserialize'). It is not time to explain how the Interface to Cloude Computing Toolkit works right now. 27 . } //Function that receives the event generated when the window is closed function webBasic_on_Close(){ //We make the application terminate itself service('proc'. however it is important to notice in the parameter called 'signal' in the button widget.'messageBox'.php: //Function that receives the event generated when the button is clicked function webBasic_on_buttonPress($params="") { //We show a message indicating that the button has been pressed service('webx'.'x'=>40. } The event receiver functions have a characteristic syntax as explained earlier. } As we can see. 'signal'=>'buttonPress' )).array('content'=>'The Button has been pressed!')). 'y'=>80. the initializing function of the application only creates the interface. and are always called by MMAP. the name of the event 'buttonPressed' matches the content of the signal parameter of the button.

28 .

Chapter 6 IMPLEMENTATION 29 .

DFD Login Authenticated End Session User Session Execute App Verification Services Process managemen t 30 Interface .

Index.php Load String Lib Loading Services Changin Directory to Root Directory Kernel Load Configuration Kernel Loads Library Kernel Loads services Kernel Loads Themes 31 .php Include Kernel.php Index.

php Draw Window Interface es On Button Click Call app.Application : Application event .php Loads Widgets lib App.Js es Events or Functions Are Defined 32 .

Chapter 8 ADVANTAGES 33 .

Rich text editing facility 1. A perfect example of this is the Office Suite. Browser and Platform independent: All browsers and all operating systems are supported. windows are floating so that they can be repositioned • • • • Extensive list applications: Office applications. Reduced Software Maintenance By keeping the software in the 'clouds' users can reduce the amount of maintenance on their computers. network applications etc. 2.ADVANTAGES:• • • Worldwide availability: As it’s available through internet Requires only browser: A browser with java support is more than enough Dynamic content and design: Interface can be customized according your needs. The only models that would support this type of software use would be a subscription based or pay as you go model. multimedia applications. Remote storage facility: Through the file browser you can store files over the internet and edit them as you want. This will keep users from buying software that is bundled with applications the user may not care for. software resides on a service providers servers external to a user’s computer. a user may pay a set fee/month.95/month and the user can tailor their subscription to meet their needs. In a sense users would not have to buy software for their computers because the software is loaded per use while the user is online (via a browser or some kind of connector application). correct software 34 . Nowadays essentially every program installed on a computer has an update function that searches for the latest software changes in order to patch security flaws. Instead of shelling $149 for Office Home & Student. are available. say $5. Software as a Subscription In a cloud.

costly downtime. Users run the risk of losing valuable and sometime unrecoverable data on their computers. When upgrades are made to software on the cloud it does not affect the user's computer. it would simply mean that unless the change affects functionality or visual elements. Service providers need only to add servers or shift load from one server to another to accommodate for the additional use of space. If it occurred at a users premises with installed software a simple issue can turn to hours of technical support over the phone. and unhappy users and customers. it would not require for the user to restart their computers. Cost Reduction Costs are reduced in a number of ways. 4. The same goes for application use. users would see the cost of software decrease due to the reduced cost of subscription software. However in a cloud computing environment. Unless a user takes the time to setup a backup system for their files or sets up some kind of redundancy with offsite backups.issues. etc. A reasonable reduction in systems maintenance would be expected as a result of this. Increased Scalability Running out of hard drive space at home? Looks like an additional hard drive along with a visit to a computer technician for installation will solve the problem. Capital expenditures are reduced because a lot of the load and storage will be shifted over to the service provider who can provide that service at a lower cost. as long as you can pay for it. In the case of grid computing if a storage server on the cloud fails due to hardware or software issues. 3. Increased Reliability Increased reliability stems from the fact that the cloud runs on systems that are extremely reliable and provide some form of redundancy. Aside from decreased capital expenditures associated with hardware purchases. storage is not an issue. instead of a small business adding additional servers to handle business transactions all they have to do is contact the service provider to let them know that they will need additional resources. the user will be oblivious to those updates and their computers will never be affected by those updates. and/or introduce new functionality. 5. IT staff 35 . the service provider needs only to shift the load over to other servers or bring up a backup server in its place.

so the need for an extremely powerful computer is muted. This brings forth added accessibility and productivity for those that are on the road and require access to files and software. 8. With a large number of companies looking for alternatives to employees working at the office and the increasing number of employees making up a mobile workforce. As cloud computing matures and more and more processing is shifted to the cloud. 36 . This signals that users are looking for computers that meet their needs and are affordable. The advent of cloud computing will be able to match this trend because a lot of the processing overhead is performed at the servers and not the computer. This in turn lessens the amount of electronic waste dumped because equipment is older and increased use of those resources. Matches Current Computing Trends The introduction of the netbooks has moved a lot of sales from computers and laptops with more powerful processors and extended capabilities to less powerful and more efficient platforms . 6. 7. The reduction in application costs and technical support would easily continue to support this trend towards a mobile workforce that would utilize the computer grid. When businesses use current assets instead of purchasing additional hardware they reduce the size of their carbon footprint because it is one less server that is put into service.at businesses would be reduced because the majority of the maintenance is performed at the service provider. it is one less server that is consuming electricity . Environmentally Friendly One of the greatest advantages of cloud computing is the increased longevity and use of older hardware used by datacenters. computers will require less processing power and will have basic functionality. Portability/Accessibility One the greatest advantages to grid computing is the availability of files and software anywhere that there is an active internet connection.

Everyone will benefit from the increased availability and affordability of applications that were beyond their reach due to cost and complexity with maintenance and installation.. Cloud computing would also simplify IT's role in computer management because computers would be software agnostic. As one can see the case for cloud computing is quite appealing. Efficient Use of Computer Resources The advent of virtualization has provided companies with ways to efficiently used their computer resources. Versionless Software Versionless software refers to the elimination of software upgrade projects. Users no longer require separate servers for different applications. all the user would see is added functionality. 10.9. Users would have the flexibility of accessing information from anywhere on the planet where an internet connection exists. This shift to virtualization supports the growth of cloud computing due to the increased capabilities of servers. The shift towards cloud computing would enable businesses to save money while minimizing their impact on the environments. It would also give users ". 37 .. Changes and updates to software would be constant and version numbers would be transparent to the user.access to new technology early and often rather than forcing them to wait for a final. Lastly the need for additional training associated with new product releases would be eliminated to due to the nature of the applications constant changing state. " This concept will enable the enterprise to remain in the cutting edge of technology and would reduce training costs associated with new software releases. With virtualization multiple server technologies can run from a single server. packaged product to be shipped.

Chapter 9 APPLICATION 38 .

APPLICATION:1. Use it as portable desktop in organizations 39 .

Chapter 10 FUTURE MODIFICATIONS 40 .

2.FUTURE MODIFICATION 1. Make system capable to run higher processes. Add new higher applications 41 .

Chapter 11 BIBILIOGRAPHY 42 .

com/web2explorer/?p=166.html. Located on the Internet at http://en. Located on the Internet at http:// kottke.BIBLOGRAPHY [1] World intellectual http://www.readw riteweb.com/2007/08/22/Interface to Cloude Computing.org/wiki/Web_operating_system.php. property organization WIPO. Located on the Internet at [2] Mashable Located on the Internet at http://mashable. [7] Wikipedia.zdnet.int/.wipo.org/ 05 /0 8/ go o gl e o s. . [5]YouOS net Located on the Internet at http://www. Located on the Internet at http://en.wikipedia.com/html/static/manifesto/what.org/wiki/Webtop 43 . [3] Wikipedia. Located on the Internet at http://w ww.w ikipedia.youos. [6] ZD net Located on the Internet at http://blogs. [6] Read Write web .org .co m/ar chives/gravity zoo_rev iew. [4] kotte.we bo s.

Chapter 12 SCREENSHOTS 44 .

1. Login: 45 .

2.Desktop: 3.HOME: 46 .

4.Chess Game 47 .Browser: 5.

Process Manger 48 .6.

Control Panel 49 .7.

50 .

Chapter 13 SOURCE CODE Calculator: App.php <?php 51 .

for($i=1. 'height' => 30. 'width' => 30. $x = 5. $tboxInput->setCss(array('font-size'=>'22px')). $tboxInput->setAlign('right'). 'caption' => $counter. $tboxInput->show().$i++) { for($d=1. 'x' => $x. 'text' => '0' )). 'father' => 'eyeApps'. 'y' => $y. 'father' => 'CalcWND_Content'. $counter = 1.$i<4. 'disablemsg' => 1 )). 52 .$counter. $myWindow->show(). 'x' => 5. 'y' => 5.function Calc_run($params=null) { global $myPid. $myWindow = new Window(array( 'name' => 'CalcWND'. 'height' => 240. 'width' => 147. 'cent' => 1. global $checknum. $tboxInput = new Textbox(array( 'name' => 'display'. 'title' => 'Calculator'.$d++) { $name = 'bttn'.$d<4. 'width' => 130. 'savePosition' => 1 )). $tboxInput->setCss(array('height'=>'25px')). $y = 145. 'father' => 'CalcWND_Content'. $$name = new Button(array( 'name' => 'bttn'. 'type'=>NORESIZE_WINDOW.$counter.

'caption' => '0'. 'caption' => '+'. } $bttn0 = new Button(array( 'name' => 'bttn0'. 'father' => 'CalcWND_Content'. 'disablemsg' => 1 )). 'y' => 75. 'width' => 30. 'y' => 180. 'caption' => '-/+'. 'x' => 110. $bttnAdd->show(). $bttnSubstract = new Button(array( 'name' => 'bttnSubstract'. 'height' => 65. 'disablemsg' => 1 )). $bttnAdd = new Button(array( 'name' => 'bttnAdd'. 'x' => 40. 'disablemsg' => 1 )). 'y' => 180. 'height' => 30. 53 . $bttnchangesign->show(). } $y = $y-35. $x = $x+35. 'father' => 'CalcWND_Content'. 'width' => 30. 'father' => 'CalcWND_Content'. 'x' => 5. $bttn0->show(). $counter++.$$name->show(). 'height' => 30. $x = 5. $bttnchangesign = new Button(array( 'name' => 'bttnsign'. 'width' => 30.

$bttnMultiply = new Button(array( 'name' => 'bttnMultiply'. $bttnDivide->show(). $bttnSubstract->show(). 'disablemsg' => 1 )). 'width' => 30. 'y' => 180. 'y' => 40. 'width' => 30. $bttnMultiply->show(). 'width' => 30. 'height' => 30. 'height' => 30. 'disablemsg' => 1 )). 'father' => 'CalcWND_Content'. 'caption' => '. 'caption' => '-'. 'height' => 30.'father' => 'CalcWND_Content'. $bttnDot = new Button(array( 'name' => 'bttnDot'. 'x' => 75. $bttnDot->show(). 'height' => 30. 54 . 'y' => 40. 'caption' => '*'. 'disablemsg' => 1 )).'. 'disablemsg' => 1 )). 'x' => 110. 'father' => 'CalcWND_Content'. 'x' => 75. $bttnDivide = new Button(array( 'name' => 'bttnDivide'. 'father' => 'CalcWND_Content'. 'width' => 30. 'caption' => '/'. 'y' => 40. 'x' => 40.

'loadScript'. 'y' => 145. 'father' => 'CalcWND_Content'. 'disablemsg' => 1 )). $bttnClear = new Button(array( 'name' => 'bttnClear'. } ?> Sessions: <?php 55 . service('eyex'.'&type=dynamic&params[]='. 'height' => 30.$myPid.'&extern=apps/Calc/Calc'.WEB_CODE_EXTEN SION. 'father' => 'CalcWND_Content'.'&params[]='.array('url'=>'index. 'caption' => '='. 'x' => 110. 'width' => 30. 'y' => 40. $bttnEqual->show().EXTERN_CACHE_VERSION. $bttnClear->show().php? version='.$checknum)).$bttnEqual = new Button(array( 'name' => 'bttnEqual'. 'height' => 65. 'width' => 30.'unserialize'). } function Calc_end($params=null) { reqLib('Widgets'. 'x' => 5. 'disablemsg' => 1 )). 'caption' => 'CE'.

//If the petition already have a sessionId. function lib_Sessions_startSession($params=null){ global $sessionId. //Checking the there are an ID and if it exists as session if($sessionId != false && reqLib('IPC'.'flash_fix'). define('COOKIE_EXPIRE'. return true. if(!empty($sessionId)){ 56 .IPC_TYPE))){ Sessions('startSession').'2147483647'). define('IPC_TYPE'.IPC_TYPE))){ $_SESSION = reqLib('IPC'. define('FLASH_UPLOAD_FIX'. if($sessionId != false){ //If session exists if(reqLib('IPC'. //If already has a id (and posible session) $sessionId = Sessions('getSessionId'). } return true.'PHPSESSID').'isSet'.'File').COOKIE_EXPIRE).'getVar'. //Register the save session function to call it at the final of this script register_shutdown_function('reqLib'.array($sessionId.$sessionId.array($sessionId. setcookie(COOKIE_ID. } function lib_Sessions_checkAndSstartSession(){ //Getting the possible session ID $sessionId = Sessions('getSessionId').array($sessionId.'Sessions'.'isSet'. } } function lib_Sessions_getSessionId(){ global $sessionId.define('COOKIE_ID'. } } //Creating the new session $sessionId = md5(uniqid(rand())). just return it. if(!is_array($_SESSION)){ $_SESSION = array().'saveSession').IPC_TYPE)). $_SESSION = array().

} $varName = $params[0]. } //If the request doesn't have a sessionId. return false. } if(isset($_REQUEST[COOKIE_ID])){ return $_REQUEST[COOKIE_ID]. } function lib_Sessions_getVar($params){ if(!isset($params[0])){ errorCodes('setErrorCode'. } function lib_Sessions_delVar($params){ if(!isset($params[0])){ errorCodes('setErrorCode'. } return false. if(!isset($_SESSION[$varName])){ $_SESSION[$varName]. unset($_SESSION[$varName]). } $varName = $params[0]. return false. $varValue = $params[1]. return false. //TODO: Documment the flash trick if(isset($_GET[FLASH_UPLOAD_FIX]) && isset($_GET[COOKIE_ID])){ return $_GET[COOKIE_ID]. } //single var operations function lib_Sessions_setVar($params) { if(!isset($params[0]) || !isset($params[1])){ errorCodes('setErrorCode'.array(INCORRECT_PARAMS)). } 57 . } $_SESSION[$varName] = $varValue. we have to check if the user have sent it via $_REQUEST //Flash fix. return $_SESSION[$varName].return $sessionId. } $varName = $params[0].array(INCORRECT_PARAMS)).array(INCORRECT_PARAMS)).

} $varName = $params[0]. } $varName = $params[0].array(INCORRECT_PARAMS)).array(INCORRECT_PARAMS)).function lib_Sessions_checkVar($params){ if(!isset($params[0])){ errorCodes('setErrorCode'. } array_push($_SESSION[$varName]. } $varName = $params[0].$varValue). return false. } } //array operations function lib_Sessions_makeArrayVar($params) { if(!isset($params[0])){ errorCodes('setErrorCode'. if(!isset($_SESSION[$varName]) || !is_array($_SESSION[$varName])){ $_SESSION[$varName] = array(). } $varName = $params[0]. } //array with keys function lib_Sessions_addArrayValueByKey($params) { if(!isset($params[0]) || !isset($params[1]) || !isset($params[2])){ errorCodes('setErrorCode'.array(INCORRECT_PARAMS)). } else { return false. } function lib_Sessions_addArrayValue($params) { if(!isset($params[0]) || !isset($params[1])){ errorCodes('setErrorCode'. return false. return false. 58 . if(isset($_SESSION[$varName])){ return true. return false. $_SESSION[$varName] = array(). $varValue = $params[1].array(INCORRECT_PARAMS)).

unset($_SESSION[$varName][$varKey]). } function lib_Sessions_getArrayValueByKey($params) { if(!isset($params[0]) || !isset($params[1])){ errorCodes('setErrorCode'. //If the petition is a extern request. } } function lib_Sessions_saveSession(){ global $sessionId. } function lib_Sessions_checkArrayValueByKey($params) { if(!isset($params[0]) || !isset($params[1])){ errorCodes('setErrorCode'.array(INCORRECT_PARAMS)).array(INCORRECT_PARAMS)). return false. return $_SESSION[$arrayName][$position].array(INCORRECT_PARAMS)). } function lib_Sessions_delArrayValueByKey($params) { if(!isset($params[0]) || !isset($params[1])){ errorCodes('setErrorCode'. if(isset($_SESSION[$varName][$varKey])) { return true. } $varName = $params[0]. $position = $params[1]. the session is not saved (read only mode). } $arrayName = $params[0]. $varKey = $params[1].$externRequest. if(!empty($externRequest) && $externRequest == true){ 59 . } else { return false. $key = $params[2]. if(!isset($_SESSION[$varName]) || !is_array($_SESSION[$varName])){ $_SESSION[$varName] = array(). } $_SESSION[$varName][$key] = $varValue. return false. return false. $varKey = $params[1]. } $varName = $params[0].$varValue = $params[1].

} //Use __FILE__ is better than use some "custom environment vars you get when is used under some httpd $dir = dirname(__FILE__) . chdir($dir).$_SESSION. return true. if($sessionId == ''){ return true. don't save any session.array($sessionId./'.'setVar'. //Deleting session ID $sessionId = ''. //save the session reqLib('IPC'. } function lib_Sessions_endSession(){ global $sessionId.IPC_TYPE)).'rmVar'. return true.IPC_TYPE)).return true. '/./. //Deleting $_SESSION content $_SESSION = array().. } //If sessionId is not pressent./.array($sessionId... reqLib('IPC'. } ?> 60 .

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->