WebObjectsは、NeXT Software, Inc.が開発した、現在は開発が終了しているJavaウェブアプリケーションサーバーおよびサーバーベースのウェブアプリケーションフレームワークです。
WebObjectの特長は、オブジェクト指向、データベース接続機能、およびプロトタイピングツールです。WebObjectで作成されたアプリケーションは、Webサイト、Java WebStartデスクトップアプリケーション、および/または標準ベースのWebサービスとして展開できます。
デプロイメントランタイムは純粋なJavaであるため、開発者はJavaをサポートするプラットフォームにWebObjectsアプリケーションをデプロイできます。付属のWebObjects Java SEアプリケーションサーバーを使用することも、 JBoss、Apache Tomcat、WebLogic Server、IBM WebSphereなどのサードパーティ製Java EEアプリケーションサーバーにデプロイすることも可能です。
WebObjectsは、2016年に正式にサポートが終了するまでAppleによってメンテナンスされていました。[ 1 ]しかし、Appleがソフトウェアのメンテナンスを停止したため、現在はボランティアのオンラインコミュニティによってメンテナンスされています。このコミュニティはそれを「Project Wonder」と呼んでいます。
WebObjectsはNeXT Software, Inc.によって開発され、1995年のObject Worldカンファレンスで初めて一般公開され、1996年3月に一般向けにリリースされました。迅速なオブジェクト指向開発による時間とコストのメリットは、 eコマース黎明期の大手企業をWebObjectsへと惹きつけ、 BBC News、Dell Computer、Disney、DreamWorks SKG、Fannie Mae、GE Capital、Merrill Lynch、Motorolaなどが顧客となりました。
1997年にNeXTがApple Inc.に合併された後、WebObjectsの知名度は低迷した。初期の導入企業の多くはその後、代替技術に移行した。その中には、当時WebObjectsの最も有名な導入事例であったApple StoreやiTunes Storeの一部を支えるためにWebObjectsに依存していた、最後の主要顧客であったAppleも含まれる。
WebObjectsは、ソフトウェアを活用してハードウェアの販売を促進するというAppleの戦略の一環であり、2000年には価格が5万ドル(フル展開ライセンス)から699ドルに引き下げられました。2001年5月からは、WebObjectsはMac OS X Serverに同梱され、開発や展開にライセンスキーは不要になりました。
WebObjectsは、2005年6月にバージョン5.3がリリースされたことで、スタンドアロン製品からMac OS Xの一部へと移行しました。以前は699米ドルで販売されていた開発ツールとフレームワークは、AppleのXcode IDEにバンドルされるようになりました。その後、 Windowsなどの他のプラットフォームのサポートは終了しました。Appleは、今後のリリースでWebObjects開発ツールをXcodeにさらに統合していくと述べていました。これには、Xcode用の新しいEOModelerプラグインも含まれていました。しかし、この戦略はそれ以上追求されることはありませんでした。
2006年8月に開催された世界開発者会議(WWDC)において、AppleはXcode 2.4のリリースに伴い、Mac OS XのCocoa-Javaブリッジのサポート終了を発表しました。これには、WebObjects開発者アプリケーションスイート全体(EOModeler、EOModeler Plugin、WebObjects Builder、WebServices Assistant、RuleEditor、WOALauncher)を含む、関連するすべての機能も含まれていました。Appleは、WebObjectsのランタイムエンジンにエンジニアリングリソースを集中させることを決定し、開発者アプリケーションの将来的な責任はオープンソースコミュニティに委ねることにしたのです。主要なオープンソースの代替手段であるEclipse IDEとWOLipsプラグインスイートは、多くの点でApple自身のツールを凌駕するほど成熟しており、Appleのツールは長年大きなアップデートを受けていませんでした。
Appleは、こうしたツールの拡張や新規開発に向けたコミュニティの取り組みを支援することを約束した。[ 2 ] AppleのWebObjectsチームのDaryl Lee氏は、webobjects-devメーリングリストへの投稿で、WebObjectsに関する同社の新たな戦略を公表した。同社は、以下の方法で「WebObjectsを最高のサーバーサイドランタイム環境にする」ことを約束した。
2007年10月にMac OS X Leopardに同梱されたWebObjects 5.4では、すべてのプラットフォームにおけるWebObjectsアプリケーションの開発および展開において、ライセンスキーの要件が撤廃されました。これに伴い、ライセンス制限を確認するためのすべての方法が非推奨となりました。
2009年、AppleはApple社以外へのWebObjectsの新規リリースを停止しました。コミュニティは、WebObjectsの中核フレームワークを基盤とし、それを拡張したオープンソースフレームワークであるProject Wonderを用いて開発を継続することを決定しました。例えば、Project Wonderは開発ツールをアップデートし、元のWebObjectsパッケージには含まれていなかったRESTフレームワークを提供しています。
かつては Mac OS X Server のデフォルトインストールに含まれていた WebObjects は、 Mac OS X Snow Leopard Server以降はデフォルトでインストールされなくなり、その後まもなく Apple は WebObjects のプロモーションや販売を中止しました。2016 年現在、WebObjects は開発者コミュニティである「WOCommunity Association」によって積極的にサポートされており、Project Wonder でコアフレームワークを拡張したり、修正を提供したりしています。この組織は、2013 年に Worldwide WebObjects Developer Conference (WOWODC) を最後に開催しました。[ 3 ] [ 4 ]
2016年5月、AppleはWebObjectsの提供が終了したことを確認した。[ 1 ]
2016年現在、ほとんどのWebObjectsアーキテクトとエンジニアは、WebObjectsコミュニティによって開発されているツールを使用しています。これらのツールはEclipse IDE内で動作し、オープンソースです。Eclipse用のWebObjectsプラグインはWOLipsと呼ばれています。
デプロイメント用のWebObjectsフレームワークおよびアプリケーションの構築は、通常、 Apache AntまたはApache Maven用のWOProjectツールセットを使用して行われます。これらのツールはWOLipsに同梱されています。
WebObjectsアプリケーションは基本的にサーバーサイド実行ファイルであり、事前に構築されたアプリケーションフレームワークオブジェクトと開発者独自のカスタムコードを組み合わせることによって作成されます。WebObjectsのフレームワークは、大きく3つの主要部分に分類できます。
WebObjectsは、 Javaコードを一切記述することなくWebアプリケーションを自動的に作成できる、高速開発技術群を備えています。データベースのモデルファイルを与えると、WebObjectsはクエリ、編集、一覧表示など、9つの一般的なデータベースタスクをサポートするインターフェースを作成します。このようなアプリケーションは、データベースのプロトタイプ作成や管理、例えばリレーションシップの確認やデータベースへのデータ投入などに役立ちます。
ユーザーインターフェースは、ルールベースのシステムを使用して実行時に動的に生成されます。コードは一切生成されません。そのため、アプリケーションを再コンパイルしたり再起動したりすることなく、実行時に(アシスタントプログラムを使用して)アプリケーションの設定を変更できます。
開発者は、採用したいインターフェースの種類に応じて、次の3つの異なるテクノロジーのいずれかを利用できます。
WebObjectsは100%Javaで開発された製品であり、以下のJavaベースの機能を備えています。
WebObjectsは元々 NeXT Computerによって1996年3月にリリースされたが、同年12月にApple Inc.がNeXTを買収した際に、Apple Inc.の傘下に入った。
java.util.Collectionインターフェースを実装するようになりました。2007 年以来、コミュニティは WebObjects 開発者向けの年次カンファレンス WOWODC を開催しています。2007 年と 2008 年のカンファレンスは WWDC の前の週末に開催され、2009 年のカンファレンスは、WWDC の直前の 6 月 6 日と 7 日にサンフランシスコで WOWODC West、8 月 29 日と 30 日にモントリオールで WOWODC East の 2 つのカンファレンスが宣伝されました。WOWODC 2010 は 2010 年 8 月 27 日、28 日、29 日にモントリオールで開催されました。WOWODC 2011 は 2011 年 7 月 1 日、2 日、3 日にモントリオールで開催されました。WOWODC 2012 は 2012 年 6 月 30 日、7 月 1 日、2 日にモントリオールで開催されました。WOWODC 2013 はモントリオールで開催されました。 WOWODC 2014はモントリオールで開催されました(4月12日、13日、14日)。WOWODC 2015はハンブルクで4月25日、26日、27日に開催されました。WOWODC 2016はモントリオールで6月24日、25日、26日に開催されました。
WebObjects が Objective-C (最終バージョン WO 4.5.1) から Java (最初のバージョン WO 5.0) に移行したことで、Objective-C言語を使用する WebObjects のオープンソース代替への関心が高まりました。利用可能なフレームワークは SOPE [ 23 ]とGNUstepプロジェクトの一部であるGNUstepWebの 2 つです。SOPE は約 8 年間OpenGroupware.orgグループウェア サーバーの基盤として使用されています。EOF フレームワークのオープンソースの書き換えも存在します (AJRDatabase、GDL2)。[ 24 ] [ 25 ]
Javaベースの代替案も存在する。
SOPE / GETobjects に基づくSwiftバージョンの作成はSwiftObjects として利用可能です。 [ 32 ] Swift 4 の実装は、その Swift バージョンのリフレクション機能によって制限されています。