XPages -- Revolutionizing Lotus Domino Web Application ... · Revolutionizing Lotus Domino Web...

39
XPages and IBM Lotus Domino Designer Revolutionizing Lotus Domino Web Application Development Claude Cossette | Sr. Lotus IT Specialist

Transcript of XPages -- Revolutionizing Lotus Domino Web Application ... · Revolutionizing Lotus Domino Web...

XPages and IBM Lotus Domino DesignerRevolutionizing Lotus Domino Web Application DevelopmentClaude Cossette | Sr. Lotus IT Specialist

What We’ll Cover …

● Domino as an application development platform● The revolution made through an evolution● Deep dive into XPages● Domino encounters Lotus Mashups● IBM deployment use case: the developerWorks wikis● Chat with Philippe Riand, XPages Architect ● Wrap-up

2

3

Domino ApplicationsProven in Production with 20 years of experience

● Proven in production (20 years)● Security built in, not bolted on● Long Lasting Applications● Application Compatibility

● “By the time the specification is written in another Language, the application is written and deployed in Notes / Domino”

● Comprehensive and open development environment

● GUI-driven, point-and-click capabilities

● Supplied templates require no coding

● Support for developers at every skill level—Lotus, Java™ and Eclipse software

● Centralized administration for quick deployment

● Component reuse saves time

Core Business Applications on Lotus Notes and Domino

● Team / Community Discussion Forums● Document Storage and Collaboration● Customer Relationship Management● Help Desk / Customer Support● Human Resources● Billing Systems● Inventory Management / Supply Chain Tracking● Project Management● Sales Force Automation● Product Catalogs / Price Lists● Compliancy Tracking, Audit and Assessment

4

Thousands of customers around the globe, from large multinational enterprises to small local shops, trust their core business applications to Lotus Notes and Domino

Serving Up Applications to the Web● Yes, we made it easy to provide browser-based access to your

applications, but they often looked like this:

5

Lotus Domino 8.5 Application Development Themes● Provide developers with a modern development tool IDE

● Do for developers what Lotus Notes 8 did for end users● Improve usability and productivity● Address various developer pain points from previous versions

● Attract new developers to the platform

● Make building compelling Web applications easy● Allow developers to build attractive, modern Web apps that leverage Web

2.0 technologies with less work● Seamlessly target a wide range of clients while taking advantage of their

specificity● Provide means to update existing Lotus Domino Web applications

incrementally

6

7

The 8.5 Answer: Revolution Thru Evolution● Remaining true to our core value – RAD● Modern IDE built on Eclipse

▬ Increased customization, extensible framework▬ Platform services for navigation, search and editing▬ Goal: comfortable for existing users, approachable by new users

● New design elements for building compelling Web and Client apps▬ XPages and Custom Controls

▬ Designed for developing Web 2.0 applications● Modern Web controls● Built-in Ajax services● Server side JavaScript● Styled with standard CSS

▬ Themes easily define an application’s look and feel▬ Server JavaScript libraries

XPages: Same Source – Multiple Renderings

Web 2.0

iWidgets Lotus Notes ClientMobile Devices

Java™ + JSF + JavaScript +HTML/CSS + Dojo

Lotus Domino Designer:Lotus Notes & Eclipse

8

The New Discussion Database

From...

...To

9

Compelling Web 2.0 User Experience with Lotus Domino 8.5

CustomBranding

FasterNavigation

StylesThemes

Discussion 8.5XPage showcase

Compelling UI Quick to Customize

Easy to Deploy

ImprovedUsability

10

XPages Value Proposition

● Provide a better Web development experience to Lotus Domino developers

● Can be used to incrementally enhance an existing application or write a brand new one

● Fully integrated within Lotus Domino Designer● Decreases the time for writing Web Applications

● Solves problems expressed by the Lotus Domino community● Known limitations are addressed

● UI/Data separation, HTML generation control, Server state, Localization, Extensibility, …

● Fully integrated within the Lotus Domino Web server

11

Leverages Lotus Domino/Web Developer Skills as well as existing assets

● Leverages the existing design elements (Forms, Views, … )● Forms carry the document schema (data definition) and some business

