АРІ має відношення до інтерфейсу між семантикою застосування і службами графічних віконних систем і визначений насамперед як інтерфейс між прикладним програмним забезпеченням і приклад­ною платформою, на підтримку мобільності застосування. Служби забезпечують функції для створення і маніпулювання візуальними відображуваними об’єктами типу меню, кнопок (buttons), смуг прокручу­вання і діалогових вікон (dialog boxes). Крім того, функції допомагають інформації щодо дій користувача повертатися назад до прикладного програмного забезпечення; наприклад, під час вибору користувачем елемента меню. Подібна інформація щодо дій користувача відома як подія. Застосуваннями, що вима­гають комунікації з користувачем, обов’язково керують події. Іншими словами, основний цикл подій — зв’язок Із діалоговим вікном прикладної програми (тобто вікном, що чекає на відповідь користувача), яке чекає на вибір користувача і щодо якого застосування викликає для виконання необхідну операцію.

АРІ підтримує абстрактне подання (вид) віконного інтерфейсу користувача, визначеного в термі­нах візуальних об’єктів, їхніх атрибутів І зв’язків між ними. Зовнішній вигляд двох різних реалізацій може цілком відрізнятися, забезпечуючи застосуванню ті самі служби. Визначення АРІ гарантує мо­більність прикладного програмного забезпечення на всі POSIX-сумісні платформи; АРІ підтримує ке­рівні принципи керування ЕЕІ, допускаючи користувачам "дуже легко" експлуатувати прикладну про­граму на будь-яких платформах.

  1. Елементи прикладного програмного забезпечення включають наступне.

Сервер віконної системи (l/V/ndow System Server). Надає функцію оброблення комунікаційних підключень клієнтів, розділяє (demultiplexes) графічні запити на екрані та повертає об’єднаний ввід (multiplexes) відповідному клієнту. Застосування та інші програми, що загалом використовують роботу з віконними службами, звуть "клієнтами". З тим самим сервером може спілкуватися множина клієнтів. Сервер незалежний від операційної системи, мов програмування чи мережної комунікації.

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

  • зміна розмірів вікна;

  • переміщення вікна;

  • розташування/виштовхування вікна поверх/униз (вікон);

  • скорочення вікна до зменшеного візуального подання вікна (часто зветься піктограмою вікна чи Іконкою);

  • звуковий увід-вивід;

  • відео увід-вивід;

  • захист(безпека).

Робочий стіл (Desktop) чи графічна оболонка віконної системи — це специфікація робочої по­верхні графічної віконної системи (тобто всього екрана дисплея). Робочий стіл надає користувачу візуальний інтерфейс до доступних комп’ютерних ресурсів. Робочий стіл можна характеризувати як візуальний аналог POSIX-оболонки. Надає доступ до ресурсів системи типу пристроїв, файлів та методів запуску застосування. Робочий стіл зазвичай також забезпечує набір таких часто використову­ваних утиліт, як календар, записник тощо. Крім того, робочий стіл зазвичай надає кінцевим користу­вачам можливість легкого настроювання середовища робочого столу, заснованого на власних уподобаннях чи потребах. Робочий стіл — важливий компонент "look and feel" використання гра­фічної віконної системи, але поточний стан комп'ютерної індустрії не допускає якої-небудь стандар­тизації для специфікації робочого столу у найближчому майбутньому.

Локальні І віддалені застосування (Local and Remote Applications). Застосування — клієнти, що надають функції, необхідні для виконання специфічних задач користувача (наприклад, електронні таб­лиці, системи наукового аналізу, інструментальні CASE-засоби, оброблення та керування задачами).

4.9.4 Служби

Служби віконних систем забезпечують керований інтерфейс між програмним забезпеченням, спе­цифічним для застосування, і програмним забезпеченням, специфічним для інтерфейсу користу­вача, даючи змогу кожному з них розроблятися і виконуватися окремо. До користувачів служб відносять усіх користувачів POSIX-сумісних систем та пов'язані з ними комунікації графічної віконної системи І процесора. Загальна, стандартизована графічна віконна система для застосування по­винна бути доступна користувачам усіх POSIX-OSE.

  1. Служби АРІ. Служби віконних систем охоплюють такі служби, що дозволяють розробнику застосування в максимально можливій мірі відокремлювати функції застосування від функцій графічної віконної системи. Охоплюють такі ділянки, як керування екраном, робота з вікнами та служби при­строїв вводу даних користувача.

