WebObjects

Last updated

WebObjects
Original author(s) NeXT Software Inc.
Developer(s) Apple Inc.
Initial releaseMarch 28, 1996;28 years ago (1996-03-28)
Final release
5.4.3 / September 15, 2008;16 years ago (2008-09-15)
Written in Java
Operating system OS X
SuccessorProject Wonder
Type Web application server
License Proprietary
Website www.apple.com/webobjects/   OOjs UI icon edit-ltr-progressive.svg
Project Wonder
Developer(s) WebObjects Community Association
Repository github.com/wocommunity
Platform Linux, macOS, Windows, and possibly others
Available in Java
License BSD-like
Website wiki.wocommunity.org/xwiki/bin/view/WEB/Home/

WebObjects is a discontinued Java web application server and a server-based web application framework originally developed by NeXT Software, Inc.

Contents

WebObject's hallmark features are its object-orientation, database connectivity, and prototyping tools. Applications created with WebObjects can be deployed as web sites, Java WebStart desktop applications, and/or standards-based web services.

The deployment runtime is pure Java, allowing developers to deploy WebObjects applications on platforms that support Java. One can use the included WebObjects Java SE application server or deploy on third-party Java EE application servers such as JBoss, Apache Tomcat, WebLogic Server or IBM WebSphere.

WebObjects was maintained by Apple for quite a while. However, because Apple has stopped maintaining the software, it now is instead maintained by an online community of volunteers. This community calls it "Project Wonder".

History

NeXT creates WebObjects

WebObjects was created by NeXT Software, Inc., first publicly demonstrated at the Object World conference in 1995 and released to the public in March 1996. The time and cost benefits of rapid, object-oriented development attracted major corporations to WebObjects in the early days of e-commerce, with clients including BBC News, Dell Computer, Disney, DreamWorks SKG, Fannie Mae, GE Capital, Merrill Lynch, and Motorola.

Apple acquires NeXT, and continues to maintain the software

Following NeXT's merger into Apple Inc. in 1997, WebObjects' public profile languished. Many early adopters later switched to alternative technologies, including Apple which had been the last remaining large client for the software, relying on it to power parts of its online Apple Store and the iTunes Store  which was WebObjects' highest-profile implementation at the time.

WebObjects was part of Apple's strategy of using software to drive hardware sales, and in 2000 the price was lowered from $50,000 (for the full deployment license) to $699. From May 2001, WebObjects was included with Mac OS X Server, and no longer required a license key for development or deployment.

WebObjects transitioned from a stand-alone product to be a part of Mac OS X with the release of version 5.3 in June 2005. The developer tools and frameworks, which previously sold for US$699, were bundled with Apple's Xcode IDE. Support for other platforms, such as Windows, was then discontinued. Apple said that it would further integrate WebObjects development tools with Xcode in future releases. This included a new EOModeler Plugin for Xcode. This strategy, however, was not pursued further.

In 2006, Apple announced the deprecation of Mac OS X's Cocoa-Java bridge with the release of Xcode 2.4 at the August 2006 Worldwide Developers Conference, and with it all dependent features, including the entire suite of WebObjects developer applications: EOModeler, EOModeler Plugin, WebObjects Builder, WebServices Assistant, RuleEditor and WOALauncher. Apple had decided to concentrate its engineering resources on the runtime engine of WebObjects, leaving the future responsibility for developer applications with the open-source community. The main open-source alternative the Eclipse IDE with the WOLips suite of plugins had matured to such an extent that its capabilities had, in many areas, surpassed those of Apple's own tools, which had not seen significant updates for a number of years.

Apple promised to provide assistance to the community in its efforts to extend such tools and develop new ones. In a posting to the webobjects-dev mailing list, [1] Daryl Lee from Apple's WebObjects team publicly disclosed the company's new strategy for WebObjects. It promised to "make WebObjects the best server-side runtime environment" by:

WebObjects 5.4, which shipped with Mac OS X Leopard in October 2007, removed the license key requirement for both development and deployment of WebObjects applications on all platforms. All methods for checking license limitations were then deprecated.

