YaCy

YaCy (від англ. Yet another Cyberspace , Ще одна Кіберпростір; співзвучно з англ. Ya see ) - вільно поширювана Пошукова система, побудована за принципом однорангових мереж (P2P). Основний програмний модуль, написаний на Java, функціонує на декількох тисячах комп'ютерів (станом на 2011 рік) учасників мережі YaCy. Кожен учасник проекту незалежно досліджує Інтернет, аналізуючи і індексуючи знайдені сторінки і складає результати індексування в загальну базу даних (так званий індекс), який спільно використовується всіма користувачами YaCy за принципом P2P.

На відміну від частково розподілених пошукових систем, мережа YaCy характеризується децентралізованою архітектурою. Всі вузли еквівалентні і відсутній центральний сервер. Програма може працювати в режимі пошукового робота або в якості локального проксі-сервера, індексуючи сторінки, відвідувані користувачем (при цьому ігноруються сторінки з ознаками персональних даних - cookies і т. п.).

Доступ до функцій пошуку забезпечується за рахунок локально запущеного веб-сервера, який генерує пошукову сторінку з полем для введення пошукових запитів і повертає результати пошуку в тому ж форматі, що й інші популярні пошукові системи.

Програма розповсюджується під ліцензією GPL. Проект підтримує європейське відділення фонду вільного програмного забезпечення (FSFE). [1]

Проект YaCy був заснований Міхаелем Крістеном ( ньому. Michael Christen ) В 2003 році.


1. Переваги та недоліки

1.1. Переваги

  • Спільний пошук може бути здійснений з YaCy практично завжди: завжди є частина мережі, яка буде доступна.
  • Інтернет-користувачі пошукача YaCy незалежні від компаній, їх рейтингу (який треба заробити) і їх цензури.
  • Програмне забезпечення з відкритим вихідним кодом, яке розповсюджується за ліцензією GNU GPL і є безкоштовним.
  • При використанні проксі-сервера клієнта, він може просканувати сторінки з глибокої павутини або неіндексованих мереж загального користування (таких, як I2P), які не можуть бути проіндексованими звичайними павуками, такими як у Google, Yahoo або Bing.
  • YaCy не обов'язково пов'язаний з участю в громадському YaCy-кластері і може, таким чином, бути використаним в якості пошукової системи в приватних мережах (таких, як внутрішня мережа компанії) або в приватних пошукових сервісах (та індексах) певної групи сторінок.

1.2. Недоліки

  • Спамери, теоретично, можуть запускати свої вузли, що повертають спам в якості результату. Тому клієнт має функцію перевірки сторінок на наявність шуканого тексту. [2]
  • Через те, що YaCy необхідно зв'язатися з іншими вузлами для запиту, і через згаданої вище (необов'язковою) перевірки достовірності результатів, пошук займає більше часу, ніж у традиційних пошукових системах. [2]
  • Протокол YaCy організований з використанням індивідуальних HTTP -запитів, що тягне за собою великі затримки, ніж при використанні UDP або TCP з постійним підключенням.
  • У громадській мережі "freeworld" для пошуку по Всесвітній павутині в даний час представлено відносно мало "активних" "старших" вузлів (що зберігають накопичений пошуковий індекс і відповідають на пошукові запити від інших вузлів), і вони можуть видати відносно небагато результатів у порівнянні з великими пошуковими машинами. На один вузол доводиться до декількох десятків мільйонів записів, тому їх повне переміщення між вузлами займає значний час, і різке вимикання або додавання значної кількості вузлів може тимчасово погіршити якість мережі для деяких пошукових запитів, як це сталося після випуску версії 1.0 в листопаді 2011 року, коли кількість учасників швидко збільшилося приблизно до 4000 [2] або 1000 [3] (пізніше воно дещо зменшилася, залишившись в кілька разів більшим, ніж до випуску версії 1.0). Чим більше вузлів знаходиться в мережі, тим менше даних зберігається на кожному вузлі щодо розміру індексу, і тим менше вплив на мережу зміни кількості вузлів. На початку березня 2012 року "активними" були близько 1/6 одночасно працювали вузлів.

2. Програма

Ядро пошуку відрізняється від інших пошукових систем - це не центральний сайт, а комп'ютерна програма, яка працює в різних операційних системах. Пошук ведеться на локальному веб-сайті, який працює за допомогою встановленої програми. Відображення результатів зазвичай відбувається у вигляді веб-сторінки.

У поєднанні з додатковими P2P-системами використовується проксі, який автоматично індексує відвідані сторінки. Індексування не виробляється в тих випадках, коли дані передаються через GET або POST, або ж використовуються куки (cookies) або HTTP-аутентифікації (наприклад, сторінки входять в певну Запаролених зону). [4] Тим самим гарантується, що дійсно індексуються тільки доступні для громадськості дані.


