Введение
Java web-приложение и фреймворк, первоначально разработанный NeXT Software.
WebObjects — это прекращенный Java web-приложение и веб-фреймворк, работающий на сервере, первоначально разработанный NeXT Software, Inc.
Отличительными особенностями WebObjects являются объектно-ориентированный подход, возможности подключения к базам данных и инструменты прототипирования. Приложения, созданные с помощью WebObjects, могут быть развернуты как веб-сайты, настольные приложения Java WebStart и/или веб-сервисы, соответствующие стандартам. Среда выполнения развертывания написана на чистом Java, что позволяет разработчикам развертывать приложения WebObjects на платформах, поддерживающих Java. Можно использовать встроенный в WebObjects Java SE-сервер приложений или развернуть приложения на сторонних Java EE-серверах приложений, таких как JBoss, Apache Tomcat, WebLogic Server или IBM WebSphere. WebObjects долгое время поддерживался компанией Apple. Однако, поскольку Apple прекратила поддержку программного обеспечения, в настоящее время его поддерживает онлайн-сообщество добровольцев, называющее себя "Project Wonder".
NeXT создает WebObjects
WebObjects был создан компанией NeXT Software, Inc., впервые публично продемонстрирован на конференции Object World в 1995 году и выпущен в общий доступ в марте 1996 года. Преимущества в скорости и экономии, обеспечиваемые быстрой объектно-ориентированной разработкой, привлекли крупные корпорации к WebObjects на заре развития электронной коммерции, среди клиентов были BBC News, Dell Computer, Disney, DreamWorks SKG, Fannie Mae, GE Capital, Merrill Lynch и Motorola.
Конец WebObjects и начало проекта Wonder
В 2009 году Apple прекратила выпуск новых версий WebObjects для внешних пользователей. Сообщество решило продолжить разработку с помощью Project Wonder – фреймворка с открытым исходным кодом, построенного на основе основных фреймворков WebObjects и расширяющего их функциональность. Например, Project Wonder предлагает обновленные инструменты разработки и REST-фреймворк, который не входил в исходный пакет WebObjects. Хотя WebObjects ранее поставлялся в комплекте с Mac OS X Server, начиная с Mac OS X Snow Leopard Server он перестал устанавливаться по умолчанию, а вскоре после этого Apple прекратила его продвижение и продажу. По состоянию на 2016 год WebObjects активно поддерживается сообществом разработчиков, "WOCommunity Association", путем расширения основных фреймворков и предоставления исправлений через Project Wonder. Организация в последний раз проводила Всемирную конференцию разработчиков WebObjects (WOWODC) в 2013 году. В мае 2016 года Apple официально подтвердила прекращение разработки WebObjects.
Инструменты
С 2016 года большинство архитекторов и инженеров WebObjects используют инструменты, разрабатываемые сообществом WebObjects. Эти инструменты работают в среде разработки Eclipse и имеют открытый исходный код. Плагины WebObjects для Eclipse известны как WOLips. Разработка фреймворков и приложений WebObjects для развертывания обычно осуществляется с помощью набора инструментов WOProject для Apache Ant или Apache Maven. Эти инструменты распространяются вместе с WOLips.
Основные рамки
Приложение WebObjects – это, по сути, исполняемый файл на стороне сервера, созданный путем объединения предварительно созданных объектов фреймворка приложений с пользовательским кодом разработчика. Фреймворки WebObjects можно разделить на три основные части: WebObjects Framework (WOF) находится на самом высоком уровне системы. Он отвечает за пользовательский интерфейс приложения и управление состоянием. Он использует шаблонный подход для преобразования графа объектов в HTML или другие стандарты отображения информации на основе тегов, такие как XML или SMIL. Он предоставляет среду, в которой можно использовать и создавать многократно используемые компоненты. Компоненты – это фрагменты представления (HTML) и функциональности (код Java), часто с набором параметров для повышения повторного использования. WebObjects Builder используется для создания HTML-шаблонов и установления связей, например, между объектом Java String и элементами интерфейса, такими как поле ввода в веб-форме. Enterprise Objects Framework (EOF) – это, пожалуй, визитная карточка WebObjects. EOF взаимодействует с реляционными базами данных и преобразует строки базы данных в граф объектов. С помощью EOModeler разработчик может создать абстракцию базы данных в виде объектов Java. Для доступа к информации или ее добавления в базу данных разработчик просто обращается к Java Enterprise Objects (EO) из своей бизнес-логики. После этого EOF управляет объектами Enterprise и автоматически генерирует необходимый SQL-код для сохранения изменений в базе данных. Java Foundation. И Enterprise Objects, и WebObjects основаны на классах Java Foundation, что вполне закономерно. Этот фреймворк содержит фундаментальные реализации структур данных и утилиты, используемые во всем WebObjects. Примеры включают базовые классы значений и коллекций, такие как массивы, словари (объекты, содержащие пары ключ-значение) и классы форматирования. Java Foundation аналогичен фреймворку Foundation, содержащемуся в API Cocoa от Apple для настольных приложений macOS, однако Java Foundation написан на чистом Java, в отличие от Objective-C Cocoa (с его оберткой Java bridge). Классы Foundation имеют префикс "NS" (отсылка к их происхождению из операционной системы NeXTSTEP). С момента перехода WebObjects на Java в 2000 году функциональность многих классов Apple Java Foundation была воспроизведена в собственном JDK от Sun. Однако они сохраняются в основном для обеспечения обратной совместимости, и разработчики могут свободно использовать любой фреймворк по своему усмотрению.
The WebObjects Framework (WOF) is at the highest level of the system. It is responsible for the application's user interface and state management. It uses a template based approach to take that object graph and turn it into HTML, or other tag based information display standards, such as XML or SMIL. It provides an environment where you can use and create reusable components. Components are chunks of presentation (HTML) and functionality (Java code) often with a parameter list to enhance reusability. WebObjects Builder is used to create the HTML templates and creates the linking, for instance, a Java String object to interface objects like an input field in a web form. The Enterprise Objects Framework (EOF) is, perhaps, the hallmark feature of WebObjects. EOF communicates with relational databases and turns database rows into an object graph. Using EOModeler the developer can create an abstraction of the database in the forms of Java objects. In order to access or insert information into the database the developer simply accesses the Java Enterprise Objects (EOs) from their business logic. After that EOF manages the Enterprise Objects and automatically creates the required SQL code to commit the changes to the database. Java Foundation. Both Enterprise Objects and WebObjects rest on the aptly named Java Foundation classes. This framework contains the fundamental data structure implementations and utilities used throughout the rest of WebObjects. Examples include basic value and collection classes, such as arrays, dictionaries (objects that contain key value pairs) and formatting classes. Java Foundation is similar to the Foundation framework contained in Apple's Cocoa API for macOS desktop applications, however Java Foundation is written in Pure Java as opposed to Cocoa's Objective C (with its Java bridge runtime wrapper). Foundation classes are prefixed with the letters "NS" (a reference to their NeXTSTEP OS heritage). Since the transition of WebObjects to Java in 2000, the functionality of many of Apple's Java Foundation classes is replicated in Sun's own JDK. However, they persist largely for reasons of backwards compatibility and developers are free to use whichever frameworks they prefer.
WOWODC
С 2007 года сообщество проводит ежегодную конференцию для разработчиков WebObjects, WOWODC. В 2007 и 2008 годах конференция проходила в выходные дни перед WWDC, а в 2009 году сообщество организовало две конференции: WOWODC West в Сан-Франциско 6 и 7 июня, непосредственно перед WWDC, и WOWODC East в Монреале 29 и 30 августа. WOWODC 2010 проходила в Монреале 27, 28 и 29 августа 2010 года. WOWODC 2011 проходила в Монреале 1, 2 и 3 июля 2011 года. WOWODC 2012 проходила в Монреале 30 июня, 1 и 2 июля 2012 года. WOWODC 2013 состоялась в Монреале. WOWODC 2014 проходила в Монреале (12, 13 и 14 апреля). WOWODC 2015 проходила в Гамбурге 25, 26 и 27 апреля. WOWODC 2016 проходила в Монреале 24, 25 и 26 июня.