WebObjects
# WebObjects

WebObjects [ˈwɛbˌɒbd͡ʒɪkts] ist eine Entwicklungs- und Serverumgebung für Webanwendungen. Sie wurde ursprünglich von NeXT entwickelt und bei deren Aufkauf 1996 von Apple mit übernommen.

Die Software führt Daten aus verschiedenen Quellen – oft relationalen Datenbanken – zusammen, präsentiert sie Nutzern über das Web und ändert sie gegebenenfalls aufgrund von Benutzeraktionen. Sie zeichnet sich unter anderem durch eine strikte Trennung von Datenhaltung, Verarbeitungsprozessen und Benutzeroberfläche aus – entsprechend dem Model-View-Controller-Entwurfsmuster. Die ursprüngliche Implementierung in Objective-C wurde in der Version 5.0 durch eine in Java ersetzt.

Bei der Vorstellung der 1.0 Version war WebObjects im Jahre 1995 einer der ersten Applikationsserver überhaupt. Es zeichnet sich durch eine hohe Integration der Entwicklungswerkzeuge aus. Damit stellt es ein klassisches Werkzeug des Computer-aided software engineering (CASE) dar, mit dem leistungsfähige und komplexe netzbasierte Applikationen erstellt und betrieben werden können.

Bekannte Beispiele für die Verwendung von WebObjects sind unter anderem der Apple Webshop und iTunes Music Store, das Formularmanagement-System openforms sowie nuLiga, die Ligaverwaltung deutscher und österreichischer Tennis-, Tischtennis- und Badminton-Verbände.

## Nutzungsrecht

WebObjects war im Prinzip kostenlos zu verwenden, denn die Nutzungsrechte sind an die von Xcode geknüpft. Xcode ist die IDE von Apple und ist ebenfalls an sich kostenlos. Um wiederum Xcode nutzen zu dürfen wird eine Mac OS X Lizenz benötigt. Obwohl die Technologie kostenlos bereitgestellt wurde, unterliegt sie proprietären Lizenzen und ist somit nicht open source. Das von Apple empfohlene Werkzeug zur Entwicklung von WebObjects-Software war WOLips. WOLips wird im Rahmen eines Open-Source-Projektes entwickelt. In einem weiteren Open-Source-Projekt namens Project Wonder (siehe Weblinks) werden wiederverwendbare Komponenten für die WebObjects-Entwicklung erstellt. Die Entwicklung von WebObjects wurde mit dem letzten Update 2008 eingestellt, seit 2009 ist WebObjects nicht mehr in Xcode enthalten.

## Open-Source-Alternativen

Die Ideen hinter WebObjects wurden von verschiedenen Open-Source-Projekten aufgegriffen. So existiert GNUstepWeb als freie Implementierung von WebObjects 4.5 in Objective-C (wie auch WebObjects bis zu dieser Version), des Weiteren SOPE, ein Framework, welches das Konzept von WebObjects außerdem um verschiedene Ideen von Zope erweitert. Als Java-Implementierungen wären sowohl Wotonomy als auch Tapestry und Cayenne zu nennen. Ersteres hält sich genauer an sein Vorbild, WebObjects 5.x, während die letzteren beiden eher von den grundlegenden Ideen hinter WebObjects inspiriert sind (ähnliche Software Design Pattern) und jeweils nur einen Teil von WebObjects umfassen: Tapestry ähnelt sehr stark dem Darstellungslayer von WebObjects (JavaWO* und JavaWeb* Frameworks) während sich Cayenne um den objektrelationalen Teil (JavaEO* Frameworks) kümmert. Beide Frameworks lassen sich gut in Kombination (und auch mit den jeweiligen WebObjects Gegenstücken kombiniert) einsetzen.