logic (computed fields, … )● Views used to query the Lotus Domino store● Agents can be called using the back-end API

● JavaScript is used as the main scripting language● JavaScript used on the client and on the server● Simple actions are also provided for common tasks

● Leverages and exposes the back-end API● JavaScript accessors on top of the Java back-end API● JavaScript has been extended to support @Functions()

12

Lotus Domino Server Architecture

Domino HTTP Server

Client Request

2.4 servlet engine

NSF database containing the design elements & the data

XPages Servlet Engine

The server directly reads the design elements from the NSF database

Virtual J2EE modulesNo WAR deploymentrequired

13

● How it works – pretty much the same as on the server :-)

Web Container

XPages Runtime

Lotus Notes Client

XPages UI Container

Embedded XUL Runner

NSF design elements (XSP, Java class files…) are made available as module resources to the servlet API.

Each NSF can be projected as an auto-deployed Web Module.

The XPages runtime inserts as a generic web module and provides a virtual container for NSFs

XPages requests sent to an embedded Java Web container

NSF apps have a new XPages client launch optionWhen app is opened, this URL is passed to XPages client containerThe container further transforms the URL ...

•Creates a instance of the XULRunner browser•Sends a secure request to client web container

The web container routes all XSP requests to the XPages runtimeXPages runtime renders pages back to the XULRunner browser

In Short

Lotus Notes Client Architecture - 8.5.1

14

Lotus Domino iWidget● Being able to run any XPage as an iWidget

● A developer just needs to register the XPage as an iWidget● No changes are requested to the page● Add some entry in the Lotus Mashup catalog● Share the artifacts with the Rich Client

● Incrementally add iWidget related behaviors● Event Publishing/Handling● Component parameters● Support for modes (view, edit, help...)

● Make the user experience easy through Lotus Domino Designer ● Execute in different containers

● IBM Mashups Center, IBM Websphere® Portal...

15

Complete Control of the Rendering●Look and Feel is driven uniquely by CSS●Full support for CSS classes or inline styles●Uses CSS file resources

●Support Themes for skinning an application●Predefined styles for controls●A theme can be defined locally, in an NSF, or globally●2 themes provided out of the box

●HTML tags/attributes can be embedded within XPages

16

17

Enables Enterprise Scale Applications

●Extensible architecture●Custom controls●An XPage can call any Java code/library●XPages Extensibility API makes it limitless●Extended data access capability●Applications can access data located in multiple NSF databases●Multiple documents/views can be displayed on the same page●Built-in localization and internationalization support●Support String localization and dedicated pages per locale●Automatic support for user time zone

18

Logic for Your XPage●The “official” language for XPages is JavaScript●JavaScript runs on client or server (or both — your choice!)●JavaScript can call any Java code●JSF Managed beans are also available for maximum flexibility●Simple actions available for common operations●(Almost) every property is computable!●Labels, column titles, visibility, style, … ●Rich event model

●Ajax behaviors ●Built in in some cases (typeahead, pager)●Easy to build on your own with simple event properties

19

Custom Controls

●Composite controls●Parameterizable sub-forms●Controls made by assemblingexisting controls●Behave exactly as native controls●Appear in the Control palette●Define their own set of properties●Hierarchical with custom editors

20

Control added to a page

Control is like a page

21

Extensibility APIs - 8.5.2●Let people create deployable XPages libraries▬Deployed as Eclipse plugins in the Notes Client and the Domino Server▬Shared by all the applications!▬Controls, Render kits, Data sources, Simple actions, Servlets, Request customizers...▬Common Custom controls shared in jar files

●Make public the XPages Java APIs▬Javadoc, articles and samples▬Open source library of controls shared on openNTF

The information on the new product is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information on the new product is for informational purposes only and may not be incorporated into any contract. The information on the new product is not a commitment, promise, or legal obligation to deliver any material, code or functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion

22

CKEditor - 8.5.2●Default XPages Rich Text Editor▬Domino Server + Notes Client (Windows, MacOS, Linux)

●Added Features: ▬Embedded Images, Tables, Links, Emoticons, Maximize, Find/Replace

●CKEditor Toolbar is customizable▬Slim, Medium, Large

