Тема Введение в распределенные системы icon

Тема Введение в распределенные системы




Скачати 162.84 Kb.
НазваТема Введение в распределенные системы
Дата25.10.2012
Розмір162.84 Kb.
ТипЛекция
1. /Лекция 1. Основы РС.docx
2. /Лекция 10. Технологии веб-сервисов.docx
3. /Лекция 12.WCF MS Net Framework.docx
4. /Лекция 2. Типы и архитектура РС.docx
5. /Лекция 3. Основы ASP.Net.doc
6. /Лекция 4 Основы ASP.Net.docx
7. /Лекция 5. Таблицы и элементы управления формы .docx
8. /Лекция 6. Работа с графикой.docx
9. /Лекция 7. Передача информации между ASP-страницами.docx
10. /Лекция 8. Проверка данных на форме.docx
11. /Лекция 9. Master Page.docx
Тема Введение в распределенные системы
Тема технологии веб-сервисов
Тема wcf. Net framework
Тема Введение в распределенные системы
Тема разработка веб-приложений на платформе asp. Net лекция Основы asp. Net
Тема разработка веб-приложений на платформе asp. Net лекция Основы Web-программирования с использованием asp. Net план
Тема разработка веб-приложений на платформе asp. Net лекция Таблицы и элементы управления формы
Тема Разработка Веб-приложений на платформе asp. Net лекция Работа с графикой. Элемент LinkButton
Тема разработка веб-приложений на платформе asp. Net лекция 7 Способы передачи информации между asp-страницами
Тема Разработка Веб-приложений на платформе asp. Net лекция Проверка данных на форме
Тема Разработка Веб-приложений на платформе asp. Net

Тема 1. Введение в распределенные системы


Лекция 1. Основы распределенных систем

План


1.1. Что такое распределенная система?

1.2. Основные задачи распределенной обработки

1.3. Концепции аппаратных решений

1.4. Концепции программных решений

1.5. Итоги

1.1. Что такое распределенная система?


В одной из своих статей в 2001 году Дж. Бэкус отметил, что компьютерная революция испытала три волны.

Первая волна началась с коммерциализацией кремниевых чипов и продолжалась 10-15 лет.

Вторая волна связана с развитием технологий программного обеспечения и началась приблизительно в середине 80-х годов XX века.

Третья волна началась в конце 90-х годов XX века и связана с развитием сетей и использованием их для коммуникаций компьютеров.

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

В последние годы появилось несколько новых направлений компьютерных исследований. В самостоятельную дисциплину оформляется сетевой компьютинг, разработка распределенных систем.


Что же такое «распределенная система»? Каковы свойства распределенных систем?


По утверждению известного специалиста в области информатики Э. Таненбаума, не существует общепринятого и в то же время строгого определения распределенной системы.


Часто при определении распределенной системы во главу угла ставят разделение ее функций между несколькими компьютерами. При таком подходе распределенной является любая вычислительная система, где обработка данных разделена между двумя и более компьютерами.

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


1. Распределенная система – это набор независимых компьютеров, представляющийся их пользователям как единая система.


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


Пользователи и приложения единообразно работают в РС независимо от того, где и когда происходит это взаимодействие.

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

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


Некоторые остряки утверждают, что распределенной является такая вычислительная система, в которой неисправность компьютера, о существовании которого пользователи ранее даже не подозревали, приводит к остановке всей их работы. Значительная часть распределенных вычислительных систем, к сожалению, удовлетворяют такому определению, однако формально оно относится только к системам с уникальной точкой уязвимости (single point of failure).


Для того чтобы поддерживать представление разных компьютеров и сетей в виде единой системы организация РС часто включает в себя дополнительный уровень ПО, который находится между прикладным уровнем и ОС.

Такая РС обычно называется системой промежуточного уровня (middleware).

1.2. Основные задачи распределенной обработки


Какие основные задачи распределенных систем?

