МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФИЛИАЛ ФЕДЕРАЛЬНОГО ГОСУДАРСТВЕННОГО БЮДЖЕТНОГО ОБРАЗОВАТЕЛЬНОГО УЧРЕЖДЕНИЯ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «ВЛАДИВОСТОКСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ЭКОНОМИКИ И СЕРВИСА» В Г. АРТЕМЕ ИНСТИТУТ КАФЕДРА ЭКОНОМИКИ, УПРАВЛЕНИЯ И ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ РАСПРЕДЕЛЕННЫЕ ИНФОРМАЦИОННЫЕ СИСТЕМЫ Рабочая программа учебной дисциплины Основная образовательная программа Направление подготовки 230700.62 Прикладная информатика Артем 2014 Рабочая программа дисциплины «Распределенные информационные системы» составлена в соответствии с требованиями основной образовательной программы (ООП) для студентов направления 230700.62 Прикладная информатика на базе Федерального государственного образовательного стандарта высшего профессионального образования (ФГОС ВПО). Рабочая программа разработана на основании рабочей программы «Распределенные информационные системы», составленной преподавателями кафедры информационных систем и прикладной информатики Владивостокского государственного университета экономики и сервиса, утвержденной на заседании кафедры Сачко М.А., старший преподаватель Составители: Гриняк В.М., информационных технологий доцент кафедры экономики, управления и Утверждена на заседании кафедры бухгалтерского учета и информационных технологий от «14» апреля 2011 г., протокол № 11. Новая редакция утверждена протоколом заседания кафедры экономики, управления и информационных технологий от 09.04.2014 г. № 8 ВВЕДЕНИЕ Дисциплина «Распределенные информационные системы» рассматривает вопросы, связанные с построением и принципом функционирования распределенных приложений. Данная тематика является очень актуальной по той простой причине, что большинство сетевых приложений по своей сути являются распределенными: сетевые базы данных, файловые системы сетевых операционных систем, системы электронной коммерции и т.д. Дисциплина «Распределенные информационные системы» требует знаний в области информатики и в области параллельного программирования, желательна осведомленность о принципах функционирования компьютерных сетей. Данная дисциплина также дает практические навыки разработки распределенных сетевых приложений. Знания, полученные при изучении дисциплины «Распределенные информационные системы» используются в практической деятельности инженера. 1. ОРГАНИЗАЦИОННО-МЕТОДИЧЕСКИЕ УКАЗАНИЯ 1.1 Цели освоения учебной дисциплины Целью изучения дисциплины «Распределенные информационные системы» является теоретическая и практическая подготовка студентов в области информационных технологий в такой степени, чтобы они могли выбирать необходимые технические, алгоритмические, программные и технологические решения, уметь объяснить принципы их функционирования и правильно их использовать. Основные задачи изучения дисциплины: формирование у студентов минимально необходимых знаний в области построения распределенных систем; ознакомление с техническими, алгоритмическими, программными и технологическими решениями, используемыми в данной области; выработка практических навыков аналитического и экспериментального исследования основных методов и средств, используемых в области, изучаемой в рамках данной дисциплины. 1.2 Место учебной дисциплины в структуре ООП (связь с другими дисциплинами) Дисциплина «Распределенные информационные системы» относится к дисциплинам профессионального цикла. Данная дисциплина базируется на компетенциях, полученных при изучении дисциплин «Информатика и программирование», «Программирование на языке высокого уровня», «Прикладное программирование», «Параллельное программирование», «Сети ЭВМ и телекоммуникации». 1.3 Компетенции обучающегося, формируемые в результате освоения учебной дисциплины В результате изучения дисциплины будут сформированы следующие компетенции: Таблица 1. Формируемые компетенции ООП Вид компетенций Компетенции ПК-3 способен использовать основные законы 230700.62, естественнонаучных дисциплин в профессиональной Прикладная деятельности и эксплуатировать современное информатика. Профессиональные электронное оборудование и информационноПрикладная коммуникационные технологии в соответствии с информатика целями образовательной программы бакалавра ПК-4 способен ставить и решать прикладные задачи с использованием современных информационнокоммуникационных технологий ПК-5 способен осуществлять и обосновывать выбор проектных решений по видам обеспечения информационных систем ПК-6 способен документировать процессы создания информационных систем на всех стадиях жизненного цикла ПК-9 способен моделировать и проектировать структуры данных и знаний, прикладные и информационные процессы ПК-10 способен применять к решению прикладных задач базовые алгоритмы обработки информации, выполнять оценку сложности алгоритмов, программировать и тестировать программы ПК-12 способен эксплуатировать и сопровождать информационные системы и сервисы ПК-16 способен оценивать и выбирать современные операционные среды и информационнокоммуникационные технологии для информатизации и автоматизации решения прикладных задач и создания ИС ПК-19 способен анализировать рынок программнотехнических средств, информационных продуктов и услуг для решения прикладных задач и создания информационных систем Таблица 2. Формируемые знания, умения, владения ООП Коды Знания, Умения, Владение компетенций основы архитектуры и процессов Знания: функционирования вычислительных систем, сетей и телекоммуникаций выбирать и оценивать архитектуру ПК-3 Умения: вычислительных систем, сетей и систем телекоммуникаций и их подсистем навыками работы с различными Владения: информационно-коммуникационными технологиями 230700.62, Прикладная проводить сравнительный анализ и выбор информатика. Умения: ИКТ для решения прикладных задач и Прикладная информатика создания ИС ПК-4 навыками работы в предметноВладения: ориентированных ППП обосновывать выбор проектных решений по видам обеспечения информационных систем ПК-5 Умения: проводить сравнительный анализ и выбор ИКТ для решения прикладных задач и создания ИС ПК-6 ПК-9 ПК-10 ПК-12 ПК-16 ПК-19 формулировать требования к создаваемым программным комплексам проводить формализацию и реализацию Умения: решения прикладных задач навыками разработки программных комплексов для решения прикладных задач, оценки сложности алгоритмов и Владения: программ, использования современных технологий программирования, тестирования и документирования программных комплексов навыками работы в различных Владения: программных средах методами оценки и выбора Владения: информационно-коммуникационных технологий выбирать программно-технические средства, информационные продукты и Умения: услуги для решения прикладных задач и создания информационных систем на основе анализа рынка Умения: 1.4 Основные виды занятий и особенности их проведения Объем и сроки изучения дисциплины: Для студентов четвертого курса направления «Прикладная информатика» общая трудоемкость дисциплины составляет 4 зачетных единицы, 144 часов. Из них 51 час – аудиторной работы, 57 часов – самостоятельной работы. Объем занятий, проводимых в интерактивных формах – 10 часов. Удельный вес занятий, проводимых в интерактивных формах, составляет 20 процентов аудиторных занятий. Промежуточная аттестация по курсу - экзамен. 1.5 Виды контроля и отчетности по дисциплине Контроль успеваемости студентов осуществляется в соответствии с рейтинговой системой оценки знаний студентов. Текущий контроль предполагает: проверку уровня самостоятельной подготовки студента при выполнении индивидуального задания; опросы и дискуссии по основным моментам изучаемой темы. Промежуточный контроль предусматривает: проведение контрольных работ по блокам изученного материала; тестирование остаточных знаний (предварительные аттестации). Итоговый контроль знаний студентов осуществляется при проведении зачета в форме опроса и/или выполнения контрольных заданий. 2. СТРУКТУРА И СОДЕРЖАНИЕ УЧЕБНОЙ ДИСЦИПЛИНЫ 2.1 Темы лекций Тема 1. Понятие распределенной системы. Преимущества и недостатки распределенных систем. Масштабируемость. Прозрачность. Аппаратные и программные средства построения распределенных систем. (1 час) Тема 2. Связь в распределенных системах. Удаленный вызов процедур. Сохранность. Типы связей. (1 час) Тема 3. Средства современных ОС. Многозадачность. Многопоточность. Планировщик ОС. Изоляция приложений. Механизмы синхронизации процессов. (1 час) Тема 4. Синхронизация времени в распределенных системах. Необходимость. Алгоритм Кристиана. Алгоритм Беркли. Децентрализованный алгоритм. Логическое время. (2 часа) Тема 5. Алгоритмы голосования. Алгоритм забияки и кольцевой алгоритм. (1 час) Тема 6. Алгоритмы взаимного исключения. Централизованный и распределенный алгоритмы, алгоритм маркерного кольца. (2 часа) Тема 7. Распределенные транзакции. Понятие транзакции. Принцип ACID. Вложенные транзакции. Распределенные транзакции. (2 часа) Тема 8. Распределенная система объектов CORBA. Архитектура CORBA. Объектный адаптер. IDL-стабы. (2 часа) Тема 9. Технология DCOM. Развитие модели COM. Управление жизненным циклом объекта. (1 час) Тема 10. Распределенные файловые системы. Файловая система NFS. Семантика совместного использования файлов. Проблема отказов. (1 час) 2.2 Перечень тем практических/лабораторных занятий Студентам предлагается согласно выбранному варианту реализовать распределенное приложение с различными способами взаимодействия: 1. Многопоточное приложение. 2. Приложение, реализующее обмен данными между процессами через разделяемую память. 3. Многопоточное приложение, реализующее обмен данными между процессами (в т.ч. по сети) через именованные каналы. 4. Многопоточное приложение, реализующее обмен данными между процессами (в т.ч. по сети) через TCP/IP сокеты. 5. Распределенное приложение, реализующее обмен данными между процессами (в т.ч. по сети) через прикладные службы удаленных вызовов RPC. 3. ОБРАЗОВАТЕЛЬНЫЕ ТЕХНОЛОГИИ Программой дисциплины предусмотрено чтение лекций, проведение практических занятий. В течение изучения дисциплины студенты изучают на лекционных занятиях теоретический материал. На практических занятиях под руководством преподавателя решают типовые задачи, связанные с разработкой распределенных систем, обсуждают возникающие вопросы и проблемы, разбирают и анализируют наиболее удачные практики построения информационных систем с распределенной архитектурой. Для студентов в качестве самостоятельной работы предполагается подготовка докладов и сообщений, выполнения домашних заданий, групповая работа над задачами по моделированию процесса разработки программного обеспечения распределенных информационных систем. 4. МЕТОДИЧЕСКИЕ КУРСА РЕКОМЕНДАЦИИ ПО ИЗУЧЕНИЮ 4.1 Перечень и тематика самостоятельных работ студентов по дисциплине В рамках общего объема часов, отведенных для изучения дисциплины, предусматривается выполнение следующих видов самостоятельных работ студентов (СРС): контрольные работы (индивидуальные домашние задания), самостоятельное изучение теоретического материала с самоконтролем по приведенным ниже вопросам, изучение теоретического материала при подготовке к защите лабораторных работ, итоговое повторение теоретического материала. Для самостоятельного изучения дисциплины выносится часть материала по всем темам дисциплины с самоконтролем по контрольным вопросам и возможностью консультации у ведущего преподавателя общим объемом 68 часов СРС. Для выполнения лабораторных работ в соответствии с разделом 2.2 настоящей учебной программы студент должен предварительно освоить теоретический материал соответствующих тем. 4.2 Контрольные вопросы для самостоятельной оценки качества освоения учебной дисциплины ПОНЯТИЕ РАСПРЕДЕЛЕННОЙ СИСТЕМЫ 1. В чем состоит отличие между параллельной и распределенной системами? 2. Какие мотивации привели к созданию распределенных систем? 3. Что характеризует масштабируемое приложение и способы достижения масштабируемости? 4. Что такое прозрачность, формы прозрачности? 5. Что такое открытая система, ее преимущества? 6. Какие концепции аппаратных решений существуют для построения распределенных систем, их особенности? 7. Какие концепции программных решений существуют для построения распределенных систем, их особенности? 8. Какие преимущества и недостатки распределенных систем? СВЯЗЬ В РАСПРЕДЕЛЕННЫХ СИСТЕМАХ 9. Что такое межуровневый интерфейс? 10. Что такое протокол? 11. Модель OSI, ее уровни и их назначение. 12. Что такое удаленный вызов процедур, заглушки? Опишите по шагам процесс удаленного вызова. Какие существуют расширенные модели RPC? 13. Как происходит обращение к удаленному объекту. В чем разница между статическим и динамическим обращение к объекту? 14. Что такое сохранность? 15. В чем отличие явной и неявной привязки ссылок на объект? 16. Какие типы связей существуют в распределенных системах и их примеры? СРЕДСТВА СОВРЕМЕННЫХ ОС. 17. Какие требования предъявляются программистом к современным ОС? 18. Какие стандартные API имеются в современных ОС? 19. Что такое многозадачность и какие имеются разновидности. 20. Что такое многопоточность? 21. Что такое планировщик ОС и какие имеются алгоритмы планирования? Как реализован планировщик в Windows и UNIX-системах? 22. Что такое изоляция приложений и методы ее обеспечения? 23. Что такое взаимная блокировка (dead-lock) и как ее избежать? 24. То такое инверсия приоритетов и как ее предотвратить, 25. Какие API синхронизации имеются в Windows? 26. Какие API синхронизации имеются в UNIX? 27. Какие механизмы существуют для обмена данными между процессами? 28. Для чего необходимо управление правами доступа? Какие основные цели и средства описаны в «Критериях определения безопасности компьютерных систем»? 29. В чем стоит принцип мандатного управления доступом? 30. В чем стоит принцип избирательного (дискреционного) управления доступом? 31. Какие средства сетевого взаимодействия существуют в современных ОС? СИНХРОНИЗАЦИЯ В РАСПРЕДЕЛЕННЫХ СИСТЕМАХ 32. Почему необходимо синхронизировать время в распределенной системе? Приведите пример. 33. Алгоритм Кристиана. 34. Алгоритм Беркли. 35. Децентрализованный алгоритм. 36. Понятие логического времени. 37. Отметки времени Лампорта. 38. Что такое глобальное состояние и алгоритм получения распре-деленного снимка состояния? 39. Алгоритмы голосования: алгоритм забияки и кольцевой алгоритм. 40. Алгоритмы взаимного исключения: централизованный и распре-деленный алгоритмы, алгоритм маркерного кольца. 41. Что такое транзакция и в чем состоит принцип ACID? Какие примитивы транзакций вы знаете? Что такое вложенные транзакции и их особенность? 42. Как реализуются распределенные транзакции? Менеджеры транзакций. 12 43. В чем стоит принцип двухфазной блокировки? В чем отличие реализации централизованной и распределенной двухфазной блокировки? 44. Что такое оптимистичная блокировка? РАСПРЕДЕЛЕННАЯ СИСТЕМА ОБЪЕКТОВ CORBA 45. Какие компоненты составляют архитектуру CORBA? 46. Что такое ORB и какие задачи он решает? 47. Как описывается интерфейс к объекту в CORBA? 48. Зачем нужны IDL-стабы (заглушки)? 49. Что такое интерфейс динамических вызовов? 50. Что такое репозиторий интерфейсов? 51. Что такое сервант? 52. Что такое IIOP/GIOP? 53. В чем состоит роль объектного адаптера? 54. Какие модели многопоточности поддерживает POA? 55. Какие изменения внесла новая спецификация CORBA 3.0 в объектный адаптер? 56. Опишите как происходит вызов метода объекта в CORBA. 57. Какие службы определены в CORBA и их задачи. ТЕХНОЛОГИЯ DCOM 58. На какой технологии базируется DCOM и какие новшества она привнесла? 59. От какого интерфейса наследуются все интерфейсы в DCOM и какие задачи решает этот базовый интерфейс? 60. Через какой интерфейс происходит динамическое обращение к объекту в DCOM? 61. Какую функцию выполняет библиотека типов в DCOM? 62. В чем похожи и чем отличаются технологии CORBA и DCOM? РАСПРЕДЕЛЕННЫЕ ФАЙЛОВЫЕ СИСТЕМЫ 63. Опишите, какие модели доступа существуют в распределенной файловой системе? 64. Опишите базовую архитектуру NFS. 65. Какие задачи решает виртуальная файловая система (VFS)? 66. Какова модель файловой системы NFS? 67. Какие изменения произошли в протоколе NFS версии 4 по срав-нению с версией 3? 68. Именование в файловой системе NFS. 69. Какие существуют семантики совместного использования фай-лов? 70. Каким образом реализуется блокировка в NFS? 71. Каким образом осуществляется кэширование и репликация в NFS? 72. Каким образом RPC решает проблему отказов? 73. Какие существуют методы аутентификации в NFS? 4.3 Методические рекомендации по организации СРС Для студентов в качестве самостоятельной работы предполагается подготовка докладов и сообщений, выполнения домашних заданий, групповая работа над заданиями по моделированию процесса разработки программного обеспечения распределенных информационных систем. 4.4 Рекомендации по работе с литературой Дисциплина «Распределенные информационные системы» затрагивает вопросы построения и функционирования распределенных систем, изучает и систематизирует средства современных операционных систем для реализации распределенных приложений. Для изучения теоретического материала по дисциплине можно использовать [1] и [2]. Для более глубокого изучения CORBA рекомендуется использовать [4]. Для изучения вопросов, связанных с RPC можно использовать [5]. Подробную информацию о COM и DCOM можно найти в [6]. Практические вопросы, связанные с использованием API синхронизации в среде Windows, можно решить в [7]. 5. УЧЕБНО-МЕТОДИЧЕСКОЕ И ОБЕСПЕЧЕНИЕ ДИСЦИПЛИНЫ ИНФОРМАЦИОННОЕ 5.1 Основная литература 1.Информационные системы и технологии в экономике и управлении: учебник для бакалавриата/ под ред. В.В. Трофимова. – М.: Юрайт, 2011. 2.Федорова Г.Н. Информационные системы: учебник. – М.: Академия, 2011. 3.Гвоздева В.А. Информатика, автоматизированные информационные технологии и системы.- М.: ФОРУМ, 2013. 4.Гвоздева В.А. Основы построения автоматизированных информационных систем.- М.: ФОРУМ, 2011. 5.Гагарина Л.Г. Разработка и эксплуатация автоматизированных информационных систем.- М.: ФОРУМ, 2013. 5.2 Дополнительная литература 1. 2. 3. Рихтер Дж. Windows для профессионалов: создание эффективных Win32 приложений с учетом специфики 64-разрядной версии Windows / пер, англ. – 4-е изд. – СПб.; Питер; М.: Издательско-торговый дом «Русская Редакция», 2001. – 752 с.; ил. Рофэйл Э. COM и COM+: полное руководство: пер. с англ. / Э. Рофэйл, Я. Шохауд. – К.: ВЕК+; К.: НТИ; М.: Энтроп, 2000. – 555 с. Сигел Д. CORBA 3 / Д. Сигел; пер. с англ. М. Аншиной. – М.: Малип, 2002. – 411с.: ил. 4. 5. Таненбаум Э. Распределенные системы. Принципы и парадигмы / Э. Таненбаум, М. ван Стеен. – СПб.: Питер, 2003. – 877 с.: ил. – (Серия «Классика computer science»). Харт Д. Системное программирование в среде Windows [Текст] / Д. Харт; пер. с англ. А.Г. Гузикевича. – 3-е изд. – М.: Вильямс, 2005. – 592 с.: ил. 5.3 Интернет-ресурсы 1. Автоматические информационные системы http://alcor-spb.com/auto_t5.html 2. Распределенные системы и алгоритмы http://www.intuit.ru/department/algorithms/distrsa/ 6. МАТЕРИАЛЬНО-ТЕХНИЧЕСКОЕ ОБЕСПЕЧЕНИЕ ДИСЦИПЛИНЫ а) программное обеспечение: Microsoft Visual Studio Express 2008 for C++. Если по выбору учащегося используется другая среда разработки приложений на языке С/С++ (например, Borland C++ Builder), то, возможно, понадобится Platfrom SDK for Windows. б) техническое и лабораторное обеспечение – компьютерный класс, аудитория с презентационным оборудованием. 7. СЛОВАРЬ ОСНОВНЫХ ТЕРМИНОВ Архитектура, ориентированная на сервисы (Service Oriented Architecture — SOA) — это архитектура, содержащая три компонента: поставщик сервиса, потребитель сервиса и брокер; при этом сервис, предлагаемый поставщиком, регистрируется у некоторого брокера, потребитель там его обнаруживает, устанавливает связь с поставщиком в соответствии с интерфейсом взаимодействия и выполняет требуемую операцию. Асинхронное сообщение — это отсылка сообщения без ожидания немедленного ответа; объект, отославший сообщение, продолжает работу; время на получение ответа не регламентировано (ответ может быть вообще не получен). База данных (БД) — централизованное хранилище данных, обеспечивающее хранение, доступ, первичную обработку и поиск ин¬ формации. База знаний (БЗ) — это особого рода база данных, разработанная для управления знаниями (метаданными), т.е. сбором, хранением, поиском и выдачей знаний. Бизнеспроцесс — это последовательность действий по преобразованию информации и принятию решений для производства и реализации продуктов и услуг. Интеллектуальная информационная система (ИИС) — информационная система, основанная на концепции использования базы знаний для генерации алгоритмов решения прикладных задач раз¬ личных классов в зависимости от конкретных информационных потребностей пользователей. Информационные системы (ИС) — системы обработки данных о какой-либо предметной области со средствами накопления, хранения, обновления, поиска и выдачи данных. Информационные технологии — это множество методов, способов и средств сбора, накопления, хранения, поиска, обработки и передачи информации на основе применения средств вычислитель¬ ной техники. Клиент-сервер (client-server) — сетевая архитектура, в которой устройства являются либо клиентами, либо серверами; клиентом (front end) служит запрашивающая машина (обычно ПК), сервером (back end) — машина, которая отвечает на запрос; оба термина (клиент и сервер) могут применяться как к физическим устройствам, так и к программному обеспечению. Онтология — систематизированный набор терминов, поясняющих, в каких отношениях могут находиться объекты предметной области; при этом онтология не зависит от конкретной ситуации или задачи и должна обладать такими свойствами, как понятность, согласованность, расширяемость и минимальное онтологическое солашение (минимальный достаточный объем словаря). Онтология как философская дисциплина — описание множества выделенных объектов, понятий, связей и отношений в заданной области знаний. Проектирование архитектуры информационной системы — выделение базовых компонентов, разработка их интерфейсов, а также определение правил и принципов взаимодействия этих компонентов. Распределенная объектная система — корпоративная информационная система (КИС), включающая в себя множество взаимосвязанных удаленных программных объектов. Распределенность данных — физическая (географическая) раздельность размещения данных, разнесение их по разным компьютерам сети. Распределенные системы поддержки принятия решений (РСППР) — информационные системы, которые объединяют локальные специализированные системы принятия решений, обладающие элементами искусственного интеллекта и решающие задачи в составной области экспертизы через обмен взаимными консультациями (сообщениями). Сервлеты — сетевые компоненты, работающие в режиме запрос/ответ; при этом запрос, получаемый от клиента через веб-браузер, обрабатывается, после чего клиенту отсылается ответ. Система поддержки принятия решений (СППР) — человекомашинная система, позволяющая руководителю использовать свои знания, опыт и интересы, объективные и субъективные модели, оценки и данные для реализации компьютерных методов выработки решений.