Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Обсуждение исходников с сайта _ Vedga

Автор: Admin 12.3.2008, 9:54

Цитата
Glan is a toolkit for developing network transparent GUI applications. It consists of a Universal Crossplatform Client Application and a Qt-based Application Server development platform for creating GUI oriented client-server applications. It allows the developer to just write code using the Qt programming style for the server side and forget about the client side.


http://crossplatform.ru/?q=node/522

Автор: kalpa 17.7.2008, 21:09

Добрый день!
Обнаружил свой проект на страницах вашего ресурса и хотел бы обратиться с просьбой о переименовании.
Решение об изменении названия проекта было принято недавно и хотелось бы проконсультироваться с вашими админами на сей счет.
Речь идет о проекте Glan (Global Application network).
Как связаться с администратором и договориться о внесении корректив.

Спасибо.

Автор: Litkevich Yuriy 17.7.2008, 21:24

kalpa, опиши сразу, что изменить, появится админ поменяет

Автор: kalpa 17.7.2008, 21:36

Да, собственно, мелочь. Поменять Glan на Vedga.

Автор: Red Devil 17.7.2008, 22:15

Я прочитал, посмотрел примеры - но я так и не понял, как этим пользоватся.
Можно ли сделать обьяснение кратко и по-русски, и код привести с комментариями. Я потому что так и не понял чего делает код, в котором создается обьекта TransportPacker, создаются виджеты и на этом работае завершается.

Автор: ViGOur 18.7.2008, 8:06

kalpa, на новое название поменяю, сделаешь описание как просит Red Devil?
И как расшифровывается Vedga?

Автор: kalpa 18.7.2008, 9:33

Цитата(Red Devil @ 17.7.2008, 23:15) *
Я прочитал, посмотрел примеры - но я так и не понял, как этим пользоватся.
Можно ли сделать обьяснение кратко и по-русски, и код привести с комментариями. Я потому что так и не понял чего делает код, в котором создается обьекта TransportPacker, создаются виджеты и на этом работае завершается.

Описание конечно сделаю, но все же следует отличать описание программы от разъяснения внутренней сути.
Трудно в описании рассказать как работает библиотека. В самом деле, в описании того же Qt -" ... cross-platform application framework ..." не заключен ответ на вопрос как этим пользоваться. И уж тем более занятно звучит фраза о непонимании что делает код.

Если совсем кратко, то, используя эту библиотеку, можно писать сетевые графические приложения ровно также как мы пишем приложения для Qt. Только пишем мы сервер. А на стороне клиента запускаем программку, которая это все показывает.
Пример можно посмотреть направив клиента на сервер 85.192.32.171 порт 18501 Это одна старая дема одного старого проекта. (логин root пароль root)

В качестве примера кода можно предложить небольшой фрагмент процедуры

CODE

void LoginDialog::drawMainGroup()
{
TransportPacket packet;

mMainLayout=new GVBoxLayout(this);

mLogoLabel=new GLabel(this);
mLogoLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
mLogoLabel->setPixmap(QString("/opt/Rod/images/KalpaLogo.jpg"));
mLogoLabel->setStyleSheet("QLabel { background-color: #05649a;}");
mMainLayout->addWidget(mLogoLabel);

mMainGroup=new GGroupBox(this);
mMainLayout->addWidget(mMainGroup);

mMainGroupLayout=new GGridLayout(mMainGroup);

mNameLabel=new GLabel(this);
mNameLabel->setText(trUtf8("Пользователь"));
mMainGroupLayout->addWidget(mNameLabel, 0, 0);

mNameField=new GLineEdit(this);
mMainGroupLayout->addWidget(mNameField, 0, 1);
rconnect(mNameField , SIGNAL(returnPressed()), this, SLOT(setNextFocusChild()));

mPasswordLabel=new GLabel(this);
mPasswordLabel->setText(trUtf8("Пароль"));
mMainGroupLayout->addWidget(mPasswordLabel, 1, 0);

mPasswordField=new GLineEdit(this);
mPasswordField->setEchoMode(GLineEdit::Password);
mMainGroupLayout->addWidget(mPasswordField, 1, 1);
GObject::connect(mPasswordField, SIGNAL(returnPressed()), this, SLOT(loginAction()));

mMainGroupLayout->addItem(new GSpacerItem(20,40, QSizePolicy::Minimum, QSizePolicy::Expanding, this), 2, 1, 1, 1);
}