Основная задача – облегчение доступа к удаленным ресурсам и контроль совместного использования этих ресурсов (компьютеров, файлов, данных в БД). Web-сайты и сети также входят в этот список.

Для решения этой основной задачи, РС должна удовлетворять следующим требованиям:

  1. Прозрачность.

  2. Открытость.

  3. Гибкость.

  4. Масштабируемость (расширяемость).

1.2.1. Прозрачность


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

Концепция прозрачности применима к разным аспектам РС, а именно:

Таблица 1.1 Разные формы прозрачности в РС

Прозрачность

Описание

Доступ

Скрывается разница в представлении данных и способе доступа к ресурсам

Местоположение

Скрывается местоположение ресурса

Перенос

Скрывается факт перемещения ресурса

Смена местоположения

Скрывается факт перемещения ресурса в процессе обработки в другое место

Репликация

Скрывается факт репликации ресурса

Параллельный доступ

Скрывается факт возможного совместного использования ресурса несколькими конкурирующими пользователями

Отказ

Скрывается отказ и восстановление ресурсов

Сохранность

Скрывается место хранения ресурса (программного) на диске или в памяти


Прозрачность доступа. Цель – скрыть разницу в способах представления и передачи данных между разными типами ПК и ОС, способах представления имен файлов, правил работы с ними и др.

Прозрачность местоположения. Цель – скрыть реальное физическое размещение ресурса. Важную роль в реализации этого играет именование.

Прозрачность переноса. Цель – скрыть факт физического перемещения ресурса. При этом смена местоположения не влияет на доступ.

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

Прозрачность репликации (дублирования). Цель - скрыть факт наличия нескольких копий ресурса.

Прозрачность параллельного доступа. Цель – скрыть от пользователя факт совместного использования ресурса. При этом обеспечивается целостность и непротиворечивость ресурса (например, механизм блокировок в БД).

Прозрачность отказов. Цель – обеспечить нормальную работу при наличии отказов (или скрыть факт отказа и не уведомлять об этом пользователя). Пример – при работе с перегруженным Web-сервером браузер выжидает нужное время, а потом сообщает о недоступности страницы.

Прозрачность сохранности. Цель – скрыть реальное хранение ресурса.

Степень прозрачности

Не все эти атрибуты должны быть полностью реализованы в РС, поскольку обеспечение прозрачности влияет на производительность.

1.2.2. Открытость


Открытая РС (open distributed system) – это система, предлагающая службы, вызов которых требует стандартные синтаксис и семантику. Например, в сетях формат сообщений должен соответствовать протоколам.


В РС службы (и компоненты) определяются через интерфейсы, которые часто описываются при помощи языка определения интерфейсов (Interface Definition Language, IDL). Описание интерфейса точно отражает синтаксис служб: имена доступных функций, типы параметров, возвращаемых значений и т.п. Сложнее формально описать семантику служб. На практике эти описания задаются неформально, средствами естественного языка.

Открытые РС должны иметь такие свойства как:

- Интероперабельность (способность к взаимодействию);

- Переносимость (из одной системы в другую без изменения интерфейсов);

- Гибкость – легкость конфигурирования системы, состоящей из разных компонентов. То есть РС должна быть расширяемой программно и аппаратно.

Отделение правил от механизмов

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

1.2.3. Масштабируемость (возможность расширения)


Масштабируемость системы может измеряться по трем разным показателям:

  1. размер – легкость подключения к ней новых пользователей и ресурсов, что связано с понятием балансировки нагрузки (load balancing) на серверы системы;

  2. территориально – пользователи и ресурсы могут быть разнесены в пространстве;

  3. административно – система проста в управлении при работе во многих административно независимых организациях.

Эта характеристика РС может снижать производительность системы.


К масштабированию относятся так же вопросы эффективного распределения ресурсов сервера, обслуживающего запросы клиентов.


Проблемы масштабируемости

Любая РС должна масштабироваться. Но вопросы ее практической реализации должны рассматриваться вместе с другими требованиями, такими как безопасность и производительность.


