WebObjects
Encyclopedia
WebObjects was a Java web application server
Application server
An application server is a software framework that provides an environment in which applications can run, no matter what the applications are or what they do...

 from Apple Inc., and a web application framework
Web application framework
A web application framework is a software framework that is designed to support the development of dynamic websites, web applications and web services. The framework aims to alleviate the overhead associated with common activities performed in Web development...

 that ran on the server. It was available at no additional cost. Its hallmark features were its object-orientation
Object-oriented programming
Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...

, database connectivity, and prototyping tools. Applications created with WebObjects could be deployed as web sites, Java Web Start desktop applications, and/or standards-based web services.

WebObjects was created by NeXT Software, Inc.
NeXT
Next, Inc. was an American computer company headquartered in Redwood City, California, that developed and manufactured a series of computer workstations intended for the higher education and business markets...

, 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
Electronic commerce
Electronic commerce, commonly known as e-commerce, eCommerce or e-comm, refers to the buying and selling of products or services over electronic systems such as the Internet and other computer networks. However, the term may refer to more than just buying and selling products online...

, with clients including Disney
The Walt Disney Company
The Walt Disney Company is the largest media conglomerate in the world in terms of revenue. Founded on October 16, 1923, by Walt and Roy Disney as the Disney Brothers Cartoon Studio, Walt Disney Productions established itself as a leader in the American animation industry before diversifying into...

, Dell Computer, BBC News
BBC News
BBC News is the department of the British Broadcasting Corporation responsible for the gathering and broadcasting of news and current affairs. The department is the world's largest broadcast news organisation and generates about 120 hours of radio and television output each day, as well as online...

, Merrill Lynch
Merrill Lynch
Merrill Lynch is the wealth management division of Bank of America. With over 15,000 financial advisors and $2.2 trillion in client assets it is the world's largest brokerage. Formerly known as Merrill Lynch & Co., Inc., prior to 2009 the firm was publicly owned and traded on the New York...

, Motorola
Motorola
Motorola, Inc. was an American multinational telecommunications company based in Schaumburg, Illinois, which was eventually divided into two independent public companies, Motorola Mobility and Motorola Solutions on January 4, 2011, after losing $4.3 billion from 2007 to 2009...

, DreamWorks SKG, GE Capital
GE Capital
GE Capital is the financial services unit of General Electric, one of five major units. Its various divisions include GE Capital Aviation Services, GE Capital Real Estate, GE Energy Financial Services and GE Money....

, and Fannie Mae. However, following NeXT
NeXT
Next, Inc. was an American computer company headquartered in Redwood City, California, that developed and manufactured a series of computer workstations intended for the higher education and business markets...

's merger into Apple Inc. in 1997, WebObjects' public profile has languished in the marketplace. With many early adopters having since switched to alternative technologies, Apple was the biggest client for WebObjects, relying on it to power its online Apple Store
Apple Store (online)
The Apple Store is the online store of Apple Inc.. All of Apple's product lines are carried as well as select brands of accessories for its products. It is owned and operated by Apple in Cupertino, California...

, MobileMe
MobileMe
MobileMe was a subscription-based collection of online services and software offered by Apple Inc. Originally launched on January 5, 2000, as iTools, a free collection of Internet-based services for users of Mac OS 9, Apple relaunched it as .Mac on July 17, 2002, when it became a paid subscription...

 online services, and the iTunes Store
ITunes Store
The iTunes Store is a software-based online digital media store operated by Apple. Opening as the iTunes Music Store on April 28, 2003, with over 200,000 items to purchase, it is, as of April 2008, the number-one music vendor in the United States...

 — WebObjects' highest-profile implementation to date.

The deployment runtime
Run-time system
A run-time system is a software component designed to support the execution of computer programs written in some computer language...

 is pure Java, and Apple allows users to deploy WebObjects applications on any platform which supports Java. One can use the included WebObjects Java SE application server or deploy on third-party Java EE application servers such as JBoss
JBoss
JBoss Application Server is an open-source Java EE-based application server. An important distinction for this class of software is that it not only implements a server that runs on Java, but it actually implements the Java EE part of Java...

, Apache Tomcat, WebLogic Server
Oracle Weblogic Server
Owned by Oracle Corporation, Oracle WebLogic consists of a Java EE platform product-family that includes:* a Java EE application server, WebLogic Application Server* an enterprise portal, WebLogic Portal* an Enterprise Application Integration platform...

 or IBM WebSphere
WebSphere
IBM WebSphere refers to a brand of computer software products in the genre of enterprise software known as "application and integration middleware". These software products are used by end-users to create applications and integrate applications with other applications...

.

WebObjects was cut as a default install from Apple's Snow Leopard Server operating system. Shortly after this move, Apple ceased promoting or selling WebObjects. As of 2011, WebObjects is actively supported by its developer community, the "WebObjects Community Association". The organization last held a developer conference as recently as 2011.

