ad106 - xpages just keep getting better
DESCRIPTION
Last year at Lotusphere, XPages burst onto the Lotus Domino application development landscape. Since then, the developer community has embraced XPages and delivered compelling Lotus Domino Web solutions. 8.5.1 delivered on the vision by providing the ability to build an application once for the Web, the Notes client or expose as an iWidget.Come hear about other 8.5.1 enhancements, what is coming in 8.5.2 and glimpse towards the future.TRANSCRIPT
AD106: XPages Just Keep Getting BetterPhilippe Riand | XPages Lead ArchitectEamon Muldoon | XPages Development Manager
2
Finance Disclaimer● 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
3
Agenda● Introduction
● What's new in XPages 8.5.1
● What you'll see in the next release
● A Glimpse to the future
● Resources and wrap-up
4
IBM Lotus® Domino®Application Development Values● Long standing Domino application development values
▬ Develop easy-to-use, security rich, applications that are robust and scalable▬ Integrate and leverage existing applications, data, content and systems▬ Quickly respond to changing business needs
● 8.5 XPages value add▬ Allow developers to build attractive, modern web apps that leverage Web 2.0
technologies with less work▬ Provide means to incrementally update existing Domino Web applications▬ Attract new developers to the platform
5
Continue To Deliver The XPages Vision● Develop easy-to-use security rich applications that are robust
and scalable▬ Build once for universal client access to collaborative applications
▬ Harness the power of Web 2.0 from both browser or Lotus Notes® client for both online and offline productivity
▬ Leverage active content filtering to prevent malicious code▬ Enterprise ready with performance & scalability enhancements
● Integrate and leverage existing applications, data, content and systems
▬ Improve reuse of Domino data and development artifacts through use of components/iWidgets
● Allow developers to build attractive, modern web apps that leverage Web 2.0 technologies with less work
▬ Predefined Ajax behaviors and controls▬ Leveraging the Dojo library
6
XPages Continues Its Way!
2010
2009
• - First release of XPages• - Runs on the Domino
server
Domino 8.5
Notes/Domino 8.5.1• - Runs within the Notes client• - Generates iWidget• - Active Content Filtering• - Performance/scalability improvements
Later...
• - Stability/performance improvements
• - Better client integration• - Fixing pending issues/requests
• - Extensibility
Notes/Domino 8.5.x
Notes/Domino next• - XPages next generation
• - Consumes/generates REST services
• - Generates Dojo based UI• - Advanced set of Web controls
• - Full client integration• - Mobile devices support• - Integration with other Lotus products
• - Quickr, Connections, Sametime
• - More data sources (RDBMS...)• - iWidget consumption
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
7
Agenda● Introduction
● What's new in XPages 8.5.1
● What you'll see in the next release
● A Glimpse to the future
● Resources and wrap-up
8
XPages on the Notes Client● Enable Notes/Domino users to run XPages web apps offline
▬ Deliver the same UI experience running locally in Notes client▬ Take advantage of Notes/Domino NSF replication capabilities
● Support XPages on all client platforms▬ Windows, MAC, LINUX
● Innovate & Integrate where practical, e.g.▬ Leverage the client composite application model▬ Integrate with Notes client workspace features as makes sense
● Provide a secure runtime environment for XPages client apps▬ Leverage client Execution Control Lists (ECLs)▬ Make it secure through a JavaTM security manager synchronized with the ECLs
9
XPages on the Client - Architecture● Similar to the server/web architecture
Web Container
XPages Runtime
Notes Client
XPages UI Container
Embedded XUL Runner
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
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
10
XPages on the Client - Demo
11
Performance Improvements● New properties to better control the JSF life cycle
▬ Partial refresh optimized (only rendering the desired controls)▬ Partial execution of the page
▬ Used as a default option to the pager
● Runtime optimization▬ XPages runtime▬ JavaScript interpreter performance
▬ Engine optimization▬ Global JS variables no longer kept in memory
● End user experience / browser rendering▬ Less files (JavaScript & CSS) downloaded▬ Better compressed files
12
Scalability● Memory usage
▬ JSF libraries optimized to minimize the information held in memory▬ View data cache
● JSF View persistence – New options▬ No persistence
▬ Persistence can be disabled when not needed▬ In memory – default in 8.5 & 8.5.1
▬ Consumed memory decreased by x2.5▬ On disk
▬ Pages are serialized to disk, thus increasing the number of concurrent users.▬ Can be a mix between memory and disk
13
Improved Developer Experience● Dojo enhancements
▬ New Dojo release (1.3.2)▬ Support for IE8, Firefox 3.5, Safari 4▬ Bug fixes & performance enhancements
▬ New Dojo related properties▬ Ease the use of dojoType & dojo specific attributes
▬ Available to xp:panel, xp:div, xp:span...
● JavaScript engine▬ Better support of ECMA 262 specification▬ Better use of the security manager
14
Active Content Filtering● Goal
▬ HTML, and particularly from Rich Text fields, can carry malicious code that executes unwanted operations on the behalf of the user accessing the page
▬ JavaScript snippets embedded within the HTML▬ “href” pointing a REST action▬ ...
▬ Example: Blog entry▬ One can add a reply to a blog entry, that will be read by the blog owner and execute
malicious code on his behalf
● XPages solution▬ Removing malicious code from HTML by applying a filter▬ Filters can be applied on requests and/or responses
15
Active Content Filtering Demo
Dirty HTML Clean HTML
16
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 Domino Designer
17
High Level Architecture
Proxy server
Application Database - XPages - Components
Domino iWidget renderedin an iFrame
Lotus Mashup Server Domino Server
XPages Renderer
iWidget ServletWidget Catalog
● Lotus Mashup and the Domino Server don’t have to run on the same machine
● The Domino server serves the iWidget definitions and the XPages markup
● The iWidget servlet composes the widget.xml “on the fly”● XPages content is served by the regular XPages runtime
● The Lotus Mashup proxy server is used whenever necessary● Uses HTML 5 extensions when available (FF3, IE8...),
else uses the proxy
18
Lotus Mashup Demo
19
Other Enhancements● Modified flag with save confirmation when a window is closed● Client side simple actions● EventHandler: onStart, onComplete, onError for Ajax notifications● New options for Localization● Controls
▬ Hidden field control▬ Multiple value input field▬ Tab link▬ New “Link” resources that goes to the <head> part
● Lot of bug fixes and little enhancements
20
Agenda● Introduction
● What's new in XPages 8.5.1
● What you'll see in the next release
● A Glimpse to the future
● Resources and wrap-up
21
XPages Runtime in Notes/Domino● Performance and scalability improvements
▬ Shared design elements▬ Better handling parallel requests – reducing server contentions▬ Tag cloud performance
● Stability / robustness▬ SPR fixes
● Extended Client Integration▬ Support for multiple tabs
● New Back-end classes capability▬ Running agents on top of in-memory documents▬ Support for multiple levels of categorization
● Controls enhancements▬ Use of the CKEditor for Rich text editing
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
Extensibility APIs● 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
We welcome you toAD110 Unleash the Power of XPages
We'll be presenting the API in details
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
23
XPages Editor Usability Improvements● Design time rendering
▬ Improved theme setting and rendering▬ Improved style rendering▬ Improved repeat rendering
● Extended controls support▬ Analyze property use on “All Properties” and promote frequently used properties to the
“pretty panels”▬ Checkbox/Radio button group control
● Palettes enhancements▬ Palette drop to source mode▬ Better Notes data type handling – rich text, date, time▬ Data palette improvements
▬ Change order of controls
● And more...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
24
Agenda● Introduction
● What's new in XPages 8.5.1
● What you'll see in the next release
● A Glimpse to the future
● Resources and wrap-up
25
A Glimpse to the Future● XPages is strategic for Notes/Domino
▬ We continue to invest on this technology
● This is not a commitment on the new features being developed▬ This shows the direction we are taking▬ This is provided as information to keep you updated and get your feedback
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
26
XPages Next Generation● XPages stateless mode
▬ Generates HTML without the server side life cycle▬ Rich HTML interfaces – Dojo dijits
▬ Still leverages XPages strengths▬ Component/renderkit model, Page composition, Localization, i18n, Security,
Dynamic page generation, Simple actions, Script languages for business logic…
● XPages embraces REST services▬ Generated UI bind to data coming from REST services
▬ Existing or custom services▬ Should be able to easily produce REST services
▬ On both the Domino server and the Notes client, using the available Web container
▬ Extend existing services with custom business logic
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
27
Advanced Dojo Based Controls
Scrollable Grid
Dynamic Tooltips
Popup Dialogs
Calendar ControlTag Cloud
Dynamic OutlineThe 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
28
And also...● Better Client integration
▬ Contributing to menubar, toolbars▬ Handling Eclipse selection▬ Native Rich text edition
● Improving the reuse of existing assets▬ LotusScript libraries, existing design elements (forms, views...)
● Data sources▬ Relational data access
● Mobile devices support▬ Detecting the devices, dedicated themes, accessing the device capability...
● Integration with other products in the portfolio▬ Sametime, Connections...
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
29
Agenda● Introduction
● What's new in XPages 8.5.1
● What you'll see in the next release
● A Glimpse to the future
● Resources and wrap-up
30
Resources● Lotus Domino Designer wiki
▬ http://www.lotus.com/ldd/ddwiki.nsfpowered by XPages!
● OpenNTF – Open source developer community ● Planet Lotus – Aggregation of Lotus related blogs. Lots of
Domino app dev related posts▬ planetlotus.org
● XPages blog: http://xpagesblog.com/● IBM DeveloperWorks
31
XPages Related Sessions to Not MissDescription Speakers
AD107 Enhance Your Existing Applications with XPages Steve CastledineStephan Wissel
AD108 XPages in the IBM Lotus Notes Client - A Deep Dive! Martin DonnellyTeresa Monahan
AD109 XPages Performance and Scalability Mark GarganTony McGuckin
AD110 Unleash the Power of XPages Philippe RiandMaire Kehoe
AD111 Harnessing the Power of Server-Side JavaScript and Other Advanced XPage Techniques
Tim TripconyStephan Wissel
BP207 Make Your XPage Apps "Pop!" with CSS and Themes Declan LynchDavid Leedy
SHOW112 How to Build an XPages Application from Start to Finish Tim ClarkMatt White
JMP101 IBM Lotus Domino Designer 101 Dan O'ConnorIshfak Bhagat
32
Q&A – Your Turn!
33
Legal Disclaimer© IBM Corporation 2009. All Rights Reserved.
The 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 presentation 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.
BM, the IBM logo, Lotus, Lotus Notes, Notes, Domino, Quickr, Sametime, WebSphere, UC2, PartnerWorld and Lotusphere are trademarks of International Business Machines Corporation in the United States, other countries, or both. Unyte is a trademark of WebDialogs, Inc., 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.
Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both.Other company, product, or service names may be trademarks or service marks of others.All references to Renovations refer to a fictitious company and are used for illustration purposes only.