|Apple introduced Mac OS X with the world leading Apache web server. Apache is one of the largest open source projects; its name derives from all the patches that were added to the original web server code to enable other functions and features. For simply serving up static HTTP files, Apache is jagnormous overkill. Its real value comes from its ability to serve dynamic content: publishing database driven websites that can publish unique, customized web pages on the fly for every visitor.
Apache is the cornerstone in a platform of related web technologies called LAMP (Linux, Apache, MySQL, PHP/Perl/Python; Apple refers to this as AMP, for obvious reasons!), which together deliver a huge proportion of the world's dynamic content. But building dynamic web content in LAMP (or Sun's J2EE, or Microsoft's .Net) requires advanced skills in both programming and presentation.
Nearly a decade ago, NeXT delivered the first object oriented web application server: WebObjects. It basically allowed NeXTSTEP applications running on a server to provide a user interface to clients using dynamically generated HTML pages. In other words, rather than drawing windows and buttons on the screen, the application creates HTML pages to be displayed in a remote web browser.
WebObjects carried along the NeXT programing model of separating data, business logic, and presentation. WebObject's data can be anywhere: a flat file, a local database, or a central database server. The details of the database are abstracted behind a data model, rather than being directly tied to it. This allows a WebObjects application to start with a simple database, and scale up into an enterprise database later, with minimal changes to the code.
Above the data, the middle layer of business logic contains all the programmatic rules of how data is delivered and acted upon. On top of the code is what the user sees, the presentation. It is carefully separated from the data and the logic. Among other things, that allows the logic to be written by programmers, and the presentation to be laid out by designers. In PHP, ColdFusion or Microsoft's Active Server Pages, the logic and presentation are generally mixed together within web pages' HTML, making it more difficult to maintain.
WebObjects started out as a $50,000 development and deployment system. NeXT used it to build the original Dell online store, and created major projects for the USPS, Deutche Bank, the BBC and other high profile clients. When Apple bought NeXT, they reintroduced WebObjects as a $699 product. Apple recently included WebObjects development licenses in Tiger, and deployment licenses in Tiger Server.
Since Apple is giving WebObjects away, you might think more people would be using it. Apple seems rather quiet on the subject of third party WebObjects development, but they are actively updating WebObjects, and they are certainly putting it to use themselves. Everything from the online Apple Stores, to Certification systems for ACNs, to Apple's GSX dealer support system uses WebObjects. What's even more interesting about WebObjects is that it can drive, not only dynamic web pages, but also web services for standalone clients. The best example is the iTunes Music Store.
Continues: Web Services Client Apps