Таблица 1.2. Примеры ограничений масштабируемости размера

Концепция

Пример

Централизованные службы

Один сервер на всех пользователей. Необходимо в случае хранения конфиденциальных данных.

Централизованные данные

Единый телефонный справочник, доступный в режиме подключения. Централизация (наличие единой базы данных)

в данном случае вызовет перегрузку входящих и исходящих линий связи.

Централизованные алгоритмы

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


Проблемы географической масштабируемости – неэффективность блокировок доступа к общим ресурсам (как в локальных сетях).

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


Технологии масштабирования

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


1. Сокрытие времени ожидания связи применяется в случае географического масштабирования. Основная идея – постараться избежать ожидания ответа на запрос от удаленного сервера. Это означает разработку приложения-клиента с использованием асинхронной связи. При получении ответа, приложение-клиент прервет свою работу и вызовет специальный обработчик для завершения отправленного ранее запроса. Асинхронная связь используется в системах пакетной обработки и параллельных приложениях, в которых во время ожидания одной задачей завершения связи предполагается выполнение других независимых задач.

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

Особенно это касается проверки данных на форме. Более эффективное решение – переместить на сторону клиента проверку данных всех полей формы. Перенос кода на сторону клиента в настоящее время поддерживается в Web с помощью включения кода на JavaScript.

Ассинхронное взаимодействие клиенти и сервера в Web-приложениях реализуется в настоящее время технологией AJAX.

2. Распределение. Предполагает разбиение компонентов на более мелкие части с последующим их распределением в системе. Пример – система доменных имен Интернета (DNS). Пространство DNS организовано иерархически в виде дерева доменов (domains) разбитых на зоны (по странам и областям деятельности). Имена каждой зоны обрабатываются одним сервером имен.

Получается, что служба доменных имен распределена по нескольким серверам, что позволяет избежать обработки всех запросов одним сервером.

Второй пример – Web. Каждый документ имеет уникальное имя URL. Физически среда Web разнесена по многим серверам. Имя сервера, содержащего конкретный документ, определяется по его URL-адресу. Это позволяет наращивать количество документов без потери производительности.

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

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


Проблемы масштабируемости. Проблема непротиворечивости ресурса.

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

Допустимая степень противоречивости зависит от степени загрузки ресурсов. Так, множество пользователей Web считают допустимым работу с кэшированным документом через несколько минут после его помещения в кэш без дополнительной проверки. Однако существует множество случаев, когда необходимо гарантировать строгую непротиворечивость, например, при игре на электронной бирже

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

1.3. Концепции аппаратных решений


Несмотря на то, что все распределенные системы содержат по нескольку процессоров, существуют различные способы их организации в систему. В особенности это относится к вариантам их соединения и организации взаимного обмена.

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

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

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

1.4. Концепции программных решений


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

Эти функции обычно выполняют ОС. Для распределенных компьютеров ОС можно разделить на две категории: сильно связанные и слабо связанные. Сильно связанные ОС обычно называются распределенными ОС (Distributed Operation System, DOS) и используются для управления мультипроцессорными и гомогенными мультикомпьютерными системами. Основная их цель – скрыть тонкости управления аппаратным обеспечением.

Слабо связанные ОС называются сетевыми ОС (Network Operation System, NOS). Они используются для управления гетерогенными мультикомпьютерными системами. Помимо традиционных функций управления ресурсами, они должны обеспечить доступ удаленных клиентов к локальным службам.

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

Эти компоненты образуют средства промежуточного уровня (middleware) и составляют основу современных РС.

В таблице 1.3. подытожены основные назначения ОС и промежуточного уровня.

Таблица 1.3. Краткое описание ОС и средств промежуточного уровня.

Система

Описание

Назначение

Распределенные ОС

Сильно связанные ОС для мультипроцессоров и гомогенных мультикомпьютерных систем

Сокрытие и управление аппаратным обеспечением

Сетевые ОС

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