The end of WebObjects, and the beginning of Project Wonder

In 2009, Apple stopped issuing new releases of WebObjects outside Apple. The community decided to continue development with Project Wonder, an open-source framework which is built on top of the core WebObjects frameworks and which extends them. For example, Project Wonder has updated development tools and provides a REST framework that was not part of the original WebObjects package.

Though once included in the default installation of Mac OS X Server, WebObjects was no longer installed by default starting with Mac OS X Snow Leopard Server and shortly after, Apple ceased promoting or selling WebObjects. As of 2016, WebObjects is actively supported by its developer community, the "WOCommunity Association", by extending the core frameworks and providing fixes with Project Wonder. The organization last held a Worldwide WebObjects Developer Conference, WOWODC, in 2013. [2] [3]

In May 2016, Apple confirmed that WebObjects had been discontinued. [4]

Tools

As of 2016 most WebObjects architects and engineers are using the tools being developed by the WebObjects community. These tools run within the Eclipse IDE and are open-source. The WebObjects plug-ins for Eclipse are known as WOLips.

Building WebObjects frameworks and applications for deployment is typically achieved using the WOProject set of tools for Apache Ant or Apache Maven. These tools are distributed with WOLips.

Core frameworks

A WebObjects application is essentially a server-side executable, created by combining prebuilt application framework objects with the developer's own custom code. WebObjects' frameworks can be broken down into three core parts:

Rules-Based Rapid Application Development (RBRAD)

WebObjects features a set of rapid development technologies that can automatically create a Web application without the need to write any Java code. Given a model file for a database, WebObjects will create an interface supporting nine common database tasks, including querying, editing and listing. Such applications are useful for prototyping or administering a database, perhaps to check relationships or to seed the database with data.

The user interface is generated dynamically, on-the-fly at runtime using a rules-based system no code is generated. Consequently, one can modify an application's configuration at runtime (using an assistant program) without recompiling or relaunching the application.

Developers can utilize one of three different technologies, depending upon the type of interface they wish to employ:

Advantages of RBRAD

Java compatibility

WebObjects is a 100% Java product with the following Java-based features:

Version history

WebObjects was originally released by NeXT Computer in March 1996, but was acquired by Apple Inc. with their acquisition of NeXT in December of that year.

1.0 March 28, 1996
  • Debut release.
2.0 June 25, 1996
  • Pre-release version of WebObjects Builder application.
3.0 November 1996
3.1
  • Supports a subset of the Java APIs (NT only).
3.5 December 1997
  • Enhanced Java support (NT only): all objects and components can be worked on as a set of Java APIs based on a complete implementation of the JDK 1.1.3.
4.0 September 1998
  • First version of WebObjects to run on the Mac platform specifically Mac OS X Server 1.0 (a public release of the beta OS formerly code-named 'Rhapsody').
  • OPENSTEP 4.2 OS no longer supported; Windows NT now uses a new version of the OpenStep base of libraries and binary support called Yellow Box.
  • Direct actions introduced whereby actions can be sent directly to an object that can handle it, allowing for simpler, static URLs.
  • Direct to Web code-free development assistant introduced.
  • WebObjects and Enterprise Objects Framework provide thread-safe APIs. This means that you can write a multithreaded WebObjects application where you couldn't before. This enables applications that can provide user feedback for long-running requests.
  • Better tools for managing, configuring and testing the scalability of applications.
  • Java capabilities are greatly improved over previous version, however compiled Objective-C is still two to three times faster;
  • Possible to build a fully capable Java client either as a stand-alone app or as an applet with the Interface Builder - all sorts of Swing and Java Bean components are sitting on IB palettes for wiring up.
  • Developers can now debug applications on a machine that doesn't have a web server present.
  • EOF 3.0 adds support for a new database, OpenBase Lite, which ships with EOF 3.0 as an unsupported demo.
  • EOF 3.0 introduces new API, mainly in EOUtilities, to facilitate common programming tasks.
  • EOModeler adds support for prototype attributes and the ability to create and store complex queries (or EOFetchSpecifications).
