Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

INTERFACES

.pdf
Скачиваний:
18
Добавлен:
27.05.2015
Размер:
1.32 Mб
Скачать

58. API как средство интеграции приложений. Сигнатура функции

API как средство интеграции приложений

API определяет функциональность, которую предоставляет программа (модуль, библиотека), при этом API позволяет абстрагироваться от того, как именно эта функциональность реализована. Если программу (модуль, библиотеку) рассматривать как чёрный ящик, то API — это множество «ручек», которые доступны пользователю данного ящика, которые он может вертеть и дёргать. Программные компоненты взаимодействуют друг с другом посредством API. При этом обычно компоненты образуют иерархию — высокоуровневые компоненты используют API низкоуровневых компонентов, а те, в свою очередь, используют API ещё более низкоуровневых компонентов.

По такому принципу построены протоколы передачи данных по Интернет. Стандартный стек протоколов (сетевая модель OSI) содержит 7 уровней (от физического уровня передачи бит до уровня протоколов приложений, подобных протоколам HTTP и IMAP). Каждый уровень пользуется функциональностью предыдущего уровня передачи данных и, в свою очередь, предоставляет нужную функциональность следующему уровню.

Важно заметить, что понятие протокола близко по смыслу к понятию API. И то и другое является абстракцией функциональности, только в первом случае речь идёт о передаче данных, а во втором — о взаимодействии приложений.

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

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

Иногда различают сигнатуру вызова и сигнатуру реализации функции. Сигнатура вызова обычно составляется по синтаксической конструкции вызова функции с учётом сигнатуры области видимости данной функции, имени функции, последовательности фактических типов аргументов в вызове и типе результата. В сигнатуре реализации обычно участвуют некоторые элементы из синтаксической конструкции объявления функции: спецификатор области видимости функции, её имя и последовательность формальных типов аргументов.

Например, в языке программирования C++ простая функция однозначно опознаётся компилятором по её имени и последовательности типов её аргументов, что составляет сигнатуру функции в этом языке. Если функция является методом некоторого класса, то в сигнатуре будет участвовать и имя класса.

В языке программирования Java сигнатуру метода составляет его имя и последовательность типов параметров; тип значения в сигнатуре не участвует.

59. Семантика функции

Семантика функции — это описание того, что данная функция делает. Семантика функции включает в себя описание того, что является результатом вычисления функции, как и от чего этот результат зависит. Обычно результат выполнения зависит только от значений аргументов функции, но в некоторых модулях есть понятие состояния. Тогда результат функции может зависеть от этого состояния, и, кроме того, результатом может стать изменение состояния. Логика этих зависимостей и изменений относится к семантике функции. Полным описанием семантики функций является исполняемый код функции или математическое определение функции.

60. API операционных систем. Проблемы, связанные с многообразием API.

Практически все операционные системы (UNIX, Windows, Mac OS, и т. д.) имеют API, с помощью которого программисты могут создавать приложения для этой операционной системы. Главный API операционных систем — это множество системных вызовов.

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

С другой стороны, отличия в API различных операционных систем существенно затрудняют перенос приложений между платформами. Существуют различные методы обхода этой сложности — написание «промежуточных» API (API графических интерфейсов WxWidgets, Qt, GTK, и т. п.), написание библиотек, которые отображают системные вызовы одной ОС в системные вызовы другой ОС (такие среды исполнения, как Wine, cygwin, и т. п.), введение стандартов кодирования в языках программирования (например, стандартная библиотека языка C), написание интерпретируемых языков, реализуемых на разных платформах (sh, python, perl, php, tcl, Java, и т. д.).

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

Например: для того, чтобы увидеть в браузере строчку «Hello, world!», достаточно лишь создать HTML­документ с минимальным заголовком и простейшим телом, содержащим данную строку. Когда браузер откроет этот документ, программа­браузер передаст имя файла (или уже открытый дескриптор файла) библиотеке, обрабатывающей HTML­документы, та, в свою очередь, при помощи API операционной системы прочитает этот файл и разберётся в его устройстве, затем последовательно вызовет через API библиотеки стандартных графических примитивов операции типа «очистить окошко», "написать выбранным шрифтом «Hello, world!». Во время выполнения этих операций библиотека графических примитивов обратится к библиотеке оконного интерфейса с соответствующими запросами, уже эта библиотека обратится к API операционной системы, чтобы записать данные в буфер видеокарты.

