Вниз
Скачать: 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.029 c
6-1112069291
koe-kto
2005-03-29 08:08
2005.06.29
Сокеты в консоли?


1-1117739454
Starcom
2005-06-02 23:10
2005.06.29
Руссификация InstallShield v 3.5


3-1116023469
VarAX
2005-05-14 02:31
2005.06.29
Как InterBase заставить с русским работать


1-1117786816
User1
2005-06-03 12:20
2005.06.29
Зашищаем данные в потоках


1-1118185122
Bagle
2005-06-08 02:58
2005.06.29
что за проблема




   Наверх