Вільні комунікації

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

Типові інтернет-додатки — це електронна пошта, WWW, обмін «швидкими повідомленнями» («інтернет-пейджинг») і ін. системи, що розгортаються звичайно в глобальному масштабі.

Основною тенденцією останнього десятиліття стало поступове витіснення спеціалізованих локально-мережевих низькорівневих протоколів і заміна їх інтернет-протоколами (TCP/IP). Навіть протоколи, спеціально розроблені для персонально-комп'ютерних систем і використовувані в успадкованих мережах, такі, як AppleShare або NETBIEU, можуть сьогодні розгортатися поверх TCP/IP. На відміну від мереж Інтернет, що створюють співтовариство з єдиною нумерацією і єдиним іменуванням комп'ютерів, локальні TCP/IP-мережі, відокремлені від Інтернету, називають інтранет.

Підтримка TCP/IP на мережевому і транспортному рівнях вперше реалізована в ОС BSD і реалізована в сучасних ОС на рівні ядра12. На рівні ядра звичайно — з міркування ефективності — реалізуються і такі, наприклад, сервіси, як екранування (firewalling) трафіку. Протоколи вищого рівня реалізуються у вигляді системних або прикладних сервісів.

Локальні мережі

NFS. У відкритих ОС локально-мережева функціональність традиційно реалізується в рамках концепції Мережевої файлової системи NFS. NFS дозволяє надавати каталоги для віддаленого монтування і вмонтовувати (тобто робити частиною локальної файлової системи) їх віддалено. Оскільки з погляду стандартної ОС будь-який пристрій представлений файлом, цього достатньо не тільки для спільної роботи з каталогами, але і надання доступу до принтерів, стрічкових накопичувачів і іншого устаткування.

БД і доступ до них. Так само традиційно складніша семантика мережевих взаємодій (для яких файлове представлення даних і файлові операції тягнуть дуже великі витрати), упроваджувалася за допомогою баз даних спільного доступу і спеціальних протоколів доступу до них, таких, як DAP (X.500) або його спрощена і популярніша версія LDAP. LDAP входить в постачання практично всіх дистрибутивів вільних ОС і широко використовується в сучасних системах, але поки в основному для вирішення адміністративних завдань.

SMB і його розширення. У персонально-комп'ютерних системах більший розвиток одержав альтернативний підхід, що спирається на концепцію обміну блоковими повідомленнями (SMB), що розроблявся спочатку корпорацією IBM, на основі якого компаніями Novell, Microsoft і іншими були розроблені сімейства локально-мережевих протоколів високого рівня, на жаль, не стандартизованих і переускладнених. Складніша семантика обміну блоковими повідомленнями спричиняє за собою і складніший аудит безпеки побудованих на його основі систем, тому використання SMB і його розширень в серйозних додатках обмежене.

