XPages

Last updated
XPages
Developer(s) IBM
Initial release2008
Stable release
9.0.1
Written in JavaScript, HTML, Java, JSF, Dojo Toolkit
Operating system Multiple
Type Web application framework
Website XPages.info

XPages is an IBM implementation of JavaServer Faces with a server side JavaScript runtime and the built-in NoSQL database IBM Domino. It allows data from IBM Notes and Relational Databases to be displayed to browser clients on all platforms.

Contents

The programming model is based on web development languages and standards including JavaScript, Ajax, Java, the Dojo Toolkit, Server-side JavaScript and JavaServer Faces. XPages uses IBM Domino, IBM's rapid application development platform, including functionality such as the document-oriented database.

Frontend technologies

By utilizing web standards, XPages applications can be accessed by web clients and mobile devices, allowing the developer to deliver cross-platform applications. For the user interface, XPages focus on the web development standards HTML, CSS and JavaScript. Additionally themes can be used to manage multiple CSS files, [1] and XPages comes with default themes, for example the OneUI theme. [2]

For client side logic various JavaScript frameworks can be used, though XPages comes with the Dojo Toolkit and Dojo controls can be easily referenced in XPages applications. XPages also uses Dojo internally for certain functionality to make key features easier to use without having to write Dojo code. A special XPages JavaScript library contains further convenience functionality, an example being for client side field validations. [3] In addition to client side logic, Dojo can also be used for rich user interface widgets and charts. [4]

As any web application XPages applications can use REST services. XPages also provides easy mechanisms to bind data sources to UI controls so that for many scenarios no code needs to be written. Additionally XPages allows to declaratively only refresh parts of the page via Ajax when submitting data.

Backend technologies

The development of XPages applications is done using IBM Domino Designer. With Designer many key scenarios can be implemented declaratively and rapidly, for example to render a list of entries from a database. Additionally for the business logic both JavaScript and Java code can be written. XPages base internally on JavaServer Faces, but the sources of a XPages pages are an XML derivative called XSP which is translated into Java code when running the applications. At runtime, this code returns the HTML to various clients.

In order to access data, XPages and Domino Designer use data sources. These data sources can be bound graphically to UI controls on pages. UI controls and other types of controls show up in a palette of controls in Domino Designer and can be dragged and dropped onto pages. Domino Designer also comes with further convenience functionality, such as field validations and translations. XPages functionality can be modularized in Custom Controls which are XPages controls that can be reused in multiple XPages pages and parametrized based on context.

In order to write business backend code Serverside JavaScript is used primarily. There are APIs to access the document oriented database and the XPages context. [5] Since XPages are based on JSF and JSF is a Java standard it is also possible to invoke standard Java SDK code from the JavaScript code and to write custom Java code using JSF managed beans.

The XPages runtime can be extended using the Extensibility API which is based on JavaServer Faces. [6] This capability can for example be used by ISVs who want to provide their own libraries of XPages controls.

Storage: Document-oriented Database

The XPages runtime is part of IBM Domino and leverages the proven and mature capabilities Domino provides. Domino uses a document-oriented database called NSF (Notes Storage Facility) to manage semi-structured data like rich text and files. The data is stored as documents and views allow finding specific documents efficiently. [7] Documents have unique ids and further built in fields like the last author, last modified date, etc. and they have custom application specific fields. Documents can contain rich text which can be formatted text and images (MIME) or full file attachments. Documents can be queried via APIs and views. [8] Domino also supports full text search for a full database as built in feature.

XPages applications can be deployed on Domino servers or a cluster of Domino servers using IBM Domino Administrator and the replication/synchronization mechanism built into IBM Domino. The replication mechanism supports bi-directional conflict detection and resolution in distributed environments.

Community

XPages.info XPages.info.png
XPages.info

The XPages development community manages the website XPages.info with various types of information about XPages, including how to get started, downloads, resources and demos. OpenNTF is an open source site for applications based on IBM Domino, containing several applications and development controls under the Apache License.

History

The origins of XPages technology can be traced as far back as year 2000. Trilog Group, an IBM Business Partner, invented a component-oriented rapid web application development model, called XSP, similar to the Domino RAD model, but based on J2EE, XML and open standards. In August 2004, IBM acquired the XSP technology assets from Trilog Group in an effort to offer a RAD tool for IBM Workplace that is similar to Domino Designer.

The XPages technology, based upon JSF and J2EE, started life at IBM, from 2005 to 2007, inside the now discontinued IBM Lotus Workplace Designer and subsequently IBM Lotus Component Designer under the code name 'XFaces'. In mid 2007, the XFaces technology became 'XPages' and adopted by IBM Lotus Notes Domino, incorporated in the development cycle for the 8.5 release. XPages was previewed at Lotusphere 2008 (AD303 Transforming IBM Lotus Domino Web Apps with IBM Lotus Domino Designer Speakers: Rocky Oliver, Martin Donnelly). IBM Lotus Notes Domino 8.5 was released in December 2008 and in time for Lotusphere 2009 where it was one of the many highlights of the show.

IBM Lotus Notes Domino 8.5.1 continued the development of the XPages technology including the running of XPages applications inside the Notes Client. This release also included several improvements to performance and UI, which helped XPages applications to better perform and scale. IBM Lotus Notes Domino 8.5.2 contained many more improvements and additions to the feature set of XPages.

The 'XPages' name was inspired from the original XSP naming idea, where XSP was actually an acronym for 'XML Server Pages'. After a first rebranding of XSP to 'XFaces', IBM chose 'XPages' as the project code name for the pre-release technology included in Domino Designer. With a catchy alternative being hard to come by, the project name stuck.[ citation needed ]

Related Research Articles