23

Deployment Use caseIBM Drinks Its Own Champagne

24

Lotus Product Wikis Overview● Product wikis for all Lotus and IBM

WebSphere® Portal products● Live on the Internet, open to all customers

and users▬ Visit www.lotus.com/ldd/wikis

● Added first wiki for IBM Lotus® Notes® and Lotus Domino in December 2007

● Additional wikis added in 2008● Current content includes supplemental

technical content and IBM Redbooks®● Plan is to use wikis for official product

documentation▬ IBM Lotus® Expeditor, IBM Lotus® Foundations, IBM

Mashup Center already publish product doc to wikis

Wiki listing

IBM Composite Applications IBM LotusLive™IBM Mashup Center IBM Lotus® ActiveInsight®Lotus ConnectionsLotus DominoIBM Lotus Domino DesignerLotus Expeditor IBM Lotus® Forms Lotus Foundations IBM Lotus® iNotes® IBM Lotus® Mobile Connect

IBM Lotus Notes IBM Lotus Notes Traveler IBM Lotus® QuickrIBM Lotus® Sametime® IBM Lotus® Symphony IBM Lotus® Web Content Management IBM Lotus® Workforce Management IBM WebSphere Dashboard FrameworkWebSphere PortalIBM WebSphere® Portlet Factory

25

Lotus Domino infrastructure● Live Internet-facing Lotus Domino

environment● Part of IBM developerWorks Lotus

Web site● Hosts Lotus product forums, wikis,

blogs, Lotus Notes and Lotus Domino fix list, etc.

● Averages 374,000 unique visitors per month

● Averages 3.1 million page views per month

26

Benefits of XPages for wikis● Rich text handling streamlined

▬ Separation between Web presentation and content storage▬ No MIME conversion as done in the blog template

● Markup language▬ Fosters common formatting language between Lotus Notes and Web browser editing

environments▬ Markup uses WikiCreole format, same as Wikis feature in Lotus Connections

● Document editing performance improved▬ Processing agents from blog template no longer necessary

● Upgraded Dojo editor▬ Uses Dojo editor from standard Lotus Domino installation▬ Potential for other rich text editor options down the road

Image: Mike McGarel

27

Benefits of XPages for wikis, cont.● IBM Lotus “OneUI” style sheets

▬ Common look and feel shared by current Lotus product set▬ Web accessibility covered globally and consistently

● Common controls and components▬ XPages provides multiple reusable core controls▬ Standard discussion template from Lotus Domino 8.5.x provides components such as

tag cloud and search

● Active content filtering▬ Protects against malicious code content in wiki articles▬ Set at server level via properties file and tied to XPages applications and controls

● Backwards compatibility▬ Provides new Web presentation along with standard Notes forms and views▬ XPages template applied to 20 live production databases with no service disruption

Image: Mike McGarel

28

XPages Wiki template on OpenNTF● XPages wiki template shared for no-charge

download on OpenNTF (www.openntf.org)● Template is base for further customization

for Lotus product documentation wikis● Working with development to incorporate

our customization work● Visit www.openntf.org/Projects/pmt.nsf/

ProjectLookup/XPages%20Wiki

29

Some Partner Products/Solutions

30

●Business Challenges ▬Capitalize employee knowledge▬Help departments develop and manage communities of practice.▬Improve help and support/service desk operations.▬Develop self sustaining FAQs .●Benefits Delivered▬Customer: ▬Intuitive knowledge management▬Integrated into their day-to-day applications▬Access from mobile devices▬To Elguji▬RAD Web 2.0 framework for building collaborativeapplications●Build application assets with less effort●Maximize reuse of assets

31

ITANA"XPages have allowed me to deliver classic Notes database applications to the iPhone without having to change the template. I can simply create one database with an X-page, and it will connect to the database that is appropriate for the particular user - even if the other database is on different server. " Mark Hughes - HughesConnect.com

YouAtNotes ServiceCommunicator

●Challenge: How to provide great online support for customers?▬Discussion forum, solutions, idea voting, news, FAQs, downloads, documentation – all in one place?