При этом практически на каждом из уровней реально существует несколько возможных альтернативных API. Например: мы могли бы писать исходный документ не на HTML, а на LaTeX, для отображения могли бы использовать любой браузер. Различные браузеры, вообще говоря, используют различные HTML­библиотеки, и, кроме того, всё это может быть (вообще говоря) собрано с использованием различных библиотек примитивов и на различных операционных системах.

Основными сложностями существующих многоуровневых систем API, таким образом, являются:

Сложность портирования программного кода с одной системы API на другую (например, при смене ОС);

Потеря функциональности при переходе с более низкого уровня на более высокий. Грубо говоря, каждый «слой» API создаётся для облегчения выполнения некоторого стандартного набора операций. Но при этом реально затрудняется, либо становится принципиально невозможным выполнение некоторых других операций, которые предоставляет более низкий уровень API.

61. Наиболее известные API.

Операционных систем

 

 

 

 

 

Amiga ROM Kernel

 

Linux Kernel API

 

POSIX

 

Cocoa

 

OS/2 API

 

Windows API

Графических интерфейсов

 

 

 

 

 

Direct3D (часть DirectX)

 

Motif

 

Tk

 

DirectDraw (часть DirectX)

 

OpenGL

 

WxWidgets

 

GDI

 

OpenVG

 

X11

 

GDI+

 

Qt

 

Zune

 

GTK

 

SDL

 

 

Звуковых интерфейсов

 

 

 

 

DirectMusic (часть DirectX)

 

DirectSound (часть DirectX)

OpenAL

Аутентификационных систем

 

 

 

 

BioAPI

 

PAM

 

Web API

Используется в веб­разработке, как правило, определенный набор HTTP­запросов, а также определение структуры HTTP­ответов, для выражения которых используют XML или JSON форматы. Web API является практически синонимом для веб­службы, хотя в последнее время за счет тенденции Web 2.0 осуществлен переход от SOAP к REST типу коммуникации. Веб­ интерфейсы, обеспечивающие сочетание нескольких сервисов в новых приложениях, известны как гибридные.

62. Windows API. Версии Windows API.

Windows API

(англ. application programming interfaces) — общее наименование целого набора базовых функций интерфейсов программирования приложений операционных систем семейств Microsoft Windows корпорации «Майкрософт» и совместимой с ними свободной бесплатной операционной системы ReactOS. Является самым прямым способом взаимодействия приложений с Windows и ReactOS. Для создания программ, использующих Windows API, «Майкрософт» выпускает комплект разработчика программного обеспечения, который называется Platform SDK, и содержит документацию, набор библиотек, утилит и других инструментальных средств для разработки.

Общие сведения

Windows API был изначально спроектирован для использования в программах, написанных на языке Си или C++. Работа через Windows API — это наиболее близкий к системе способ взаимодействия с ней из прикладных программ. Более низкий уровень доступа, необходимый только для драйверов устройств, в текущих версиях Windows предоставляется через Windows Driver Model.

Версии

Win16 — первая версия Windows API для 16­разрядных версий Windows. Изначально назывался просто Windows API, затем стал называться Win16 для отличия от Win32.

Win32s — подмножество Win32, устанавливаемое на семейство 16­разрядных систем Windows 3.x, и реализующее ограниченный набор функций Win32 API для этих систем.

Win32 — 32­разрядный API для современных версий Windows. Самая популярная ныне версия. Базовые функции этого API реализованы в динамически подключаемых библиотеках kernel32.dll и advapi32.dll; базовые модули графического интерфейса пользователя — в user32.dll и gdi32.dll. Win32 появился вместе с Windows NT и затем был перенесён в несколько ограниченном виде в системы серии Windows 9x. В современных версиях Windows, происходящих от Windows NT, работу Win32 GUI обеспечивают два модуля: csrss.exe (процесс исполнения клиент­сервер), работающий в пользовательском режиме, и win32k.sys в режиме ядра. Работу же системных Win32 API обеспечивает ядро — ntoskrnl.exe.

