Главная страница
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.027 c
3-1116483951
NOTAdmin
2005-05-19 10:25
2005.06.29
Проблема с BDE или MSDE 2000 !!!!!


3-1116247658
Manfred8
2005-05-16 16:47
2005.06.29
OnCalcFields как выполнить только для текущей записи?


1-1118035496
СержК
2005-06-06 09:24
2005.06.29
Как запустить процедуру DBGrid4KeyPress(...


9-1111239509
Radgar
2005-03-19 16:38
2005.06.29
Как изменить разрешение монитора.


1-1117947403
Chak
2005-06-05 08:56
2005.06.29
по нажатию клавиши ENTER из одной labelededit1 в другую labeleded