●Solution: ServiceCommunicator provides everything you need to provide best possible online support. In one place.▬All-in-one solution, SAAS or installable, easy to setup and maintain via Browser, easy to use for customers, highly customizable.

●Benefits: No need to develop, setup and maintain all those support features by yourself. ▬Saves time and money.▬You can focus on serving customers instead of maintaining support features.

34

IBM Software Services for Lotus (ISSL) Lotus Notes Domino SolutionsTechnical consulting offeringsISSL can help customers make the most of Notes and Lotus Domino by enhancing out-of-the-box functionality. Projects where ISSL can assist include:

• Lotus Domino application modernization using X-pages• Web-enable Lotus Domino applications• Develop a plan to upgrade current Notes applications to

leverage the new capabilities of composite applications• Test and migrate applications created in earlier versions of

Lotus Notes to Lotus Notes 8.x• Build custom solutions that maximize customer ROI in Lotus

Notes and Domino, and leverage an onshore/off-shore model to remain price-competitive

ISSL ASSET: Automated Database Deployment for Lotus Notes (ADD4LN) is a Lotus Notes solution used to deploy, manage, and track Notes databases.

For more info: www.ibm.com/software/lotus/services

Premium servicesFor Lotus Notes and Domino 8.x customers, Premium Support can help increase self-sufficiency and avoid issues by providing technical expertise, proactive support from an assigned specialist, best practice methodologies, and programmatic knowledge sharing.

Training and certification• Introduction to IBM Lotus Domino 8.5 XPages – New

(D8L55)• Fundamentals of IBM Lotus Domino 8 Application

Development (D8510)• Building Web Applications for IBM Lotus Domino

Designer 8 (D8520)• Developing IBM Lotus Domino 8 Applications:

Intermediate Skills (D8530)• Creating IBM Lotus Domino Web Services Using

Lotus Script (Online) (D8625)• Developing Composite Applications for IBM Lotus

Notes 8 (D8550)• Developing Composite Applications for IBM Lotus

Notes 8 - Online (D8555)• Using LotusScript in IBM Lotus Notes Domino 8

Applications (Exam 803)• Using Javascript in IBM Lotus Notes Domino 8

Applications (Exam 804)• Using Web Services in IBM Lotus Domino 8

Applications (Exam 805)• IBM Lotus Notes Domino 8 Developing Composite

Applications (Exam 838)

34

35

My challenge for you:● Build an XPages application● Present it at the next TLUG

● IBM DeveloperWorks®

● https://www.ibm.com/developerworks/lotus/

● Lotus Domino Designer wiki● http://www.lotus.com/ldd/ddwiki.nsf

● OpenNTF – Open source developer community

● Planet Lotus – Aggregation of Lotus related blogs. Lots of good Lotus Domino application development related posts

● planetlotus.org ● XPages blog: http://xpagesblog.com/

Resources

36

8 Key Points to Take Home● XPages remove current pain points for Lotus Domino Web developers● Separation of UI and data means data from multiple sources can be

presented in a single UI● Leverage simple actions and JavaScript for business logic ● Use Ajax to improve your end-user experience● Custom Controls improves productivity and maintainability● Themes provide a way to easily change the look and feel of your

application● The revolution starts with Lotus Domino Designer 8.5, and the future

looks bright● Reuse your existing skills yet get on the javascript bandwagon

37

Your Turn!

How to contact me:Claude Cossette: [email protected]

38

Legal DisclaimerThe information contained in this publication is provided for informational purposes only. While efforts were made to verify the completeness and accuracy of the information contained in this publication, it is provided AS IS without warranty of any kind, express or implied. In addition, this information is based on IBM’s current product plans and strategy, which are subject to change by IBM without notice. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this publication or any other materials. Nothing contained in this publication is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software.

References in this publication to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in this presentation may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or other results.

All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs and performance characteristics may vary by customer.

IBM, the IBM logo, Lotus, Lotus Notes, Notes, Domino, WebSphere, DeveloperWorks, Workplace and Lotusphere are trademarks of International Business Machines Corporation in the United States, other countries, or both.

Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both

All references to Renovations refer to a fictitious company and are used for illustration purposes only.

Other company, product, or service names may be trademarks or service marks of others.

39