Все присутствующие на этом форуме владеют Qt и увидят, что предложенный текст отличается от Qt_шного лишь буквой в именовании классов и декларацией объекта TransportPacket.
Это серверный код.
Получаемая программа для конечного пользователя неотличима от обычной локальной графической программы. Комфорт для пользователя, мягко говоря, значительнее чем удобства HTMP/HTTP приложений. Что касается трафика - он более чем скромен и выгодно отличается от решений на html и терминальных систем. На стороне сервера разработчик совершенно свободен.

Дополнительно можно почитатьhttp://kalpa.ru/content/view/7/31/lang,russian/, которая была представлена еще в 2005 году на OpenSourceForum.

Автор: Litkevich Yuriy 18.7.2008, 9:51

я как раз думал каже сделать такую штуку: Есть у нас на работе сервер сбора даных с оборудования. Надо на машине пользователей получать с сервера информацию, я сейчас ее тяну из БД, но настраивать дистанционно серверную прогу не могу. Вот сидел думал как бы это сделать. Была мысль на серверной стороне веб странички генерить, а на клиенте в браузере сидеть, но я в сетевых вещах мало что понимаю.
Поизучаю твою систему может она больше подойдет.

---
А описание надо такое, чтобы из короткого текста понятно стало для чего этот софт и в чем приемущества/отличия от подобного.

еще такой вопрос: клиентская программа, это некая уже готовая универсальная программа, например как веб-браузер?

Автор: kalpa 18.7.2008, 10:00

Подобную штуку на моей платформе сделали в Польше. Там еще и использовались носимые терминалы сбора данных.
А что касается Vedga, то она уже сделана и довольно давно. Конечно в этом проекте еще нет всего того, что мне хотелось бы видеть, но основные задачи, возникающие при программировании деловых программ, решены. А новые элементы добавляются по мере возникновения потребностей. Вот, к примеру, сейчас одна канадская кабельная сеть будет писать свою систему внутреннего биллинга на моей платформе. Они готовы реализовать Vedga-Client как плагин для FireFox. У меня все до этого руки не доходят. :)

И посмотрите предложенный демо-пример.
Как показывает мой опыт слова об этой системе трудно доходят до сознания. Народ начинает (не понимая) убеждать меня в истинности пути с браузером, JavaScript и компонентами, описывая простую формочку несколькими файлами описателей и прочего. И все это происходит до той поры, пока они не посмотрят демо. Не поймут каким кодом это эффект достигается и как это компактно при передаче по сети.

Автор: ViGOur 18.7.2008, 10:11

В http://kalpa.ru/content/view/7/31/lang,russian/, осталось в одном из мест старое название:

Цитата
Описанные возможности дают разработчикам основание позиционировать Glan как инструмент создания Интернет-приложений с развитым пользовательским интерфейсом


Поменял описание, и название.
Описание взял из статьи, просто оно мне кажется более развернутым. :)

Автор: Litkevich Yuriy 18.7.2008, 10:16

kalpa, а можно ли собрать Vedga с помощью qmake (на МС Виндовс), не хочется специально cmake ставить?

Автор: kalpa 18.7.2008, 10:25

Цитата(Litkevich Yuriy @ 18.7.2008, 11:16) *
kalpa, а можно ли собрать Vedga с помощью qmake (на МС Виндовс), не хочется специально cmake ставить?

могу собрать дистрибутив для виндов. Выложу через 15-20 минут.

