WebObjects
March 1, 2010WebObjects
WebObjects is a Java web application server from Apple Inc., and a web application framework that runs on the server. It is available, at no additional cost, as part of the Xcode Developer Tools included with Apple’s Mac OS X operating system. Its basic 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-based web services.
Tools
As of 2008 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.
The centerpiece of these tools is Monitor, itself a WebObjects application that manages all the different WebObjects applications and the servers on which they are running. You can use Monitor to start and stop instances, generate statistics, and configure how applications run. Other tools enable you to record and play back sessions for both functional and stress testing.
History of WebObjects
WebObjects was fully transitioned from a stand-alone product to an integral part of the Mac OS X platform with the release of version 5.3 in June 2005. The developer tools and frameworks were bundled with Apple’s Xcode IDE. A corollary of this move was that support for other platforms, such as Windows, was discontinued.
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.
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
Features
WebObjects makes it easy to develop and deploy enterprise-level web services and Java server applications — while giving you the agility to respond quickly to change.
A rapid application development environment with web services, data access and page generation capabilities, WebObjects extends your reach by ensuring flexible, maintainable design.WebObjects gives you the ability to build or use standards-based web services without writing low-level SOAP, XML or WSDL. Tools enable code-free generation, configuration and testing of web services from existing data assets. These standards-based web services can interoperate with clients written in many languages, including Java, AppleScript, Perl and .Net — opening up enterprise development to a new class of programmers.
Built on a classic three-tier architecture with clustering support, WebObjects allows you to deliver maintainable, scalable applications. You can create enterprise-level web services backed by robust business logic and relational databases — using visual tools to reverse-engineer your JDBC or JNDI data sources and object-oriented frameworks to transparently handle data persistence.
Beyond web services, WebObjects can help you rapidly build database applications that have HTML, XML, SMIL or Swing (Java) interfaces, depending on your needs. Generate code-free applications that provide rich Java client interfaces or HTML with the click of a button. You can choose to use Assistants for easy customization of layout and function — or exercise full control by freezing components for direct access to the code.
Support for J2EE technologies, including Servlet integration and an Object Request Broker (ORB), allows you to mix and match. JSP programmers can use the automated data persistence of WebObjects as an alternative to complex EJBs. Others can host third-party beans or write their own. And your deployment platform is up to you: Choose virtually any J2EE-capable server or use the included WebObjects J2SE application server.
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 as XML or SMIL. It provides an environment where you can use and create reusable components. Components are chunks of presentation (HTML) and functionality (Java code) often with a parameter list to enhance reusability. WebObjects Builder is used to create the HTML-templates and creates the .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 with relational databases and turns database rows into an object graph. Using EOModeler the developer can create an abstraction of the database in the forms of Java objects. In order to access or insert information into the database the developer simply accesses the Java Enterprise Objects (EOs) from their business logic. After that EOF manages the Enterprise Objects and automatically creates the required SQL-code to commit the changes to the database.
- Java Foundation. Both Enterprise Objects and WebObjects rest on the Java Foundation classes. This framework contains the fundamental data structure implementations and utilities used throughout the rest of WebObjects. Examples include basic value and collection classes, such as arrays, dictionaries (objects that contain key-value pairs) and formatting classes. Java Foundation is similar to the Foundation framework contained in Apple’s Cocoa API for Mac 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 their NeXTStep OS heritage). Since the transition of WebObjects to Java in 2000, the functionality of many of Apple’s Java Foundation classes is replicated in the Sun’s own JDK. However, they persist largely for reasons of backwards-compatibility and developers are free to use whichever frameworks they prefer.
Advantages of WebObjects
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 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).
Made by Andreea Oniga

