Форум: "Основная";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];
ВнизПриложение в сервис. Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.073 c