Цитата(ViGOur @ 18.7.2008, 11:11) *
В http://kalpa.ru/content/view/7/31/lang,russian/, осталось в одном из мест старое название:
Цитата
Описанные возможности дают разработчикам основание позиционировать Glan как инструмент создания Интернет-приложений с развитым пользовательским интерфейсом


Поменял описание, и название.
Описание взял из статьи, просто оно мне кажется более развернутым. :)

Спасибо, добрый человек!

Автор: ViGOur 18.7.2008, 10:30

Цитата(kalpa @ 18.7.2008, 11:25) *
Спасибо, добрый человек!
Было бы за что, а это просто поддержка актуальности проекта... ;)

Автор: kalpa 18.7.2008, 11:18

http://kalpa.ru/component/option,com_docman/Itemid,40/lang,russian/.

Автор: AD 18.7.2008, 14:33

Пара вопросиков .............





ПЫСЫ: вопросы отпали, второй файл загрузился в виде дистрибутива. :)

Когда будет свободно времячко посмотрю, что это за зверь! :) Единственное: а где можно увидеть демо-версию примера?

Автор: kalpa 18.7.2008, 15:10

Цитата(AD @ 18.7.2008, 15:33) *
Единственное: а где можно увидеть демо-версию примера?

Пример можно посмотреть направив клиента на сервер 85.192.32.171 порт 18501 Это одна старая дема одного старого проекта. (логин root пароль root)

Автор: Litkevich Yuriy 18.7.2008, 16:21

попробовал подключится к демо серверу.
Вот http://lit-uriy.narod.ru/temp/vegda.png это единственное, что писал прикладной програмист для стороны сервера?
я правильно понял?

Автор: kalpa 18.7.2008, 16:52

Цитата(Litkevich Yuriy @ 18.7.2008, 17:21) *
попробовал подключится к демо серверу.
Вот http://lit-uriy.narod.ru/temp/vegda.png это единственное, что писал прикладной програмист для стороны сервера?
я правильно понял?

Как понять "это единственное, что писал прикладной програмист для стороны сервера".

Это все на стороне сервера. На сторону клиента идут только сигналы о генерации интерфейсных сцен.
И сервер вы создаете ровно также как вы бы писали это же самое на простом Qt получив обычную StandAlone графическую программу.

Автор: kalpa 18.7.2008, 17:38

Цитата(ViGOur @ 18.7.2008, 11:30) *
Цитата(kalpa @ 18.7.2008, 11:25) *
Спасибо, добрый человек!
Было бы за что, а это просто поддержка актуальности проекта... ;)

Могу я просить убрать старое именование вовсе и не упоминать его?

Автор: Litkevich Yuriy 18.7.2008, 17:48

Цитата(kalpa @ 18.7.2008, 21:38) *
Могу я просить убрать старое именование вовсе и не упоминать его?
на форуме убрал.

Автор: Red Devil 18.7.2008, 20:01

Все равно не вьехал ...
Ну предположим мне нужно переслать некоторую структуру данных от клиента к серверу, какая функция это делает ?
Какой протокол используется для передачи ?
Можно ли его совмещать с протоколами более высого уровня ?

Автор: Litkevich Yuriy 18.7.2008, 20:10

я так понял, что не надо тебе ничего пересылать.
Ты пишешь прогу как обычно, только пользуешся спецклассами Vedga. (вместо connect rconnect и т.д. и т.п.)

А потом челове-клиент пускает у себя другую прогу (VedgaLik.exe), указывает адрес и порт сервера, где лежит твоя прога. И после установления соединения с сервером, видит окно твоей проги у себя.

Вроде так.

Автор: kalpa 18.7.2008, 21:12

Цитата(Red Devil @ 18.7.2008, 21:01) *
Все равно не вьехал ...
Ну предположим мне нужно переслать некоторую структуру данных от клиента к серверу, какая функция это делает ?
Какой протокол используется для передачи ?
Можно ли его совмещать с протоколами более высого уровня ?

