Взаимодействие программ: AppleScript. Сервисы
Программы вовсе не обязаны работать «в гордом одиночестве». Mac OS X предлагает два основных механизма взаимодействия программ. Один из них, достаточно мощный, гибкий и неплохо отработанный, основан на передаче и обработке системных сообщений между взаимодействующими программами. Его название — AppleScript.
AppleScript — это и механизм передачи системных сообщений, и современный, удобный, достаточно развитый язык программирования. Основное назначение AppleScript — автоматизация рутинных операций. В Mac OS X AppleScript не только не был забыт, но и получил полноценную поддержку. Было расширено множество AppleScript-команд, которые «понимает» и умеет обрабатывать Finder. Появилась возможность с помощью AppleScript’a автоматизировать работу ряда других системных модулей, таких как Print Center, Internet Connect и даже Terminal. Кроме того, AppleScript в Mac OS X стал поддерживать такие Интернет-стандарты, как SOAP и XML. Это означает, что вы можете посылать системные сообщения от одного компьютера другому и тем самым автоматизировать работу удаленного компьютера. Для облегчения написания и отладки AppleScript-программ фирма Apple разработала полноценную отладочную среду Apple Script Studio. Если у вас имеются скрипты, написанные для выполнения какой-либо рутинной работы в среде Mac OS 9х, не торопитесь их выбрасывать. Конечно, в новой среде придется кое-что подкорректировать, но большая часть будет работать практически без изменений.
Сервисы (Services), или услуги,— это новый для Mac OS способ воспользоваться функциями других программ. Например, на компьютере имеется программа проверки орфографии, которая оформлена в виде сервиса или поддерживает механизм сервисов. Находясь в текстовом редакторе, вы выделяете фрагмент текста в документе и в меню программы находите команду Services. В подменю справа появляется список программ и предлагаемых ими услуг. Если среди этих услуг есть проверка орфографии, выбираете эту услугу и запускаете процесс. Автоматически стартует программа проверки орфографии, которая и проделывает всю необходимую работу. При этом данной услугой могут воспользоваться многие программы, в то же время одна и та же программа может оказывать несколько различных услуг.
Механизм сервисов, по сути, выполняет работу, аналогичную последовательности действий: выделить фрагмент документа, скопировать его, запустить другую программу, вставить в новый документ этой программы скопированный фрагмент, выполнить некоторые действия над этим фрагментом, опять скопировать фрагмент уже после сделанных изменений, вернуться в исходную программу и заменить исходный фрагмент новым с внесенными изменениями. Таким образом, этот механизм помогает сэкономить много времени и сил при выполнении рутинной работы. Достоинство этого способа состоит в том, что не надо ничего программировать. Можно вообще заранее ничего не знать о том или ином сервисе. Достаточно просто указать некоторый фрагмент документа, с которым вы работаете, и в списке доступных сервисов выбрать подходящий.
Нельзя сказать, что идея сервисов очень нова. Похожие разработки существовали и раньше. Например, известная программа проверки орфографии UniSpell функционально напоминала сервисы Mac OS X, хотя механизм реализации был иным. Привлекательность данной схемы прежде всего состоит в том, что ее механизм поддерживается на уровне системы, что позволяет создавать прикладные программы, работающие единообразно, эффективно и надежно, а не плодить «зверинец» несовместимых или плохо совместимых решений.