Бакалавриат
2020/2021
Распределенные вычисления
Статус:
Курс обязательный (Программная инженерия)
Направление:
09.03.04. Программная инженерия
Где читается:
Факультет экономики, менеджмента и бизнес-информатики
Когда читается:
4-й курс, 1, 2 модуль
Формат изучения:
без онлайн-курса
Преподаватели:
Замятина Елена Борисовна
Язык:
английский
Кредиты:
5
Контактные часы:
48
Course Syllabus
Abstract
The present program of educational discipline establishes requirements to educational results and learning outcomes of the student and determines the content and types of training sessions and reporting. The program is intended for the teachers conducting discipline, educational assistants and students of a direction of preparation 09.03.04 Program engineering, studying under the educational program Program engineering.
Learning Objectives
- To prepare specialists possessing both theoretical bases of creation of program systems with distributed architecture of different purposes and basic methods, modern technologies applied for creation of such systems
- Able to independently develop distributed software systems of various complexity for different subject areas, using the most appropriate tools and technologies that provide maximum efficiency in the creation of complex systems, and in their operation and maintenance
Expected Learning Outcomes
- Knows the basic models and architectures of distributed applications. Able to design distributed systems and their components. Is able to solve problems in professional activities on the basis of analysis of the problem statement and analysis of the subject area. Is able to substantiate the design decisions taken during the development of distributed systems, to carry out the formulation and execution of experiments to check their correctness and effectiveness.
- Knows the main mechanisms and means of communication of distributed systems. Is able to select and justify the choice of means of communication components of distributed systems. Is able to solve problems in professional activity on the basis of the analysis of the problem statement and the analysis of the subject area.
- Knows technologies, mechanisms, data replication architectures. Is able to use network technologies, database management systems. Is able to use various technologies of software development. Is able to apply basic methods and tools of software development
- Knows modern distributed system architectures. Is able to work with information: to find, evaluate and use information from various sources, necessary for solving scientific and professional problems (including on the basis of system approach). Is able to solve problems in professional activity on the basis of analysis of the problem statement and analysis of the subject area.
Course Contents
- Section 1: Distributed systems and distributed computing modelsTheme 1: Basic concepts The concept of distributed technologies. Client-server application. Function separation criteria. Requirements for distributed applications. Examples of global distributed projects. Theme 2: Distributed Systems and Distributed Computing Models Distributed Systems Models: Client and Server Functions. Theme 3: Distributed application architecture, oriented on multi-tasking operating systems Distributed application architecture. Client, server architecture. Client-server interaction modes (synchronous and asynchronous mode). Distributed application technology support at the OS level: process and flow management tools, synchronization of calculations. Theme 4: Protocols and intermediate environments Model and levels of interaction of open OSI systems. Protocol stack. Concept and services of the intermediate environment. Types of intermediate environments. Heterogeneous and homogeneous distributed systems. The concept of protocol. Application layer protocols: rigid and flexible. Data structures when using rigid and flexible protocols, header structures. Advantages and disadvantages of application layer protocols. Theme 5: Client-server interaction management Variants of interaction distribution between applications: - file system; - common server implementing client service; - virtual server. Advantages and disadvantages of each option.
- Section 2: Communication methods and technologies for components of distributed systemsTheme 6: Communication Techniques Theme 7: Messaging Services Theme 8: Web Services Theme 9: Intermediate Environment .NET Remoting Theme 10. Windows Communication Foundation Technology
- Section 3: Distributed databasesTheme 11. Distributed data storage management methods Distributed databases, concepts, characteristics, classic distributed database system. General with distributed file systems. Criteria of data division between nodes of the network. Data Definition, twelve Data properties. Theme 12. Data replication Data replication: - types (synchronous, asynchronous, event-based); - replication system architecture (main-subordinate, peer-to-peer, hybrid); - data dissemination methods; - data synchronization methods for replication. Features of replication in software products of different purposes (OS, DBMS). Theme 13. Corporate DBMS. Main possibilities of working with distributed data Corporate DBMS of Microsoft SQL Server and Oracle. Opportunities provided by corporate DBMS for - creation of distributed databases; - support of distributed queries; - replication of data; - XML support when working with RBD; - creation of heterogeneous systems and integration with external systems; - GRID-technology support. Comparison of MS SQL Server and Oracle features.
- Section 4: Modern Distributed Systems ArchitecturesTheme 14. Distributed Computing Development History of Distributed Computing: Client-Server Architecture, Object Distributed Systems, Service Oriented Architecture, Microservice Architecture, Peer-to-peer Networks, Agent Technologies, Actor Model, GRID, Cloud Computing. Main possibilities, principles of work, characteristics, advantages, disadvantages. Theme 15. GRID-technology. Basic concepts. Types of GRID-systems. The concept of GRID-technology. Examples of projects created using this technology. Reasons for GRID development. Examples of GRID usage. Problems solved with the help of this technology: - mass processing of large data flows; - multi-parameter analysis of data; - modeling on remote supercomputers; - realistic visualization of large data sets; - complex business applications with large volumes of calculations. Types of GRID-systems: - computational GRID; - GRID for intensive data processing; - semantic GRID for the operation of data from different databases. Components of the Amazon.com data warehouse. Theme 16. GRID systems architecture. Toolkit for developing GRID systems Globus Toolkit and its main components: - Globus Resource Allocation Manager; - Monitoring and Discovery Service; - Globus Security Infrastructure; - Global Access to Secondary Storage. The concept of virtual organization (VO), examples. Requirements for VO. Interoperability. A model of hourglass. GRID architecture: - Factory level; - Communication level; - Resources level; - Cooperation level; - Applications level. Theme 17. Cloud computing The concept of cloud computing. Multi-layered architecture of cloud applications. Cloud application components. Cloud classification. Comparison of cloud computing and GRID technologies.
Assessment Elements
- Lab work № 1
- Lab work № 2
- Lab work № 3
- Lab work № 4 (self study work).
- Exam
- Lab work № 1
- Lab work № 2
- Lab work № 3
- Lab work № 4 (self study work).
- Exam
Interim Assessment
- Interim assessment (2 module)0.3 * Exam + 0.1 * Lab work № 1 + 0.16 * Lab work № 2 + 0.09 * Lab work № 3 + 0.35 * Lab work № 4 (self study work).
Bibliography
Recommended Core Bibliography
- Малявко А. А. - ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ НА ОСНОВЕ ТЕХНОЛОГИЙ OPENMP, MPI, CUDA 2-е изд., испр. и доп. Учебное пособие для академического бакалавриата - М.:Издательство Юрайт - 2019 - 129с. - ISBN: 978-5-534-11827-8 - Текст электронный // ЭБС ЮРАЙТ - URL: https://urait.ru/book/parallelnoe-programmirovanie-na-osnove-tehnologiy-openmp-mpi-cuda-446247
Recommended Additional Bibliography
- Введение в архитектуру программного обеспечения : учеб. пособие / Л.Г. Гагарина, А.Р. Федоров, П.А. Федоров. — М. : ФОРУМ : ИНФРА-М, 2018. — 320 с. — (Высшее образование). - Режим доступа: http://znanium.com/catalog/product/971770
- Назаров С.В. Архитектуры и проектирование программных систем: монография. – М.: НИЦ ИНФРА-М, 2013. – 351 с. [Электронный ресурс] // ЭБС Znanium.com / URL: http://znanium.com/catalog.php?bookinfo=353187