Win64 — 64­разрядная версия Win32, содержащая дополнительные функции для использования на 64­разрядных компьютерах. Win64 API можно найти только в 64­разрядных версиях Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, Windows Server 2008 R2, Windows 7 и Windows 8.

63. Технологии, доступные через Windows API.

Алфавитный список технологий, доступных через Windows API: Система контроля и управления доступом.

Microsoft Active Accessibility. Active Directory.

Active Server Pages. ActiveX.

Автоматизация.

Фоновая интеллектуальная служба передачи (BITS).

Bluetooth. CDO.

Certificate Enrollment Control. Certificate Services. Collaboration Data Objects. Component Object Model COM Plus.

Common Controls.

Криптография.

Debugging and Error Handling. Device I/O.

Распределённая файловая система. DLL, процессы и многопоточность.

Domain Name System.

Dynamic Host Configuration Protocol (DHCP). Extensible Authentication Protocol (EAP).

Extensible Markup Language (XML) и парсер MSXML. Fax Service.

Групповая политика.

HTTP. ICS и ICF.

Image Color Management (ICM) Image Mastering API (IMAPI) Indexing Service

Infrared Data Association (IrDa) Internet Authentication Service (IAS)

Internet Connection Sharing and Firewall (ICSF) Internet Explorer

Internet Information Services (IIS)

Internet Protocol Helper (IP Helper) Interprocess Communications

Lightweight Directory Access Protocol (LDAP) LSA Authentication

LSA Policy

Memory Management Message Queuing (MSMQ)

Messaging Application Programming Interface (MAPI) Microsoft .NET Passport

Microsoft Agent

Microsoft Data Access Components (MDAC) Microsoft Interface Definition Language (MIDL) Microsoft Management Console (MMC) Microsoft Transaction Server (MTS)

Multicast Address Dynamic Client Allocation Protocol (MADCAP) Multicast Group Manager

National Language Support NetMeeting

NetShell

Network Load Balancing Provider Network Management

Network Monitor Network Provider API OLE DB

OLE DB Provider for Internet Publishing OnNow

Open Database Connectivity (ODBC) OpenGL

Password Filters PC Health

Performance Monitoring

Plug and Play и Universal Plug and Play Power Management

Quality of Service (QoS)

Real­time Communications (RTC) Client //ссылка ведет не на ту статью Remote Access Service (RAS)

Remote Procedure Call (имеется в виду служба RPC Service) Removable Storage Manager (RSM)

Routing and Remote Access Service (RRAS)

Routing Table Manager Version 1 (RTMV1)

Routing Table Manager Version 2 (RTMV2)

Security Support Provider Interface (SSPI) Server Cluster API

Server Data Objects (SDO) Service Security Attachments Setup API

Shell (имеется в виду Explorer Shell) Side­by­side Assemblies

Simple Network Management Protocol (SNMP) Smart Card

Still Image

Storage и Structured Storage Synchronization Manager System.DirectoryServices

System Event Notification Service (SENS) System Restore

Tablet PC Task Scheduler

Telephony Application Programming Interface (TAPI) 2.2 Telephony Application Programming Interface (TAPI) 3 Telephony Service Provider Interface (TSPI и MSPI) Terminal Services

Text Services Framework Unicode (и MSLU)

Universal Description, Discovery, and Integration (UDDI) Video for Windows

Windows Clustering Windows File Protection Windows GDI

Windows GDI+

Windows Image Acquisition (WIA) Windows Installer

Windows Management Instrumentation (WMI) Windows Multimedia

Windows Sockets

Windows System Information

Windows User Interface

Winlogon и Gina

WinSNMP

64. Сервисные программы.

Для расширения возможностей операционных систем и предоставления набора дополнительных услуг используются сервисные программы. Их можно разделить на следующие группы:

интерфейсные системы;

оболочки операционных систем;

утилиты.

Интерфейсные системы являются естественным продолжением операционной системы и модифицируют как пользовательский, так и программный интерфейсы, а также реализуют дополнительные возможности по управлению ресурсами ЭВМ. В связи с тем, что развитая интерфейсная система может изменить весь пользовательский интерфейс, часто их также называют операционными системами. Эго относится, например, к Windows 3.11 и Windows 3.11 for Work Groups (для рабочих групп).

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

