Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #65, АПРЕЛЬ 2006 г.

сеть для стахановцев

ПАЛАГИН АНТОН 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.

Назад на стр. 065-012-3  Содержание  Вперед на стр. 065-012-5