Мегаобучалка Главная | О нас | Обратная связь


Интерфейсы прикладного программирования



2019-07-03 475 Обсуждений (0)
Интерфейсы прикладного программирования 0.00 из 5.00 0 оценок




Разработка приложений на языках высокого уровня требует использования интерфейсов прикладного программирования (API), позволяющих программисту избавиться от необходимости вникать в подробности работы оборудования, а управление аппаратурой свести к вызову функций интерфейса, осуществляющих необходимые программисту действия. Windows поддерживает свои API при помощи трех главных компонентов системы – модулей Kernel, User и GDI.

Kernel отвечает за большинство функций операционной системы, таких как выделение памяти, управление процессами и прочее. Модуль User – за управление окнами в ходе работы Windows, а именно за создание и перемещение окон, отправку сообщений, работу диалоговых окон. GDI (Graphics Device Interface) – за рисование, масштабирование шрифтов, управление цветом и печатью. Модули Kernel, User и GDI – динамически компонуемые библиотеки.

В интерфейсах прикладного программирования А.В. Гордеев выделяет три варианта реализации:

на уровне модулей операционной системы;

на уровне системы программирования;

на уровне внешних библиотек процедур и функций.

 

Реализация функций API на уровне модулей операционной системы. При реализации функций API на уровне модулей операционной системы операционная система ответственна за выполнение функций API. Объектный код, выполняющий функции, либо непосредственно входит в состав операционной системы (или даже ядра операционной системы), либо находится в составе динамически загружаемых библиотек. Система программирования ответственна только за то, чтобы организовать интерфейс для вызова этого кода. В таком варианте результирующая программа обращается непосредственно к операционной системе.

Реализация функций API на уровне системы программирования. При реализации функций API на уровне системы программирования эти функции предоставляются пользователю в виде библиотеки функций RTL (Run Time Library) соответствующего языка программирования. RTL перенаправляет системный вызов соответствующим обработчикам программных прерываний, входящим в состав операционной системы.

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

Рассмотрим назначение нескольких наиболее известных библиотек, реализующих те или иные функции API.

Внутренний (корпоративный стандарт компании Microsoft) Win API. Он включает в себя следующие реализации: Win16, Win32s, Win32. Последний из названных интерфейсов расширяет предыдущие версии API Windows функциями для доступа к новым возможностям операционной системы.

Win API долгое время был основным для разработки Windows–приложений и является одним из наиболее сложных по числу используемых функций. Внутри этого корпоративного интерфейса API существует определенная несогласованность, которая несколько ограничивает переносимость программ между различными операционными системами семейства Windows.

Интерфейс ASPI (Advenced SCSI Programmig Interface). Данный интерфейс разработан фирмой Adaptec в начале 90–х годов и был призван предоставить простой доступ к широкому спектру разнообразного оборудования. В настоящее время интерфейс ASPI в виде набора файлов входит в стандартную поставку ОС семейства Windows, а также DOS, OS/2, Netware. Многие известные и популярные программы используют ASPI, в частности, Nero Burning ROM.

Интерфейсом устройств, который поддерживается программным расширением ASPI, является SCSI (Small Computer System Interface — системный интерфейс малых вычислительных систем). Интересной особенностью расширения интерфейса ASPI является поддержка устройств с интерфейсом IDE (Integrated Drive Electronics — встроенный интерфейс накопителей). Эта особенность существенно расширяет диапазон применения интерфейса ASPI и позволяет разрабатывать программы для таких устройств, как накопители на жестких дисках, CD–ROM, CD–R/RW и т. д.

Расширение ASPI представляет собой набор файлов, которые выполняют всю «черновую» работу по обмену данными с устройством. Программист же работает с библиотечными файлами ASPI, которые объединяет в себе соглашение о вызовах функций и установленный набор команд. Для использования интерфейса ASPI требует включения в текст программы файлов определений wnaspi32.h и scsidefs.h. При статической компиляции программы требуется подключение библиотечного файла wnaspi32.lib.

Интерфейс MCI (Media Control Interface). Этот интерфейс позволяет Windows–программам работать с различными устройствами мультимедиа, которые включают в себя CD–ROM, звуковую карту, проигрыватель видеодисков и даже видеомагнитофон. Интерфейс входит в состав расширения MME.