Tools

As of 2011 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
Apache Ant
Apache Ant is a software tool for automating software build processes. It is similar to Make but is implemented using the Java language, requires the Java platform, and is best suited to building Java projects....

 or Apache Maven
Apache Maven
Maven is a build automation and software comprehension tool. While primarily used for Java programming, it can also be used to build and manage projects written in C#, Ruby, Scala, and other languages. Maven serves a similar purpose to the Apache Ant tool, but it is based on different concepts and...

. These tools are distributed with WOLips.

History

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. Since May 2001 WebObjects has been included with Mac OS X Server, 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
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

 platform with the release of version 5.3 in June 2005. The developer tools and frameworks, which previously sold for US$699, were now bundled with Apple's Xcode
Xcode
Xcode is a suite of tools, developed by Apple, for developing software for Mac OS X and iOS. Xcode 4.2, the latest major version, is available on the Mac App Store for free for Mac OS X 10.7 , and on the Apple Developer Connection website for free to registered developers Xcode is a suite of tools,...

 IDE
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...

. A corollary of this move was that support for other platforms, such as Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

, was discontinued.

Apple said that it would further integrate WebObjects development tools with Xcode
Xcode
Xcode is a suite of tools, developed by Apple, for developing software for Mac OS X and iOS. Xcode 4.2, the latest major version, is available on the Mac App Store for free for Mac OS X 10.7 , and on the Apple Developer Connection website for free to registered developers Xcode is a suite of tools,...

 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
Eclipse (software)
Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...

 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 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 upon

2007: 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

WebObjects has a number of key technologies that differentiate it from some application servers:
  • Zero Cost: 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 as JDBC, WebObjects automatically handles the writing of appropriate SQL code.
  • Separation of Presentation Logic, Business Logic, and Data: WebObjects conforms to the MVC
    Model-view-controller
    Model–view–controller is a software architecture, currently considered an architectural pattern used in software engineering. The pattern isolates "domain logic" from the user interface , permitting independent development, testing and maintenance of each .Model View Controller...

     programming paradigm, enforcing a clean separation of presentation (Web pages), logic (Java code) and data (data store).
  • State Management: Without using cookies
    HTTP cookie
    A cookie, also known as an HTTP cookie, web cookie, or browser cookie, is used for an origin website to send state information to a user's browser and for the browser to return the state information to the origin site...

    , 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 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
    HTML
    HyperText Markup Language is the predominant markup language for web pages. HTML elements are the basic building-blocks of webpages....

    , or other tag-based information display standards, such as XML
    XML
    Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....

     or SMIL
    Synchronized Multimedia Integration Language
    SMIL , the Synchronized Multimedia Integration Language, is a W3C recommended XML markup language for describing multimedia presentations. It defines markup for timing, layout, animations, visual transitions, and media embedding, among other things...

    . 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
    Web template
    A web template is a tool used to separate content from presentation in web design, and for mass-production of web documents. It is a basic component of a web template system.Web templates can be used to set up any type of website...

     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
    Enterprise Objects Framework
    The Enterprise Objects Framework was introduced by NeXT in 1994 as a pioneering object-relational mapping product for its NeXTSTEP and OpenStep development platforms. The EOF abstracts the process of interacting with a relational database, mapping database rows to Java or Objective-C objects. This...

     (EOF)
    is, perhaps, the hallmark feature of WebObjects. EOF communicates with relational database
    Relational database
    A relational database is a database that conforms to relational model theory. The software used in a relational database is called a relational database management system . Colloquial use of the term "relational database" may refer to the RDBMS software, or the relational database itself...

    s 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
    SQL
    SQL is a programming language designed for managing data in relational database management systems ....

    -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
    Array data type
    In computer science, an array type is a data type that is meant to describe a collection of elements , each selected by one or more indices that can be computed at run time by the program. Such a collection is usually called an array variable, array value, or simply array...

    s, dictionaries
    Associative array
    In computer science, an associative array is an abstract data type composed of a collection of pairs, such that each possible key appears at most once in the collection....

     (objects that contain key-value pairs) and formatting classes. Java Foundation is similar to the Foundation framework contained in Apple's Cocoa API
    Cocoa (API)
    Cocoa is Apple's native object-oriented application programming interface for the Mac OS X operating system and—along with the Cocoa Touch extension for gesture recognition and animation—for applications for the iOS operating system, used on Apple devices such as the iPhone, the iPod Touch, and...

     for Mac OS X
    Mac OS X
    Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

     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
    NEXTSTEP
    NeXTSTEP was the object-oriented, multitasking operating system developed by NeXT Computer to run on its range of proprietary workstation computers, such as the NeXTcube...

     OS heritage). Since the transition of WebObjects to Java in 2000, the functionality of many of Apple's Java Foundation classes is replicated in the Sun's own JDK. 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
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

 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
