Здравствуйте. Вот такая задача возникла:
Есть программа, которая выполняется на ПК (есть версия под Linux и под Windows). В ее задачи входит сбор и сохранение информации в БД.
Нужно разработать мобильную версиию этой же программы для КПК, которая бы полностью дублировала все функции.
Предполагалось, что версия программы для КПК будет связываться с БД по WiFi.
Возникла идея написать клиент для КПК, который бы просто отображал экраны отсылаемые ему
серверной частью программы и отправлял сведения о перемещении стилуса и нажатии кнопок (задача подгонки окон под меньшее разрешение не является препятствием). Эксперимент по передаче изображения труда не составил, но есть проблема:
При запуске нескольких клиентов нужно запускать несколько копий программы на ПК. Каждая копия начинает отсылать свое изображение своему клиенту, но пересылается также изображения любых других окон, которые могут всплыть поверх родного окна. Грубо говоря, если за ПК сядет пользователь и начнет таскать какое нибудь окно по экрану — это сразу увидят пользователи клиентов.
Как заставить выполняться приложения на своем "рабочем столе" или в своем "графическом контексте"?
Есть ли какие то другие варианты реализации"тонкого клиента" под КПК на WinCE?
Здравствуйте, Valеntin, Вы писали:
V>Здравствуйте. Вот такая задача возникла: V>Как заставить выполняться приложения на своем "рабочем столе" или в своем "графическом контексте"? V>Есть ли какие то другие варианты реализации"тонкого клиента" под КПК на WinCE?
А нельзя ли использовать RDP (Remote Desktop) клиента? Вообще ничего писать не надо...
Здравствуйте, Resnick, Вы писали:
R>А нельзя ли использовать RDP (Remote Desktop) клиента? Вообще ничего писать не надо...
Как оказалось — есть ограничение на количество одновременно работающих клиентов RDP под WinXP — 1, а Win2003 — 2 клиента.
Хотелось бы иметь одного клиента для подключения к серверному приложению работающему и под Windows и под Linux.
Здравствуйте, genre, Вы писали:
G>Здравствуйте, Valеntin, Вы писали:
V>>Есть ли какие то другие варианты реализации"тонкого клиента" под КПК на WinCE? G>использовать обычный броузер
Браузер не подходит потому, что он не сможет использовать специфические функции КПК, доступ к которым обеспечивается через SDK от производителя КПК. В качестве таких функций могут быть сканирование штрихкода или магнитной карточки.
Здравствуйте, Valеntin, Вы писали:
V>Возникла идея написать клиент для КПК, который бы просто отображал экраны отсылаемые ему
Советую отказаться от этой идеи и ппсать нормального, в меру "толстого", клиента. Кажущаяся сейчас очевидной экономия в будущем обернется очень дорого.
Здравствуйте, Valеntin, Вы писали:
V>Здравствуйте, genre, Вы писали:
G>>Здравствуйте, Valеntin, Вы писали:
V>>>Есть ли какие то другие варианты реализации"тонкого клиента" под КПК на WinCE? G>>использовать обычный броузер
V>Браузер не подходит потому, что он не сможет использовать специфические функции КПК, доступ к которым обеспечивается через SDK от производителя КПК. В качестве таких функций могут быть сканирование штрихкода или магнитной карточки.
а как использовать эти функции отрисовывая экран на сервере? или remote desktop client?
вообще раз от клиента надо довольно много, не парьтесь и пишите нормаьлного клиента. меньше проблем будет если потом понадобится добавить функционал.
Здравствуйте, wildwind, Вы писали:
W>Советую отказаться от этой идеи и ппсать нормального, в меру "толстого", клиента. Кажущаяся сейчас очевидной экономия в будущем обернется очень дорого.
Поддерживаю! "Трюкачество" еще никогда до добра не доводила.
Здравствуйте, Igor Trofimov, Вы писали:
V>>Как оказалось — есть ограничение на количество одновременно работающих клиентов RDP под WinXP — 1, а Win2003 — 2 клиента.
iT>Ерунда. Про Win2003 — точно ерунда.
Ок — проверим. Про ограничения я на форуме прочитал.
iT>Насчет linux — можно поискать альтернативные терминальные системы под кпк — VNC всякие...
Узнал что под Linux VNC клиент можно законнектить на любой виртуальный экран.
Сервер VNC можно поставить и на Windows, вот только незнаю будет ли для каждого клиента создаваться своя сессия со свои экраном (как в Remote Desktop)?
G>а как использовать эти функции отрисовывая экран на сервере? или remote desktop client?
Это просто, клиент будет отсылать ввод с дополнительных устройств в пакетах другого типа, так же как и сообщения от стилуса. Для сервера нужно дополнительно добавить реакцию на ещё один вид сообщений.
G>вообще раз от клиента надо довольно много, не парьтесь и пишите нормаьлного клиента. меньше проблем будет если потом понадобится добавить функционал.
Реализовать сам клиент — проблем нет, это точно. Кроме рисования присылаемых окон он долен опрашивать всего одно-два "устройства".
Здравствуйте, Кирилл Лебедев, Вы писали:
W>>Советую отказаться от этой идеи и ппсать нормального, в меру "толстого", клиента. Кажущаяся сейчас очевидной экономия в будущем обернется очень дорого.
КЛ>Поддерживаю! "Трюкачество" еще никогда до добра не доводила.
Какие проблемы могут быть с самим клиентом? Написал раз и радуйся. В случае необходимости портировать тонкий клиент под другую ось это можно сделать намного быстрее чем если бы пришлось портировать "толстый" клиент.
Здравствуйте, Valеntin, Вы писали:
V>Какие проблемы могут быть с самим клиентом? Написал раз и радуйся. В случае необходимости портировать тонкий клиент под другую ось это можно сделать намного быстрее чем если бы пришлось портировать "толстый" клиент.
Ну например. Неужели у программы не будет возможности хоть как-то работать при отсутствии связи с сервером? WiFi это ненадежный канал; помехи, перезагрузка точки, случайно вышел из зоны покрытия, — и все, рабочий процесс стоит, данные с устройств собирать нельзя. Это снижает ценность программы в разы.
Еще. Если вся логика программы работает на сервере, то он должен быть очень надежным, а значит очень дорогим. Сглючил КПК — ресет и поехали дальше. Сглючил сервер — перестали работать все КПК, плюс потеря данных вероятно. То же касается и самой программы.