При помощи функций MCI можно управлять вышеперечисленными устройствами, посылая им специальные команды: воспроизведение, остановка, воспроизведение с заданной позиции и т. д. Кроме функций, доступных из основных языков программирования (C/C++, Pascal, BASIC), MCI предоставляет аппарат текстовых команд (Multimedia Command Strings). Текстовые команды реализуют наиболее типовые операции и могут быть легко сформированы программой на любом языке.

Подробности об интерфейсе MCI можно узнать из книги:Фролов, A., Мультимедиа для Windows / A. Фролов, Г. Фролов. М.: Диалог–МИФИ, 1994.

DirectX. DirectX – это набор API функций, разработанных корпорацией Microsoft с целью превратить Windows в оптимальную платформу для мультимедийных приложений с полноцветной графикой, видео, трехмерной анимацией и объемным звуком. Изначально отдельные компоненты пакета DirectX именовались по отдельности, при этом их названия начинались со слова Direct (Direct3D, DirectDraw, DirectMusic, DirectPlay, DirectSound и т.д.). Впоследствии весь комплект программ получил название DirectX.

По мере проникновения в массовые приложения технологий мультимедиа комплект программных интерфейсов DirectX не только становится важной частью только самой ОС, но и находит все более широкое применение в других областях разработки программного обеспечения. К примеру, DirectX, наряду с OpenGL, получил очень широкое распространение в инженерном и математическом программном обеспечении.

DirectX – выполняет роль промежуточного звена между программой и драйвером устройства, преобразуя обобщенные команды в команды, специфические для того или иного устройства. Явного программирования конкретной платы не требуется.

DirectX состоит из пяти базовых API–интерфейсов:

Direct Draw – это 2D компонент DirectX. Это набор процедур и функций, которые дают прямой доступ к видеопамяти компьютера и используются для ускорения отображения двумерной графики.

 

Direct Draw незаменим для создания двумерных игр, мультимедиа приложений и используется прямо или косвенно компонентом Direct3D;

Direct3D – это часть DirectX, предназначенная для программирования трехмерной графики. Direct3D неразрывно работает с DirectDraw. Существует два раздела Direct3D – D3D Immediate Mode (базовые функции рендеринга) и D3D Retained Mode (поддержка сложных операций визуализации);

DirectSound – это звуковой компонент DirectX. Он предназначен в основном для создания звуковых спецэффектов в играх, но также используется в профессиональных программах, работающих со звуком. DirectSound позволяет создавать эффекты громкости и позиционирования звука (panning), выполнять микширование и некоторые базовые операции, такие как управление громкостью и частотными характеристиками;

DirectInput фактически является частью Windows и обеспечивает аппаратно–независимую систему ввода, реализуя интерфейс с существующими устройствами, в основном контроллерами игр, клавиатурой, мышью, джойстиками и другими средствами управления. Поддерживает до 16 джойстиков, 32 кнопок и манипуляторов с шестью степенями свободы;

DirectPlay позволяет создавать игровые программы, рассчитанные на несколько участников, компьютеры которых взаимодействуют через модем, кабель, локальные или другие сети (включая Internet). Во всех случаях используется один и тот же интерфейс, реализующий независимый протокол коммуникаций.

Кроме перечисленных в DirectX существуют и другие, новые разделы:

DirectMusic – интегрирует в себе средства проигрывания и обработки MIDI информации. С помощью собственного банка инструментов DirectMusic позволяет улучшить качество MIDI даже на машинах с дешевыми звуковыми платами.

DirectAnimation – предназначен для создания анимационных эффектов в WEB–страницах;

DirectShow – предназначен для применения мультимедиа в WEB.

 

Технология DirectX оказалась необходима вследствие открытости платформы PC, которая оснащается все новыми и более сложными мультимедийными устройствами разных производителей. Хотя при наличии соответствующих видео– и аудиостандартов разработчики могли бы создавать свои программы, ориентируясь непосредственно на аппаратное обеспечение и не пользуясь никакой прослойкой типа DirectX, это противоречило бы заложенному в основу платформы Windows принципу исключения прямого доступа к аппаратным ресурсам (для предотвращения отказов ОС из–за неправильно написанных приложений).