Вы же пример не смотрели. Как можно говорить? Смотрите, изучайте. Только так можно въехать.
Иначе, это - пустой разговор.



Цитата(Litkevich Yuriy @ 18.7.2008, 21:10) *
я так понял, что не надо тебе ничего пересылать.
Ты пишешь прогу как обычно, только пользуешся спецклассами Vedga. (вместо connect rconnect и т.д. и т.п.)

Вроде так.


GObject::connect есть. Это сигнал, который передается от клиентского объекта серверному;
GObject::rconnect Это сигнал, который не передается серверу и отрабатывается на стороне клиента.
Но это уже тонкости, которые совершенно не важны в этом разговоре.

Автор: ViGOur 18.7.2008, 21:31

Цитата(kalpa @ 18.7.2008, 18:38) *
Могу я просить убрать старое именование вовсе и не упоминать его?
На сайте убрал.

Автор: Red Devil 19.7.2008, 1:18

LitkevichВ Yuriy,
Спасибо, теперь понятно.

Автор: kalpa 19.7.2008, 8:33

Цитата(ViGOur @ 18.7.2008, 22:31) *
Цитата(kalpa @ 18.7.2008, 18:38) *
Могу я просить убрать старое именование вовсе и не упоминать его?
На сайте убрал.

Спасибо.

Автор: fantom 30.1.2009, 14:52

Проект Vedga весьма заинтересовал, хотя не уверен что это решение полностью нас устроит. Написано что проект под GPL вот только не могу понять где скачать исходники?

Автор: SABROG 30.1.2009, 15:00

Цитата(Litkevich Yuriy @ 30.1.2009, 13:47) *
fantom, Если я правильно понял конечную цель, то предлагаю посмотреть на готовое решение: http://www.crossplatform.ru/node/522
Суть проста. На клиента ставится спецпрограмма Vedga-client, прога пишется одна для сервера, но не чистая Qt там в часности соединение сигналов идет другими функциями. написаное прложение запускается на сервере. А клиенты пользуются им с помощью Vedga-client.

Подробности по указанной ссылке, и ниже там смотри ссылку "Обсудить..."

Посмотрел демку. Это в точности тоже самое, что я хотел написать когда-то :)
По сути выполняет тоже самое что и браузер - сервер создает интерфейс на клиентской стороне
и при нажатии кнопочек код выполняется на сервере. Тот же принцип что и в MMORPG играх,
на стороне игрока модели персонажей (окна), а сервер все их двигает (выполняет код).

Думаю, что будущее именно за такими программами, т.к. это выгодно с коммерческой точки зрения.
Её уже не крякнешь и не своруешь. Код защищен. В любой момент можно отказать в доступе.

Правда сейчас браузеры справляются с такими задачами. Разница только в количестве траффика и
неподходящем протоколе (http).

Автор: Litkevich Yuriy 30.1.2009, 16:55