Relational model
The relational model for database management is a database model based on first-order predicate logic, first formulated and proposed in 1969 by Edgar F...

 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:
  • 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
    Swing (Java)
    Swing is the primary Java GUI widget toolkit. It is part of Oracle's Java Foundation Classes — an API for providing a graphical user interface for Java programs....

     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
    Microsoft Windows
    Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

     and various Linux
    Linux
    Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

     systems such as Red Hat Linux
    Red Hat Linux
    Red Hat Linux, assembled by the company Red Hat, was a popular Linux based operating system until its discontinuation in 2004.Red Hat Linux 1.0 was released on November 3, 1994...

    , Debian
    Debian
    Debian is a computer operating system composed of software packages released as free and open source software primarily under the GNU General Public License along with other free software licenses. Debian GNU/Linux, which includes the GNU OS tools and Linux kernel, is a popular and influential...

     and SUSE
    SUSE Linux distributions
    SUSE Linux is a computer operating system. It is built on top of the open source Linux kernel and is distributed with system and application software from other open source projects. SUSE Linux is of German origin and mainly developed in Europe. The first version appeared in early 1994, making...

    . Applications can also be hosted on any Java EE compatible application server such as JBoss
    JBoss
    JBoss Application Server is an open-source Java EE-based application server. An important distinction for this class of software is that it not only implements a server that runs on Java, but it actually implements the Java EE part of Java...

    .
  • Java EE integration: WebObjects applications can be packaged in a single directory (an exploded .war file) that make it easier to deploy to a Java EE servlet
    Java Servlet
    A servlet is a Java programming language class used to extend the capabilities of servers that host applications accessed via a request-response programming model. Although servlets can respond to any type of request, they are commonly used to extend the applications hosted by Web servers...

     container.
  • JDBC: Since WebObjects uses JDBC for database connectivity any DBMS 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.

Version history

WebObjects was originally released by NeXT Computer
NeXT
Next, Inc. was an American computer company headquartered in Redwood City, California, that developed and manufactured a series of computer workstations intended for the higher education and business markets...

 in March 1996, but was acquired by Apple Inc. with their acquisition of NeXT in December of that year.
5.4.3 — 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 29th 2010. WOWODC 2011 will return to Montreal on July 1, 2, and 3rd in 2011.

Open source alternatives

Interest in OpenSource alternatives to WebObjects which use the Objective-C
Objective-C
Objective-C is a reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.Today, it is used primarily on Apple's Mac OS X and iOS: two environments derived from the OpenStep standard, though not compliant with it...

 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
Sope
A sope is a traditional Mexican dish originating in the city of Culiacán. Originally called gordita or pelliscadas in Culiacán. It is an antojito which at first sight looks like an unusually thick tortilla with vegetables and meat toppings...

, which has been used as the basis of the OpenGroupware.org
OpenGroupware.org
SOGo is an Open Source collaborative software server with a focus on simplicity and scalability...

 groupware server for about eight years, and GNUstepWeb
GNUstepWeb
GNUstepWeb is a development environment and an application server for Web Applications. It is characterized by strict separation of data storage, processing and user interface development....

, which is part of the GNUstep
GNUstep
GNUstep is a free software implementation of Cocoa Objective-C libraries , widget toolkit, and application development tools not only for Unix-like operating systems, but also for Microsoft Windows. It is part of the GNU Project.GNUstep features a cross-platform, object-oriented development...

 project. Open-source rewrites of the EOF frameworks also exist (AJRDatabase, GDL2).

There are also Java-based alternatives:

Wotonomy is a project, hosted on Sourceforge
SourceForge
SourceForge Enterprise Edition is a collaborative revision control and software development management system. It provides a front-end to a range of software development lifecycle services and integrates with a number of free software / open source software applications .While originally itself...

, that implements a clean-room, open-source version of the WebObjects 5.x system. 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 an Apache Maven
Apache Maven
Maven is a build automation and software comprehension tool. While primarily used for Java programming, it can also be used to build and manage projects written in C#, Ruby, Scala, and other languages. Maven serves a similar purpose to the Apache Ant tool, but it is based on different concepts and...

 build infrastructure and migrated to the Subversion revision control
Revision control
Revision control, also known as version control and source control , is the management of changes to documents, programs, and other information stored as computer files. It is most commonly used in software development, where a team of people may change the same files...

 system, there has not been any substantial update to the codebase since 2003.

Apache Tapestry has a design and philosophy similar to that of WebObjects. Tapestry is frequently combined with Apache Cayenne
Apache Cayenne
Apache Cayenne is an open source persistence framework licensed under the Apache License, providing object-relational mapping and remoting services. Cayenne binds one or more database schemas directly to Java objects, managing atomic commit and rollbacks, SQL generation, joins, sequences, and more...

, a persistence framework inspired by EOF.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK