
Ответы на вопросы upd / Воп_ сети2012 не кратко upd
.pdfслужба DNS-сервера использует добавочную передачу зоны для репликации только измененной части зоны, что улучшает пропускную способность сети.
Разрешение имен узлов, состоящих из одного DNS-имени, без использования WINS
Служба DNS-сервера поддерживает зону глобальных имен GlobalNames для хранения имен с одним DNS-именем, то есть имен, которые не содержат имени родительского домена (например .com). В сетях, где не используется служба WINS, такая зона предоставляет возможность разрешения имен, состоящих из одного DNS-имени, для ограниченного набора централизованно управляемых серверов с фиксированными IP-адресами.
-Active Directory («Активные директории», AD) — LDAP-совместимая реализация службы каталогов корпорации Microsoft для операционных систем семейства Windows NT. Active Directory позволяет администраторам использовать групповые политики для обеспечения единообразия настройки пользовательской рабочей среды, разворачивать программное обеспечение на множестве компьютеров через групповые политики или посредством System
Center Configuration Manager (ранее Microsoft Systems Management Server),
устанавливать обновления операционной системы, прикладного и серверного программного обеспечения на всех компьютерах в сети, используя Службу обновления Windows Server. Active Directory хранит данные и настройки среды
вцентрализованной базе данных. Сети Active Directory могут быть различного размера: от нескольких десятков до нескольких миллионов объектов.
Active Directory поддерживает следующие форматы именования объектов: универсальные имена типа UNC, URL и LDAP URL. Версия LDAP формата именования X.500 используется внутри Active Directory.
Каждый объект имеет различающееся имя (англ. distinguished name, DN). Например, объект принтера с именем HPLaser3 в подразделении «Маркетинг» и
вдомене foo.org будет иметь следующее различающееся имя: CN=HPLaser3,OU=Маркетинг,DC=foo,DC=org, где CN — это общее имя, OU —
раздел, DC — класс объекта домена. Различающиеся имена могут иметь намного больше частей, чем четыре части в этом примере. У объектов также есть канонические имена. Это различающиеся имена, записанные в обратном порядке, без идентификаторов и с использованием косых черт в качестве разделителей: foo.org/Маркетинг/HPLaser3. Чтобы определить объект внутри его контейнера, используется относительное различающееся имя: CN=HPLaser3. У каждого объекта также есть глобально уникальный идентификатор (GUID) — уникальная и неизменная 128-битная строка, которая используется в Active Directory для поиска и репликации. Определѐнные объекты также имеют имя участника-пользователя (UPN, в соответствии с RFC 822) в формате объект@домен.
-Файловая система
-DIB (SMTP) (в лекциях есть, в нете нет) – именование организаций, приложений…
91
32. Распределенные файловые системы. Распределенные системы документов.
Что такое распределенные файловые системы?
Способность совместно использовать диски, каталоги, и файлы по сети это одно из наиболее значительных достижений современных информационных технологий. Эта способность может существенно сократить требования к дисковому пространству компьютеров и облегчить совместную работу пользователей. Компьютеры с Microsoft Windows и MacOS Apple / MacOS X
используют для этого механизм совместного использования дисков и директорий. В системах Linux / Unix для тех же самых задач традиционно используется NFS сетевая файловая система.
NFS это самый известный механизм совместного доступа к файлам для Linux и других Unix-систем, потому что он присутствует во многих Unixподобных системах и очень прост в настройке. NFS поддерживается ядром Linux, и утилиты, связанные с NFS, присутствуют в каждом дистрибутиве. Но в мире Linux существуют и более современные механизмы для совместного использования файлов и каталогов. Каждый из них имеет определенные преимущества в настройке или в использовании.
Распределенная файловая система OpenAFS (http://www.openafs.org/) это Open Source-аналог известной коммерческой распределенной файловой системы AFS. Поддержка для распределенных файловых систем InterMezzo
(http://www.inter-mezzo.org/) и Coda (http://coda.cs.cmu.edu/) уже присутствует в новых ядрах Linux из серии 2.4. Новые механизмы совместного использования файлов, основанные на Web (например, WebDAV (http://www.webdav.org/) ),
тоже могут использоваться в качестве файловых систем.
В этой статье дается краткий обзор преимуществ распределенных файловых систем, обсуждаются самые распространенные проблемы и их решения, и описываются самые интересные из распределенных файловых систем, доступных для Linux сегодня.
Введение в распределенные файловые системы.
Сейчас сетевые файловые системы называют <<распределенными>>. Этот термин отражает тот факт, что многие из этих файловых систем имеют гораздо больше возможностей, чем простая передача данных по сети. Носители данных, связанные с этими файловыми системами, не обязательно могут быть расположены на одном компьютере они могут быть распределены между многими компьютерами.
Распределенные файловые системы OpenAFS и Coda имеют собственные механизмы управления разделами, которые упрощают возможности хранения общедоступной информации. Они так же поддерживают дублирование способность делать копии разделов и сохранять их на других файловых серверах. Если один файловый сервер становится недоступным, то все равно к данным, хранящимся на его разделах, можно получить доступ с помощью имеющихся резервных копий этих разделов.
Самое главное различие между подходом Windows / MacOS (совместное использование каталогов и дисков) и подходом Linux, MacOS X и других Unixподобных многопользовательских операционных систем в том, как эти операционные системы используют и организовывают разделы. Windows / MacOS экспортируют разделы как отдельные каталоги или диски, и удаленные
92
системы, которые хотят обратиться к общедоступным устройствам, должны обязательно подключить их к себе.
Когда самый высокий уровень организации в файловой системе это раздел диска (например, как в файловых системах Windows), рабочие станции клиентов для получения доступа к этим данным должны обязательно подключиться к разделу и назначить ему отдельную букву в своей локальной раскладке (например, диск E, F, G, и т.д). Буквы могут быть назначены сетевым разделам в пользовательских и групповых профилях Windows (для стандартизации). Но, к сожалению, не на всех компьютерах расположение букв может быть одинаковым. Например, на компьютере с большим количеством жестких дисков и разделов нужные буквы могут быть заняты, и поэтому придется давать сетевым разделам другие обозначения.
Напротив, файловая система Unix это иерархическая файловая система, к которой дополнительные разделы добавляются с помощью монтирования их к существующей директории. Это позволяет эффективно добавить любой источник данных в любую существующую файловую систему. Если вы монтируете новый источник информации к каталогу, являющемуся частью распределенной файловой системы, он сразу же становится доступным всем клиентам этой распределенной системы.
Современные распределенные файловые системы типа OpenAFS или Coda включают в себя специальные сервисы для управления разделами. Это позволяет вам смонтировать разделы различных файловых серверов в центральную иерархию директорий, поддерживаемую файловыми системами. OpenAFS использует центральный каталог, называемый <</afs>>, а Coda использует <</coda>>. Эти иерархии директорий доступны всем клиентам распределенной файловой системы, и выглядят одинаково на любой из клиентск х рабочих станций. Это дает возможность пользователям работать со своими файлами одинаково на любом компьютере. Если ваш настольный компьютер не работает, вы совершенно спокойно можете использовать любой другой все ваши файлы находятся в безопасности на сервере.
Распределенные файловые системы, предоставляющие одни и те же данные многим различным компьютерным системам, дают пользователям возможность использовать любую операционную систему, лучше всего подходящую для их задач. Пользователи Macintosh могут пользоваться всеми преимуществами графических инструментальных средств, доступных в Mac OS, и одновременно хранить свои данные на централизованных файловых серверах. Пользователи Windows так же могут иметь доступ к устойчивой глобальной файловой системе. Распределенные файловые системы особенно привлекательны при попытке координации работы между группами, расположенными в различных городах, государствах, или даже в разных странах. Преимущество общие данные всегда доступны по сети, независимо от вашего местонахождения.
Проблемы администрации распределенных файловых систем. Использование распределенных файловых систем дает системным
администраторам не только новые возможности, но и новые проблемы. Но распределенные системы способны упростить многие из стандартных административных задач. В сетевой среде пользователи должны иметь возможность зайти в сеть под своим именем с любого компьютера. Это значит, что механизм входа в сеть (или аутентификации) тоже должен быть сетевым. Поэтому в среде распределенной файловой системы файлы групп и паролей, расположенные на индивидуальных компьютерах, вторичны по отношению к
93
сетевым механизмам аутентификации (таким, как Kerberos или NIS, которые предоставляют пользователям возможность работать на любом компьютере). Но стандартные локальные механизмы проверки пароля все же должны существовать, чтобы администраторы могли выполнять на локальных компьютерах необходимые задачи. Сохранение общих данных на централизованных файловых серверах (а не на индивидуальных компьютерах) упрощает такие административные задачи, как резервирование и восстановление файлов и каталогов. Это так же централизует такие стандартные административные задачи, как контроль за использованием файловой системы, и представляет новые возможности управления хранением данных например, балансирование загрузки.
Распределенные файловые системы типа OpenAFS и Coda обеспечивают встроенные логические системы управления разделами, которые дают администраторам возможность переместить интенсивно используемые данные на более мощные или менее используемые компьютеры. Если распределенная файловая система поддерживает дублирование, копии интенсивно используемых данных могут распределяться между многими файловыми серверами. Это может уменьшить нагрузку на сеть, и облегчить работу серверов. Распределенные файловые системы используют логические разделы вместо физических дисковых разделов, и это позволяет легко добавить в сеть новую свободную память прямо во время работы. (Для добавления нового диска в локальный компьютер пришлось бы потратить некоторое время).
Использование распределенных файловых систем так же облегчает возможность совместного доступа к программному и аппаратному обеспечению. Но перед этим нужно удостовериться, что лицензии к используемым программам разрешают установку программного обеспечения в распределенной файловой системе. Сервера печати одна из первоначальных причин появления среды <<клиент-сервер>>. Распределенные файловые системы так же упрощают совместный доступ к специализированным аппаратным средствам, соединяясь по сети с компьютером, на котором установлены нужные аппаратные средства, и при этом все еще имея доступ к вашим данным.
Использование централизованной распределенной файловой системы может обеспечивать существенные преимущества в стоимости и быстродействии выполнения работы для клиентских систем. Распределенные файловые системы существенно уменьшают аппаратные затраты, минимизируя количество памяти на любом десктопе или ноутбуке. Использование распределенной файловой системы в качестве архива для пользовательских данных обычно означает более быструю загрузку клиентских машин, потому что большое количество данных больше не хранится локально и поэтому не нуждается в проверке после перезапуска клиента. Комбинация распределенной файловой системы и использования журналируемых файловых систем на клиентских компьютерах может дать значительное увеличение скорости запуска системы.
Поддержка автономной работы с данными.
Использование распределенной файловой системы увеличивает зависимость компьютерных систем от сети. Эта зависимость от данных, к которым люди могут обращаться только по сети, вызывает некоторые интересные проблемы для пользователей лаптопов/мобильных компьютеров, которые нуждаются в доступе к своим данным даже тогда, когда доступ к сети
94
невозможен. Это называется <<автономная работа>> система должна функционировать, если ресурсы, которые обычно присутствуют в сети (например, пользовательские данные), по каким-то причинам не доступны. Даже Windows обеспечивает графический интерфейс для возможности маркировки файлов, с которыми вы хотите работать, когда вы отключены от сети, и для синхронизации этих файлов, когда вы соединяетесь повторно.
Распределенные файловые системы Coda и InterMezzo, которые являются в настоящее время доступными для Linux, тоже обеспечивают интегрированную поддержку для автономной работы. Так же сейчас ведется работа над обеспечением этой возможности для файловых систем NFS. Coda и InterMezzo уже поддерживаются ядром Linux поддержка Intermezzo встроена в ядро, начиная с версии 2.4.5, а Coda вообще была интегрирована в ядро 2.4 с самого начала.
Coda распределенная файловая система с происхождением из OpenAFS, которая разрабатывается в университете Carnegie Mellon с 1987 года. InterMezzo относительно новая распределенная файловая система, упор в разработке которой сделан на высокой доступности, гибком дублировании каталогов, поддержке автономных операций, и постоянном кэшировании. Создатели InterMezzo были вдохновлены CMU Coda, но этот проект не основан на исходном тексте Coda. Начальный создатель InterMezzo, Питер Браам, был главой проекта Coda в CMU в течение нескольких лет, и после этого он сам начал разрабатывать InterMezzo и несколько других проектов.
Расширение файловых систем с помощью Web.
До создания распределенных файловых систем совместное использование файлов через сеть ограничивалось простыми передачами файлов с помощью использования протокола передачи файлов FTP (File Transfer Protocol). Появление Всемирной паутины в значительной степени упростила процесс работы с FTP теперь не нужно знать команды, потому что протокол FTP интегрирован в большинство броузеров. Способность легко передавать файлы через Web также вела к расширению Паутины и существенному улучшению основного протокола передачи гипертекста
HTTP (HyperText Transfer Protocol), который сейчас является основанием для многих систем распределенного использования файлов.
Самая известная из них это WebDAV, которая расшифровывается как <<Web-система распределенной авторизации и контроля версий>> (Web-enabled Distributed Authoring and Versioning). WebDAV это набор расширений к протоколу HTTP, обеспечивающий совместную среду для пользователей, которая позволяет им скачивать, упорядочивать и редактировать файлы, хранящиеся на Web-серверах.
Поддержка WebDAV встроена во многие популярные Web-серверы, например Apache, где это основывается на опознавательных механизмах сервера. (От простых файлов .htaccess до интегрированных NIS, LDAP, или даже механизма аутентификации Windows). Использование WebDAV для доступа и модификации файлов через Web встроено в операционные системы
Mac OS X, в новые версии Microsoft Internet Explorer, а так же доступно и в
Linux при использовании таких приложений, как менеджер файлов Nautilus. Хотя это и не файловая система в традиционном смысле, но вы можете даже смонтировать WebDAV в Линуксе, используя загружаемый модуль ядра под названием davfs.
95
WebDAV обеспечивает такие стандартные для распределенных систем возможности, как блокировка файлов, создание, переименование, копирование, удаление файлов, а так же поддерживает такие продвинутые возможности, как meta-данные файла (более подробная информация о файле заголовок, тема, создатель, и т.д). В ближайшем будущем WebDAV будет включать интегрированную поддержку управления версиями, которая упростит работу многих пользователей над общими файлами, отслеживая изменения, авторов этих изменений, и другие аспекты общего использования документа. Эти возможности контроля над версиями обеспечиваются в соответствии с протоколом DeltaV, который активно разрабатывается Рабочей группой DeltaV (http://www.webdav.org/deltav) подразделением Проектировочной группы Интернета (IETF Internet Engineering Task Force). Некоторые проекты, например, Subversion (http://subversion.tigris.org/) (WebDAV и DeltaV-
основанная замена стандарту CVS), уже доступны в альфа-версии. Subversion обеспечивает систему контроля над версиями и сохранение архива файла на основе базы данных, имеющей API языка C, и моделирует версионную файловую систему, легко доступную через Web.
96
33.
97
34. Понятие компонента. Компонентные технологии
Термин компонент в ИТ-отрасли используется для обозначения различных понятий. Во-первых, можно выделить аппаратные (hardware components) и программные компоненты (software components).
Термин программный компонент (ПК) используется для обозначения 2-х связанных, но разных понятий. Если речь идет о программной архитектуре, то обычно под компонентом подразумевается программный модуль, реализующий некоторую функцию или набор функций и решает определенные подзадачи в рамках общих задач, решаемых системой. Это те компоненты, которые могут быть изображены на диаграммах компонентов (component diagram) в языке UML. Если речь идет о компонентных технологиях программирования или компонентно-ориентированной (component based) разработке программного обеспечения (ПО), то под ПК понимают объекты со специальными свойствами.
Вдальнейшем термин компонент будет употребляться во втором смысле.
Вэтом случае понятие ПК выступает в качестве в качестве ключевого для определения понятия таких понятий как компонентно-ориентированное программирование и компонентно-ориентированный подход к проектированию ИС.
Согласно [21], ПК представляет собой структурную единицу программной системы, обладающую четко определенным интерфейсом, который полностью описывает ее зависимости от контекста.
ПК представляет собой откомпилированный автономный программный модуль, который можно объединять с другими модулями или кодом, организованным другим способом с целью создания приложений. ПК могут быть как простыми, таким как кнопка или сложным, таким как компонент, реализующий управление сетью.
Чаще всего под ПК понимают откомпилированный «двоичный компонент», который можно интегрировать в приложение «на лету». При работе с компонентами исходный код обычно недоступен и поэтому компонент нельзя изменять. Под данное определение подпадают, в частности, динамические библиотеки.
Компонентно-ориентированное приложение обычно состоит из множества компонентов. Само приложение представляет собой некоторую среду, включающую средства «склеивания» или скелетный код, в который можно встраивать ПК, которые могут взаимодействовать со средой и операционной системой и друг с другом. Изменение интерфейса ПК приводит к изменению его кода, но изменение способа реализации не обязательно приводит к изменению интерфейса.
ПК можно рассматривать и как пакет, ориентированный на повторное использование кода, который можно приобрести у независимого производителя.
У некоторых авторов ПК – это элемент системы, который обладает явно определенной функциональностью и может быть заменен на другой ПК. И, наконец, ПК можно определить как физическую реализацию некоторого набора интерфейсов.
Из сказанного выше понятно, что не существует общепринятого определения понятие компонента, которое позволило бы определить, что является и что не является компонентом.
ПК можно рассматривать с трех точек зрения:
реализуемой функциональности;
реализации;
98
исполняемого кода.
Впервом случае речь идет об описании ПК в терминах реализуемых сервисов. Для этого обычно используются языки определения интерфейсов. Во втором случае описывается внутреннее устройство ПК. Для этого можно использовать, например, диаграммы классов. В третьем случае описывается функционирование ПК с учетом специфики платформы.
Возникает естественный вопрос о том, как соотносятся понятия ПК и объект. На данный вопрос имеются разные точки зрения. Крайние точки зрения выглядят следующим образом. Одна точка зрения состоит в том, что ПК – это объект со специальными свойствами. Другая – в том, что ПК и объект – это разные сущности, компонент не является объектом и представляет собой самостоятельную сущность. Наличие различных точек зрения определяется, с одной стороны, отсутствием общепринятого определение понятия ПК, а, с другой стороны, наличием разных различных компонентных технологий, которые существенно отличаются друг от друга с точки зрения используемых моделей компонентов.
Безусловно, ПК и объекты имеют много общего, но имеются и отличия. Концептуально объект представляет собой элемент модели реального мира,
который имеет уникальный идентификатор и описывает некоторый класс сущностей. Объект имеет состояние, которое хранится во внутренних переменных. Поведение объекта описывается через множество доступных методов. Состояние объекта может изменяться только посредством вызова его методов. На базе конкретного класса можно создавать произвольное число объектов. Объект может взаимодействовать другими объектами посредством вызова методов объекта-сервера, причем один и тот же объект может выступать как в качестве клиента, так и в качестве сервера.
Как ПК, так и объекты, поддерживают инкапсуляцию и доступ через «хорошо определенные интерфейсы». Обычно как объекты, так и ПК поддерживают «сильную» инкапсуляцию, при которой доступ к переменным (атрибутам) возможно только с использованием методов объектов. Как объекты, так и компоненты являются моделями объектов реального мира. Очевидно, что для моделирования объектов могут использоваться как объекты, так и ПК. Часто принято считать, ПК – это большие объекты, однако с этим трудно согласиться, поскольку объекты могут быть большими, а компоненты маленькими.
Типовой ПК обладает следующими свойствами:
представляет собой фрагмент самодостаточного кода, т. е. для его функционирования не требуется наличия дополнительные библиотек;
является самоустановливаемым модулем, который может быть включен в состав системы, исключен из ее состава или заменен на другой модуль, например, принадлежащий другому производителю, при минимальном участии пользователя;
может повторно использоваться в различных контекста;
при работе с ПК используются механизмы динамического связывания;
можно объединять с другими ПК с целью создания более крупных
ПК;
пользователи используют ПК преимущественно по принципу черного ящика, т.е. пользователю известны только интерфейсы, но не внутренняя структура системы.
99
ПК может быть независимо поставлен или не поставлен, добавлен в состав некоторой системы или удален из нее, в том числе, может включаться в состав систем других поставщиков.
ПК можно определить как фрагмент самодостаточного, самоустанавливаемого кода, обладающий хорошо определенной функциональностью и имеющий четко определенные интерфейсы. ПК могут агрегатироваться с другими компонентами в более сложные системы. Компоненты и системы компонентов могут повторно использоваться в различных контекста. Пользователи используют компоненты преимущественно по принципу черного ящика, т.е. пользователю известны только интерфейсы, но не внутренняя структура ПК.
На основе выщеизложенного можно говорить о следующих основных различиях между компонентами и объектами.
-как ПК, так и объекты ориентированы на повторное использование кода, однако объекты ориентировано преимущественно на повторное использование на низком уровне, а ПК – на высокоуровневое повторное использование кода;
-ПК в большей степени ориентированы на интерфейсы, чем объекты;
-ПК разрабатываются в рамках конкретного фреймворка, а объекты в рамках конкретного языка программирования;
-объекты тесно связаны с конкретным языком программирования в то время как ПК в явном виде не связаны с конкретным языком программирования, но связаны с платформой, а платформа может быть связана
сконкретным языком, например, JEE связана с Java.
Обычно объекты не являются автономными модулями, которые можно легко заменить на другие объекты, поскольку они, как правило имеют вложенные объекты, для выполнения процедуры замены объекта обычно требуется перекомпилировать приложение, а для замены компонента часто оказывается достаточным поместить файл, в котором находится исполняемый код, в заданное место и отредактировать конфигурационный файл [22].
Для функционирования ПК, как правило, необходимо наличие соответствующей инфраструктуры, которая позволяет компонентам находить друг друга и взаимодействовать по определенным правилам. Набор правил, определяющих интерфейсы ПК и их реализаций, а также правил, по которым ПК работают в системе и взаимодействуют друг с другом, называют компонентной моделью (component model) [23]. В компонентную модель входят также правила, регламентирующие жизненный цикл ПК. Взаимодействовать друг с другом могут только ПК, построенные в рамках одной модели.
Для работы ПК необходим некоторый набор базовых служб (basic services), которые обеспечивают, например, нахождение компонентов, в распределенной среде, обеспечение обмена данными через сеть.
Набор таких базовых, необходимых для функционирования большинства компонентов служб, вместе с поддерживаемой с их помощью компонентной моделью называется компонентной средой (или компонентным фрейворком, component framework).
Компонентные технологии можно рассматривать как одну из фаз развития технологий разработки распределенных систем, при этом можно выделить следующие основные фазы (Рис. 4.1):
сокеты;
вызов удаленных процедур;
системы распределенных объектов;
100