WebObjects explained

WebObjects
Author:NeXT Software Inc.
Developer:Apple Inc.
Discontinued:Yes
Latest Release Version:5.4.3
Programming Language:Java
Operating System:OS X
Genre:Web application server
License:Proprietary
Replaced By:Project Wonder
Project Wonder
Developer:WebObjects Community Association
Engines:-->
Platform:Linux, macOS, Windows, and possibly others
Language:Java
License:BSD-like

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

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

2.0 — June 25, 1996

3.0 — November 1996

3.1

3.5 — December 1997

4.0 — September 1998

4.5 —; March 2000

4.5.1

5.0[5] — May 2001

5.1[6] — January 10, 2002

5.1.2[7] — May 7, 2002

5.1.3[8] — June 7, 2002

5.1.4[9] — August 22, 2002

5.2[10] — November 12, 2002

5.2.1[11] — March 21, 2003

5.2.2[12] — October 22, 2003

5.2.3[13] — March 16, 2004

5.2.4[14] — May 2, 2005

5.3 (developer) for Mac OS X 10.4[15] — June 6, 2005

5.3 (deployment) for Mac OS X Server 10.4 — June 23, 2005

5.3.1[16] — November 10, 2005

5.3.2[17] — August 7, 2006

5.3.3[18] — February 15, 2007

5.4[19] — October 26, 2007

5.4.1[20] — February 11, 2008

5.4.2[21] — July 11, 2008

5.4.3[22] — September 15, 2008

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

External links

Notes and References

  1. http://lists.apple.com/archives/webobjects-dev/2006/Aug/msg01144.html Apple Mailing Lists: RE: Xcode 2.4 Deprecation Announcements
  2. http://WOCommunity.org WebObjects Community Association
  3. http://www.wocommunity.org/wowodc12/
  4. Web site: Leswing. Kif. Apple officially killed one of Steve Jobs' favorite projects. Business Insider. Business Insider. 5 May 2016.
  5. https://developer.apple.com/documentation/LegacyTechnologies/WebObjects/WebObjects_5/ReleaseNotes/current_ReleaseNotes.html WebObjects 5.0 Release Notes
  6. https://developer.apple.com/documentation/LegacyTechnologies/WebObjects/WebObjects_5.1/ReleaseNotes/ReleaseNotes.html WebObjects 5.1 Release Notes
  7. http://docs.info.apple.com/article.html?artnum=75204 WebObjects 5.1.2: Update Overview
  8. http://www.info.apple.com/kbnum/n75277 WebObjects 5.1.3: Update Overview
  9. http://www.info.apple.com/kbnum/n75292 WebObjects 5.1.4: Update Overview
  10. https://developer.apple.com/documentation/WebObjects/ReleaseNotes/index.html WebObjects 5.2 Release Notes
  11. http://docs.info.apple.com/article.html?artnum=75433 WebObjects 5.2.1: Update Overview
  12. http://docs.info.apple.com/article.html?artnum=107649 WebObjects 5.2.2: Update Overview
  13. http://docs.info.apple.com/article.html?artnum=107873 WebObjects 5.2.3: Update Overview
  14. http://docs.info.apple.com/article.html?artnum=301410 WebObjects 5.2.4: Update Overview
  15. https://developer.apple.com/releasenotes/WebObjects/WO53_ReleaseNotes/index.html WebObjects 5.3 Release Notes
  16. http://docs.info.apple.com/article.html?artnum=302797 WebObjects 5.3.1: Update Overview
  17. http://docs.info.apple.com/article.html?artnum=304041 WebObjects 5.3.2: Update Overview
  18. http://docs.info.apple.com/article.html?artnum=305009 WebObjects 5.3.3: Update Overview
  19. https://www.apple.com/server/macosx/features/webhosting.html WebObjects 5.4: Update in Leopard Server
  20. https://www.apple.com/downloads/macosx/apple/application_updates/webobjectsupdate541formacosx105.html 5.4.1: Update in Leopard Client
  21. http://support.apple.com/kb/HT1979?locale=en_US About the WebObjects 5.4.2 Update
  22. http://support.apple.com/kb/HT2700 About the WebObjects 5.4.3 Update
  23. http://sope.opengroupware.org/ SOPE Frameworks for Objective-C
  24. http://sourceforge.net/projects/ajrdatabase/ AJRDatabase
  25. http://www.gnustep.org/experience/GDL2.html GDL2
  26. http://wotonomy.sourceforge.net/ Wotonomy Project
  27. http://sourceforge.net/forum/forum.php?forum_id=541649 "Wotonomy moves to maven, removes non-free software"
  28. http://sourceforge.net/forum/forum.php?forum_id=550278 "Wotonomy moves subversion"
  29. http://sourceforge.net/forum/forum.php?forum_id=248937 "Wotonomy web is coming together"
  30. Tapestry In Action - Preface
  31. http://www.getobjects.org/ GETobjects
  32. http://www.swiftobjects.org SwiftObjects