|
|
Cлужба обмена новостямиСистема UseNetInternet-сообщество уже много лет пользуется системой тиражирования объявлений, рекламы, сообщений и другой информации. Всю подобным образом тиражируемую информацию называют новостями — "news". Новости делятся на группы новостей — "newsgroups". Группы новостей организованы в определенном порядке, основанном на распределении дискуссий по темам, например, отдых, спорт, новости, информация, религия и др. Внутри каждой из этих групп может быть до нескольких тысяч подгрупп, которые, в свою очередь, обладают такой же иерархической структурой. Принцип этой организации подобен структуре размещения каталогов и подкаталогов на жестком диске. Всё множество групп UseNet разбито на несколько больших категорий. Вот основные, считающиеся "официальными": Biz - бизнес; Comp – вычислительная техника; News - новости общего характера; Rec - развлечения, хобби, отдых; Sci - наука; Soc – социальные темы; Talk – с ориентацией на дискуссию; Alt – альтернативные взгляды; Misc – всё остальное. К примеру, группа, обменивающаяся информацией об отдыхе (recreation), использует ключ гес для построения иерархии более низкого уровня, такой как rec.arts, rec.games, rec.pets, rec.sports, rec.travel и т. д. Каждая из подгрупп, например, rec.pets, может быть, в свою очередь, разделена на более мелкие подгруппы, например, rec.pets.dogs, rec.pets.cats и др. Так организованные группы новостей позволяют пользователям, имеющим общие интересы, обмениваться новостями, отправлять свои статьи и отвечать на заметки других пользователей, обмениваться иллюстрациями и программным обеспечением для просмотра статей этой группы и т. п. Топологически, UseNet представляет собой направленный граф. Каждый узел графа будет обозначать хост системы, а каждое ребро — путь передачи статей от одного хоста к другому. UseNet можно представить себе как множество подсетей, по каждой из которых передаются статьи определенной конференции. Большинство соединений устроено таким образом, что статьи UseNet могут передаваться в обе стороны, однако, на практике, передача осуществляется только в одном направлении. Механизм передачи статей заключается в следующем. Предположим, что какое-либо сообщение попадает в конференцию на одной машине, например, оно поступило от пользователя. Это сообщение принимается данным хостом в локальную базу данных и передается всем его соседям, которые "подписаны" по крайней мере на одну из конференций, к которой относится данная статья. Этот процесс будет продолжаться до тех пор, пока все хосты подсети данной конференции не будут располагать этой статьей. Каждое ребро графа UseNet можно соотнести с идентификатором конференции, тогда отношение "подписки" топологически можно изобразить так: хост А "подписан" на конференцию хоста В, если между А и В существует ребро графа, принадлежащее подсети данной конференции. Примечание Иногда удается построить централизованную систему дискуссий на основе распределенной сетевой файловой системы. Безусловно, такой вариант будет хорошо работать, но только в однородной среде, когда все участники дискуссий имеют подобное аппаратное и программное обеспечение. Важной частью алгоритма передачи новостей системы UseNet является предотвращение зацикливаний. Например, если хост А отправил статью хосту В, то хост В может, в свою очередь, отправить эту же статью обратно хосту А и т. д., поскольку передача статей может происходить как в одну, так и в другую сторону. Одним из решений этой проблемы является отслеживание истории прохождения хостов данной статьей. Так, каждый хост, при. прохождении через него статьи, фиксирует уникальный номер сообщения (Message-ID). Если сообщение с тем же номером приходит на хост еще раз, оно уже не принимается. Другой способ предотвращения петель состоит в фиксировании пути внутри самого сообщения. То есть сообщение никогда не будет отправлено на хост, зафиксированный в определенном поле заголовка статьи (Path). Способы тиражирования сообщений Широко используются два основных метода тиражирования сообщений:
Серверы новостейПрограммное обеспечение хоста, который предоставляет пользователям возможность работать с хранящимися на нем статьями и управляет доступом к новостям и обновлением статей, называется сервером новостей. Используя протокол NNTP, серверы новостей обмениваются между собой статьями новостей. Механизм NNTP позволяет серверам новостей выбирать, какие статьи читать и передавать на другие серверы. Алгоритм работы с системой серверов новостей заключается в следующем. Клиент, инициирующий отправку, проверяет, существует ли на сервере группа новостей — конференция (Newsgroup), к которой относится данная статья, после чего она отправляется. Затем клиент запрашивает список новых статей, поступивших на сервер, на основании которого он может запросить новые статьи. В завершение, клиент сообщает серверу о тех статьях, которые он уже имеет, для того, чтобы сервер не отправлял эти статьи клиенту, как новые, если они поступят еще раз. Для небольшого количества пользователей идеальной схемой построения обмена новостями была бы структура, состоящая из одного News-сервера и пользователей, обращающихся к нему для отправки или получения новых статей. В системах с большим количеством клиентов, например, масштаба университета или крупного предприятия, необходимо использовать так называемые промежуточные серверы новостей — intermediate news server. Такой промежуточный сервер работает к каждом домене сети организации и отвечает за обеспечение посреднических действий между своими клиентами и главным News-сервером. В его обязанности, например, входит кэширование новых статей для подписчиков на данные конференции внутри домена. Для работы с UseNet клиент такой сети сначала соединяется со "своим" промежуточным сервером и читает размещенные на нем статьи новостей. Если сервер оказывается неработоспособным или у него нет требуемых статей, программное обеспечение может обратиться на более высокий уровень иерархии сервера новостей. Пользователи крохотных сетей, состоящих из нескольких компьютеров и не имеющих возможности или целесообразности устанавливать свой промежуточный сервер, как правило, обращаются к серверу, обслуживающему большее количество дискуссий или имеющему более доступный канал соединения. Статья новостей, попавшая на один из серверов, основной или промежуточный, должна быть разослана всем участникам данной дискуссии. Обязанность тиражирования статей между собой целиком лежит на серверах UseNet. Для обмена сообщениями между серверами, а также для доступа к серверам используется протокол NNTP. |
|
|