<span class="mw-page-title-main">HCL Notes</span> Collaborative software platform

HCL Notes is a proprietary collaborative software platform for Unix, Windows, Linux and macOS, sold by HCLTech. The client application is called Notes while the server component is branded HCL Domino.

LotusScript is an object-oriented programming language used by Lotus Notes and other IBM Lotus Software products.

<span class="mw-page-title-main">WebObjects</span> Java web application server and framework originally developed by NeXT Software

WebObjects is a discontinued Java web application server and a server-based web application framework originally developed by NeXT Software, Inc.

Jakarta Faces, formerly Jakarta Server Faces and JavaServer Faces (JSF) is a Java specification for building component-based user interfaces for web applications. It was formalized as a standard through the Java Community Process as part of the Java Platform, Enterprise Edition. It is an MVC web framework that simplifies the construction of user interfaces (UI) for server-based applications by using reusable UI components in a page.

Web development is the work involved in developing a website for the Internet or an intranet. Web development can range from developing a simple single static page of plain text to complex web applications, electronic businesses, and social network services. A more comprehensive list of tasks to which Web development commonly refers, may include Web engineering, Web design, Web content development, client liaison, client-side/server-side scripting, Web server and network security configuration, and e-commerce development.

EGL, originally developed by IBM and now available as the EDT open source project under the Eclipse Public License (EPL), is a programming technology designed to meet the challenges of modern, multi-platform application development by providing a common language and programming model across languages, frameworks, and runtime platforms.

A web framework (WF) or web application framework (WAF) is a software framework that is designed to support the development of web applications including web services, web resources, and web APIs. Web frameworks provide a standard way to build and deploy web applications on the World Wide Web. Web frameworks aim to automate the overhead associated with common activities performed in web development. For example, many web frameworks provide libraries for database access, templating frameworks, and session management, and they often promote code reuse. Although they often target development of dynamic web sites, they are also applicable to static websites.

XULRunner is a discontinued, packaged version of the Mozilla platform to enable standalone desktop application development using XUL, developed by Mozilla. It replaced the Gecko Runtime Environment, a stalled project with a similar purpose. The first stable developer preview of XULRunner was released in February 2006, based on the Mozilla 1.8 code base. Mozilla stopped supporting the development of XULrunner in July 2015.

IBM Workplace is a discontinued a brand of collaborative software applications from IBM's Lotus Software division. It was intended to be the next generation of collaboration software that would work with IBM's Java EE-based WebSphere Portal server software. Introduced in 2003, the brand was largely disbanded by 2007, with its core technologies and many of its products rebranded as Lotus or WebSphere.

<span class="mw-page-title-main">Uniface (programming language)</span> Low-code development platform

Uniface is a low-code development and deployment platform for enterprise applications that can run in a large range of runtime environments, including mobile, mainframe, web, Service-oriented architecture (SOA), Windows, Java EE, and .NET. Uniface is used to create mission-critical applications.

qooxdoo Open-source Ajax web application framework

qooxdoo is an open-source Ajax web application framework. It is an LGPL- and/or EPL-licensed client-side and server-agnostic solution, and includes support for professional JavaScript development, a graphical user interface (GUI) toolkit and high-level client-server communication.

Servoy is a development and deployment platform for enterprise applications, written itself in Java, and which uses JavaScript as its scripting language. It can adopt the native look and feel of any platform or the web, using HTML5 and CSS code. Servoy was created from the start to make enterprise business application development easy. It has introduced many innovations for that purpose: the use of JavaScript instead of Java, a comprehensive development framework with building blocks that are added through drag and drop, a web client, etc.

IBM Lotus Expeditor is a software framework by IBM's Lotus Software division for the construction, integration, and deployment of "managed client applications", which are client applications that are deployed from, configured, and managed onto a desktop, usually by a remote server. The goal is to allow developers to create applications that take advantage of running on a local client, while having the same ease of maintenance as web-based applications.

Visual Studio Tools for Office (VSTO) is a set of development tools available in the form of a Visual Studio add-in and a runtime that allows Microsoft Office 2003 and later versions of Office applications to host the .NET Framework Common Language Runtime (CLR) to expose their functionality via .NET.

<span class="mw-page-title-main">WaveMaker</span> Low-code programming platform

WaveMaker is a Java-based low-code development platform designed for building software applications and platforms. The company, WaveMaker Inc., is based in Mountain View, California. The platform is intended to assist enterprises in speeding up their application development and IT modernization initiatives through low-code capabilities. Additionally, for independent software vendors (ISVs), WaveMaker serves as a customizable low-code component that seamlessly integrates into their products.

<span class="mw-page-title-main">RichFaces</span>

RichFaces was an open source Ajax-enabled component library for JavaServer Faces, hosted by JBoss. It allows easy integration of Ajax capabilities into enterprise application development. It reached its end-of-life in June 2016.

A single-page application (SPA) is a web application or website that interacts with the user by dynamically rewriting the current web page with new data from the web server, instead of the default method of a web browser loading entire new pages. The goal is faster transitions that make the website feel more like a native app.

The Softwell Maker is an environment development. Designer uses visual forms and reports (WYSIWYG), business rules, and visually representing other actions using flowcharts.

ZK is an open-source Ajax Web application framework, written in Java, that enables creation of graphical user interfaces for Web applications with little required programming knowledge.

References

  1. "Make your XPage Apps "Pop!" withCSS and Themes"
  2. OneUI theme
  3. XPages JavaScript library
  4. Dojo toolkit
  5. APIs reference
  6. XPages Extensibility API
  7. The document oriented database is a core part of the Domino architecture. Note that these two referenced PDF documents are old but still give a good overview of the fundamental concepts.
  8. Java classes A-Z

Further reading