сеть для стахановцев ПАЛАГИН АНТОН AKA TONY Спецвыпуск: Хакер, номер #065, стр. 065-012-4 MO-технологии Кроме технологий распределенного взаимодействия, основанных на принципах RPC (парадигма вызова методов), в природе есть и другие. Например, существует MO-подход (Message-Oriented). Его идея, по сути, моделирует человеческое общение: программы обмениваются сообщениями, отвечать на которые не обязательно. В отличие от парадигмы «клиент-сервер», эта парадигма выглядит как «отправитель-получатель». Участники такого обмена могут взаимодействовать напрямую или через специальные серверы. Message-Oriented-подходы предназначены для реализации асинхронного взаимодействия между независимыми приложениями. На сегодня из MO-технологий наиболее известны IBM MQSeries и M$MQ. indigo Для новых платформ, рождение которых состоится только в будущем, Microsoft готовит следующую итерацию своих коммуникационных систем под не очень скромным названием — Indigo. Как планируется, эта система создаст инфраструктуру для распределенного взаимодействия, обеспечения безопасности и транзакций. В качестве хоста для серверной части приложений Indigo (по традиции их называют сервисами) могут использоваться: IIS 5.1, 6.0 и 7.0 (только для Vist), службы NT, автономные приложения, а также еще одна характерная для Vist технология — Windows Activation Services. В основе Indigo лежат идеи, проработанные еще в COM+, MSMQ, .NET Remoting и ASP.NET Web-services. Базой для приложений Indigo стала популярная сейчас сервис-ориентированная архитектура: в ней единицей строительства является не объект (класс), а автономный сервис, несущий определенную функциональность и общающийся с внешним миром с помощью сообщений SOAP. В Indigo основное отличие от web-сервисов ASP.NET и .NET Remoting — это отказ от наследования реализации объектов обмена и применение атрибутов. Вот, посмотри для сравнения TestObject из примера приложения .NET Remoting в интерпретации Indigo: using System; using System.ServiceModel; namespace TestObject { //Атрибут указывает контракт сервиса [ServiceContract] public class Test: MarshalByRefObject { //Атрибут указывает контракт метода [OperationContract] public string hello() { return "Hello world!!!"; } } } Чтобы создать клиент Indigo, можно воспользоваться web-ссылкой, а можно и встроенной утилитой — svcutil. Для указанного URL-сервиса svcutil сгенерирует прокси-классы (интерфейсы взаимодействия), описывающие работу клиента с сервисом. Предварительная версия Indigo доступна уже сейчас как компонент для WinFX SDK. |