4.5 March 2000
  • Integrated XML support using IBM's alphaWorks parser.
  • New WebObjects Builder interface, specifically in the main window toolbar, the user interface for binding keys, and the table editing user interface. A path view, an API editor, and component validation have been added.
  • Application profiling tools.
  • EOF 4.5 comes with a new sample adaptor: the LDAP adaptor.
  • Direct to Web now allows you to create your own visual style and exposes a great deal of new API.
  • Java Client extended considerably, including a new user interface generation layer, Direct to Java Client.
4.5.1
  • First version to support Mac OS X 10.x and Windows 2000.
  • Last version to support HP-UX and Mac OS X Server 1.0.
  • Last version that supported the Objective-C API.
5.0 [5]  May 2001
5.1 [6]  January 10, 2002
  • Create and deploy Enterprise JavaBeans using the built-in container based on OpenEJB.
  • Deploy WebObjects applications as JSPs or Servlets on top of third-party application servers.
  • Access and manipulate data stored in JNDI or LDAP directory services.
  • Automatically generate desktop Java client applications with rich, interactive user interfaces.
  • Utilize the WebObjects template engine and object-relational mapping for seamless XML messaging.
5.1.2 [7]  May 7, 2002
  • Contains general bug fixes for WebObjects 5.1 on all platforms.
5.1.3 [8]  June 7, 2002
  • Contains targeted bug fixes for WebObjects 5.1 on all platforms.
5.1.4 [9]  August 22, 2002
  • Compatibility with Mac OS X 10.2.
5.2 [10]  November 12, 2002
  • Web Services support.
  • Improvements to Java EE integration
  • Java Web Start support.
  • Improvements to robustness and stability of Enterprise Objects.
  • Major bug fixes led many developers to hail this as the first stable 5.x release of WebObjects.
5.2.1 [11]  March 21, 2003
  • Resolved some incompatibilities with the latest Java 1.4.1 implementation for Mac OS X.
5.2.2 [12]  October 22, 2003
  • Compatibility with Mac OS X 10.3 Panther and the Xcode IDE.
  • JBoss on Panther Server qualification.
  • Qualified for Java 1.4.1.
  • Fixes for EOF runtime and WOFileUpload.
5.2.3 [13]  March 16, 2004
  • Performance and stability update addressing issues with CLOSE_WAIT states in deployment using JavaMonitor and wotaskd and issues related to EOF under high load.
  • Qualified for Java 1.4.2.
5.2.4 [14]  May 2, 2005
5.3 (developer) for Mac OS X 10.4 [15]  June 6, 2005
  • WebObjects developer tools included free with the Xcode IDE (v2.1).
  • Development and deployment on platforms other than Mac OS X no longer supported by Apple.
  • EOModels can be created and edited within Xcode with a new EOModeler plugin that integrates with the CoreData modeling tools.
  • WebObjects Builder has UI enhancements and generates HTML 4.0.1 code.
  • WebObjects runtime now supports HTML 4.0.1.
  • NSArray, NSDictionary and NSSet now implement the java.util.Collection interfaces.
  • Axis 1.1 integrated with the Direct To WebServices feature.
  • WebObjects is qualified against Oracle 10g using the 10.1.0.2 JDBC drivers; Microsoft SQL Server 2000 8.00.194; MySQL 4.1.10a; OpenBase 8.0; Oracle 9i Enterprise Edition Sybase ASE 12.5
5.3 (deployment) for Mac OS X Server 10.4 June 23, 2005
  • Installer updates the Application Server components in Mac OS X Server 10.4 to WebObjects 5.3.
5.3.1 [16]  November 10, 2005
  • Addresses incompatibilities with Xcode 2.2 Developer tools on Mac OS X 10.4.
  • Adds a modified Developer tools license that allows WebObjects applications developed with Xcode 2.2 to be deployed on any compatible platform. The license is available at /System/Library/Frameworks/JavaWebObjects.framework/Resources/License.key after installation.
  • Adds better SQL Generation in the EOModeler Plug-in design tool in Xcode.
  • Improved FetchSpecification building in the EOModeler Plugin design tool in Xcode.
  • Adds a "components and elements" window for improved workflow in WebObjects Builder.
  • Bug fixes.
