Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Установка новых приложений




Как установить и запустить приложение для облачной ОС eyeOS

Структура приложения

Разработка приложений

4.2.1.Требования окружающей среды:

SubversionClient: нужноскачатькод eyeOS.

Apache2Server: единственный сервер, который поддерживается официально.

PHP 5: версия с eyeOS 1.2.

PHPEditor: любой подходящий текстовый редактор.

Официальный клиент Subversion: http://subversion.tigris.org

IDE Eclipse PDT.

Unix подобные ОС: OpenBSD, FreeBSD, GNU/Linux и др.

Mozilla Firefox 2.X.

расширение Firebug.

расширение ANEC (Add n edit cookies).

Загрузка кода

EyeOS код находится на сервере Subversion (система управления версиями), и организована следующим образом:

rtunk: содержит код стабильный и безопасный, и это главная eyeOS рабочей ветви.

branches:

unstable: cодержат приложения, которые не соответствуют стандарту качества eyeOS.

tags: содержаткод для каждой версии.

На SVN-сервере можно найти на http://svn.eyeos.org

Дерево каталогов и файлов приложения:

eyeOS/apps/ ‑ каталог, содержащий PHP-код каждого приложения;

eyeOS/apps/application/ ‑ приложение основной каталог;

eyeOS/apps/application/apps.eyecode/ ‑инициализация и заканчивание кода приложения;

eyeOS/apps/application/events.eyecode ‑кодприемасобытий;

eyeOS/extern/apps/application – основной каталог для внешних ресурсов приложения.

Приложения для eyeOS устанавливаются в подкаталог apps.

Пример пути к данному подкаталогу:

/usr/local//www/apache22/data/eyeOS/eyeOSeebe3bc4ed/ apps

Дополнительные модули, в частности, написанные на JavaScript и предназначенные для выполнения в браузере на стороне клиента, располагаются в подкаталоге extern/apps.

Пример пути: /usr/local//www/apache22/data/eyeOS/eyeOSeebe3bc4ed /extern/ apps

 

Кроме указанных подкаталогов дополнительные файлы, необходимые для работы некоторых приложений, устанавливаются в подкаталоги

/usr/local//www/apache22/data/eyeOS/eyeOSeebe3bc4ed/ apps/share

/usr/local//www/apache22/data/eyeOS/eyeOSeebe3bc4ed /extern/ apps / eyeX

и, возможно, в некоторые другие. Всё определяется составом установочного пакета конкретного приложения (файл с расширением .eyepackage).

 

Если требуется вручную установить некоторое приложение, например, HelloWorld, то необходимо скопировать в подкаталог apps подкаталог HelloWorld, который содержит следующие файлы установочного пакета:

app.eyecode (на языке PHP)

events.eyecode (на языке PHP)

info.xml (информация о приложении)

 

Простейшее приложение HelloWorld не нуждается в дополнительных модулях, поэтому в каталог extern/apps и другие дополнительные подкаталоги ничего копировать не нужно.

 

Для более сложных приложений, например, eyeCalc, входящего в установочный комплект eyeOS, подкаталог extern/apps содержит соответствующий подкаталог eyeCalc, в котором находятся следующие файлы:

eyeCalc.eyecode (на языке PHP)

eyeCalc.js (на языке JavaScript)

eyeCalc.min.js (на языке JavaScript без разделения на строки – для ускорения выполнения в браузере?)

Похоже, что все вычисления в приложении eyeCalc выполняются в браузере клиента, а не на стороне сервера, что вполне логично. Таким образом, приложение eyeCalc можно рассматривать как типичный пример разделения вычислительной нагрузки между клиентом и сервером. При этом сервер поддерживает выполнение процесса eyeCalc в контексте eyeOS и формирует окно приложения, а клиент выполняет арифметические операции и вычисляет математические функции, поддерживаемые в калькуляторе.

 

Прежде чем приводить пример файлов приложения HelloWorld, обратим внимание на правила именования подкаталога пакета и функций программ PHP. Имя подкаталога, содержащего файлы приложения (в данном случае HelloWorld), и префиксов функций, описанных в файлах *.eyecode (например, HelloWorld_run), должны совпадать. В противном случае приложение не будет работать.

 

Также обратим внимание на тот факт, что в случае запуска сервера apache на *nix-сервере все текстовые файлы пакета имеют формат, принятый для текстовых файлов в ОС UNIX, т.е. строки завершаются управляющим символом <LF> (перевод строки), в то время как в ОС Windows принят другой формат текстовых файлов, в которых строки завершаются парой символов <CR> (возврат каретки) и <LF>. Это может вызвать проблему совместимости при редактировании таких файлов текстовым редактором под Windows.

 

Возможны, по крайней мере, следующие три способа запуска приложений под eyeOS:

1. Выбор пункта Launch App в выпадающем меню, которое появляется при нажатии круглой кнопки в “панели задач”, располагающейся в самом низу экрана справа. В качестве имени приложения указываем, например, HelloWorld. Этот способ похож на запуск программ в Windows – “Пуск/Выполнить…”.

2. Меню в верхней части экрана: “Accessories/Process Manager” – вкладка “Processes”, кнопка “New process”.

3. Создание ярлыка на рабочем столе: щелчок правой кнопкой мыши и выбор пункта “New launcher” в выпадающем меню. Здесь также можно выбрать значок для ярлыка.

 

Ниже приводится текст файлов приложения HelloWorld, которые находятся в подкаталоге

/usr/local//www/apache22/data/eyeOS/eyeOSeebe3bc4ed/apps/HelloWorld

 