На ПЭВМ широко используются такие программы­оболочки, как Norton Commander и DOS Navigator.

Утилиты предоставляют пользователям средства обслуживания компьютера и его ПО. Они обеспечивают реализацию следующих действий:

обслуживание магнитных дисков;

обслуживание файлов и каталогов;

предоставление информации о ресурсах компьютера;

шифрование информации;

защита от компьютерных вирусов;

архивация файлов и др.

Существуют отдельные утилиты, используемые для решения одного из перечисленных действий, и многофункциональные утилиты. В настоящее время для ПЭВМ среди многофункциональных утилит одним из наиболее совершенных является комплект утилит Norton Utilities. Существуют его версии для использования в среде DOS и Windows.

65. Интерфейсные системы. Типичный представитель интерфейсных систем - Windows 3.x.

Интерфейсные системы являются естественным продолжением операционной системы и модифицируют как пользовательский, так и программный интерфейсы, а также реализуют дополнительные возможности по управлению ресурсами ЭВМ. В связи с тем, что развитая интерфейсная система может изменить весь пользовательский интерфейс, часто их также называют операционными системами. Эго относится, например, к Windows 3.11 и Windows 3.11 for Work Groups (для рабочих групп).

Windows 3.x — общее название поколения операционных систем Windows от компании Microsoft, выпущенных с 1990 по 1994 год. Первым широко распространённым релизом Microsoft Windows стала 3.0, позволив Майкрософт соревноваться с Macintosh и Commodore Amiga в области операционных систем с графическим интерфейсом.

На самом деле Windows 3.x не является полноценной самостоятельной операционной системой, потому что она фактически является операционной системой­надстройкой над DOS, так как использует ее в качестве базовой рабочей платформы.

66. Функции интерфейсных систем Интерфейсные системы

Из имеющихся интерфейсных систем следует назвать:

Windows фирмы Microsoft, DESQview компании Quarterdeck Office Systems и Ensemble фирмы Geos Work, используемые совместно с DOS;

Presentation Manager (PM) фирмы Microsoft и корпорации IBM для OS/2; Motif и Ten/Plus, предназначенные для работы совместно с UNIX.

Все перечисленные системы, за исключением DESQview, поддерживают графический пользовательский интерфейс в том смысле, что пользователь при работе с ними манипулирует образами, а не символами, причём с использованием "мыши".

Кроме того, все интерфейсные системы являются многооконными. Многооконность состоит в том, что экран дисплея динамически делится на несколько графических и/или тестовых окон. При этом программа (или несколько одновременно работающих программ) может (могут) выводить информацию в одно или несколько окон. Это ­ существенное отличие от стандартных средств ОС, которое, имея ряд преимуществ, предоставляет пользователю дополнительные возможности. В частности, можно переключать ввод с клавиатуры на любую из программ (на любое окно), не обновляя в данном случае весь экран. Благодаря многооконности поддерживаются также дополнительные средства по ведению диалога с ОС и программами, в том числе посредством меню. В общем, интерфейсные системы существенно повышают уровень общения пользователей с ПЭВМ. Что же касается программных интерфейсов, то сервисные системы данного типа расширяют и дополняют услуги, предоставляемые программам (точнее ­ программистам).

Более того, все перечисленные системы являются многозадачными, даже если базовая ОС (DOS) обладает практически только однозадачными возможностями.

Система Windows с 1983 г., по первые её версии были неудачными. 22 мая 1990 г. фирма Microsoft представила новую версию – Windows 3.0, которая благодаря своим возможностям мгновенно завоевала симпатии пользователей ПЭВМ. Более того, Windows 3.0 признана лучшим программным продуктом для персональных компьютеров 1990 г.

Windows 3.0 привлекательна прежде всего удобным графическим пользовательским интерфейсом, многозадачными возможностями и более высокой по сравнению с предыдущими версиями реактивностью. Программный интерфейс DOS этой системой также существенно модифицирован.