5.3.2 [17]  August 7, 2006
  • Addresses incompatibilities with Xcode 2.4 Developer tools on Mac OS X 10.4.
  • Security improvements.
  • Other improvements.
  • As part of the simultaneous release of Xcode 2.4, the Cocoa Java bridge is deprecated along with the following WebObjects applications: EOModeler, EOModeler Plugin, WebObjects Builder, WebServices Assistant, RuleEditor and WOALauncher.
5.3.3 [18]  February 15, 2007
  • "WebObjects DST Update": Updates WebObjects 5.3 systems to observe the Daylight Saving Time (DST) changes due to come into effect in March 2007 in many countries, including the United States and Canada. Uses the latest DST and time zone information available as of January 8, 2007.
5.4 [19]  October 26, 2007
  • License key no longer required or supported
  • Deprecations: Java Client Nib based applications, Direct to JavaClient based applications, EOCocoaClient based applications, OpenBase no longer example database, Tools (EOModeler, WebObjects Builder, Rule editor)
  • Combined Component Template Parser that reduces .wo components to single .html files
  • Generation of XHTML compliant pages
  • AJAX request handler for enhanced page caching
  • Added support for secure URL generation
  • JMX monitoring support
  • Entity index management in the model
  • Improved the synchronization with the database
  • Added support for index generation
  • Support for enum in attribute conversion
  • Improved support for vendor specific prototypes (EOJDBCOraclePrototype, EOJDBCFrontBasePrototype, etc.)
  • Derby support (Embedded database)
  • Support for Generics
  • WebServices update (Axis 1.4)
  • Full support for Apple XML plist (Read and Write)
  • Ant build support
  • Open Specifications
5.4.1 [20]  February 11, 2008
  • "WebObjects 5.4.1 is an update release for the version of WebObjects included in the Mac OS X Leopard tools. This release fixes several bugs in areas such as web services serialization, deployment tools, and database compatibility, among others. This update can be installed on Mac OS X 10.5 Leopard."
  • Fixed bugs in web services serialization, deployment, databases.
5.4.2 [21]  July 11, 2008
  • Addresses WOComponent parser issues
  • Includes WebServices data types and API changes
  • Includes EOF SQL Generation fixes
  • Resolves additional issues
5.4.3 [22]  September 15, 2008
  • EOF Database snapshot not updating
  • Webassistant not available for D2W apps
  • Exceptions when using WOTextField with formatters
  • Duplicate primary keys generated by FrontBase JDBC Adaptor under load
  • Additional issue fixes

WOWODC

Since 2007, the community has held an annual conference for WebObjects developers, WOWODC. In 2007 and 2008, the conference was held the weekend before WWDC, and in 2009, the community promoted two conferences: WOWODC West in San Francisco on June 6 and 7, immediately before WWDC, and WOWODC East in Montreal on August 29 and 30. WOWODC 2010 was held in Montreal on August 27, 28 and 29, 2010. WOWODC 2011 was held in Montreal on July 1, 2 and 3 in 2011. WOWODC 2012 was held in Montreal on June 30, July 1 and 2, 2012. WOWODC 2013 was held in Montreal. WOWODC 2014 was held in Montreal (April 12, 13 and 14). WOWODC 2015 was held in Hamburg on April 25, 26 and 27. WOWODC 2016 was held in Montréal on June 24, 25 and 26

Open-source alternatives

Interest in OpenSource alternatives to WebObjects that use the Objective-C language grew with WebObjects' move from Objective-C (last version WO 4.5.1) to Java (first version WO 5.0). The two frameworks available are SOPE, [23] which has been used as the basis of the OpenGroupware.org groupware server for about eight years, and GNUstepWeb, which is part of the GNUstep project. Open-source rewrites of the EOF frameworks also exist (AJRDatabase, GDL2). [24] [25]

There are also Java-based alternatives:

An attempt to do a Swift version based on SOPE / GETobjects is available as SwiftObjects. [32] The implementation for Swift 4 is limited due to the reflection capabilities of that Swift version.

