Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory_SPO.doc
Скачиваний:
8
Добавлен:
01.03.2025
Размер:
312.32 Кб
Скачать

26. Взаимодействие компонент распределенной системы. Промежуточные среды в Microsoft .Net Framework

Понятие промежуточной среды, обеспечивающей сервисы высокого уровня для инкапсуляции удаленного взаимодействия, появилось в середине 90-х годов, когда выяснилось, что для создания распределенных систем необходима некоторая независящая от приложения и операционной среды "прослойка". Среда CLR так же может рассматриваться как некоторая "промежуточная" среда для выполнения программ на управляемом коде. Поэтому закономерно использовать .NET Framework в качестве основы для создания распределенных приложений.

В настоящий момент в .NET Framework Class Library присутствует поддержка четырех промежуточных сред для построения распределенных систем. Далее они перечислены в порядке даты выпуска промежуточной среды.

1) Среда Microsoft Message Queuing (MSMQ) поддерживает обмен сообщениями между программными компонентами на основе очередей.

2) Среда Microsoft Enterprise Services основана на разработанной ранее фирмой Microsoft среде COM+, которая позволяет использовать удаленные объекты и распределенные транзакции в локальной сети.

3) Среда ASP .NET Web Services позволяет организовать удаленный вызов на основе общепринятых стандартов, базирующихся на языке XML.

4) Среда .NET Remoting была разработана как универсальная промежуточная среда для использования удаленных объектов.

В версии .NET Framework 3.0 предполагается ввести технологию WCF (Windows Communication Foundation), объединяющую все упомянутые технологии построения распределенных систем. Кроме указанных технологий, приложения на .NET Framework могут использовать, например, удаленные вызовы на основе стандарта XML-RPC при подключении дополнительных библиотек.

27. Методы взаимодействия процессов. Независимые и взаимодействующие процессы. Виды организации взаимосвязи процессов.

Взаимодействие процессов – основа для распараллеленного, эффективного решения задач с помощью группы процессов, координирующих свои действия друг с другом. Рассмотрим некоторые классические схемы взаимодействия процессов при решении типовых задач (например, схема производитель – потребитель), а также виды взаимодействия процессов между собой с помощью передачи сообщений, сокетов, удаленных вызовов процедур и методов.

С точки зрения взаимосвязи, процессы подразделяются на независимые и взаимодействующие.

Независимый процесс – процесс, никак не связанный с другими процессами, который не может влиять на исполнение других процессов или испытывать их влияние.

Взаимодействующий (совместный) процесс – процесс, который может влиять на исполнение других процессов или испытывать их влияние.

Преимущества взаимодействующих процессов:

1) Совместное использование данных ; процессы могут работать с общими данными, при условии их синхронизации (рассматриваемой в следующих лекциях);

2) Ускорение вычислений ;

3) Модульность: организация взаимодействующих процессов – это метод параллельного решения задачи, декомпозируемой на относительно независимые части, части, каждую из которых решает один из взаимодействующих процессов

4) Удобство.

С точки зрения видов взаимосвязи родительского и дочернего процессов, процессы подразделяются на независимые, подчиненные и сопроцессы.

Подчиненный процесс – процесс, зависящий от процесса-родителя. Подчиненный процесс уничтожается при уничтожении родительского процесса, как в системах UNIX. Процесс-родитель перед своим завершением должен ожидать завершения всех своих подчиненных процессов.

Независимый процесс – дочерний процесс, выполняемый независимо от процесса-родителя. Типичные примеры: процессы-демоны в UNIX, запускаемые начальным процессом init.

Сопроцесс (coprocess, coroutine) – процесс, равноправно взаимодействующий с другими такими же процессами; хранит свое текущее локальное управление (program counter).Взаимодействие нескольких сопроцессов друг с другом операторами resume полностью равноправно. Данный механизм взаимодействия принципиально отличается от вызова процедуры. Операция detach ( открепить ) переводит сопроцесс в пассивное состояние, в котором могут быть доступны только его глобальные данные, но его программа уже завершена и не подлежит повторному запуску.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]