Тим не менш, існує сучасна авторитетна і дуже ефективна вільна реалізація SMB і (частково) його пізніших розширень, що називається SAMBA (http://www.samba.org). SAMBA входить в постачання практично будь-якого дистрибутиву вільних ОС. SAMBA дає можливість надавати в сумісний доступ каталоги, а також принтери і інші пристрої і діставати до них доступ, що дозволяє розгортати складні гетерогенні мережі, які включають, крім стандартних ОС, також успадковані системи на основі Microsoft Windows і Novell OS.

SAMBA припускає використання специфічних локально-мережевих протоколів, таких як IPX або NETBIOS, лише поверх TCP/IP, що, хоч і спричиняє за собою деякі витрати, але дозволяє помітно підвищити надійність системи за рахунок застосування власних засобів забезпечення безпеки TCP/IP (екранування, а при необхідності і шифрування і аутентифікацію трафіку).

Пакет SAMBA доступний як для відкритих ОС, так і для ряду альтернативної архітектури (включаючи Microsoft Windows NT). Детальніше функціональність SAMBA в цих лекціях розглядатися не буде.

Інтернет

Серверна і інфраструктурна складова міжмережевих цифрових комунікацій — традиційне застосування для вільного ПО. У цій лекції ми не занурюватимемося в організацію локальних мережевих служб, WWW-серверів і т.п., хоча це важлива і потрібна в школі тема, вона не має прямого відношення до предмету шкільної інформатики. Нижче слідує огляд деяких вільних клієнтських програм, що реалізовують сучасну мережеву функціональність сесійного, презентативного і прикладного рівня.

Пакет Mozilla

Серед маси вільних клієнтських програм, пов'язаних з мережевою функціональністю, за обмеженістю друкарського об'єму зупинимося на проекті Mozilla.

Mozilla є вільним користувацьких прикладним пакетом, що реалізовує інтерфейси перегляду WWW (браузер), електронної пошти і новин USENET, багатокористувацьких діалогів у реальному часі IRC і редагування сторінок WWW (компонувальник). Програми, що входять в пакет, таким чином, відкривають доступ до всіх найбільш популярних застосувань Інтернет (окрім, на сьогодні, «швидких повідомлень»). Істотною сильною стороною Mozilla є практично незмінна функціональність і ергономіка на широкому спектрі платформ, включаючи як стандартні (MACOS X, GNU/Linux, Solaris, Irix, HPUX, BSD/OS і ін.), так і альтернативні (MacOS 9, Microsoft Windows, BEOS, OS/2) операційні системи на більшості апаратних платформ.

Злегка модифікована версія Mozilla 1.x також розповсюджується організатором розробки — компанією AOL Time Warner. Компанія AOL придбала три роки назад компанію Netscape. проект Mozilla прототипувався на ранніх розробках цієї компанії — Netscape Navigator і Netscape Communicator, що були, у свою чергу, розвитком першого графічного WWW-браузера NSCA Mozaic. — під назвою Netscape Navigator 6.x і 7.x.

Російська локалізація Mozilla виконана Валентиною Ванєєвой, Вадимом Вініченко і Сергієм Дегтяревим.

Базова функціональність Mozilla

Браузер. Для перегляду сторінок WWW и ходіння по FTP-серверах призначений компонент Navigator. На панелі компонент Mozilla он відображається морським штурвалом (див. рис. 1).

Всі можливості програми доступні з меню, найчастіше вживаним відповідають також «гарячі клавіші» і кнопки панелі навігації. Під меню — ще одна панель, яку можна набудувати по своєму бажанню (частіше всього, на неї виносяться посилання на десяток самих відвідуваних сторінок), ще нижче — вікно для відображення гіпертекстової інформації з відвідуваних сторінок. Замикає вікно рядок стану з панеллю компонент зліва і службовими піктограмами справа. З яким би компонентом ви не працювали в даний момент, завжди можна запустити будь-який інший кнопкою з відповідним значком з панелі компонент або з пункту меню «Вікно». З пункту меню «Створити...» ви можете, крім того, відкрити ще одне вікно перегляду або вкладку (вкладка — це вікно у вікні. Ідея використовувати вкладки в основному вікні браузера вперше була реалізована в браузері Opera. Будьте обережні: почавши їх використовувати, ви навряд чи потім задовольнитеся браузером, що не підтримує такої можливості.) вже відкритого вікна, на різних вкладках ви можете проглядати різні сторінки з одного сайту або різні сайти. Це дозволяє не захаращувати екран і панель задач вікнами одного додатку і відразу бачити, де закачування сторінки вже завершилося, а де ще ні.

З пункту меню «Файл» можна також відкрити будь-який локальний html-файл або каталог (або файл іншого відомого Навігатору формату, наприклад, графічний або текстовий), однією командою переслати поштою адресу вподобаної сторінки або навіть всю сторінку, зберегти сторінку на жорсткому диску або надрукувати на принтері.

Програма веде облік сторінок, які ви відвідали («Перейти... Журнал відвідин»). Це зручно для швидкого повернення на вже відвідану сторінку. Скільки проглянутих адрес і на який час програма їх зберігатиме, можна вказати в загальному вікні настройок.

Як і в інших браузерах, ви можете вести структуровану базу закладок на вподобані сайти і редагувати параметри кожної закладки, зокрема, міняти назви і робити позначки на спомин: а чим же зачепила вас саме ця сторінка. Навігатор може передати запит на пошук інформації на вказані пошукові машини, дає можливості управління заповненням форм і блокування зображень (це зручно для відсікання реклами з численних баннерных мереж) і cookies конкретних сайтів, заборони появи вікон, що вискакують.

Напевно, найцікавіша особливістю програми — «бічна панель» (Sidebar). Розміщена в лівій частині всіх вікон, вона значно полегшує роботу. На неї можна вивести безліч корисної інформації. Наприклад, ви можете набудувати її так, щоб відразу при запуску програми, бачити свіжі новини з улюблених сайтів новин, всі свої закладки у вигляді дерева, мати доступ до своїх улюблених пошуковців або ще що-небудь, що самі придумаєте.

Пошта. Електронна пошта змагається з WWW за почесне звання головного комунікаційного додатку. Існує маса вільних програм для роботи з поштою, і серед них — модуль Мозілли «Пошта і новини». Відкрити його можна, натиснувши кнопочку із зображенням конверта, чи вибравши відповідний пункт меню «Вікна».

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

Ви можете відповідати на листи, переадресовувати одержане комусь ще, посилати і одержувати потрібні файли. Коли потрібно бути упевненим в особі відправника і недоторканності листа, скористайтеся інтеграцією з GPG, вільною реалізацією популярного формату OPENPGP, що забезпечують електронний підпис і шифрування повідомлень. У поштовій скриньці можливий пошук по темі, відправнику, словам в самому листі, даті, пріоритету, адресатам, датам або комбінації цих параметрів — це вистачить, щоб не загубитися в своїй поштовій скриньці. Можна мати декілька поштових скриньок на різних серверах і працювати з ними в одному вікні.

Головне вікно програми поділено чотири части. Зліва вгорі — список поштової скриньок, під ним бічна панель. Справа вгорі — список листів у вибраній теці, під ним — текст вибраного повідомлення. Багато з них можна тимчасово заховати, щоб звільнити місце для інших віконець. І тут доступна бічна панель зі всіма її можливостями.

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

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

У цій ситуації вам на допомогу прийде «Компонувальник», що сховався за кнопкою з листком і пером для листа. Викликавши його, ви зможете швидко і без занурення у вивчення стандарту створити просту сторінку в режимі візуального редагування. Як в word-процесорі, просто пишете текст, вставляєте таблиці і малюнки і відразу можете бачити, що у вас виходить. Більш того, заглянувши на інші вкладки вікна Компонувальника, можна ще і підучити HTML. У цьому допоможуть вкладки «Всі теги» і « Код». Перевірити, як ваша робота виглядатиме у вікні проглядання Navigator, можна на останній вкладці. Головне перевага цього інструменту перед багатьма схожими полягає в створенні правильного HTML коду без зайвих і нестандартних тегів, тому рекомендую його як перший інструмент початківця (зрозуміло, для створення серйозних проектів вивчення стандартів W3C обов'язково).

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

Адресна книга. У міру того, як збільшується коло ваших знайомих, пам'ятати всі необхідні адреси стає все важче, але на допомогу приходить адресна книга програми. Кожного разу, коли ви пишете лист новому адресату або одержуєте лист від нового відправника, цей компонент програми запам'ятовує його адресу. Далі, коли ви починаєте заповнювати поле «кому» нового листа, він намагається завершити набір за вас. Якщо адреса вгаданий правильно, можна просто переходити до заповнення решти полів. Коли програма помилилася, можна вибрати відповідну адресу з випадного списку або завершити набір самостійно.

Зовнішній вигляд вікна Адресної книги достатньо типовий: знову, спершу меню, потім панель інструментів і основное вікно з панеллю стану. Основное вікно поділено чотири части, деякі з яких можна ховати. Зліва — назви колекцій адрес вгорі і бічна панель під ними. Справа — список карток вибраної колекції разом з панеллю пошуку по ним вгорі, і вікно для відображення інформації з вибраної картки внизу. Записи для кожної картки редагуються з потреби. Настройки. Мозілла — пакет не тільки могутній, але і дуже гнучкий в настройці. Всі доступні параметри настройок зібрані в одному вікні — дерево доступних настройок поділено на категорії відповідно до наявних програм плюс декілька загальних.

У загальній категорії «Зовнішній вигляд» настроюється використання шрифтів для кожної кодової сторінки, що відображаються при запуску вікна Мозілли, використання кольорів, мова інтерфейсу.

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

Назва групи «Приватність і безпека» говорить саме за себе. Кількість доступних в ній настройок, говорить про те, наскільки відповідально розробники віднеслися до цього питання. Пропоную вам розібратися з нею самостійно.

Регулювати зовнішній вигляд вікна програми і ступінь «свіжості» сторінки у вікні перегляду, вам дозволять пункти меню «Вигляд». Звідси можна заборонити або вирішити показ кожного з компонентів вікна програми, підібрати розмір шрифту на сторінці, змінити, якщо потрібно, кодову сторінку для показу тексту, побачити початковий код сторінки і одержати інформацію про сторінку на якій зараз знаходитеся.

Mozilla: як це зроблено

Можливо, цікавішим буде загальний погляд на «начинку» Mozilla, оскільки ця тема залишається поки практично нерозкритою в публікаціях російською. А саме цікавими внутрішніми архітектурними рішеннями і можливостями, які вони відкривають для програмістів, обумовлена перспективність і затребуваність цього проекту.

«Двигун» Gecko. Власне інтерпретацію («рендеринг») гіпертексту і гіпермедіа в браузері і компонувальнику здійснює «двигун» під назвою Gecko («гекон», «ящір»). Сам по собі «двигун» компактний і швидкий. Він використовується також рядом альтернативних браузерів, таких, як Galeon, Aphrodite і Phoenix; перший з них, достатньо розвинений і «спритний», може рекомендуватися користувачам старих або малопотужних (наприклад, кишенькових) машин.

Мова XUL. Мабуть, найцікавішою особливістю Mozilla є реалізація інтерфейсу користувача на мові XUL, що є XML-додатким, тобто набір визначень вигляду і поведінки візуальних об'єктів, властивих сучасним графічним інтерфейсам користувача, на розширюваній мові розмітки XML (про XML і його інтегруючу ролі в сучасних додатках комп'ютера докладніше говорилось в лекції 1).

У більшій своїй частині програми Mozilla «написані для XUL» і інтерпретуються «на льоту». Зворотною і неприємною для користувача стороною цього залишається значна ресурсоемність Mozilla і розмір пакету. Базова установка займає близько 30 Мб і комфортна робота в більшості середовищ починається від 128 Мб ОЗУ і 500 Мгц процесора.

«Світлою» стороною XUL'ности Mozilla є його надзвичайна гнучкість, що, мабуть, дозволить вже найближчими роками «малою кров'ю» істотно розширити набір вхідних в пакет програм і практично повністю покрити ними клієнтські додатки Інтернет.

На рисунку видно, що по спеціальному протоколу chrome можна просто відкрити в браузері ще один браузер (чи будь-який інший компонент пакета), при чому це не просто зображення його интерфейсу, а повноцінна працююча програма.

Зрозуміло, суть використання XUL не в цьому, а в тому, що на цій відносно простій мові розмітки можуть бути легко реалізовано. На сайтах http://www.mozdev.org і http://www.xulplanet.com можна знайти десятки програм на XUL, а на http://books.mozdev.org/chapters/ можна знайти текст книги «Створення прикладних програм в Mozilla» (на жаль, поки тільки англійською).

Наприклад, так виглядає традиційна перша програма «Привіт, світ!» на XUL (її текст запозичений із згаданої книги):

<?xml version="1.0"?>
<!-- Sample XUL file -->
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<box align="center">
 <button label="hello xFly” onclick="alert('Привіт, світ!');” />
</box>
</window>

Знайомим з JavaScript-сценаріями в HTML або XML цей приклад повинен бути кристально зрозумілим. Проте увагу слід звернути на те, що елементи розмітки, визначувані XUL, властиві графічним інтерфейсам загального призначення («вікно» (window), «контейнер» (box), «кнопка» (button) і т.п.), і весь XUL-файл визначає інтерфейс, а не сторінку. Строго кажучи, Mozilla підтримує і змішані контексти, наприклад, XUL-компоненти в HTML або навпаки, але XUL-інтерпретатор як такий не зобов'язаний цього робити, і XUL-інтерпретатором, відповідно, зовсім не обов'язково повинен бути браузер. XUL може не тільки інтерпретуватися, але і транслюватися, хоча транслятори нам на сьогодні не відомі.

Перспективи, що відкриваються універсальною мовою опису графічного інтерфейсу перед галуззю швидкої прикладної розробки (RAD) і практичним програмуванням взагалі, — очевидні. Але тут доречніше буде вказати на методичні перспективи: включення в один і той же ввідний курс програмування на XUL разом з вивченням мов розмітки контенту (наприклад, HTML, особливо в його нинішній, XML-версії) дозволить здійснити значну понятійну економію. Можливо, що наш кругозір обмежений, але нам не відомі інші повноцінні мови програмування інтерфейсу, окрім XUL, що є коректними і здійснимими XML-додаткими.

Ресурси

Пакет Mozilla в джерельних кодах та збірках для більшості ОС доступний на головному сайті проекту, локалізовані версії — на російському сайті. Mozilla входить в більшість постачань відкритих ОС (як вільних, так і закритих).