Интерфейс (И.) – совокупность средств информационного взаимодействия двух объектов или процессов. Вопрос 4. Взаимодействие – обмен информацией и управление. Обычно И. несимметричен: одна его сторона – управляющая (master, client), другая – подчиненная (slave, server). Средства взаимодействия – в зависимости от природы взаимодействующих объектов. Для трех видов объектов: аппаратура, программы, пользователи – имеем четыре вида интерфейса:
1. Аппаратный И. – между цифровыми устройствами. Обеспечивает двусторонний обмен сигналами на физическом уровне. Средства: кабели, шины, разъемы, сигналы, алгоритмы, временные диаграммы. Примеры:
· И. вв/вы – между центральными и внешними устройствами компьютера: RS-232, USB, Unibus, CAMAC и др.
· И. системной шины РС – между ЦП и быстрыми устройствами типа HD.
2. Аппаратно-программный И. – между программой и аппаратурой. Примеры:
· Система команд и прерываний компьютера.
· Взаимодействие приложения с внешним устройством при вв/вы:
|
|
|
|
Рис. 6-7
Таким образом, драйвер является интерфейсной программой, «привязанной» к типу вн. устройства (точнее, контроллера).
3. Межпрограммный И. – между компонентами или слоями программного обеспечения. Традиционное название: CALL-интерфейс (набор форматов вызова процедур; в СУБД – CLI (Call Level Interface)), современное название – API (Application Programming Interface). Аппаратная аналогия:
Розетка А: int A (char c, int b);
Вилка Х вставляется в розетку А: X = A (letter, 2)
4. UI – И. пользователя – между пользователем и программой. Диалоговое взаимодей-ствие с помощью клавиатуры, мыши, графических элементов на экране и пр. Эпитеты: графический (GUI), дружественный (friendly), устойчивый к ошибкам (idiot-proof).
Вопросы 5-7.
Принципы хорошего И.:
· Инкапсуляция внутреннего устройства, изоляция сторон И. Сервер не должен знать, зачем он задействуется, клиент – как тот действует. Вопрос 8.
· Экономность, лаконичность И. – минимум обмениваемой информации. Вопрос 9.
· Стандартизация, унификация И. – способствует сопрягаемости (interoperability) и повторному использованию компонентов.
Описание И. должно исчерпывающим образом определять функциональность компонента, но не предопределять способ ее реализации. Поэтому-то оно и является центральной частью внешней спецификации компонента или ПП: UI для приложения и API – для библиотеки.
Развитие понятия И. в случае распределенных систем- протокол взаимодействия удаленных компонентов. Поскольку оно происходит через канал существенно менее быстрый и надежный, чем внутри компьютера, задержки и потери сообщений заставляют строить диалог как поочередный обмен сравнительно короткими сообщениями с обязательными подтверждениями и возможными переспросами.
Вопрос 10. Поуровневая структуризация распределенных систем:
|
Рис.6-8
Некоторые виды программно-реализуемых протоколов:
RPC – Remote Procedure Call – удаленный вызов процедур
FTP – File Transfer Protocol - протокол пересылки файлов
TCP/IP - стекпротоколов передачи по Интернету