Не посылай мне электронных писем,
я так боюсь лукавых килобайт...
Общие места
Жизнь современного общества в немалой степени зависит от существования надежных, удобных и быстрых средств передачи информации. Важным шагом в развитии подобных средств является внедрение электронной почты, которое, в свою очередь, невозможно без стандартизации "в международном масштабе".
В 1984 году были опубликованы рекомендации Х.400 Международного комитета по Телефонии и Телеграфии (МККТТ), ставшие физическим стандартом (точнее, одним из стандартов) в области электронного обмена сообщениями. Большинство крупных производителей аппаратного и программного обеспечения организовали реализацию систем, удовлетворяющих этим рекомендациям. Соответствующие продукты, хотя и по относительно высокой цене, доступны и на нашем рынке. В 1988 году, в рамках четырехлетнего цикла пересмотра рекомендаций МККТТ, стандарт Х.400 был подправлен и дополнен новыми важными функциями.
Здесь уместно сказать о двух подходах стандартизации, применяемых по разные стороны Атлантики. В рамках развиваемой в США технологии internet стандартом становится то, что доказало свою жизнеспособность и получило широкое распространение. Напротив, в Европе, по крайней мере в области компьютерных сетей, превалирует упреждающая стандартизация. Можно отпустить немало острот по поводу выработки стандартов на то, чего еще нет, вспомнить такие слова, как волюнтаризм и идеализм, однако применительно к электронной почте МККТТ удалось сформулировать весьма разумные рекомендации с достаточным идейным запасом, существенно превосходящие по мощности то, что привычно нам как пользователем почтовой сети RELCOM.
Немного терминологии
Область компьютерных сетей, как никакая другая богата замысловатыми и неудобоваримыми сокращениями. Достаточно буквально одной фразы, чтобы стала очевидной разница между сетевым асом и простым смертным. Автор хотел бы сразу же оговориться, что ни в коем случае не претендует на звание аса (хотя бы потому, что это бесполезно) и сделает попытку по большей части избежать специфической терминологии, отдавая предпочтение более понятным "обычным" словам.
Если пересылаемая информация предназначена для интерпретации человеком, говорят об электронной почте как об одном из приложений общего механизма управления сообщениями. Среди других возможных приложений - обмен электронными документами между компаниями с автоматическим включением переданных документов в деловой оборот.
- Надежность. Либо адресат получит сообщение без искажений, либо отправитель будет уведомлен о невозможности передачи.
- Асинхронность. Традиционные средства межперсональной связи - телефон, факс - являются синхронными в том смысле, что требуют одновременной активности обеих общающихся сторон. Если Вам позвонили по телефону, Вы должны оторваться от своих дел и уделить внимание собеседнику. Электронное управление сообщениями асинхронно в силу наличия средств промежуточного хранения пересылаемой информации - сообщение будет доставлено или передано дальше, когда для этого будет возможность. Иными словами, моменты отправки и получения сообщений могут быть разнесены во времени и, соответственно, отправитель и получатель не должны синхронизировать свои действия.
- Возможность передавать сообщения различных видов и размеров. С помощью электронной системы управления сообщениями можно передавать все, что допускает представление в цифровой форме - тексты, графику, звук (в частности, голос) и т.д. Подобная универсальность полезна, например, для страховых компаний, когда нужно переслать информацию об автомобиле, попавшем в аварию. Есть и интересные банковские приложения - опознание вкладчика по отпечатку пальца (палец выполняет роль кредитной карточки).
- Довольно высокая скорость. Сообщение внутри страны может быть передано за несколько минут, между странами - за несколько десятков минут.
Сейчас в мире распространено несколько систем управления сообщениями. Данная услуга предоставляется сетями ARPANET, BITNET, UUPC, USENET и др., суммарное число абонентов которых измеряется сотнями тысяч. Услуги подобного рода наверняка знакомы большинству читателей "Открытых систем" по контактам с почтовой сетью RELCOM. Почтовые системы на основе рекомендаций Х.400 пока имеют меньшее распространение. Так, у Европейской сети RARE, охватывающей 21 страну, "всего" около 20 тысяч абонентов. Однако с конца восьмидесятых годов количество реализаций рекомендаций Х.400, как и число пользователей почты Х.400 быстро растет во всем мире (даже в Америке).
Автор не будет пытаться сравнивать (или стравливать) различные подходы к электронной почте в попытках доказать, что все, кроме Х.400, плохие. Квалифицированный читатель сам увидит привлекательные черты Х.400 и сделает для себя надлежащие выводы.
Система управления сообщениями на основе рекомендаций Х.400 предоставляет два основных вида услуг:
- Передача сообщений. Здесь обеспечивается надежность и промежуточное хранение.
- Отправка и вручение сообщений. Здесь обеспечивается единый формат для сообщений с компонентами разных типов и, при необходимости, преобразование из одного типа в другой, например, преобразование факсимильного сообщения в текстовый файл или в растровый вид. Здесь же обеспечивается взаимодействие с некомпьютерными средствами передачи сообщений, такими как факс или телекс.
Система управления сообщениями Х.400 состоит из следующих сущностей:
- Агент пользователя (АП). Это прикладной процесс, обеспечивающий удобный интерфейс пользователя с системой управления сообщениями. АП помогает, в частности, составлять, отправлять, принимать архивировать сообщения. АП и, следовательно, пользователь, идентифицируется своим адресом, называемом адресом отправителя/получателя (О/П адресом).
- Система передачи сообщений (СПС). СПС обеспечивает транспортировку сообщений всех видов от АП отправителя до АП получателя. СПС содержит ресурсы для промежуточного хранения сообщений.
- Агент передачи сообщений (АПС). Это прикладной процесс, переправляющий приходящие ему сообщения адресатам - агентам пользователей или другим АПС.
Рекомендации Х.400 описывают протоколы взаимодействия между всеми компонентами системы управления сообщениями. Сообщение, передаваемое по почтовой сети Х.400, состоит из конверта и содержимого. Конверт включает сведения, необходимые для правильной доставки - адреса отправителя и получателя, тип содержимого, приоритет. Особо отметим поле "отложенного вручения". Оно содержит дату, раньше которой послание не должно попасть к адресату. Содержимое, в свою очередь, состоит из межперсонального заголовка, структура которого будет рассмотрена ниже, и тела. Тело может содержать разнотипные компоненты. Среди допустимых типов - текст, речь, факсимильное сообщение, графика, зашифрованная информация и другие. Таким образом, почта Х.400 - естественное средство общения между пользователями, работающими в среде MultiMedia. Ну а программисты могут обеспечить себя работой до конца жизни, занимаясь реализацией всех возможных преобразований между разнотипными компонентами.
Упомянем еще об одном важном приложении почты Х.400 - системе обмена электронными документами EDIFACT. Очевидно, что для подобных приложений годится только почтовая система, способная обеспечить обмен структурированными нетекстовыми обменами. Рекомендации Х.400 содержат достаточно понятий, чтобы поддержать пересылку произвольных формализованных документов. Видимо, развитие интеграционных процессов и широкое внедрение системы EDIFACT будут способствовать распространению почты Х.400 по крайней мере в деловых кругах.
По почтовой сети Х.400 передаются сообщения двух видов - пользовательские и системные. Последние могут содержать разные виды квитанций (например, о невозможности доставки) или носить текстовый характер (проверка связи).
Для удобства управления почтовое пространство Х.400 разбивается на области (домены). Различают области частного и административного управления. Последние принадлежат государственным телекоммуникационным компаниям. Запрещается связывать административные области через частные, то есть "командные высоты" должны оставаться в руках государственных компаний.
Обычно почта Х.400 надстраивается как услуга прикладного уровня над глобальными сетями с коммуникацией пакетов, следующими рекомендациями Х.25, однако в принципе эти два семейства рекомендаций независимы и транспортная среда может быть иной.
Структура сообщений
Согласно рекомендациям Х.400, адрес состоит из следующих компонентов:
- Двухбуквенное название страны (например, RU для России или BY для Белоруссии(.
- Имя административной области управления (например, ROSNET).
- Имя частной области управления.
- Название организации и, быть может, структурных подразделений, где работает адресат.
- Имя и фамилия адресата.
Три последних адресата необязательны, но по крайней мере один из них должен быть задан. Кроме того, могут заданы атрибуты, специфичные для области частного управления, что позволяет адресоваться в рамках сетей, имеющих другую (не Х.400) структуру.
Многие компоненты сообщения Х.400, в том числе и адрес, хранятся и передаются в нетекстовом виде. Тем не менее, в иллюстративных целях приведем текстовый эквивалент допустимого Х.400-адреса:
Страна: RU Область административного управления: ROSMAIL Область частного управления: RTS Название организации: Russian Business Ventures Фамилия: Ivanov Имя: Peter Инициалы: PS Поколение: III
В почте Х.400, разумеется, имеется такое удобное средство, как списки рассылки. Когда пользователь отправляет письмо, он, конечно же, не вводит адреса получателей вручную. Обычно АП предоставляет структурированный список возможных адресатов и пользователь просто указывает на нужные элементы. Элементом списка может быть целая группа адресатов, или список рассылки. Списки рассылки могут быть вложенными. Реализация списков рассылки сопряжена с некоторыми техническими трудностями (например, нужно следить, чтобы при раскрытии списка не возникло бесконечной рекурсии), однако трудности эти, конечно же, преодолимы.
Рассмотрим структуру межперсонального заголовка. Это поможет проиллюстрировать возможности Х.400 для обмена сообщениями в рамках различных приложений.
Межперсональный заголовок состоит из следующих полей:
- Уникальный идентификатор сообщения. Позволяет пресекать кражу и дублирование сообщений.
- Отправитель. Здесь может стоять О/П адрес или имя в свободной форме.
- Список заверивших - аналог подписей под бумажным документом.
- Основные адресаты. Ожидается, что основные адресаты должны как-то отреагировать на сообщение.
- Получатели явных копий.
- Получатели тайных копий - отличаются тем, что другие адресаты не информируются о наличии тайных копий.
- "В ответ на". Это поле определяет предыдущее сообщение, явившееся причиной написания данного.
- "Считать недействительным". Определяет сообщения, которые данное послание делает недействительными.
- Ссылки. Определяет предыдущие сообщения, на которые ссылается данное.
- Тема. Данное поле содержит краткую формулировку темы сообщения. Обычно отображается в первую очередь при поступлении нового сообщения. Тема в сочетании с тремя предыдущими полями позволяет по архивированному сообщению получить представление о нем и о посланиях, с ним связанных.
- "Срок годности". Определяет дату, после которой сообщение теряет смысл. По истечении срока сообщение может быть уничтожено.
- "Ответить до". Задает срок, до которого должен быть отправлен ответ на послание. АП может информировать пользователя, если подошел срок отвечать на послание.
- "Кому отвечать". Содержит перечень лиц, которым должен быть отправлен ответ. Если перечень лиц состоит из адресов (а не из имен в свободном формате), появляется возможность сразу отослать ответы всем заинтересованным лицам.
- Степень важности. Имеет три градации. Агент пользователя может по-особому отображать сообщения каждого типа.
- Степень конфиденциальности. АП может принять свои меры для сохранения конфиденциальности, например, пересылать секретные послания только в зашифрованном виде.
Отправитель сообщения может заказать (и получить) набор квитанций, удостоверяющих прохождение послания - это квитанции об отправлении, доставке и прочтении. В результате отправитель может доказать третьей стороне, что адресат на самом деле получил его послание, а получатель может доказать, что отправитель в определенное время направил ему сообщение определенного содержания.
В структуре сообщения Х.400 нашли отражение многие понятия, типичные для учрежденческой практики. Это позволяет сравнительно просто и естественно встраивать почту Х.400 в системы автоматизации учреждений различной направленности.
Do You speak English, или плач Ярославны
Как всегда, когда решается задача обмена информацией, встает вопрос об используемой кодировке символов кириллицы. В принципе в Х.400 имеется такая универсальная отдушина, как национально- определенный тип компонентов тела, однако очевидно, что для нормальной переписки кодировка должна быть унифицирована. Стандартным для текстовых компонентов является международный алфавит 5(IA5), который, естественно, русских букв не содержит и, более того, семибитен. В некоторых отечественных реализациях принято волевое решение дополнить его старшей половиной альтернативной кодовой таблицы - шаг мужественный, но не очень стандартный.
Можно назвать еще приблизительно тридцать три симптома тяжелого положения с кодировкой русских символов. Во-первых, среди прочих международных стандартов имеется стандарт 8859/5 на кодировку кириллицы, который не совпадает ни с чем, что имеет хождение у нас в стране. Во-вторых, для кодировки темы сообщения в Х.400 используется еще один алфавит, Т.61, который не просто не содержит русских букв, но использует для служебных целей три символа с кодами 0х8В, 0х8С и 0х9В, что, очевидно, конфликтует с альтернативной кодировкой и приводит к необходимости договариваться еще по одному пункту. В третьих... может и вправду все наши беды от Кирилла и Мефодия?
О рекомендациях Х.500
Адрес отправителя/получателя в Х.400, длинный и неструктурированный, ни в коей мере нельзя считать дружественным. Следовательно, необходимо иметь службу, которая по легко запоминаемым именам могла бы играть роль справочной системы, в которой хранится не только адрес, но и другая информация об объектах (не только людях).
Ограничимся одним примером. При использовании методов шифрования с открытыми ключами (см. статью А.Н.Лебедева "Открытые системы для "закрытой" информации" в летнем номере "Открытых систем" за 1993 год), ключ шифровки должен быть известен всем, кто направляет конфиденциальные послания данному адресату. Наиболее естественно хранить этот ключ в элементе базы данных, что в принципе позволяет автоматизировать техническую сторону подготовки шифрованных писем.
В общем виде служба Х.500 представляет собой распределенную базу данных имен и адресов. Над этой базой определяются операции трех видов:
- Чтение. По известному имени получить адрес.
- Запрос. По известным атрибутам получить имя.
- Модификация. Добавляется/удаляется/модифицируется запись базы данных.
Легко перечислить операции, однако гораздо труднее реализовать всемирно распределенную базу данных, состоящую из тысячи узлов, поддерживающую себя в самом свежем, согласованном и корректном состоянии и надежно защищенную от несанкционированных действий. В настоящее время ясны далеко не все аспекты реализации (скажем, какой должна быть мера оптимального дублирования информации в узлах, чтобы сочетать быстрый доступ с простотой модификаций), что не мешает, однако, создавать системы, по крайней мере частично решающие поставленные задачи и пригодные для практического использования. Как говорится, глаза боятся, а руки делают. Так, NetWare версии 4.01 предоставляет NetWare Directory Services (NDS) - единый для всех файл-серверов каталог сетевых ресурсов, следующий рекомендациям Х.500.
Рассмотрим видимы пользователю операции более подробно. Чтение можно подразделить на три подвида:
- Чтение в чистом виде. Возвращаются заказанные атрибуты объектов. Например, можно запросить электронный адрес человека с заданным именем.
- Сравнение. Возвращается логическое значение, показывающее, обладает ли объект с данным именем заданным значением определенного атрибута. Подобная операция полезна, например, для проверки пароля. В этом случае база данных имен будет играть роль центральной регистрационной конторы, а человек сможет выполнять нужные ему действия по существу с любого компьютера, оказавшегося под рукой. Как говорится, "Сейчас, мужчина, я отпущу Вам батон, только запрошу Центр по поводу отпечатков Ваших пальцев".
- Прекращение операции чтения. Поскольку база данных имен является сильно распределенной, операции над ней могут занимать много времени. Если по какой-либо причине результат заказанного ранее чтения стал не нужен, полезно иметь возможность "отменить заказ".
Операция поиска подразделяется на два подвида. При рассмотрении этих подвидов следует иметь в виду, что вся база данных мыслится как информационное дерево, для спуска по ветвям которого используются так называемые относительные различительные имена (коротко говоря - имена, уникальные в определенном контексте - поддереве или уровне поддерева).
- Выдать атрибуты непосредственных преемников определенного элемента информационного дерева. Можно задать фильтр, который пропустит только интересующих нас преемников. Многократное применение данной операции позволит совершить обход информационного дерева.
- Поиск объектов с заданными атрибутами в пределах поддерева (а не только среди непосредственных преемников некоторого элемента). Очевидно, эта операция может сопровождаться обращением к удаленным системам, так как любое поддерево, вообще говоря, может быть рассредоточено по нескольким компьютерам.
Операция модификации подразделяется на четыре подвида:
- Добавление объекта к базе данных.
- Удаление объекта из базы данных. Операции двух названных подвидов по понятным причинам применимы только к концевым элементам (листьям) информационного дерева.
- Собственно модификация. При этом могут меняться не только значения атрибутов, но и добавляться новые атрибуты объектов, в информационное дерево могут быть вставлены синонимы имен объектов. По поводу синонимов нужно сказать следующее. Каждый физический объект, информация окотором хранится в базе данных имен, описывается ровно одним логическим объектом, то есть на уровне объектов дублирование информации отсутствует. Это понятно, поскольку в противном случае поддержание базы данных в непротиворечивом состоянии резко усложняется. В то же время каждый человек обычно выступает в нескольких ипостасях (как частное лицо, как служащий определенного учреждения или обладатель определенной профессии и т.п.), так что естественно иметь у объекта несколько имен (москвич Петр Иванов, системный программист Петр Иванов и т.п.). В результате информационное дерево, строго говоря, превращается в ациклический граф.
- Изменение относительного различительного имени концевого элемента информационного дерева (мама вышла замуж и сменила фамилию). В принципе данная операция представляется малоудачной, поскольку весьма неприятно, когда корректные имена, по которым успешно производился поиск, превращаются в некорректные.
Рассмотрим теперь, как связаны между собой рекомендации Х.400 и Х.500. Видимо, почтовые системы Х.400 в ближайшее время будут главными потребителями информационных услуг Х.500. В версии рекомендаций Х.400 1988 года проведено явное различие между именами отправителей/получателей и их адресами, что, очевидно, предполагает наличие справочной службы. Почтовой системе естественно обратиться к базе данных при интерпретации списка рассылки. Далее, два агента передачи сообщений могут удостовериться в "личности" друг друга путем обращения к справочной службе. Последний пример интересен тем, что предполагает наличие справочной службы. Почтовой системе естественно обратиться к базе данных при интерпретации списка рассылки. Далее, два агента передачи сообщений могут удостовериться в "личности" друг друга путем обращения к справочной службе. Последний пример интересен тем, что предполагает хранение информации о программных системах и использование этой информации для нужд программных систем. Наконец, агент пользователя почты Х.400 может предоставлять прямое соединение со справочной службой для поиска информации, интересующей отправителя, что может уменьшить число пробных сообщений и посланий с неправильными адресами и тем самым снизит нагрузку на систему передачи сообщений.
Система R400 Русской Коммерческой Инициативы
В настоящее время в России имеют то или иное хождение по крайней мере пять реализаций почтовых систем, следующих рекомендациям Х.400. Мы опишем одну из них - систему R400, принадлежащему акционерному обществу Русская Коммерческая Инициатива.
R400 является многофункциональной почтовой системой, позволяющей обмениваться сообщениями не только в рамках почтовой сети Х.400, но и по факсу, телексу. В ней реализованы шлюзы с почтовыми сетями Novell MHS, REMART и RELCOM. В результате пользователям системы R400 доступны по существу все виды электронных коммуникаций, но стержнем и понятийным базисом является почта Х.400.
Система R400 состоит из двух основных программных компонентов - рабочей станции и контроллера сообщений. Рабочая станция, наряду с почтовыми, предлагает широкий спектр пользовательских услуг - средства планирования и анализа рабочего времени, текстовый процессор, базы данных имен и адресов, архивную подсистему, оболочку для управления файлами и ряд других. В результате R400 следует рассматривать как автоматизированное рабочее место служащего, снабженное выходом в рабочие сети. Это очень важное достоинство R400.
На контроллер сообщений возложено обслуживание всех видов почтовой связи. Он реализован как многопроцессорная программная система и допускает сравнительно простое пополнение новыми видами почтовых услуг.
В комплект поставки системы R400 входит плата для подключения к сетям Х.25.
Интерфейс системы R400 скрывает от пользоватлея особенности различных почтовых сетей. В результате отправка письма сразу по нескольким адресам с помощью различных видов почты выглядит не сложнее, чем рассылка по сети Х.400. Правда, системный администратор должне затрачивать определенные усилия для пополнения базы данных имен и адресов.
Составление письма из компонентов различных типов в R400 выглядит как присоединение файлов к головной (текстовой) части послания. Поскольку R400 может обмениваться информацией любого вида с внешними приложениями (например, можно импортировать в R400 текущее содержимое экрана внешней программы), отправитель имеет по существу полную свободу при формировании сообщения.
Большинство реализаций почты Х.400 выполнены в рамках операционной системы UNIX, что вполне естественно, учитывая саму природу мощной почтовой системы. Кстати, в ближайшее время рабочее место почты Х.400 станет стандартным для большинства версий ОС UNIX.
Система R400 функционирует в рамках MS-DOS (точнее, в среде NetWare). В принципе это можно рассматривать как аномалию, и во многом так оно и есть. То, что в среде ОС UNIX является нормой жизни, для MS-DOS - зачастую научная проблема. Например, авторам R400 пришлось реализовать собственное операционное ядро, чтобы поддержать программную архитектуру с разделением времени между несколькими процессами. Однако в условиях известных глобальных аномалий, которым подвержено наше компьютерное общество, специфика R400 из недостатка становится немаловажным достоинством. И рабочая станция, и контроллер сообщений, и дополнительная сетевая плата согут быть установлены на любой персональный компьютер с 640 Кб оперативной памяти и несколькими свободными мегабайтами на локальном жестком или сетевом диске. То есть с точки зрения потенциальных клиентов R400 значительно доступнее, дешевле и проще в эксплуатации, чем другие почтовые системы. Когда еще на каждом столе будет стоять UNIX-компьютер...
Следует также учитывать, что Русская Коммерческая Инициатива в значительной степени контролирует сеть РОСНЕТ и реально может предоставить надежную и быструю связь с любым регионом России (гораздо более надежную и быструю, чем связь по коммутируемым телефонным линиям). На приведенном ниже рисунке показана структура стандартного почтового узла сети РОСНЕТ.
Можно предположить, что у системы R400, как и вообще у почтовых сетей Х.400 и информационных служб Х.500, хорошие перспективы.