XPagesは、サーバーサイドJavaScriptランタイムと組み込みのNoSQLデータベースであるIBM Dominoを備えた、 IBMによるJavaServer Facesの実装です。IBM Notesやリレーショナルデータベースのデータを、あらゆるプラットフォームのブラウザクライアントに表示できます。
プログラミングモデルは、 JavaScript、Ajax、Java、Dojo Toolkit、サーバーサイドJavaScript、JavaServer FacesなどのWeb開発言語と標準に基づいています。XPagesは、ドキュメント指向データベースなどの機能を含む、IBMの高速アプリケーション開発プラットフォームであるIBM Dominoを使用しています。
XPagesアプリケーションはWeb標準を利用することで、Webクライアントやモバイルデバイスからアクセスでき、開発者はクロスプラットフォームアプリケーションを提供できます。ユーザーインターフェースに関しては、XPagesはWeb開発標準であるHTML、CSS、JavaScriptに重点を置いています。さらに、テーマを使用して複数のCSSファイルを管理でき[ 1 ]、XPagesにはOneUIテーマなどのデフォルトテーマが付属しています[ 2 ] 。
クライアント側のロジックにはさまざまな JavaScript フレームワークを使用できますが、XPages にはDojo ツールキットが付属しており、XPages アプリケーションで Dojo コントロールを簡単に参照できます。XPages は、特定の機能で内部的に Dojo を使用して、Dojo コードを記述することなく主要な機能を使いやすくしています。特別な XPages JavaScript ライブラリには、クライアント側のフィールド検証などの便利な機能が含まれています。[ 3 ]クライアント側のロジックに加えて、Dojo はリッチなユーザー インターフェイス ウィジェットやチャートにも使用できます。[ 4 ]
他のWebアプリケーションと同様に、XPagesアプリケーションもRESTサービスを利用できます。また、XPagesはデータソースをUIコントロールに簡単にバインドできる仕組みを提供しているため、多くのシナリオでコードを記述する必要がありません。さらに、XPagesでは、データ送信時にAjaxを介してページの一部のみを宣言的に更新することも可能です。
XPagesアプリケーションの開発は、IBM Domino Designerを使用して行われます。Designerを使用すると、データベースからエントリのリストを表示するなど、多くの重要なシナリオを宣言的に迅速に実装できます。さらに、ビジネスロジックにはJavaScriptとJavaの両方のコードを記述できます。XPagesは内部的にJavaServer Facesをベースとしていますが、XPagesページのソースはXSPと呼ばれるXML派生形式であり、アプリケーションの実行時にJavaコードに変換されます。実行時に、このコードはHTMLをさまざまなクライアントに返します。
XPagesとDomino Designerは、データにアクセスするためにデータソースを使用します。これらのデータソースは、ページ上のUIコントロールにグラフィカルにバインドできます。UIコントロールやその他の種類のコントロールは、Domino Designerのコントロールパレットに表示され、ページにドラッグアンドドロップできます。Domino Designerには、フィールド検証や翻訳などの便利な機能も備わっています。XPagesの機能はカスタムコントロールにモジュール化できます。カスタムコントロールは、複数のXPagesページで再利用でき、コンテキストに基づいてパラメータ化できるXPagesコントロールです。
ビジネスバックエンドコードを書くには、主にサーバーサイドJavaScriptが使用されます。ドキュメント指向データベースとXPagesコンテキストにアクセスするためのAPIがあります。 [ 5 ] XPagesはJSFに基づいており、JSFはJava標準であるため、JavaScriptコードから標準Java SDKコードを呼び出したり、JSF管理Beanを使用してカスタムJavaコードを書いたりすることも可能です。
XPages ランタイムは、JavaServer Faces に基づく拡張性 API を使用して拡張できます。[ 6 ]この機能は、たとえば、独自の XPages コントロール ライブラリを提供したい ISV が使用できます。
XPages ランタイムは IBM Domino の一部であり、Domino が提供する実績のある成熟した機能を活用しています。Domino は、NSF (Notes Storage Facility) と呼ばれるドキュメント指向データベースを使用して、リッチテキストやファイルなどの半構造化データを管理します。データはドキュメントとして保存され、ビューを使用すると特定のドキュメントを効率的に検索できます。[ 7 ]ドキュメントには一意の ID があり、最終作成者、最終更新日などの組み込みフィールドがあり、カスタムのアプリケーション固有のフィールドもあります。ドキュメントには、フォーマットされたテキストや画像 (MIME) または完全なファイル添付であるリッチテキストを含めることができます。ドキュメントは、API およびビューを介してクエリできます。[ 8 ] Domino は、組み込み機能として、データベース全体の全文検索もサポートしています。
XPagesアプリケーションは、IBM Domino AdministratorとIBM Dominoに組み込まれたレプリケーション/同期メカニズムを使用して、DominoサーバーまたはDominoサーバーのクラスタにデプロイできます。このレプリケーションメカニズムは、分散環境における双方向の競合検出と解決をサポートします。
XPages開発コミュニティは、XPagesの始め方、ダウンロード、リソース、デモなど、XPagesに関するさまざまな情報を提供するウェブサイトXPages.infoを管理しています。OpenNTFは、IBM Dominoをベースとしたアプリケーションのオープンソースサイトで、Apacheライセンスの下で提供される複数のアプリケーションと開発管理ツールが含まれています。
XPagesテクノロジーの起源は、2000年にまで遡ります。IBMのビジネスパートナーであるTrilog Groupは、Domino RADモデルに似た、コンポーネント指向の高速Webアプリケーション開発モデルであるXSPを開発しました。これはJ2EE、XML、およびオープンスタンダードに基づいています。2004年8月、IBMはDomino Designerに似たIBM Workplace向けのRADツールを提供するために、Trilog GroupからXSPテクノロジー資産を取得しました。
JSFとJ2EEをベースとしたXPagesテクノロジーは、2005年から2007年にかけてIBMで開発が始まり、現在は開発が終了しているIBM Lotus Workplace Designer、そして後にIBM Lotus Component Designerに「XFaces」というコードネームで搭載されました。2007年半ば、XFacesテクノロジーは「XPages」となり、IBM Lotus Notes Dominoに採用され、8.5リリースの開発サイクルに組み込まれました。XPagesはLotusphere 2008でプレビューされました(AD303 IBM Lotus Domino DesignerによるIBM Lotus Domino Webアプリの変革 講演者:Rocky Oliver、Martin Donnelly)。IBM Lotus Notes Domino 8.5は2008年12月にリリースされ、Lotusphere 2009に間に合い、同ショーの多くの注目製品の一つとなりました。
IBM Lotus Notes Domino 8.5.1 では、Notes クライアント内で XPages アプリケーションを実行できるなど、XPages テクノロジーの開発が継続されました。このリリースには、パフォーマンスと UI の改善も含まれており、XPages アプリケーションのパフォーマンスと拡張性が向上しました。IBM Lotus Notes Domino 8.5.2 では、XPages の機能セットにさらに多くの改善と追加が加えられました。
「XPages」という名称は、元々のXSPという命名アイデアから着想を得たもので、XSPは実際には「XML Server Pages」の頭文字をとった略語でした。XSPが最初に「XFaces」に名称変更された後、IBMはDomino Designerに搭載されるプレリリース版テクノロジーのプロジェクトコード名として「XPages」を選択しました。他に覚えやすい名前が見つからなかったため、このプロジェクト名がそのまま採用されました。