See also

Related Research Articles

<span class="mw-page-title-main">Mac OS X Server</span> Server software for macOS

Mac OS X Server is a series of discontinued Unix-like server operating systems developed by Apple Inc. based on macOS. It provided server functionality and system administration tools, and tools to manage both macOS-based computers and iOS-based devices, network services such as a mail transfer agent, AFP and SMB servers, an LDAP server, and a domain name server, as well as server applications including a Web server, database, and calendar server.

<span class="mw-page-title-main">OpenStep</span> Defunct object-oriented application programming interface specification

OpenStep is an object-oriented application programming interface (API) specification developed by NeXT. It provides a framework for building graphical user interfaces (GUIs) and developing software applications. OpenStep was designed to be platform-independent, allowing developers to write code that could run on multiple operating systems, including NeXTSTEP, Windows NT, and various Unix-based systems. It has influenced the development of other GUI frameworks, such as Cocoa for macOS, and GNUstep.

Cocoa is Apple's native object-oriented application programming interface (API) for its desktop operating system macOS.

<span class="mw-page-title-main">GNUstep</span> Open source widget toolkit and application development tools

GNUstep is a free software implementation of the Cocoa Objective-C frameworks, widget toolkit, and application development tools for Unix-like operating systems and Microsoft Windows. It is part of the GNU Project.

Carbon was one of two primary C-based application programming interfaces (APIs) developed by Apple for the macOS operating system. Carbon provided a good degree of backward compatibility for programs that ran on Mac OS 8 and 9. Developers could use the Carbon APIs to port (“carbonize”) their “classic” Mac applications and software to the Mac OS X platform with little effort, compared to porting the app to the entirely different Cocoa system, which originated in OPENSTEP. With the release of macOS 10.15 Catalina, the Carbon API was officially discontinued and removed, leaving Cocoa as the sole primary API for developing macOS applications.

The Enterprise Objects Framework, or simply EOF, was introduced by NeXT in 1994 as a pioneering object-relational mapping product for its NeXTSTEP and OpenStep development platforms. EOF abstracts the process of interacting with a relational database by mapping database rows to Java or Objective-C objects. This largely relieves developers from writing low-level SQL code.

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

C++Builder is a rapid application development (RAD) environment for developing software in the C++ programming language. Originally developed by Borland, as of 2009 it is owned by Embarcadero Technologies, a subsidiary of Idera. C++Builder can compile apps for Windows, iOS, macOS, and Android. It includes tools that allow drag-and-drop visual development, making programming easier by incorporating a WYSIWYG graphical user interface builder.

<span class="mw-page-title-main">Xcode</span> IDE including tools for developing software for Apple platforms

Xcode is Apple's integrated development environment (IDE) for macOS, used to develop software for macOS, iOS, iPadOS, watchOS, tvOS, and visionOS. It was initially released in late 2003; the latest stable release is version 16, released on September 16, 2024, and is available free of charge via the Mac App Store and the Apple Developer website. Registered developers can also download preview releases and prior versions of the suite through the Apple Developer website. Xcode includes command-line tools that enable UNIX-style development via the Terminal app in macOS. They can also be downloaded and installed without the GUI.

<span class="mw-page-title-main">Mac OS X Tiger</span> Fifth major release of Mac OS X

Mac OS X Tiger is the 5th major release of macOS, Apple's desktop and server operating system for Mac computers. Tiger was released to the public on April 29, 2005 for US$129.95 as the successor to Mac OS X 10.3 Panther. Included features were a fast searching system called Spotlight, a new version of the Safari web browser, Dashboard, a new 'Unified' theme, and improved support for 64-bit addressing on Power Mac G5s. Mac OS X 10.4 Tiger also had a number of additional features that Microsoft had spent several years struggling to add to Windows with acceptable performance, such as fast file search and improved graphics processing.

<span class="mw-page-title-main">Rhapsody (operating system)</span> Apple operating system

