- WebObjects
Infobox Software
name = WebObjects
caption = WebObjects 5.3 project in Xcode and WebObjects Builder
developer =Apple Inc.
latest release version = 5.4.3
latest release date = release date|2008|09|15
operating system =Mac OS X
genre = Webapplication server
programming language = Java
license = Proprietary
website = http://www.apple.com/webobjectsWebObjects is a Java web
application server fromApple Inc. , and aweb application framework that runs on this server. It is available, at no additional cost, as part of the Xcode Developer Tools included with Apple'sMac OS X operating system. Its hallmark features are its deep object-orientation, powerful database connectivity, and rapid prototyping tools. Applications created with WebObjects can be deployed as web sites, Java Web Start desktop applications, and/or standards-basedweb services .WebObjects was created by NeXT Software, Inc., and was 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 Disney, Dell Computer, andBBC News . However, followingNeXT 's merger intoApple Inc. in1997 , WebObjects' public profile has languished in the marketplace. With many early adopters having since switched to alternative technologies, Apple is now the biggest client for WebObjects, relying on it to power its online Apple Store,MobileMe online services, and theiTunes Store — WebObjects' highest-profile implementation to date.Despite the drop in interest, Apple has continued to grow and improve WebObjects, announcing a renewed commitment to the product and its developer base at their World Wide Developer's Conference in
June 2007 . The WebObjects development tools and frameworks are now a part of the install package for Apple's freeXcode IDE forMac OS X , and the deployment runtime is included withMac OS X Server . WebObjects license keys are also a thing of the past, allowing development and unlimited deployment capabilities right out of the box.While WebObjects is supported only on the
Mac OS X platform, the deploymentruntime is, nonetheless, pure Java and Apple allows users to deploy WebObjects applications on any platform which supports Java. You can use the included WebObjectsJava SE application server or deploy on third-partyJava EE application servers such asJBoss , Apache Tomcat,BEA WebLogic or IBMWebSphere .To ease the transition to a
Mac OS X -only development solution, Apple continues to sell the earlier version 5.2, which includes development tools forWindows 2000 Professional and official deployment support for Windows 2000 Server and Solaris 8.What Is WebObjects?
*A collection of proprietary frameworks: WebObjects comes with a rich, mature collection of proprietary Java
framework s that provide the functionality common to most Web applications;
*A Web application server: WebObjects includes a stand-alone, J2SE-based Web application server with a Web-based administration tool called JavaMonitor. Applications can also be deployed using the open-source, industry standardJBoss ;
*Rules-Based Rapid Application Development: Given a data model, WebObjects can automatically create a customizable Web application without writing a single line of code.Tools
As of
2008 most WebObjects architects and engineers are using the tools being developed by the WebObjects community. These tools run within the [http://www.eclipse.org/ Eclipse] IDE and are open-source. The WebObjects plug-ins for Eclipse are known as [http://wiki.objectstyle.org/confluence/display/WOL/Home WOLips] .Building WebObjects frameworks and applications for deployment is typically achieved using the WOProject set of tools for ant or maven. These tools are distributed with WOLips.
History of WebObjects
Under Apple's ownership WebObjects has aligned more closely with the company's corporate strategy of using software to drive hardware sales. In 2000, the price was dramatically slashed from $50,000 (for the full deployment license) to $699. WebObjects has been included with Mac OS X Server since
May 2001 , and no longer requires a license key for development or deployment.2005: WebObjects is bundled with Mac OS X
WebObjects fully transitioned from a stand-alone product to an integral part of the
Mac OS X platform with the release of version 5.3 inJune 2005 . The developer tools and frameworks, which previously sold for US$699, were now bundled with Apple'sXcode IDE. The corollary of this move was that support for other platforms, such as Windows, was 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 soon altered.2006: Apple deprecates WebObjects developer tools
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 [ [http://lists.apple.com/archives/webobjects-dev/2006/Aug/msg01144.html Apple Mailing Lists: RE: Xcode 2.4 Deprecation Announcements] by Daryl Lee] Daryl Lee from Apple's WebObjects team publicly disclosed the company's new strategy for WebObjects. It promised, in short, to "make WebObjects the best server-side runtime environment" by:
* Improving performance, manageability, and standards compliance
* Making WebObjects work well with ANT and the most popular IDEs, including Xcode and Eclipse
* Opening and making public all standards and formats that WebObjects depends upon2007: License key no longer required
WebObjects 5.4, which shipped with Mac OS X Leopard in
October 2007 , eliminated the license key requirement for both development and deployment of WebObjects applications on all platforms. All methods for checking license limitations were deprecated.Advantages of WebObjects
WebObjects has a number of key technologies that differentiate it from some application servers:
*"Zero Cost to Mac Developers:" The tools and frameworks required to develop and deploy WebObjects applications are free-of-charge.
*"Streamlined Database Access:" Database tables are represented in WebObjects as collections of Java classes called Enterprise Objects. The developer creates a "model" that maps objects to database rows. This high level of abstraction relieves developers from the drudgery of writing inflexible, database-specific code. With the use of drivers, such asJDBC , WebObjects automatically handles the writing of appropriate SQL code.
*"Separation of Presentation Logic, Business Logic, and Data:" WebObjects conforms to the MVC programming paradigm, enforcing a clean separation of presentation (Web pages), logic (Java code) and data (data store).
*"State Management:" Without using cookies, WebObjects provides objects that allow you to maintain information for the life of a particular user session, or longer.
*"Pure Java:" WebObjects applications are 100% Pure Java, which means they can be deployed on any platform with a certified Java 2 virtual machine.
*"Scalability and Performance:" Administrators run multiple instances of an application, either on one or on multiple application servers. Developers can choose from one of several load-balancing algorithms (or create their own).Core WebObjects 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:
*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 asXML orSMIL . 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 .wod-file 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 withrelational database s and turns database rows into an object graph. UsingEOModeler 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 requiredSQL -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
array s, dictionaries (objects that contain key-value pairs) and formatting classes. Java Foundation is similar to the Foundation framework contained in Apple's Cocoa API forMac OS X 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 theirNeXTStep OS heritage). Since the transition of WebObjects to Java in2000 , the functionality of many of Apple's Java Foundation classes is replicated in the Sun's ownJDK . However, they persist largely for reasons of backwards-compatibility and developers are free to use whichever frameworks they prefer.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, you can modify your 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:
*Direct To Web (D2W) allows developers to rapidly create an HTML-based Web application that accesses a database.
*Direct To Java Client allows developers to rapidly create a client desktop application using the Java Swing toolkit. An advantage of Java Client applications is that they can take advantage of the processing power of the client computer to perform operations such as sorting a list of items received from the server.
*Direct To Web Services allows developers to rapidly develop Web service-based applications that provide access to a data store.
Advantages of RBRAD
* Vastly decreased development and debugging time;
* Increased stability through the use of highly-exercised code;
* By using the information contained in the data model file, applications will not violate database integrity. Normally you would have to write code to avoid such situations and handle errors generated by bad data;
* Fully utilizes the validation services provided by WebObjects and Enterprise Objects.Java compatibility
WebObjects is a 100% Pure Java solution with the following Java-based features:
*Deployment: Applications can be deployed on any operating system that has Java 1.3 or later. Many developers have successfully deployed on Windows and various
Linux systems such asRed Hat Linux ,Debian andSUSE . Applications can also be hosted on anyJava EE compatible application server such asJBoss .
*Java EE integration: WebObjects applications can be packaged in a single directory (an exploded .war file) that make it easier to deploy to aJava EE servlet container.
*JDBC: Since WebObjects usesJDBC for database connectivity anyDBMS that has a JDBC-driver can be used within WebObjects.
*Swing interface: WebObjects applications can be delivered to the user as a "Java Client application" or as a Java applet.WebObjects version history
WebObjects was originally released by NeXT Computer in
March 1996 , but was acquired byApple 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.
:3.5 —
December 1997 :*Enhanced Java support: 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 — specificallyMac 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 theOpenStep 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 :*Last version which supported the Objective-C API.:*Integrated XML support using IBM'salphaWorks 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.:5.0 [ [http://developer.apple.com/documentation/LegacyTechnologies/WebObjects/WebObjects_5/ReleaseNotes/current_ReleaseNotes.html WebObjects 5.0 Release Notes] ] —
May 2001 :*Major rewrite from Objective-C to Java.:5.1 [ [http://developer.apple.com/documentation/LegacyTechnologies/WebObjects/WebObjects_5.1/ReleaseNotes/ReleaseNotes.html WebObjects 5.1 Release Notes] ] — January 10,
2002 :*Create and deployEnterprise JavaBean s using the built-in container based onOpenEJB .:*Deploy WebObjects applications as JSPs orServlets on top of third-party application servers.:*Access and manipulate data stored inJNDI 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 seamlessXML messaging.:5.1.2 [ [http://docs.info.apple.com/article.html?artnum=75204 WebObjects 5.1.2: Update Overview] ] — May 7,
2002 :*Contains general bug fixes for WebObjects 5.1 on all platforms.:5.1.3 [ [http://www.info.apple.com/kbnum/n75277 WebObjects 5.1.3: Update Overview] ] — June 7,
2002 :*Contains targeted bug fixes for WebObjects 5.1 on all platforms.:5.1.4 [ [http://www.info.apple.com/kbnum/n75292 WebObjects 5.1.4: Update Overview] ] — August 22,
2002 :*Compatibility with Mac OS X 10.2.:5.2 [ [http://developer.apple.com/documentation/WebObjects/ReleaseNotes/index.html WebObjects 5.2 Release Notes] ] — November 12,
2002 :*Web Services support.:*Improvements toJ2EE 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 [ [http://docs.info.apple.com/article.html?artnum=75433 WebObjects 5.2.1: Update Overview] ] — March 21,2003 :*Resolved some incompatibilities with the latest Java 1.4.1 implementation for Mac OS X.:5.2.2 [ [http://docs.info.apple.com/article.html?artnum=107649 WebObjects 5.2.2: Update Overview] ] — October 22,
2003 :*Compatibility withMac OS X 10.3 Panther and theXcode IDE.:*JBoss on Panther Server qualification.:*Qualified for Java 1.4.1.:*Fixes for EOF runtime and WOFileUpload.:5.2.3 [ [http://docs.info.apple.com/article.html?artnum=107873 WebObjects 5.2.3: Update Overview] ] — 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 [ [http://docs.info.apple.com/article.html?artnum=301410 WebObjects 5.2.4: Update Overview] ] — May 2,
2005 :*Compatibility withMac OS X 10.4 Tiger and theXcode 2.0 IDE.:5.3 (developer) for Mac OS X 10.4 [ [http://developer.apple.com/releasenotes/WebObjects/WO53_ReleaseNotes/index.html WebObjects 5.3 Release Notes] ] — June 6,
2005 :*WebObjects developer tools included free with theXcode IDE (v2.1).:*Development and deployment on platforms other thanMac OS X no longer supported by Apple.:*EOModels can be created and edited withinXcode with a new EOModeler plugin that integrates with the CoreData modeling tools.:*WebObjects Builder has UI enhancements and generatesHTML 4.0.1 code.:*WebObjectsruntime now supportsHTML 4.0.1.:*NSArray, NSDictionary and NSSet now implement the Javadoc:SE|package=java.util|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.2JDBC 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 [ [http://docs.info.apple.com/article.html?artnum=302797 WebObjects 5.3.1: Update Overview] ] — 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 [ [http://docs.info.apple.com/article.html?artnum=304041 WebObjects 5.3.2: Update Overview] ] — 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 [ [http://docs.info.apple.com/article.html?artnum=305009 WebObjects 5.3.3: Update Overview] ] — 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 [ [http://www.apple.com/server/macosx/features/webhosting.html WebObjects 5.4: Update in Leopard Server] ] — 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 [ [http://www.apple.com/downloads/macosx/apple/application_updates/webobjectsupdate541formacosx105.html 5.4.1: Update in Leopard Client] ] — 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 [ [http://support.apple.com/kb/HT1979?locale=en_US About the WebObjects 5.4.2 Update] ] — July, 11
2008 :*Addresses WOComponent parser issues:*Includes WebServices data types and API changes:*Includes EOF SQL Generation fixes:*Resolves additional issuesOpenSource alternatives
Interest in OpenSource alternatives to WebObjects which 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, which has been used as the basis of the
OpenGroupware.org groupware server for about eight years, andGNUstepWeb , which is part of theGNUstep project. An open-source rewrite of the EOF framework also exists: AJRDatabase [ [http://sourceforge.net/projects/ajrdatabase/ AJRDatabase] ] .There are also Java-based alternatives:
Wotonomy is a project, hosted on
Sourceforge , that implements a clean-room, open-source version of the WebObjects 5.x system. [ [http://wotonomy.sourceforge.net/ Wotonomy Project] ] It provides a near-complete implementation of the MVC web-framework, as well as partial implementations of Foundation, Control, and Data layers, and other features. It is sufficiently functional for low-transaction volume, single-source database applications. While the project's structure was re-organized in 2006 around anApache Maven build infrastructure [ [http://sourceforge.net/forum/forum.php?forum_id=541649 "Wotonomy moves to maven, removes non-free software"] - Christian Gruber] and migrated to the subversionrevision control system [ [http://sourceforge.net/forum/forum.php?forum_id=550278 "Wotonomy moves subversion"] - Christian Gruber] , there has not been any substantial update to the codebase since 2003. [ [http://sourceforge.net/forum/forum.php?forum_id=248937 "Wotonomy web is coming together"] - Micheal Powers]Apache Tapestry has a design and philosophy similar to that of WebObjects [ [http://www.manning.com/lewisship/excerpt_preface.html Tapestry In Action - Preface] ] . Tapestry is frequently combined withApache Cayenne , a persistence framework inspired by EOF.Notes
ee also
*Mac OS X
*NeXT
*Apple Computer
*iTunes Store
*Enterprise Objects Framework
*Java Platform
*Java EE
*Comparison of application servers
*UM.SiteMaker External links
* [http://www.apple.com/webobjects/ Apple WebObjects product page]
* [http://developer.apple.com/webobjects Apple WebObjects developer page]
* [http://developer.apple.com/referencelibrary/WebObjects/index.html Apple WebObjects Reference Library]
* [http://wonder.sourceforge.net/ Project WONDER - a collection of free WebObjects frameworks and tools]
* [http://wocode.com/cgi-bin/WebObjects/WOCode WOCode - a repository of WebObjects code samples]
* [http://wodev.spearway.com/ WODev - a WikiWikiWeb site for the WebObjects developers]
* [http://www.stepwise.com/ stepwise.com - Helping developers learn what WebObjects is all about and how to take advantage of the technology]
* [http://homepage.mac.com/kelleherk/iblog/C1216817469/ WebObjects General Information]
* [http://www.wocommunity.org/ Official WebObjects Community Website]
* [http://wiki.objectstyle.org/confluence/dashboard.action Official WebObjects Community Wiki]
* [http://wodeveloper.com/ WODeveloper - WebObjects Developer Resource]
* [http://wiki.objectstyle.org/confluence/display/WO/Additional+Resources-Websites WebObjects Additional blogs/Resources]
Wikimedia Foundation. 2010.