Обзор служб

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

В этой главе рассматриваются, как службы обрабатываются, и описывает некоторые демонстрационные службы.

Как работают запросы на обслуживание

Службы выполняются путем передачи данных назад и вперед между приложениями через совместно используемую область монтажа. Обратите внимание на то, что эти два приложения — запрашивающая сторона службы и поставщик услуг — являются абсолютно отдельными; они не работают в пространстве общей памяти. Область монтажа, содержащая данные, является определенной для запроса на обслуживание и обычно не вмешивается в стандарт Скопировать/вставить область монтажа.

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

  Поток данных рисунка 1 в запросе на обслуживание
Data flow in a service request

Не все службы и получают и предоставляют данные. Некоторые службы только получают данные, и другие только предоставляют данные. В этих случаях выполняется только одна из копии и шагов вставки. Службы могут таким образом быть разделены на две группы:

Служба попадает в обе категории, если она обрабатывает текущий выбор и затем обеспечивает заменяющее значение. Например, текстовая служба шифрования берет выбор текущего текста, шифрует его, и затем возвращает зашифрованный текст запрашивающей стороне службы для замены текущего выбора.

Sample Services

Следующие данные показывают службы в действии. Рисунок 2 показывает меню Services из приложения TextEdit. Сделайте Новую Липкую Запись, пример службы процессора. Команда Make New Sticky Note берет текущий выбор в документе TextEdit, открывает новый документ Stickies, и затем вставляет выбор в документ Stickies. Для более удобного использования сочетание клавиш (Command-Shift-Y) определяется для этой службы.

Рисунок 2  Делает Новую Липкую Запись, служба процессора
Make New Sticky Note is a processor serviceMake New Sticky Note is a processor service

Рисунок 3 показывает другой пример службы процессора. В этом случае команда Open URL копирует выделенный текст, запускает веб-браузер, вставляет выделенный текст в поле расположения браузера, и затем пытается соединиться с тем расположением.

Рисунок 3  Открывает, URL является службой процессора
Open URL is a processor serviceOpen URL is a processor service

Полный экран получения является службой провайдера. Рисунок 4 показывает документ Фактов Apple, прежде чем будет вызван Полный экран Получения.

  Полный экран Получения рисунка 4 является службой провайдера
Capture Full Screen is a provider serviceCapture Full Screen is a provider service

Рисунок 5 показывает документ Фактов Apple после того, как Захват взял выстрел текущего экрана и возвратил данные приложению TextEdit. Вспомните, что это - ответственность TextEdit сделать что-то с возвращенными данными. В этом примере TextEdit просто вставляет TIFF в текущий документ в точке вставки.

Рисунок 5  документ Фактов Apple после снимка экрана был вставлен
The Apple Facts document after a screen shot has been insertedThe Apple Facts document after a screen shot has been inserted