Цитата(fantom @ 30.1.2009, 17:52) *
где скачать исходники?
нда, ссылка умерла, надо с Олегом (http://www.forum.crossplatform.ru/index.php?showuser=237) связатся, попробуй через личку.

вот http://oleg.kalpa.ru/search/label/Vedga у него разные полезные статейки на тему такого софта

Автор: fantom 30.1.2009, 16:58

К сожалению не могу написать олегу так как там не указана ни почта ни ICQ, а при попытке отправить личное сообщение выводится "Вам запрещено использовать личные сообщения на форуме"(

Автор: Litkevich Yuriy 30.1.2009, 17:18

Цитата(fantom @ 30.1.2009, 19:58) *
там не указана ни почта ни ICQ
поидее почту ему можно отправить, просто через форму

Автор: Litkevich Yuriy 30.1.2009, 19:04

написал письмо Олегу по поводу мертвости ссылок, вот его ответ:

Цитата
Добрый день!
основной ресурс - kalpa.ru
Тексты сейчас в переработке (готовим новые версии), потому ссылок на старые версии нет. Рабочий клиент можно скачать на kalpa.ru
Кто заинтересован, можно отправлять ко мне. Я правда не уверен, что новые версии платформы будут распространяться на условиях GPL. Мы еще пока окончательно не определились.

Автор: kalpa 30.1.2009, 19:51

Кто что вопросшал про Glan/Vedga?
Готов ответствовать.
Про исходники, скажу сразу. Платформа сейчас в переработке.
О принципах лицензирования новой версии пока ничего сказать не могу.
Этот вопрос обсуждается.
Относительно демонстраций, вопросов и предложений сотрудничества можно обращаться oleg@kalpa.ru

Автор: kalpa 31.1.2009, 12:51

Цитата(fantom @ 30.1.2009, 16:58) *
К сожалению не могу написать олегу так как там не указана ни почта ни ICQ, а при попытке отправить личное сообщение выводится "Вам запрещено использовать личные сообщения на форуме"(

http://oleg.kalpa.ru/2009/01/blog-post_22.html


jabber: kalpaСобакАxmpp.ru
jabber: oleg.shalnevГав-гаВgmail.com
skype: oleg_shalnev
email: olegбобикkalpa.ru
phone: +7(918) 741-72-17

Автор: molchanoviv 31.1.2009, 22:11

Ты зря так прямо указал. Страницы индексируются поисковиками, потому получим кучу спама оставляя так адреса, проще простого. Укажи лучше как-нибудь так. kalpa [@] xmpp.ru

Автор: fantom 2.2.2009, 18:02

kalpa. Да мне просто хотелось взглянуть на исходники вашего проекта. Потому как по своей нужде пришлось реализовывать немного похожую вещь, только немного более сервисно-ориентированную и наверное менее универсальную. У нас используется очень много различных способов отображения одной информации для различных видов клиентов. Ну вообщем уже почти все готово.
Ваш подход,как я понимаю напоминает, классическую связку html и php. Мой скорее что то типа SOAP и WSDL.

Автор: Litkevich Yuriy 2.2.2009, 18:15

Цитата(fantom @ 2.2.2009, 21:02) *
Ваш подход,как я понимаю напоминает, классическую связку html и php.
помоему там и близко ничего такого нет.
Через сеть транслируются сигналы и информация об объектах, на клиенте есть Qtишные dll'ки они и занимаются рисованием виджетов.

fantom, ты пробывал демку запускать?

Автор: fantom 2.2.2009, 18:52

Как я понял. Фактически есть клиент(аналог браузера) который умеет отображать содержимое окна рисуя виджеты использую qt. На сервере при разработке эти формы рисуются и связываются напрямую с кодом посредством специальных коннектов(аналог php в html разметке - то часть часть гуи и бизнес-логики реализуются в одном месте).

Цитата(Litkevich Yuriy @ 2.2.2009, 18:15) *
помоему там и близко ничего такого нет.

Ну естественно это совсем разные вещи - я просто аналогию провел.

Автор: kalpa 2.2.2009, 22:31

Цитата(fantom @ 2.2.2009, 18:52) *
Как я понял. Фактически есть клиент(аналог браузера) который умеет отображать содержимое окна рисуя виджеты использую qt. На сервере при разработке эти формы рисуются и связываются напрямую с кодом посредством специальных коннектов(аналог php в html разметке - то часть часть гуи и бизнес-логики реализуются в одном месте).

Цитата(Litkevich Yuriy @ 2.2.2009, 18:15) *
помоему там и близко ничего такого нет.

Ну естественно это совсем разные вещи - я просто аналогию провел.

Мне трудно оперировать вашими терминами. Каждое ваше слово (в моей системе отсчета) требует расшифровки. Как понять "формы рисуются"? Как понять "связываются напрямую с кодом посредством специальных коннектов". Вообще, основная задача коммуникации - синхронизация понятийного аппарата.
Позволю себе просто, для примера, привести фрагмент серверного кода, который занимается отрисовкой диалога входа в систему.

CODE
void Kalpa::LoginDialog::drawMainGroup()
{
TransportPacket packet;

mMainLayout=new GVBoxLayout(this);

mLogoLabel=new GLabel(this);
mLogoLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
mLogoLabel->setPixmap(ImagePath+"KalpaLogo.jpg");
mLogoLabel->setStyleSheet("QLabel { background-color: #05649a;}");
mMainLayout->addWidget(mLogoLabel);


mMainGroup=new GGroupBox(this);
mMainLayout->addWidget(mMainGroup);

mMainGroupLayout=new GGridLayout(mMainGroup);

mNameGLabel=new GLabel(this);
mNameGLabel->setText(trUtf8("Пользователь"));
mMainGroupLayout->addWidget(mNameGLabel, 0, 0);

mNameField=new GLineEdit(this);
mMainGroupLayout->addWidget(mNameField, 0, 1);
rconnect(mNameField , SIGNAL(returnPressed()), this, SLOT(setNextFocusChild()));

mPasswordGLabel=new GLabel(this);
mPasswordGLabel->setText(trUtf8("Пароль"));
mMainGroupLayout->addWidget(mPasswordGLabel, 1, 0);

mPasswordField=new GLineEdit(this);
mPasswordField->setEchoMode(GLineEdit::Password);
mMainGroupLayout->addWidget(mPasswordField, 1, 1);
GObject::connect(mPasswordField, SIGNAL(returnPressed()), this, SLOT(loginAction()));

mMainGroupLayout->addItem(new GSpacerItem(20,40, QSizePolicy::Minimum, QSizePolicy::Expanding, this), 2, 1, 1, 1);
}


Вот таким способом я пишу сервер. Кто знаком с Qt, а мне думается, что таковых на страницах этого форума большинство, тем видно, что стилистика, синтаксис максимально идентичен обычному Qt. Мое решение позволяет писать сетевые приложения, расположенные на сервере (фактически готовые SaaS решения с богатой графикой) совершенно также как и обычное приложение на Qt.
Именно этого я и добивался. Ну и конечно бескомпромиссная экономия трафика. (флейм про толстые каналы прошу не начинать)
Интерфейс у клиента ничем не отличается от самого обычного приложения. У меня пользователи, при миграции сервера с локальной машины на сетевую в другом городе, даже не замечают разницы и не понимают что собственно произошло.
Исходя из приведенного примера я не совсем понимаю ваше описание с приминением аналогий из мира html и php.

Кстати, я подобный пример уже приводил выше с аналогичными объяснениями.

Автор: xokc 24.1.2010, 17:56

Новостей у пректа больше нет? Он жив-то еще?. Даже демо с сайта убрали. А так все интригующе начиналось.

Автор: Litkevich Yuriy 24.1.2010, 20:18

Цитата(xokc @ 24.1.2010, 20:56) *
А так все интригующе начиналось.
а никто не отреагировал, вот они и ушли с публики

Цитата(xokc @ 24.1.2010, 20:56) *
Он жив-то еще?
смотри тут - kalpa.ru

Автор: ViGOur 24.1.2010, 23:31

Ну, вообще то в Linux Format кажется писалось, что они выиграли 50 000 рублей, за вклад в развитие свободного ПО. :)

Автор: trdm 25.1.2010, 10:49

Цитата(ViGOur @ 24.1.2010, 23:31) *
Ну, вообще то в Linux Format кажется писалось, что они выиграли 50 000 рублей, за вклад в развитие свободного ПО. :)
микропопил с очередным растворением в истории? :)

Автор: xokc 25.1.2010, 19:44

на kalpa.ru не работает ни одна ссылка, связанная с закачкой - даже на демо

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)