OpenGL. OpenGL является программным интерфейсом для графических устройств и разработан компанией Silicon Graphics. Данный интерфейс трехмерной графики предназначен в основном для создания приложения моделирования и рендеринга (освещения). Интерфейс OpenGL включает в себя свыше ста функций, которые позволяют программисту определять объекты и сложные операции для создания высококачественных образов.

В архитектуре ОС Windows NT интерфейс OpenGL находится на более высоком уровне, чем DirectX, и использует DirectX для оптимальной поддержки аппаратных средств. Функционально OpenGL аналогичен такому компоненту DirectX, как Direct3D, однако некоторые аналитики считают, что в OpenGL более продуманная архитектура. Microsoft продублировала в некоторых компонентах DirectX многие функции OpenGL. Разработчики не вполне понимают, для чего это нужно, но, по утверждениям Microsoft, Direct3D является важным дополнительным звеном между ПО и аппаратурой, обеспечивая совместимость с широким спектром устройств отображения.

Интерфейс SAPI (Speech Application Programming Interface). Этот программный интерфейс позволяет встраивать в приложения для Windows функции распознавания речи и преобразования текста в речь. Такие приложения способствуют усовершенствованию среды вычислений и коммуникаций, упрощая, например, дистанционный доступ к ПК по телефону или передачу речевых сообщений из ПК. Интерфейс SAPI разработан в тесном сотрудничестве со многими представителями компьютерной промышленности. Он включает ряд алгоритмов преобразования текста в речь и распознавания дискретной и непрерывной речи для разных приложений от командного интерфейса управления компьютером до полноценного редактора диктуемого текста. В числе фирм, поддерживающих Speech API, – AT&T, Berkeley Speech Technologies, Cambridge Group и многие другие.

Интерфейс NetBIOS (Network Basic Input/Output System). Этот интерфейс прикладного программирования применяется при разработке приложений для ЛВС, состоящих из IBM–совместимых микрокомпьютеров под управлением MS–DOS, OS/2, Windows и некоторых версий UNIX. NetBIOS предоставляет прикладным программам стандартный набор команд для запроса низкоуровневых сетевых услуг, необходимых для проведения сеансов связи между узлами сети и передачи данных между ними.

Интерфейс WinInet. Этот интерфейс прикладного программирования призван обеспечить 32–разрядным Windows–приложениям надежный и простой доступ к протоколам сети Internet (FTP и HTTP).

Интерфейс MAPI (Messaging Application Programming Interface) предоставляет программистам возможность добавлять в Windows–приложения способность работать с электронной почтой и делать доступными для подобных приложений почтовые системы от разных производителей, реализованные на разных платформах.

Интерфейс TSPI (Telephony Service Provider Interface) позволяет создавать серверные службы, обрабатывающие запросы приложений, отвечающих стандарту Windows Telephony API. Интерфейс служб телефонии реализуется поставщиками услуг телефонии, которые связывают программную (DLL, драйверы устройств и микропрограммы) и аппаратную (платы расширения, телефоны, коммутаторы и сети) части воедино, образуя SPI–сервис.

Интерфейс TAPI (Telephony Application Program Interface) – это набор системных вызовов, переадресующих фактический вызов соответствующей библиотеке–поставщику услуг конкретного устройства (например, модема). Позволяет приложению взаимодействовать с коммуникационной аппаратурой.

Как отмечает А.В. Гордеев, развитие функций API идет в направлении создать библиотеки API, обеспечивающие широкую переносимость исходного кода. Разработка широко применимого стандарта API пока еще остается делом будущего. Поэтому разработчики системных программ вынуждены оставаться в довольно узких рамках ограничений стандартных библиотек языков программирования или внешних библиотек.



2019-07-03 475 Обсуждений (0)
Интерфейсы прикладного программирования 0.00 из 5.00 0 оценок









Обсуждение в статье: Интерфейсы прикладного программирования

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация...
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (475)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.011 сек.)