Дисциплини

1 Разпределено програмиране

Седмичен хорариум 2+0+2
Форма на контрол Изпит

Анотация


Дисциплината "Разпределено програмиране" има за цел да развие знанията на студентите за разработване на разпределени приложения. Разглеждат се основните концепции и проблеми при изграждането на разпределени програмни системи. Представят се основни подходи и актуални технологии за изграждане на разпределени приложения, както и конкретни програмни средства за тяхната реализация. Дисциплината обхваща теми в областта на middleware, сървърните технологии, комуникационните протоколи за отдалечен достъп. Специално внимание се обръща на обектно-ориентираните технологии за разпределени решения.

Дисциплината се основава на предхождащите я дисциплини: "Синтез и анализ на алгоритми", "Операционни системи", "Обектно-ориентирано програмиране I и II част", "Програмни технологии в Интернет", "Компютърни мрежи" и др. Дисциплината осигурява: "Проектиране на Web програмни приложения", "Администриране на локални и Интернет мрежи", дипломно проектиране.

Съдържание


Тема 1. Разпределени системи. Същност и функциониране. Характеристики на разпределените системи.
Тема 2. Процеси и нишки. Същност и реализация на нишките. Библиотеки за работа с нишки. Библиотека Pthread за Linux. Модели на многонишкови програми. Комуникация и синхронизация на нишки. Реализация на нишките във Windows.
Тема 3. Класове за работа с нишки в обектно-ориентираните езици Java, C#.
Тема 4. Основни програмни модели за разпределени системи. Модел клиент-сървър. Реализация на модела клиент-сървър. Особености. Архитектура на сървър.
Тема 5. Инструментални среди за реализация на модела клиент-сървър. Среден слой.
Тема 6. Сокети. Взаимодействие чрез сокети. Типове сокети. Системни функции за работа със сокети. Получаване и задаване на адресна информация.
Тема 7. Мултиплексно обслужване чрез сокети. Сокети за групова комуникация.
Тема 8. Класове за работа със сокети в езиците за обектно-ориентиранo програмиране. Java сокети. Особености на реализацията. Сокети в .Net.
Тема 9. Отдалечено извикване на процедури – RPC. Програмен модел. Проблеми на реализацията. Предаване на параметрите. Семантика на грешките. Динамично свързване. Формална спецификация на RPC сървър.
Тема 10.Реализация на RPC в Linux. SunRPC. Спецификация на сървър. Генератор на стъбове. Технология на разработка на RPC сървър и клиент.
Тема 11.Разпределени обекти. Отдалечено извикване на методи. Middleware системи, базирани на отдалечено извикване на методи. Пример CORBA.
Тема 12.Отдалечено извикване на методи (Java RMI). Отдалечени интерфейси. Създаване на стъб и скелети. Използване на Java RMI за разработка на разпределени приложения.
Тема 13.Системи, базирани на предаване на съобщения. MPI. Особености на реализацията