This page is an archived copy on Gagin.ru personal site



4Internet - ежемесячное приложение к сети
АрхивРеклама в журналеКнига отзывов
FAQВыходные данныеОбратная связь






CDDB


CиDи, слушай, DобаBь в базу

Максим ТИГУЛЕВ
shelter@dataforce.net

Интернет создают люди с разными интересами и занятиями, поэтому в нем находят отражение всевозможные виды деятельности человека, его увлечения и пристрастия. Помимо гипертекстовых страниц, благодаря которым Интернет стал таким популярным, распространенных сервисов (FTP, E-mail, Gopher), существуют также различные службы, использующие протокол IP и доступные как через WWW (в этом случае ваш броузер становится удобным средством доступа к ним), так и через специальные программы.

Среди таких служб можно назвать:

и другие.

Эти службы в основном бесплатны, их поддерживают либо крупные известные компании, либо научные центры, либо специально созданные фирмы, получающие прибыль в основном за счет рекламы (например, в почтовых сообщениях www.usa.net ее хоть отбавляй).

Но есть службы, работа которых держится (как практически любое хобби) на энтузиазме создателей - это домашние странички пользователей (home pages) или, например, робот анекдотов на сервере Tomcat (win.tomcat.olly.ru/cgi-bin/AnecRobot). Если усилий авторов не хватает для создания хорошей службы (например, крупной базы данных), то на помощь приходит сетевое сообщество - все пользователи Сети, заинтересовавшиеся идеей и имеющие желание и возможность предоставить какую-то информацию.

Об одной из таких служб я и хочу рассказать. Возникла она благодаря идее тайваньского программиста Ти Кана (Ti Kan) - когда на приводе CD-ROM играет музыкальный компакт-диск, на экране монитора отображаются названия песен и альбома. Для этого требовалось объединить идентификаторы дисков и тексты в базе данных. Сначала такая база хранилась на локальном диске пользователя и, чтобы обновиться, должна была целиком загружаться с сервера. Со временем большие объемы файлов стали сильно затруднять процесс обновления, и база данных была вынуждена перейти на технологию клиент-сервер, в которой программа-клиент получала бы только те данные, которые ей нужны. Ти Кан попросил программиста Стива Шерфа (Steve Scherf) написать программу-сервер для обработки запросов по разработанному протоколу CDDBP (Compact Disk Data Base Protocol).

Информацию о нем можно найти на сервере www.cddb.com. Здесь имеется список часто задаваемых вопросов (FAQ), ссылки на программы-проигрыватели, поддерживающие CDDBP, статистика работы сервера CDDB, а также исходные тексты сервера для желающих сделать у себя такую службу.

Как устроена система CDDB? Вы вставляете диск в привод CD-ROM, программа считывает записанный на служебных дорожках 8-байтный идентификатор диска, подсчитывает число дорожек и время звучания диска в секундах, после чего ищет его сначала в локальной базе (на жестком диске), а потом, в зависимости от настроек, устанавливает telnet-соединение по 888 порту с сервером CDDB и запрашивает его о наличии в базе диска с такими же параметрами. При положительном ответе сервер передает данные программе, она записывает их на жесткий диск и выводит на экран. Некоторые из CDDB-серверов передают данные по протоколу HTTP - это сделано для удобства корпоративных пользователей, чьи сети защищены брандмауэром (firewall). Адрес сервера и тип протокола выбирается из списка, который содержится в настройках проигрывателя.

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

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

Результаты проверки получились впечатляющими: всего было проверено 60 "болгарских" дисков и 15 фирменных. Из фирменных не найдено 6, но отчасти это объяснимо, так как отсутствующие CD - либо классика (например Vivaldi, Four seasons), либо малоизвестные артисты (Roy Buchanan или Clark Duke), но, в то же время, почему-то не обнаружен альбом группы "Чингиз-Хан" - "Рим" (нелюбовь к немецкому языку?)

С "не фирменными" дисками дело обстояло гораздо интереснее: с легкостью фокусника сервер выполнял самые сложные с виду запросы, найдя даже многочисленные Greatest Hits и Soundtracks, которые, как мы думали, были совсем "левыми". Удачной оказалась также попытка найти диск Сергея Курехина (Sergey Kuryokhin - "Sparrow oratorium"); оригинал был выпущен не у нас, но кто-то поместил диск в базу, значит за границей слушают и наших авторов.

Система не нашла лишь 11 дисков, в большинстве своем "самодельные" сборники и Greatest Hits, не имеющие фирменных аналогов. Хотя последний диск Depeche Mode "Ultra" также не был обнаружен. Похоже, такой низкий процент отсутствующих дисков получается из-за того, что большинство "левых" дисков являются точными копиями фирменных. Так что одновременно CDDB - своеобразный способ проверить свой диск на "фирменность" - есть в глобальной базе, значит фирменный. Правда, добавлять новые диски в базу могу и я, и вы, и кто угодно, поэтому со временем, если про систему CDDB узнают наши люди, такой критерий может быстро потерять свою значимость, так как в базу совместными усилиями пользователей легко будут помещены просто все диски, существующие на рынке.

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

