Введение
Стандарт OpenDoc — устаревший стандарт многоплатформенной программной компонентной архитектуры, разработанный Apple в 1990-х годах для составных документов как альтернатива проприетарной технологии Microsoft Object Linking and Embedding (OLE). Это один из первых экспериментов Apple с открытыми стандартами и методами совместной разработки с другими компаниями. Разработка OpenDoc была передана некоммерческой организации Component Integration Laboratories, Inc. (CI Labs), принадлежащей растущей группе крупных корпоративных инвесторов и фактически положившей начало отраслевому консорциуму. В 1992 году Apple, IBM и Motorola запустили альянс AIM, в основу которого был положен OpenDoc. С возвращением Стива Джобса в Apple разработка OpenDoc была прекращена в марте 1997 года.
OpenDoc is a defunct multi platform software componentry framework standard created by Apple in the 1990s for compound documents, intended as an alternative to Microsoft's proprietary Object Linking and Embedding (OLE). It is one of Apple's earliest experiments with open standards and collaborative development methods with other companies. OpenDoc development was transferred to the non profit Component Integration Laboratories, Inc. (CI Labs), owned by a growing team of major corporate backers and effectively starting an industry consortium. In 1992, the AIM alliance was launched by Apple, IBM, and Motorola, with OpenDoc as a foundation. With the return of Steve Jobs to Apple, OpenDoc was discontinued in March 1997.
Обзор
Основная идея OpenDoc заключается в создании небольших, повторно используемых компонентов, отвечающих за конкретную задачу, такую как редактирование текста, редактирование растровых изображений или просмотр FTP-сервера. OpenDoc – это среда, в которой эти компоненты могут работать совместно, и составной формат документов для хранения данных, создаваемых каждым компонентом. Эти документы можно открывать на различных сетевых машинах с разными операционными системами, где OpenDoc может подставлять подходящие компоненты для каждой части, даже если они разработаны разными поставщиками. Таким образом, пользователи могут "собирать" свои документы из отдельных частей. Поскольку нет основного приложения, а единственным видимым интерфейсом является сам документ, система называется документ-центрированной. OpenDoc был разработан, чтобы позволить, например, небольшим сторонним разработчикам выйти на конкурентный рынок офисных программных пакетов и создавать небольшие специализированные приложения вместо необходимости предлагать полноценный пакет. Предполагалось, что это облегчит появление нового поколения онлайн-магазинов приложений.
Предыстория
Microsoft обратилась к Apple с просьбой высказать свое мнение о предлагаемом проекте OLE II. В Apple уже некоторое время проводили внутренние эксперименты с программными компонентами, основываясь на первоначальных разработках в рамках модели связывания Publish и Subscribe и языка сценариев AppleScript, который, в свою очередь, был основан на среде программирования HyperCard. Apple изучила прототип и документацию Microsoft и предоставила список проблем с дизайном. Microsoft и Apple были серьезными конкурентами, не смогли прийти к согласию по общим целям и не стали сотрудничать. Примерно в то же время группа сторонних разработчиков на Всемирной конференции разработчиков Apple (WWDC '91) попыталась разработать стандартизированный формат документов, концептуально основанный на Interchange File Format (IFF) от Electronic Arts. Apple проявила интерес к этой работе и вскоре выделила инженеров для создания и документирования подобной системы. Первоначальные результаты были опубликованы на CD-дисках WWDC, а последующие версии – на более поздних дисках для разработчиков. Система компонентных документов могла работать только с известным форматом, который был бы понятен всем компонентам, поэтому стандартизированный формат документов вскоре был интегрирован в разработку компонентного программного обеспечения. Формат быстро эволюционировал от простого, основанного на тегах, до сложного объектно-ориентированного слоя хранения данных, получившего название Bento. Изначально проект носил кодовое имя "Exemplar", затем "Jedi", "Amber" и, в конечном итоге, "OpenDoc".
Конкурирующие видения
В марте 1992 года был запущен альянс AIM между компаниями Apple, IBM и Motorola, в основу которого был положен OpenDoc. Taligent был создан как ключевая цель альянса AIM, он принял OpenDoc и обещал схожую функциональность, хотя и основывался на совершенно иных базовых механизмах. OpenDoc развивался, но Apple внесла путаницу среди разработчиков, предложив использовать его лишь для переноса существующего программного обеспечения, а для новых проектов рекомендовалось использовать Taligent как предполагаемую будущую ОС для Macintosh. В 1993 году Джон Скалли назвал проект Amber (кодовое название будущего OpenDoc) путем к Taligent. Taligent рассматривался как будущее Macintosh, и разработка других инструментов, таких как MacApp, была существенно отодвинута на второй план. На протяжении всего существования OpenDoc аналитики и пользователи, по сообщениям, придерживались "совершенно разных точек зрения" на эту инициативу. Они были сбиты с толку относительно своей роли и степени ответственности за разработку на базе OpenDoc по сравнению с IBM и Apple. По сравнению с компонентами Microsoft ActiveX, выпущено было немного компонентов OpenDoc. Поэтому реакция была весьма неоднозначной. В 1996 году OpenDoc был принят Объектным управляющим консорциумом (OMG), отчасти благодаря использованию SOM архитектуры Common Object Request Broker Architecture (CORBA), поддерживаемой OMG. CI Labs никогда не публиковала исходный код, но предоставляла его разработчикам по лицензии для получения обратной связи, тестирования и отладки.
Релиз
В сентябре 1994 года подсистема OpenDoc была запущена в System 7.5, а затем и в OS/2 Warp 4.
Продукты
После трех лет разработки OpenDoc, первым продуктом, основанным на OpenDoc, стал веб-браузер Apple CyberDog, выпущенный в мае 1996 года. Вторым релизом, 1 августа 1996 года, стали два пакета компонентов OpenDoc для OS/2 от IBM, доступные на сайте Club OpenDoc для 30-дневной бесплатной пробной версии: Person Pak – это "компоненты, предназначенные для организации имен, адресов и другой личной информации", для использования с приложениями управления личной информацией (PIM); и Table Pak – "для хранения строк и столбцов в файле базы данных". IBM планировала выпустить еще 50 компонентов до конца 1996 года. WAV – полууспешный текстовый процессор OpenDoc от Digital Harbor LLC. Пакет Numbers & Charts – это табличный процессор и решение для создания 3D-диаграмм в реальном времени от Adrenaline Software. Lexi от Soft Linc, Inc. – это лингвистический пакет, включающий проверку орфографии, тезаурус и простой инструмент перевода, который используется WAV и другими компонентами. Программное обеспечение Nisus Writer от Nisus поддерживало OpenDoc, но его реализация была крайне нестабильной. Bare Bones Software протестировала рынок, предоставив свой бесплатный текстовый редактор BBEdit Lite в качестве компонента редактора OpenDoc. RagTime, полностью интегрированный офисный пакет с табличным процессором, средствами верстки и редактирования изображений, был портирован на OpenDoc незадолго до прекращения разработки OpenDoc. Выпуск ClarisWorks 5.0 (предшественника AppleWorks) от Apple в 1996 году планировался с поддержкой компонентов OpenDoc, но от этой идеи отказались.
Образовательные
Еще одно приложение OpenDoc под названием Dock'Em было разработано компанией MetaMind Software при поддержке гранта Национального научного фонда и по заказу Центра исследований в области математики и естественных наук, расположенного при Государственном университете Сан-Диего. Целью проекта было включение мультимедийного контента в документы, описывающие учебные программы. Несколько физических симуляций были созданы компаниями MetaMind Software и российской фирмой Physicon (OpenTeach) в виде компонентов OpenDoc. Учебные программы по физике для старших и средних классов были построены вокруг этих симуляций. После прекращения поддержки OpenDoc, симуляции были переписаны в виде Java-апплетов и опубликованы Центром как проект "Построение понимания физики" (CPU) под руководством доктора Фреда Голдберга. Компоненты образовательной платформы E Slate Microworlds изначально были реализованы как компоненты OpenDoc на C++ для операционных систем MacOS и Windows, а затем, после прекращения поддержки OpenDoc, были переписаны в виде Java-апплетов и, в конечном итоге, как JavaBeans.
Отмена
У OpenDoc было зарегистрировано несколько сотен разработчиков. В то время Apple стремительно теряла деньги, и многие в индустрии ожидали банкротства компании. В марте 1997 года разработка OpenDoc была прекращена с возвращением Стива Джобса в Apple, который работал в NeXT во время его создания. Он заявил, что руководство Apple "положило конец [OpenDoc]", и большая часть сотрудников Apple Advanced Technology Group была уволена в рамках масштабного сокращения штата. Другие источники сообщают, что Microsoft переманила трех разработчиков ClarisWorks, ответственных за интеграцию OpenDoc в ClarisWorks. Начиная с Mac OS 8.5, OpenDoc больше не поставлялся в комплекте. AppleShare IP Manager версий 5.0–6.2 использовал OpenDoc, но в AppleShare IP 6.3 от этой зависимости отказались, поскольку это была первая версия, совместимая с Mac OS 9, выпущенная в 1999 году. Apple официально отказалась от последней торговой марки на название "OpenDoc" 11 июня 2005 года.