Предоставление локальных служб удаленным клиентам

Средства промежуточного уровня

Дополнительный уровень поверх сетевых ОС, реализующий службы общего назначения

Обеспечение прозрачности распределения


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

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

Таким образом, основную роль в построении РС играют программные средства (службы) промежуточного уровня между сетевыми ОС и распределенными приложениями.

На рис. 1.1. приведена общая структура РС с промежуточным уровнем.



Рис. 1.1. Общая структура РС с промежуточным уровнем.

1.4.1. Модели промежуточного уровня.


Для упрощения разработки и интеграции РС, основная часть промежуточного ПО должна базироваться на некоторой модели, определяющей распределение и связь. Самая простая ранняя модель – представление всех объектов в виде файлов (распределенная файловая система). Пример – файловая система Unix.

Вторая ранняя модель основана на удаленных вызовах процедур (Remote Procedure Calls, RPC). В этой модели акцент делается на сокрытии сетевого обмена за счет того, что процессу разрешается вызывать процедуры, реализация которых находится на удаленной машине. При вызове процедуры параметры передаются на удаленную машину, где она выполняется, после чего управление передается в точку вызова процедуры. Внешне это выглядит как обычный вызов процедуры.

Более современные модели основаны на взаимодействии распределенных объектов. Пример – DCOM, COM+ (а также основанные на них технологии ActiveX). Идея распределенных объектов состоит в том, что каждый объект реализует интерфейс, скрывающий все внутренние детали реализации объекта от пользователя. Интерфейс содержит методы, реализуемые объектом, и все, что видит процесс – это интерфейсы.

В Web 1.0. применяется модель распределенных документов. В этой модели информация организована в виде документов, каждый из которых размещен в каком-то месте, причем физическое размещение документа скрыто от пользователя (прозрачно). Документы могут содержать ссылки на другие документы, которые могут быть извлечены и отображены на экран. Однако, с развитием Web 2.0 эта модель претерпела значительные изменения, поскольку Web все больше наполняется программным содержимым.

1.4.2. Службы промежуточного уровня


Эти службы предназначены для обеспечения основных характеристик РС, прежде всего прозрачности, открытости и масштабируемости. Все ПО промежуточного уровня должно поддерживать прозрачность доступа путем предоставления высокоуровневых средств связи, скрывающих низкоуровневую пересылку сообщений по сети. Интерфейс транспортного уровня (IP), который предоставляется сетевой ОС, полностью заменяется другими средствами. Способ, которым поддерживается связь, зависит от модели распределения, предлагаемой ПО промежуточного уровня. Это упоминавшийся нами RPC и системы распределенных объектов. Кроме того, системы промежуточного уровня предоставляют средства для прозрачного доступа к распределенным БД, файловым системам, документам Web.

Важная служба, общая для всех систем промежуточного уровня – именование (naming). В Web любой документ поименован посредством URL, содержащим имя сервера, на котором находится документ с данным URL.

Другая важная служба – обеспечение сохранности данных. Пример – механизм распределенных транзакций.

Еще одна важная общая служба – обеспечение защиты программ и данных. Основная проблема защиты в системах промежуточного уровня – в распределенности. В сочетании с требованием расширяемости защита превращается в одну из наиболее трудно реализуемых в РС служб.

1.4.3. Промежуточный уровень и открытость.


Современные РС обычно создаются в виде систем промежуточного уровня для нескольких платформ. При этом приложения создаются для конкретной распределенной системы и не зависят от платформы (ОС). Часто эта независимость заменяется жесткой зависимостью от конкретной системы промежуточного уровня. Проблема заключается в том, что системы промежуточного уровня менее открыты, чем утверждается.



Рис. 1.2. В открытых распределенных системах должны быть одинаковыми как протоколы, используемые промежуточными уровнями каждой из систем, так и интерфейсы, предоставляемые приложениям.

1.5. Итоги