Rhapsody is an operating system that was developed by Apple Computer after its purchase of NeXT in the late 1990s. It is the fifth major release of the Mach-based operating system that was developed at NeXT in the late 1980s, previously called OPENSTEP and NEXTSTEP. Rhapsody was targeted to developers for a transition period between the Classic Mac OS and Mac OS X. Rhapsody represented a new and exploratory strategy for Apple, more than an operating system, and runs on x86-based PCs and on Power Macintosh.

Core Data is an object graph and persistence framework provided by Apple in the macOS and iOS operating systems. It was introduced in Mac OS X 10.4 Tiger and iOS with iPhone SDK 3.0. It allows data organized by the relational entity–attribute model to be serialized into XML, binary, or SQLite stores. The data can be manipulated using higher level objects representing entities and their relationships. Core Data manages the serialized version, providing object lifecycle and object graph management, including persistence. Core Data interfaces directly with SQLite, insulating the developer from the underlying SQL.

<span class="mw-page-title-main">Uniface (programming language)</span> Low-code development platform

Uniface is a low-code development and deployment platform for enterprise applications that can run in a large range of runtime environments, including mobile, mainframe, web, Service-oriented architecture (SOA), Windows, Java EE, and .NET. Uniface is used to create mission-critical applications.

The Apple Developer Tools are a suite of software tools from Apple to aid in making software dynamic titles for the macOS and iOS platforms. The developer tools were formerly included on macOS install media, but are now exclusively distributed over the Internet. As of MacOS 14.6.1, Xcode is available as a free download from the Mac App Store.

Omnis Studio is a rapid application development (RAD) tool that allows programmers and application developers to create enterprise, web, and mobile applications for Windows, Linux, and macOS personal computers and servers across all business sectors.

RemObjects Software is an American software company founded in 2002 by Alessandro Federici and Marc Hoffman. It develops and offers tools and libraries for software developers on a variety of development platforms, including Embarcadero Delphi, Microsoft .NET, Mono, and Apple's Xcode.

<span class="mw-page-title-main">Xojo</span> Programming environment and programming language

The Xojo programming environment and programming language is developed and commercially marketed by Xojo, Inc. of Austin, Texas for software development targeting macOS, Microsoft Windows, Linux, iOS, Android, the Web and Raspberry Pi. Xojo uses a proprietary object-oriented language.

This page details the history of the programming language and software product Delphi.

References

  1. Apple Mailing Lists: RE: Xcode 2.4 Deprecation Announcements by Daryl Lee
  2. WebObjects Community Association (WOCommunity) (official web site).
  3. (WOWODC '12) official web site.
  4. Leswing, Kif. "Apple officially killed one of Steve Jobs' favorite projects". Business Insider. Business Insider. Retrieved May 5, 2016.
  5. WebObjects 5.0 Release Notes
  6. WebObjects 5.1 Release Notes
  7. WebObjects 5.1.2: Update Overview
  8. WebObjects 5.1.3: Update Overview
  9. WebObjects 5.1.4: Update Overview
  10. WebObjects 5.2 Release Notes
  11. WebObjects 5.2.1: Update Overview
  12. WebObjects 5.2.2: Update Overview
  13. WebObjects 5.2.3: Update Overview
  14. WebObjects 5.2.4: Update Overview
  15. WebObjects 5.3 Release Notes
  16. WebObjects 5.3.1: Update Overview
  17. WebObjects 5.3.2: Update Overview
  18. WebObjects 5.3.3: Update Overview
  19. WebObjects 5.4: Update in Leopard Server
  20. 5.4.1: Update in Leopard Client
  21. About the WebObjects 5.4.2 Update
  22. About the WebObjects 5.4.3 Update
  23. 1 2 SOPE Frameworks for Objective-C
  24. AJRDatabase
  25. GDL2
  26. Wotonomy Project
  27. "Wotonomy moves to maven, removes non-free software" - Christian Gruber
  28. "Wotonomy moves subversion" - Christian Gruber
  29. "Wotonomy web is coming together" - Micheal Powers
  30. Tapestry In Action - Preface ( ISBN   9781932394115)
  31. GETobjects
  32. SwiftObjects