3. Інші функції

  • YaCy забезпечує всіх користувачів проксі-функцією, яка дозволяє також підключаться до інших вузлів за адресою ІМЯУЗЛА.yacy або ІМЯХЕША.yacyh. www.ІМЯУЗЛА.yacy може бути головною сторінкою користувача, під share.ІМЯУЗЛА.yacy знаходиться файлообмінник, а ІМЯУЗЛА.yacy це стандартний інтерфейс доступу. Інші піддомени можуть бути спеціально створені шляхом створення папки з ім'ям піддомену. Динамічний DNS не підтримується.
  • Крім. Yacy- домену, YaCy надає можливість створювати домашню сторінку і папки, які можуть бути пов'язані з поточним IP або адреси динамічного DNS і доступні для не YaCy користувачів.
  • YaCy має вбудовану функцію передачі повідомлень за допомогою якої можна відправляти текстові повідомлення (з форматуванням вікі), і, в залежності від настройки приймача, а також надсилати файли.
  • YaCy має вбудовані вики і блог.
  • Є управління закладками, які можуть бути загальнодоступними і особистими.
  • Є можливість внесення окремих областей в чорні списки.
  • Є OpenSearch -інтерфейс. Кожен вузол забезпечує доступність його за адресою http:// <адреса-вузла>: <порт-вузла> / opensearchdescription.xml, наприклад http://sciencenet.fzk.de:8080/opensearchdescription.xml

4. Технологія

Програма заснована на веб-сервері, який також є кешує - проксі. Користувач веб-сервера може отримати доступ до оболонки пошуку і управління своїм власним вузлом. Проксі має загальний код зі сканером, а це значить, що всі відвідані через нього сторінки, які не є особистими, за замовчуванням автоматично записуються в індекс. Крім того, YaCy надає власний домен в YaCy-мережі, який доступний через проксі-сервер.


4.1. Розподілений індекс

На відміну від файлообмінних сервісів результати P2P-пошуку повинні бути доступні негайно. Щоб досягти цього YaCy використовує розподілену хеш-таблицю (DHT). Це означає, що всі розпізнані програмою URL -адреси і слова відправляються до вузлів, які підходять для зберігання відповідних контрольних сум слів, вузлів або посилань. При пошуку все працює навпаки: пошук відбувається тільки по вузлах, відповідним для зберігання хешів URL-адреси для цього слова.

Таким чином, для отримання хороших результатів необхідно задіяти тільки частину вузлів.


4.2. Типи вузлів

Мережа YaCy складається з чотирьох різних типів вузлів:

Новачок
Ці вузли не можуть бути знайдені, тому що новачок не має зв'язку з мережею. Таким чином, ви бачите тільки себе, якщо вузол новачок.
Молодший
Вузол знаходиться за файрволом. Інші відносять його до молодших або потенційним вузлам, [5] вони бачать тільки останній його запит і у них немає способу визначити, чи знаходиться він досі в мережі.
Старший
На старший можна потрапити зовні і він є повноправним членом мережі YaCy. У статистиці мережі працюють в даний момент старші вузли називаються активними, непрацюючі - пасивними. [5]
Головний
Старший, який вивантажує список сідів, використовуваний для початкового з'єднання з іншими вузлами.

4.3. Протокол

Протокол YaCy складається з текстових сервлетов, які забезпечує вбудований веб-сервер за адресою / yacy / servletname.html. Інші вузли передають дані через GET-параметри і отримують відповідь у вигляді простого тексту, точний формат відрізняється для сервлетов.

4.4. Початкова завантаження

При початковій завантаженні вузол намагається зв'язатися з іншими вузлами YaCy-мережі. Спочатку шукаються списки вузлів. Перший адресу в superseed.txt служить для завантаження стійких YaCy-вузлів. seeds.txt є також посиланнями на інші вузли, таким чином встановлюється контакт з YaCy-мережею. Наступного разу, коли ви запускаєте YaCy, gebootstrapt створюється із відомих з попереднього разу вузлів мережі і списки вузлів буває необхідні тільки коли більшість старих посилань більше не доступні.

Література

  • M. Christen: Peer-to-Peer: Eigenes Suchportal mit Yacy einrichten in iX 02/2008, S. 102 ff.
  • M. Schlenker: Gemeinsam Gegen Google In OpenSource, 01/2007, November 2006, S. 94-97
  • J. Bager: Europische Gegenstrmung in c't, 2006/10, 2. Mai 2006, S.172-174 (Onlinetext)
  • R. Sietmann: Wider die Monokultur. P2P-Strategien gegen die Suchmaschinen-Monopolisierung. In c't, 2005/16, 25. Juli 2005, S.52-53 (Onlinetext)
  • M. Schwarze: Jedermanns Suchmaschine in: HAZ (Artikel als PDF 107 kB)
  • Michael Christen: YaCy - Peer-to-Peer Web-Suchmaschine in Die Datenschleuder, # 86, 2005, S.54-57 (gesamtes Heft als PDF 1,7 MB)

Примітки

  1. Web Search By The People, For The People: YaCy 1.0 - fsfe.org/news/2011/news-20111128-01.en.html
  2. 1 2 3 YaCy Bugfix Release 1.01 With New Community Contributions - blog.yacy-websuche.de/2011/12/07/yacy-bugfix-release-1-01-with-new-community-contributions /
  3. Огляд мережі - www.yacystats.de / network, overviewyear.html
  4. Uk: Privacy - YaCyWiki - www.yacy-websearch.net/wiki/index.php/Uk:Privacy
  5. 1 2 / Network.html