Такі стандартні служби підтримують вимоги для мобільності застосування, спільності програмного забезпечення, інтероперабельності застосування та прозорості комунікацій даних. Через мовні прив’язки програміст може звертатися до наступних служб прикладної програми.

  1. Основні віконні служби (Basic Window Services) можуть викликати клієнтські зас­тосування, що підтримують інтерфейс користувача, який ґрунтується на віконній системі (window-based user interface). Вони повинні ґрунтуватися на моделі "клієнт-сервер". Сервер — програма оброб­лення комунікаційних під’єднань клієнта, розподілу графічних запитів до екрану та повернення об’єдна­ного вводу (multiplexes) відповідному користувачу. З тим самим сервером може спілкуватися множина клієнтів. Головні функції:

  • керування вікнами;

  • керування робочим столом;

  • оброблення подій;

  • оброблення помилок;

  • комунікації між клієнтами;

  • керування пристроями вводу даних: клавіатура, координатно-вказівний пристрій;

  • керування екраном;

  • керування пріоритетами (привілеями) користувача;

  • керування під’єднанням сервера.

Наступні функції доступні з кожної переліченої функції.

Керування вікнами. Функції керування вікнами {Window Management):

  • створення вікна, відображення (розподіл) вікон на екрані, видалення вікна (включаючи під­тримку для емулятора символьно-базованого вікна);

  • маніпулювання вікном (переміщування, зміна розмірів, заміна пріоритету відображення);

  • маніпулювання атрибутами вікна (встановити, одержати, змінити; атрибути можуть зв'язува­тися з появою, ефективністю перемальовування, обробленням подій чи зміною повноважень);

  • захоплення й утримування контролю над сервером із метою відображення (дозвіл безперерв­ного виводу користувача; запити виводу від інших клієнтів ставлять у чергу та відображають пізніше).

Керування робочим столом. Функції керування робочим столом:

  • асоціація даних із вікном (наприклад, контекстні функції адміністратора, зв’язок таблич­них функцій);

  • маніпулювання графічним контекстом для даного об’єкту (створення графічного контек­сту, одержання поточного графічного контексту, зміна графічного контексту);

  • одержання й установлювання шрифтів (завантажування шрифту, внесення шрифту в спи­сок, вивантаження шрифту, одержання метричної інформації шрифту);

  • вивід графічних примітивів (вивід дуги чи лінії, заповнювання багатокутника, очищення пря­мокутного вікна, очищення усього вікна);

  • маніпулювання курсорами вікна (створення, знищення, призначення, зміна);

  • вивід тексту й одержання текстової метричної інформації.

Оброблення подій {Event Handling). Служби основного вікна потрібні скоріше для підтримування відповідей прикладної програми на дії користувача, ніж примусу користувача до відповідей прикладній про­грамі у жорсткій, послідовній манері. Подібна вимога змушує програму вибирати одну з альтернатив:

  • бути здатного до оброблення будь-якого ряду подій у будь-якій одиничній точці часу;

  • зіставляти з кожною подією підпрограму, що автоматично викликається у разі виникнення події.

Для кожного вікна маємо окремий набір подій, використовуваних прикладною програмою. Прик­ладна програма вибирає події для конкретного вікна, відображає обрані події у вікні та зчитує події з черги подій у порядку їхнього надходження. Маємо три головні типи подій:

  • події пристроїв уводу даних (натискання кнопки, звільнення кнопки, натискання клавіші, звільнення клавіші);

  • події керування вікном (наприклад, зміна розмірів вікна);

  • події повідомлень користувача (переміщування обраних даних Іншим застосуванням, приват­ний зв'язок між клієнтами).

Функції, доступні для оброблення подій:

  • вибирання події;

  • розподіл подій за вікнами;

  • одержання інформації від події;

  • надсилання подій.

Оброблення помилок. Функції оброблення помилок {Error Handling):

  • одержання повідомлення про помилки;

  • одержання опису помилки;

  • установка стандартної програми (routine) оброблення події помилки.

Зв’язок між клієнтами {Interclient Communication). Основні віконні служби необхідні у визначенні прозорої мережі для прикладної програми чи користувача. Це означає, що застосування на одному host- комп’ютері може здійснювати вивід на екран дисплея, пов’язаного з іншим host-комп’ютером, без знання того, що під’єднано роботу з мережею. Основні віконні служби обробляють мережні під’єднання та сте­жать за протоколами, необхідними для прикладної програми під час взаємодії з дисплеєм. Така угода дозволяє перерозподіляти застосування в мережній системі без впливу на прикладне програмне за­безпечення. Отже, застосування-клієнт не може припускати, що інший клієнт відкриває ті самі файли чи захоплює ті самі умови оброблення. Зв’язок між клієнтами за допомогою сервера має дві форми:

  • властивості. Клієнти можуть зіставити довільну Інформацію з вікном, спільним у викорис­танні для зв’язку між клієнтом та адміністратором вікна;

  • вибірки. Відбирає користувач Із вікна та може бути "надіслана" Іншому вікну (навіть якщо воно належить іншому клієнту). Одержувач вибірки може приймати рішення про таку наступну дію, як по­дання обраних даних у вікні.

Функції для зв’язку між клієнтами, охоплюють:

  • керування властивостями вікна (список, видалення, зміна, одержання);

  • установка й одержання вибірки;

  • керування буферами обміну (cut buffers).

Керування пристроями уведення даних. Функції, доступні для керування пристроями уводу даних {Input Device Management), охоплюють:

  • одержання уводу з клавіатури та подій з кнопок пристроїв позиціювання;

  • одержання виняткового керування клавіатурою чи курсором-покажчиком;

  • відстежування курсору-покажчика;

  • зміна відображення клавіатур по всіх серверах;

  • установка й одержання пріоритетів клавіатури та пристроїв позиціювання.

Керування екраном. Функції, доступні для керування екраном (Screen Management), охоплюють: — керування кольором, що використовує колірну палітру (копіювання, зміна, установка, зняття, установка за промовчанням);

  • одержання, відображування та керування відображенням растрових зображень (bitmapped screen images);

  • збереження екрана (screen saver), тобто гасіння екрана у разі простою;

  • відновлювання відображуваної Інформації (значення за промовчанням колірної палітри, число площин відображення, ширина і висота екрану).

Керування пріоритетом користувача. Надають послуги та структури даних, що використовують для керування пріоритетом (привілеями) користувача. Вони мають загальну назву— керування пріоритетом (привілеями) користувача {User Preferences Management) і містять такі параметри, що їх можна зчитувати й об’єднувати:

  • значення за промовчанням, встановлені користувачем та збережені у властивостях адмініст­ратора ресурсів користувача кореневого вікна;

  • значення за промовчанням, встановлені користувачем та збережені у файлі, зазначеному ко­ристувачем за промовчанням;

  • значення за промовчанням прикладних програм;

  • параметри, обумовлені під час запускання прикладної програми (наприклад, параметри команд­ного рядка).

Функції, доступні для керування пріоритетом (привілеями) користувача, — установлення й одержання даних пріоритету (привілеїв).

Керування під’єднаннями сервера. Функції, доступні для керування під’єднаннями сервера (Server Connection Management), включають:

  • керування доступом до сервера (додавання host-комп’ютера до списку доступу ACL — access control list, занесення у список ACL, блокування ACL);

  • під’єднання та роз’єднання клієнта та сервера (і відображень, керованих сервером);

  • одержання Інформації про реалізацію сервера;

  • напрямок (Flush) буфера виводу на сервер та очікування оброблення сервером усіх запи­тів у буфері виводу.

  1. Служби віконного інструментарію (Toolkit Window Services) забезпечують механізм доступу до бібліотеки візуальних об'єктів безпосередньо під час виконання програми. Візуальний об’єкт — графічний об’єкт відображування (тобто об’єкт взаємодії) зі зв'язаним програмним забез­печенням, що одержує ввід від користувачів (звичайно через клавіатуру та пристрій позиціювання) та пов'язаний із застосуванням і програмним забезпеченням інших візуальних об’єктів. Графічне подання візуального об’єкта може змінюватися для відображення результатів оброблення застосування. Приклади візуальних об'єктів2^ — графічні командні кнопки (push buttons), перемикачі (check boxes) та рядок вводу (editing boxes).