Windows 3.0 устанавливается поверх DOS и требует наличия по крайней мере МП 80286, ОЗУ емкостью не менее 640 Кбайт, жесткого диска, а также графического дисплея. Чтобы Ваша работа была эффективной и чтобы Вы смогли использовать все возможности Windows, следует иметь ПЭВМ с МП 80386SX или старше, а также не менее 2 Мбайт ОЗУ.

Windows 3.0 может работать в одном из следующих режимов: в реальном, стандартном и улучшенном.

Реальный режим обеспечивает использование только стандартной 640­Кбайт памяти и поддержку отображаемой (expanded­) памяти. Многозадачные возможности отсутствуют.

Для работы в стандартном режиме требуется как минимум 1­Мбайт ОЗУ. В этом режиме обеспечивается использование не только стандартной и отображаемой, но и расширенной (extended­) памяти. При этом можно выполнять одновременно несколько задач. Улучшенный режим допустим только на МП 80386SX и более старших. Данный режим, как и предыдущий, обеспечивает богатые возможности по управлению памятью и многозадачную работу. Дополнительно к этому поддерживается виртуальная память и режим системы виртуальных машин. Поэтому можно выполнять не только одну, но и несколько программ,

разработанных для DOS. Два предыдущих режима способны обеспечить выполнение лишь единственной DOS­программы. Программы же, разработанные в среде или для среды Windows, под управлением DOS функционировать не будут.

«Свои» программы Windows выполняет в режиме согласования, а «чужие» (DOS­овские) — в режиме вытеснения, так как последние не способны самостоятельно освободить процессор. Современная версия системы DESQview, а именно, DESQview 386 2.2, является серьезным конкурентом для Windows. Она обладает многозадачными возможностями, поддерживает развитые средства управления дополнительной (расширенной, отображаемой и верхней) памятью и до появления Windows 3.0 была бесспорным лидером среди интерфейсных систем для DOS. DESQview может функционировать на ПЭВМ класса XT и старше, но наиболее полно проявляет себя только при наличии МП 80386(SX) и 1­Мбайт ОЗУ. Если Вам не нужен графический интерфейс, то можете отдать предпочтение данной системе, а не Windows 3.0. Система DESQview, как и Windows, способна выполнять программы, разработанные в среде DOS, в том числе одновременно несколько программ в режиме системы виртуальных машин. Кроме того, она способна выполнять и саму Windows, что обеспечивает переносимость Windows­программ в среду DESQview. Многозадачные возможности реализуются путем вытеснения.

Известно, что уже появилась версия 2.3 системы DESQview.

В табл. 4.2 на качественном уровне представлены основные характеристики интерфейсных систем Windows и DESQview, а также функционально аналогичной им системы OS/2, заимствованные из журнала «Мир ПК». Здесь использована и в дальнейшем будет применяться следующая оценочная шкала: О — отлично, ОХ — очень хорошо, X — хорошо, У — удовлетворительно, П — плохо, Н — неудовлетворительно. Приведенные оценки (но в числовом выражении) умножены на веса соответствующих характеристик и все полученные числа для каждой системы просуммированы. Таким образом определена общая оценка, которая свидетельствует о превосходстве Windows 3.0. Вместе с тем OS/2 выгодно отличается средствами управления памятью, так как она управляет МП не в реальном, а в защищенном режиме, имеющем более емкое адресное пространство.

Для маломощных ПЭВМ класса XT оптимальной является многозадачная система Ensemble, поддерживающая графический пользовательский интерфейс. Она полностью написана на языке Ассемблера и обладает высокой реактивностью. Для ее функционирования достаточно иметь 512­ Кбайт ОЗУ и свободных 3 Мбайт на жестком диске. Сама Ensemble занимает в памяти только 100 Кбайт. Конечно, ее разработчикам для уменьшения потребностей в ресурсах ПЭВМ пришлось пойти на определенные жертвы.

Другие интерфейсные системы рассматривать не будем. Только отметим, что в конце 1989 г. небольшая голландская компания объявила о создании программных средств, обеспечивающих функционирование РМ в среде DOS. Их поставка была запланирована на начало 1990 г. американской фирмой Сусо International.

Альтернативными названиями интерфейсных систем являются интерфейс, (операционная) среда и даже ОС.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]