Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.023 c
14-1117694379
12DFBDDh
2005-06-02 10:39
2005.06.29
файлы djvu


14-1117365031
Statik_Work
2005-05-29 15:10
2005.06.29
Нравится ли Вам ваша собственная работа?


1-1118240005
Norny
2005-06-08 18:13
2005.06.29
Как убрать scrollbar-ы в Twebbrowser


1-1118060645
Goga
2005-06-06 16:24
2005.06.29
Доступ к реестру из службы


3-1116581962
Naganov
2005-05-20 13:39
2005.06.29
Промежуточные вычисления в EhGrid e




   Наверх