Экспериментально проверено, что русский алфавит система не понимает - была отправлена запись, но минут через десять пришло сообщение, что мой вклад в базу не принят из-за несовпадения кодировок. Лишь потом в списке часто задаваемых вопросов (www.cddb.com/faq.html) прочитал, что для базы намеренно, чтобы упростить программы, выбран только набор US-ASCII символов; главное - чтобы ни у кого никогда не возникло проблем с кодировками (не правда ли, весьма радикальное решение?)

Теперь о программах, поддерживающих CDDB. Список их можно посмотреть по адресу: www.cddb.com/software.html. Большинство из них условно бесплатные (shareware), но есть несколько просто бесплатных (freeware). Одну из таких бесплатных программ мы и рассмотрим. Называется она Notify CD Player и находится на сервере www.artech.se/~mlt/software/index.html. Если у вас не получится добраться до него из-за плохой связи, последняя версия этого проигрывателя будет лежать по адресу: ftp://lgm.uc.ru/incoming/maks/notify/. Здесь вы найдете три файла:

  • ntfycd121.zip - собственно проигрыватель;
  • n_cddb.zip - CDDB plug-in - позволяет связываться с серверами;
  • msvcrt40.zip - динамическая библиотека (DLL), необходимая для работы программы.

Для установки программы распакуйте все три архива во временный каталог, запустите Windows Explorer (Проводник) и, выбрав в нем файл ntfy_cd.inf, щелкните на нем правой кнопкой мыши, затем выберите пункт Install. В появившемся окне Options можете нажать OK - настроить проигрыватель можно и потом. Повторите то же самое для файла n_cddb.inf. В окне CDDB Options также нажмите OK. В процессе установки будет создан каталог \Program Files\NOTIFYCD\, и в него будут скопированы файлы ntfy_cd.exe и n_cddb.dll. Перенесите туда же файл msvcrt.dll, после чего запустите исполнимый файл ntfy_cd.exe. Программа спрячется на панели задач в виде изображения диска, управление осуществляется из меню, меню можно вызвать щелчком правой кнопки мыши.

Для работы с CDDB-серверами надо настроить plug-in. Выберите из меню пункт Options, а затем DB Options. (рис.3) В группе Remote database выберите имя любого сервера (такой есть и в Москве - cddb.sai.msu.su), в группе Local database укажите путь, куда складывать информацию о дисках. Если вы планируете принять участие в пополнении мировой базы CDDB, в группе E-mail information можете указать ваш электронный адрес и адрес почтового сервера. Не забудьте в группе Options поставить галочку напротив пункта Store changes in local database, чтобы сохранить то, что загружено с сервера, на жестком диске.

Для запроса сервера вставьте диск в привод, щелкните правой кнопкой мыши на значок программы, выберите пункт CD Info/Program, затем Internet DB и пункт Get from Internet (конечно, соединение должно быть установлено). Программа запрашивает сервер, и если диск найден в базе, считывает названия, отображая их в окне CD Information. Если такой диск не найден, в этом же окне можно самому описать его и отправить информацию, выбрав пункт Internet DB и Send to Internet. Обычно обработка вашего послания не превышает 24 часов (с учетом рассылки всем серверам).

Теперь немного статистики - она очень хорошо отражает эффективность международного сотрудничества - посмотреть ее можно на сервере www.cddb.com. Например, вы узнаете, что на 20 сентября 1997 года количество записей в базе составило более 100 тысяч, и что за тот же день было добавлено более 450 новых. Статистика работы за месяц свидетельствует о более 3500 ежедневных обращений к серверу, причем число успешных запросов (диск был найден в базе) превышает 80%. Можно сделать вывод, что сетевое сообщество - большая сила и, работая вместе, мы способны на очень многое.

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

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

Если же вы инженер-компьютерщик, интересующийся сетевыми технологиями, если вас увлекают интернет-службы, построенные на протоколе IP, то вы наверняка, прочитав эту статью, полезете искать Notify player, изучите его, несколько других программок, перепробуете все свои диски, пытаясь вытянуть из сервера их названия. Затем, возможно, попробуете зайти с помощью telnet на сервер CDDB через порт 888, чтобы получить от него приветствие и потребовать help (как это сразу сделал я). Выпьете пива за успех сетевого сообщества, а потом выкинете всю эту бодягу и, как и раньше, будете использовать стандартный cdplayer.exe, забыв про такую безделицу, как CDDB.

Автор выражает благодарность Игорю Прохорову за помощь в тестировании коллекции компакт-дисков.



Ваше имя:   E-mail:
Как вам материал?
Хороший   Так себе   Плохой
А длина?
В самый раз   Перебор   Слишком мало  
Ваше мнение:


АрхивСледующий материалКнига отзывов
К оглавлениюПредыдущий материалОбратная связь

Журнал "Интернет". Регистрационное свидетельство Госкомпечати РФ N. 016370 от 16.07.1997 г. Распространяется через сети розничной торговли, через компьютерные сети, а также путем подписки. Мнение редакции по тем или иным вопросам может не всегда совпадать с мнениями авторов. Редакция не несет ответственности за содержание рекламных материалов. Перепечтка или копирование запрещены, при цитировании ссылка на журнал "Интернет" обязательна.
Copyright © 1997 Журнал "Internet"
Copyright © 1997 Netskate
Netscate E-mail: imag@netskate.ru
Телефон: 245-45-84