Кратко

  • В статье 1987 года создатели Netlib описали автоматическую выдачу математического ПО по электронной почте. Вместе с запрошенной подпрограммой отправлялись другие подпрограммы, которые она вызывала.
  • Подготовка ответа опиралась на отбор, описания и связи между файлами. Обзор сентября 1995 года показывает, что некоторые точные настройки почтового запроса ещё отсутствовали в веб-интерфейсе.

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

В майской статье 1987 года Jack J. Dongarra и Eric Grosse описали почтовый сервис, который возвращал запрошенную подпрограмму вместе с вызываемыми ею частями кода. Пользователь указывал, что взять и в какой библиотеке искать. Ответ собирал нужные составляющие ещё до отправки.

Причина для такого сервиса была вполне земной. Математическое ПО часто распространяли большими комплектами на магнитной ленте. Исследователю могла понадобиться одна небольшая часть, но для её получения приходилось связываться с авторами, доставать носитель и разбираться с форматом, записанным на другой машине. У маленькой задачи появлялась внушительная хозяйственная часть.

Два сервера, представленные в статье, находились в Argonne National Laboratory и AT&T Bell Labs. Почтовые шлюзы позволяли доставлять запросы из других сетей. Можно было получить общий каталог, указатель отдельной библиотеки, поимённо выбранные подпрограммы или результаты поиска по ключевому слову. Заказ получал размер, соответствующий действительной потребности.

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

Знающий пользователь мог сделать заказ точнее: взять только названную подпрограмму, исключить одну ветвь вспомогательного кода или получить только имена файлов. Если часть уже была на месте, её можно было не заказывать снова. Сервис помогал собрать комплект, оставляя возможность уточнить его состав.

Некоторые пользователи предпочитали более человеческий стиль. Авторы рассказывали о вежливых письмах от людей, не понимавших, что обращаются к программе. Обработчик терпел небольшие отклонения, запрос в теме письма и даже цифру 4 вместо некоторых английских слов. Чуть-чуть обходительности не мешало работе. На свободную беседу он не подписывался — у него и без неё были файлы на отправку.

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

В частности, требовалось объяснять, что в ней лежит. Правила составления индекса, начатые в 1992 году, просили описывать решаемую задачу так, чтобы текст был понятен вне окружающей страницы. Поиск мог выдать одну запись отдельно. Знакомое автору имя файла само по себе мало помогало новому посетителю.

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

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

Смысл Netlib проявлялся в содержимом ответа. Пользователь называл интересующую его часть, сервис собирал вызываемые ею части. Одну и ту же поисковую работу переставали заново выполнять многие получатели. После письма можно было заняться вычислением, ради которого всё и началось.