Image Image Image ImageImage
Image
Welcome!
Image
Creative Services for
Image
Roughly Drafted
Image
Daniel Eran
Image
Image
Image


Image
Image Image

The Apple Wishlist: Mac OS X 10.5 Leopard
4.6 New Workgroup Services : Personal WebObjects
Imagine a dynamic web development system that offered to handle all the details of maintaining session state and database transactions. Imagine a tool for the rest of us, a modern day HyperCard for the web. Actually, there's no need to imagine, it's already here.










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.

Introducing WebObjects
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




Image

More Journal Entries | More Tech Articles | Get Tech Support | My Resume | Links | Contact RoughlyDrafted

Articles Copyright © 2006 Daniel Eran. All rights reserved.
Suggestions and comments welcome. Contact RoughlyDrafted.

Read more about:
Click one of the links above to display related articles on this page.