Распределенные системы (РС) состоят из автономных компьютеров, работающих совместно, в виде единой связной системы. Их преимущества по сравнению с монолитными системами:

  1. РС упрощают интеграцию разных приложений в единую систему;

  2. Масштабируемость. Размер РС ограничен только размерами базовой сети.

Платой за эти преимущества часто есть усложнение ПО, снижение производительности и проблемы с безопасностью.

Существуют разные типы распределенных систем. Распределенные ОС используются для управления аппаратными средствами взаимосвязанных КС к которым относятся мультипроцессорные и гомогенные мультикомпьютерные системы. Эти РС на самом деле не состоят из автономных компьютеров, но успешно воспринимаются в виде единой системы. Сетевые ОС, с другой стороны, объединяют разные компьютеры, работающие под управлением своих ОС, так что пользователи могут получать доступ к локальным службам каждого из узлов.

Современные РС обычно содержат поверх сетевой ОС промежуточный слой ПО (middleware), предназначенный для того чтобы скрыть гетерогенность и распределенную природу базового набора компьютеров. РС с промежуточным слоем требуют специфическую модель распределения и связи. Известные модели основаны на удаленном вызове процедур, а также на распределенных объектах, файлах и документах.


Литература к лекции 1

Таненбаум Э., М. ван Стеен. Распределенные системы. Принципы и парадигмы. – СПб: Питер. – 2003 г. – 880 c.

Схожі:

Тема Введение в распределенные системы iconВведение
Системы водоотведения малонаселенных мест и отдельно расположенных объектов
Тема Введение в распределенные системы iconДокументи
1. /Распределенные ИС.rtf
Тема Введение в распределенные системы iconНадежность 1 введение
В 1891 году на конкурсе нескольких винтовок во время полевых испытаний (испытаний на надежность), где был представлен и бельгийский...
Тема Введение в распределенные системы iconСписок литературы по курсу: Абрамович Г. Л. Введение в литературоведение. М., 1975. Берков П. Н. Введение в технику литературоведческого анализа. Л., 1976
Введение в литературоведение: Литературное произведение: Основные понятия и термины. – М., 1999
Тема Введение в распределенные системы iconКонспект по предмету: «Системы технологий в менеджменте»
Различные организационные уровни обслуживают четыре главных типа информационных систем: системы с эксплуатационным уровнем, системы...
Тема Введение в распределенные системы iconКонспект по предмету: «Системы технологий в менеджменте»
Различные организационные уровни обслуживают четыре главных типа информационных систем: системы с эксплуатационным уровнем, системы...
Тема Введение в распределенные системы iconЗавдання для самостійної роботи змістовий модуль 1 обучение грамоте как особая ступень овладения первоначальными умениями чтения и письма тема Введение. Теория и методика обучения русскому языку как наука. Науки о языке – основа его методики
Тема Введение. Теория и методика обучения русскому языку как наука. Науки о языке – основа его методики
Тема Введение в распределенные системы iconКонспект по предмету: «Системы технологий в менеджменте»
Системы создаются, чтобы обслужить эти различные организационные интересы. Различные организационные уровни обслуживают четыре главных...
Тема Введение в распределенные системы iconКонспект по предмету: «Системы технологий в менеджменте»
Системы создаются, чтобы обслужить эти различные организационные интересы. Различные организационные уровни обслуживают четыре главных...
Тема Введение в распределенные системы iconТематический план лекций по педиатрии (модуль 2) для студентов 5 курса международного медицинского факультета, на 2012-2013 учебный год № з/п Тема Кол-во часов
Модуль Заболевания новорожденных детей, болезни системы крови и эндокринной системы у детей
Тема Введение в распределенные системы iconИнструкция по поиску в PubMed (ПабМед) Пересмотренное и дополненное издание введение 2 Краткая характерисТика системы PubMed 3
Добавить документы к промежуточному файлу хранения информации (Send to: Clipboard) 28
Додайте кнопку на своєму сайті:
Документи


База даних захищена авторським правом ©zavantag.com 2000-2013
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації
Документи