Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.29;
Скачать: CL | DM;

Вниз

Приложение в сервис.   Найти похожие ветки 

 
BKV   (2005-05-31 11:20) [0]

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


 
Игорь Шевченко ©   (2005-05-31 11:28) [1]

srvany.exe


 
Digitman ©   (2005-05-31 11:29) [2]

Лучше не переделывать, а создать сервис-приложение "с нуля", используя File->New..-> Service Application и осмысленно перенося (и, возможно, модифицируя) туда фрагменты кода из существующего проекта

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


 
Sergey Masloff   (2005-05-31 11:30) [3]

>поэтому сервис должен быть интерактивен
Это идет вразрез с самим понятием сервиса.


 
sniknik ©   (2005-05-31 11:39) [4]

надо делать две программы, сервис и интерфейсную часть (настроечную) взаимодействуюшие друг с другом. имхо.
но только если программа не подрадумевает активного ввода данных (работа с юзером) тогда забить на переделку. таким не место среди сервисов. позорят гордое их имя. ;)


 
BKV   (2005-05-31 11:54) [5]

Вообщем понятно:
Разбиваю программу на две части: само ядро (сервис) несущий в себе некую функциональность и интерфейсная часть, отображающая некоторый статус о текущем состоянии сервиса управляющая сервисом

Всвязи с эти возникает вопрос: Каким образом лучше организовать передачу данных от ядра(сервиса)к интерфейсной части для отображения статуса и от интерфейсной части к ядру для минимального  
управления.


 
Digitman ©   (2005-05-31 11:59) [6]


> Разбиваю программу на две части: само ядро (сервис) несущий
> в себе некую функциональность и интерфейсная часть, отображающая
> некоторый статус о текущем состоянии сервиса управляющая
> сервисом


совершенно верно.


> Каким образом лучше организовать передачу данных от ядра(сервиса)к
> интерфейсной части для отображения статуса и от интерфейсной
> части к ядру для минимального  
> управления


поскольку сервис по твоему определению д.б. интерактивен, самое простое - обмен обычными win-сообщениями (Send/Post/PostThread/Peek/Wait/GetMessage)


 
Игорь Шевченко ©   (2005-05-31 12:00) [7]


> Каким образом лучше организовать передачу данных от ядра(сервиса)к
> интерфейсной части для отображения статуса и от интерфейсной
> части к ядру для минимального  
> управления.


ControlService ?


 
Digitman ©   (2005-05-31 12:10) [8]


> BKV   (31.05.05 11:54) [5]


но есть и иной подход, более грамотный : сервисная логика (ядро) и интерф.часть (интерактивный монитор) делаются отдельными приложениями и работают как два автономных процесса, взаимодействующих посредством штатного механизма именованых программных каналов (Named Pipes), при этом убиваются сразу два зайца : во-первых, нет необходимости делать ядро интерактивным и заставлять его взаимодействовать с раб.столом, а во-вторых за счет выноса GUI-интерф.части в отдельное приложение минимизируются ресурсы, требуемые сервисом при его работе .. сама же GUI-интерф.часть (монитор) может быть загружена или выгружена юзером по необходимости, что никак не повлияет на работу собственно сервиса


 
BKV   (2005-05-31 14:04) [9]

Всем спасибо.
В итоге решил сделать как предложил Digitman ©


 
Eraser ©   (2005-05-31 14:09) [10]

BKV   (31.05.05 14:04) [9]

На Королевстве Делфи есть статья с примером того, что описАл Digitman ©   (31.05.05 12:10) [8].


 
BKV   (2005-05-31 14:24) [11]

Как называлась статья или ссылка?


 
Eraser ©   (2005-05-31 14:33) [12]

BKV   (31.05.05 14:24) [11]

http://www.delphikingdom.ru/asp/viewitem.asp?catalogid=98&mode=print


 
Shaman_Naydak   (2005-05-31 16:10) [13]

хм.. а я предпочитаю взаимодействовать с сервисом через ком, а не пайпы.. заодно и появляется приятная мулька в виде подъема сервиса по требованию (как ком-сервера)


 
-=GUEST=-   (2005-06-05 14:15) [14]

>Eraser ©   (31.05.05 14:33) [12]
Только в статье используется MailSlot, а не Named Pipes.
Или может ссылка не правильная


 
Arty   (2005-06-05 14:51) [15]

Shaman_Naydak   (31.05.05 16:10) [13]
>>хм.. а я предпочитаю взаимодействовать с сервисом через ком,

нету случайно простово примера такого взаимодействия ?



Страницы: 1 вся ветка

Текущий архив: 2005.06.29;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.032 c
14-1117215286
Franc
2005-05-27 21:34
2005.06.29
Глюки с 98 виндой...


14-1117093103
Drakosha
2005-05-26 11:38
2005.06.29
bat cmd файлы


3-1116333262
kyn66
2005-05-17 16:34
2005.06.29
Как переименовать столбец или таблицу Access?


3-1116842790
Cat
2005-05-23 14:06
2005.06.29
Поле Date 01.01.2005


14-1117053391
Санёк
2005-05-26 00:36
2005.06.29
Блок-схема программы.