XPages
Encyclopedia
XPages is a rapid web and mobile application development platform. It allows IBM Lotus Notes data to be displayed to browser clients on all platforms.

The programming model is based on standards and common web development skills like JavaScript
JavaScript
JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....

, Ajax
Ajax (programming)
Ajax is a group of interrelated web development methods used on the client-side to create asynchronous web applications...

, the Dojo Toolkit
Dojo Toolkit
Dojo Toolkit is an open source modular JavaScript library designed to ease the rapid development of cross-platform, JavaScript/Ajax-based applications and web sites. It was started by Alex Russell, Dylan Schiemann, David Schontzler, and others in 2004 and is dual-licensed under the modified BSD...

, Server-side JavaScript
Server-side JavaScript
Server-side JavaScript refers to JavaScript that runs on the server-side. This term was coined because the language is predominantly used on the client-side, i.e. client-side JavaScript ....

, JavaServer Faces
JavaServer Faces
JavaServer Faces is a Java-based Web application framework intended to simplify development integration of web-based user interfaces....

 and it leverages IBM Lotus Domino
IBM Lotus Domino
Lotus Domino is an IBM server product that provides enterprise-grade e-mail, collaboration capabilities, and a custom application platform. Domino began life as Lotus Notes Server, the server component of Lotus Development Corporation's client-server messaging technology. It can be used as an...

 functionality like the document-oriented database
Document-oriented database
A document-oriented database is a computer program designed for storing, retrieving, and managing document-oriented, or semi structured data, information...

. XPages applications are hosted by IBM Lotus Domino
IBM Lotus Domino
Lotus Domino is an IBM server product that provides enterprise-grade e-mail, collaboration capabilities, and a custom application platform. Domino began life as Lotus Notes Server, the server component of Lotus Development Corporation's client-server messaging technology. It can be used as an...

, IBM's rapid application development
Rapid application development
Rapid application development is a software development methodology that uses minimal planning in favor of rapid prototyping. The "planning" of software developed using RAD is interleaved with writing the software itself...

 platform, which has sold more than 145 million licenses.

Frontend technologies

By utilizing web standards, XPages applications can be accessed by web clients and mobile devices, allowing the developer to leverage their development skills 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 as an easier way to manage multiple CSSs. XPages comes with default themes, for example the OneUI theme.

For client side logic various JavaScript frameworks can be used, though XPages comes with the Dojo Toolkit
Dojo Toolkit
Dojo Toolkit is an open source modular JavaScript library designed to ease the rapid development of cross-platform, JavaScript/Ajax-based applications and web sites. It was started by Alex Russell, Dylan Schiemann, David Schontzler, and others in 2004 and is dual-licensed under the modified BSD...

 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, for example for client side field validations. In addition to client side logic Dojo can also be used for rich user interface widgets and charts.

As any web application XPages applications can use REST
Rest
Rest may refer to:* Leisure* Human relaxation* SleepRest may also refer to:* Rest , a pause in a piece of music* Rest , the relation between two observers* Rest , a 2008 album by Gregor Samsa...

 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 Lotus 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
JavaServer Faces
JavaServer Faces is a Java-based Web application framework intended to simplify development integration of web-based user interfaces....

, but the sources of a XPages pages are an XML derivat 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 JavaScript is used primarily. There are APIs to access the document oriented database and the XPages context - see here for more. 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 XPages Extensibility API which is based on JavaServer Faces. 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 Lotus 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. 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. 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. Lotus Domino also supports full text search for a full database as built in feature.

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

Security

XPages applications and the document oriented database can be secured in multiple ways. There is a so called ACL (access control list) which contains a list of users, groups and roles and their access rights. Security can furthermore be applied on document level via reader and author fields. On top of the default ACL of the notes database ACL's can be applied to separate xpages aswell.

Adding an ACL to a separate xPages defines who can access / run the specified XPage.

Community

The XPages development community manages the website XPages.info with various types of information about XPages:
OpenNTF is an open source site for applications based on IBM Lotus Domino and contains several applications and development controls under the Apache License
Apache License
The Apache License is a copyfree free software license authored by the Apache Software Foundation . The Apache License requires preservation of the copyright notice and disclaimer....

.

History

The origins of XPages technology can be traced as far back as year 2000, when 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 perform and scale better. 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.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK