• Два домена приложения определены в рамках одного и того же процесса (и поэтому на одной и той же машине).
• Два домена приложения определены в разных процессах на одной и той же машине.
• Два домена приложения определены в разных процессах на разных машинах.
С учетом этих трех возможностей становится ясно, что удаленное взаимодействие не обязательно предполагает наличие соединенных в сеть компьютеров. На самом деле все примеры, представленные в этой главе, могут вполне успешно выполняться на одной автономной машине. Независимо от расстояния между объектами, в отношении взаимодействующих агентов используются термины "клиент" и "сервер". Упрощенно говоря, клиент - это сущность, пытающаяся взаимодействовать с удаленными объектами, а сервер - это программный агент, содержащий удаленные объекты.
Перед тем как углубиться в детали процесса удаленного взаимодействия .NET. мы должны выяснить, какие функциональные возможности предлагают пространства имен, обеспечивающие удаленное взаимодействие. Библиотеки базовых классов .NET содержат очень много пространств имен, позволяющих строить распределенные приложения. Большинство типов, содержащихся в этих пространствах имен, находятся в mscorlib.dll, но дополнения и расширения базовых пространств имен вынесены в отдельный компоновочный блок System.Runtime.Remoting.dll. В табл. 18.1 предлагаются краткие описания пространств имен удаленного взаимодействия .NET 2.0.
Пространство имен |
Описание |
System.Runtime.Remoting |
Базовое пространство имен, которое должно использоваться при построении любого распределенного приложения .NET |
System.Runtime.Remoting.Activation |
Относительно малое пространство имен, в котором определяются несколько типов, обеспечивающих тонкую настройку процесса активизации удаленного объекта |
System.Runtime.Remoting.Channels |
Содержит типы, представляющие каналы и приемники каналов |
Systern.Runtime.Remoting.Channels.Http |
Содержит типы, использующие протокол HTTP для транспорта сообщений и объектов в удаленную точку и обратно |
System.Runtime.Remoting.Channels.Ipc |
Пространство имен, которое появилось в .NET 2.0 и содержит типы, использующие архитектуру IPC Win32. Архитектура IPC (Interprocess Communication – взаимодействие процессов) обеспечивает быстрое взаимодействие доменов приложений, существующих на одной физической машине |
System.Runtime.Remoting |
Базовое пространство имен, которое должно использоваться при построении любого распределенного приложения .NET |
System.Runtime.Remoting.Activation |
Относительно малое пространство имен, в котором определяются несколько типов, обеспечивающих тонкую настройку процесса активизации удаленного объекта |
System.Runtime.Remoting.Channels |
Содержит типы, представляющие каналы и приемники каналов |
System.Runtime.Remoting.Channels.Http |
Содержит типы, использующие протокол HTTP для транспорта сообщений и объектов в удаленную точку и обратно |
System.Runtime.Remoting.Channels.Ipc |
Пространство имен, которое появилось в .NET 2.0 и содержит типы, использующие архитектуру IPC Win32. Архитектура IPC (Interprocess Communication – взаимодействие процессов) обеспечивает быстрое взаимодействий доменов приложений, существующих на одной физической машине |
System.Runtime.Remoting.Channels.Tcp |
Содержит типы, использующие протокол TCP для транспорта сообщений и объектов в удаленную точку и обратно |
System.Runtime.Remoting.Contexts |
Позволяет конфигурировать параметры объектного контекста |
System.Runtime.Remoting.Lifetime |
Содержит типы, управляющие циклом существования удаленных объектов |
System.Runtime.Remoting.Messaging |
Содержит типы, используемые для создания и передачи объектов сообщений |
System.Runtime.Remoting.Metadata |
Содержит типы, используемые для настройки параметров генерированиям форматирования сообщений SOAP |
System.Runtime.Remoting.Metadata.W3cXsd2001 |
Содержит типы, представляющие формат XSD (XML Schema Definition – определение схемы XML) в соответствии со стандартами Консорциума W3C, принятыми в 2001 году |
System.Runtime.Remoting.MetadataServices |
Содержит типы, используемые средством командной строки soapsuds.exe при конвертировании метаданных удаленной инфраструктуры .NET в XML-схемы (и обратно) |
System.Runtime.Remoting.Proxies |
Содержит типы, обеспечивающие функциональные возможности для объектов, выполняющих задачи агента (proxy) |
System.Runtime.Remoting.Services |
Определяет ряд общих базовых классов (и интерфейсов), которые обычно используются только внутренними агентами удаленного взаимодействия |