Префиксы имен, которые должны совпадать с именем подкаталога приложения (HelloWorld) выделены цветным маркером.

Установим два новых приложения: HelloWorld и разработчик приложений eyeDesigner. Для этого создадим на диске С каталог «eyeQuiz» и распаковываем туда файлы «apps» и «extern». Чтобы связаться с виртуальной машиной нужно настроить FTP соединение. Чтобы настроить соединение, нужно ввести IP адрес. Зптем заходим на вм и в папке var/ftp/incoming видим новую папку eyeQuiz. Осталось только перенести нужные нам программы в папку eyeOSeebe3bc4ed

Рис.4.1 Создание FTP соединения

 

 

Рис.4.2.Установка плагина Java

 

 

Рис 4.3. Запуск новой программы Hello World

 

Рис 4.4.Создание новой формы для приложения в eyeDesigner

 

 

Рис 4.5.Выгрузка полученного HTML кода

 

 

app.eyecode:

 

<?php

/*

____ _____

/ __ \ / ____|

___ _ _ ___| | | | (___

/ _ \ | | |/ _ \ | | |\___ \

| __/ |_| | __/ |__| |____) |

\___|\__, |\___|\____/|_____/

__/ |

|___/ 1.9

 

Web Operating System

eyeOS.org

 

eyeOS Engineering Team - www.eyeos.org/team

 

eyeOS is released under the GNU Affero General Public License Version 3 (AGPL3)

provided with this release in license.txt

or via web at gnu.org/licenses/agpl-3.0.txt

 

Copyright 2005-2009 eyeOS Team (team@eyeos.org)

*/

 

function HelloWorld_run($params = '') {

// First we create a new Window:

$myWindow = new Window(array(

'cent' => 1,

'father' => 'eyeApps',

'height' => 150,

'name' => 'HelloWorld_Window',

'title' => 'Example Application',

'width' => 250

));

$myWindow->show();

 

// Now we create the initial "Hello World!" Label:

$myLabel = new Label(array(

'father' => 'HelloWorld_Window_Content',

'name' => 'HelloWorld_Label',

'text' => 'Hello World!',

'x' => 20,

'y' => 20

));

$myLabel->show(0);

 

// Afterwards we create the Textbox, where the user

// will add the new "Hello World!" message:

$myTextbox = new Textbox(array(

'father' => 'HelloWorld_Window_Content',

'name' => 'HelloWorld_Textbox',

'width' => 150,

'x' => 20,

'y' => 50

));

$myTextbox->show();

// Because the user should be able to start typing

// from the moment he opens the application without

// having to click into the Textbox we focus it:

$myTextbox->focus();

 

//

$myButton = new Button(array(

'caption' => 'Change Label Text',

'father' => 'HelloWorld_Window_Content',

'name' => 'HelloWorld_Button',

'x' => 20,

'y' => 80

));

// The Textbox need to be a friend of the Button:

// So every time the user clicks the Button the Textbox

// text will be sent.

// A button can have as many friends as you want.

$myButton->addFriend($myTextbox);

$myButton->show();

}

 

function HelloWorld_end($params = '') {

eyeWidgets('unserialize',$params);

}

?>

 

events.eyecode:

 

<?php

/*

____ _____

/ __ \ / ____|

___ _ _ ___| | | | (___

/ _ \ | | |/ _ \ | | |\___ \

| __/ |_| | __/ |__| |____) |

\___|\__, |\___|\____/|_____/

__/ |

|___/ 1.9

 

Web Operating System

eyeOS.org

 

eyeOS Engineering Team - www.eyeos.org/team

 

eyeOS is released under the GNU Affero General Public License Version 3 (AGPL3)

provided with this release in license.txt

or via web at gnu.org/licenses/agpl-3.0.txt

 

Copyright 2005-2009 eyeOS Team (team@eyeos.org)

*/

 

// First we create the NAMEOFAPP_on_NAMEOFBUTTON function.

// In this case, the application is HelloWorld and the

// button is called "HelloWorld_Button":

function HelloWorld_on_HelloWorld_Button($params = '') {

// Now we grab the current text from the Textbox...

$myCurrentText = $GLOBALS['HelloWorld_Textbox']->text;

//... and we set it into the Label:

$GLOBALS['HelloWorld_Label']->setText($myCurrentText);

// Finally we clean the Textbox and focus at it again:

$GLOBALS['HelloWorld_Textbox']->setText('');

$GLOBALS['HelloWorld_Textbox']->focus();

}

 

// If the application we are developing needs to send / receive

// messages, it is necessary to update its contents through the

// eyeWidget's "updateContent" method.

// It is an automatic function and you can just copy it tp

// your applications, which use messages by simply changing the

// app's name in the function:

function HelloWorld_on_Message($params = '') {

eyeWidgets('updateContent',$params);

}

 

// The NAMEOFAPP_on_Close() function will be executed every time

// the user closes the application. We recommended you to always send

// the close message to remove the application from the processes table.

function HelloWorld_on_Close($params = '') {

proc('end');

}

?>


 

info.xml:

 

<package>

<name>HelloWorld</name>

<category>Utilities</category>

<version>1.9</version>

<description>Utility to show how to use the eyeOS Toolkit</description>

<author>eyeOS Team</author>

<license>AGPL</license>

<type>Utility</type>

<icon>index.php?theme=1&amp;extern=icons/48x48/rename.png</icon>

</package>

 

 




Поделиться с друзьями:


Дата добавления: 2015-08-31; Просмотров: 303; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.