Здравствуйте! Помогите реализовать такую вот систему клиент-сервер:
в качестве сервера выступает виндовый сервис, который делает некоторе действие и по окончание делания оповещает клиента — предоставляет ему некоторые данные.
клиент — asp-приложение.
Это тз. Менять ничего нельзя.
По отдельности реализовать все не проблема, но как заставить сервиса оповещать клиента? Тут вообще получается, что он (сервис) как бы в роли клиента выступает.
А>клиент — asp-приложение. А>По отдельности реализовать все не проблема, но как заставить сервиса оповещать клиента? Тут вообще получается, что он (сервис) как бы в роли клиента выступает.
Я вообще не знаток ASP'а, но чем не устраивают обычные механизмы межпроцессного взаимодействия типа пайпы, например (оно есть в .Net 3.5)?
Здравствуйте, Аноним, Вы писали:
А>По отдельности реализовать все не проблема, но как заставить сервиса оповещать клиента? Тут вообще получается, что он (сервис) как бы в роли клиента выступает.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте! Помогите реализовать такую вот систему клиент-сервер: А>в качестве сервера выступает виндовый сервис, который делает некоторе действие и по окончание делания оповещает клиента — предоставляет ему некоторые данные. А>клиент — asp-приложение. А>Это тз. Менять ничего нельзя. А>По отдельности реализовать все не проблема, но как заставить сервиса оповещать клиента? Тут вообще получается, что он (сервис) как бы в роли клиента выступает.
Боюсь, Вы привели недостаточно информации для содержательного ответа. А>сервис, который делает некоторе действие
Кто инициирует выполнение этих действий? Хотя-бы в общих чертах, какие данные должен предоставить сервис клиенту? Сколько может быть заинтересованных получателей этих данных? Клиенты и сервер расположены на одной машине или возможен вариант сетевой работы? Если сеть возможна, то какая — локальная, глобальная, домены NT?
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте! Помогите реализовать такую вот систему клиент-сервер: А>в качестве сервера выступает виндовый сервис, который делает некоторе действие и по окончание делания оповещает клиента — предоставляет ему некоторые данные. А>клиент — asp-приложение. А>Это тз. Менять ничего нельзя. А>По отдельности реализовать все не проблема, но как заставить сервиса оповещать клиента? Тут вообще получается, что он (сервис) как бы в роли клиента выступает.
Практически во всех framework-ах для построения распределенных и/или клиент-серверных приложений предусмотрены механизмы обратного вызова. В DCOM — это Connection Points, в .Net Remoting — это реализация клиентом MarshalByRefObject и использование механизма обратного вызова, в WCF эта функциональность встроена в механизмы двусторонних каналов (Duplex Channels), таких как netTcpBinding и WSDualHHTBBinding, применяя голый tcp можно использовать двустороннюю природу этого протокола и уведомлять через уже установленное соединение о произошедших событиях (подобный механизм использует netTcpBinding в WCF). Ну и всегда остается старый добрый периодический опрос сервера на предмет наличия изменений (aka Poll), о котором уже говорили выше.