Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.044 c
4-1115284450
ANB
2005-05-05 13:14
2005.06.29
Каким глобальным хуком можно перехватить свое сообщение


5-1085129344
Gepard
2004-05-21 12:49
2005.06.29
Наследники TOpenPictureDialog не дружат с сообщениями


14-1117802870
syte_ser78
2005-06-03 16:47
2005.06.29
NOD 32


14-1117448242
Yegorchic
2005-05-30 14:17
2005.06.29
Сертификат "Лаборант-программист"


3-1116525920
suharew
2005-05-19 22:05
2005.06.29
Строка в DBGrig другим цветом





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский