SlideShare ist ein Scribd-Unternehmen logo
1 von 46
The XSP Starter Kit
Stephan H. Wissel | NotesSensei | IBM




© 2012 IBM Corporation
Agenda
What is it
Installation
Module overview




                  2 |   © 2012 IBM Corporation
About Me


           IBM Collaboration & Productivity Advisor
           Counsellor for personcentric development
           IBM Singapore Pte Ltd
           Blog: http://www.wissel.net/
           Twitter: notessensei
           Google: http://www.wissel.net/+
           Lotus Notes since 2.1

           Favorite motorbike: Moto Guzzi Le Mans
           Speaks Singlish with a German accent




                                              3 |   © 2012 IBM Corporation
About You*



             Develop software
               (or need to know about it)

             Have a Java background
               (or heard about it)

             Want to advance XPages development
               (or let develop)

             Love Code deep dives
               (your dog's name is Eclipse)

             Just are a fan
               (welcome back)




                                        * 2 out of 5 qualify you
                                                  4 |   © 2012 IBM Corporation
Really about you




This session




                   5 |   © 2012 IBM Corporation
XPage application development




                                6 |   © 2012 IBM Corporation
XSP Starter Kit




                  7 |   © 2012 IBM Corporation
Agenda
What is it
Installation
Module overview




                  8 |   © 2012 IBM Corporation
Work in progress
New releases coming often
Rough edges
Eclipse experience required




                              9 |   © 2012 IBM Corporation
Global Architecture

Supports both the Domino server and the
  rich client
Supports the data and the design elements
  replication

                                                       Domino Server                                     Notes Client




                                                                            The runtime directly reads
                                                                            from the NSF
          Domino Designer in Eclipse

                                                                                                           NSF files
                                                                        NSF replication




            Eclipse
           Workspace
                                 Eclipse directly reads/writes to the NSF
                                         thanks to a custom EFS
                                                                                                                10 |    © 2012 IBM Corporation
J2EE Artifacts

           C li e n t R e q u e s t
                                                D o m in o H T T P S e rv e r



                                                  X P a g e s S e r v le t E n g i n e         2 . 4 s e r v le t e n g i n e




                                                                                                             V i r t u a l J 2 E E m o d u le s
                                                                                                             N o W A R d e p lo y m e n t
                                                                                                             re q u ire d

     T h e s e r v e r d ir e c tly r e a d s
     th e d e s ig n e le m e n ts fr o m
     th e N S F d a ta b a s e


                                                          N S F d a ta b a s e c o n ta in in g th e d e s ig n
                                                          e le m e n t s & t h e d a t a

                                                                                                                                          11 |    © 2012 IBM Corporation
XPages Architecture – 8.5.2++
Both the Domino server and the Notes client are deployed as OSGi bundles
  The same extension mechanism is used in both platforms; extensions are provided as OSGi bundles.


                NSF Applications                                        NSF Applications

                                                                                           XPages Extensions
                                                                                             OSGi bundles

                                   XPages Extensions
                                     OSGi bundles



  XPD Profile          XPages                            XPD Profile          XPages
                       Runtime                           +Web                 Runtime
                                                         Container

          OSGi Runtime                                           OSGi Runtime

          Domino HTTP Task                                       Notes Client Process


          Domino Server                                           Notes Client

                                                                                                  |   © 2012 IBM Corporation


                                                                                                                     12
JSF Processing Model




    http://www.ibm.com/developerworks/java/library/j-jsf2/
                                                             13 |   © 2012 IBM Corporation
What you need
http://eclipse.org
    Eclipse (current version is Indigo 3.7)
http://openntf.org
                                                       Works on Mac/Linux too!
    XPages SDK for Eclipse RCP (Nathan Freeman, GBS)
    XPages Starterkit (Nathan Freeman, GBS)
    Domino Debug Plug-in (David Taieb, IBM)
http://ibm.com
    Domino Designer
    Domino server
Oracle
    JSF Know-How




                                                                     14 |   © 2012 IBM Corporation
What you read




    The “Classic”   Just released   Coming soon



                                              15 |   © 2012 IBM Corporation
Agenda
What is it
Installation
Module overview




                  16 |   © 2012 IBM Corporation
Installation
Extract Eclipse version to disk




                                  17 |   © 2012 IBM Corporation
Configure Eclipse
Edit eclipse.ini:
     From: -Xms40m -Xmx512m
     To: -Xms512m -Xmx1024m
Start Eclipse, select workspace




                                  18 |   © 2012 IBM Corporation
Add Plug-ins
Unzip com.ibm.domino.osgi.debug.site.zip from
   “IBM Domino Debug Plugin build.zip”
Help – Install new Software
Add new sites
   - com.ibm.domino.osgi.debug.site.zip
- org.openntf.xsp.sdk.update.zip
Uncheck: Group by category




                                                19 |   © 2012 IBM Corporation
Add Plug-ins




Reboot after install


                       20 |   © 2012 IBM Corporation
Configure Target Platform
One for Notes, one for Domino




                                21 |   © 2012 IBM Corporation
Configure Domino Debug setup
2 settings needed
   OSGi Debug to make plug-in available
   Remote Java to actually debug
   Remote SSJS is future
Create new OSGi Debug configuration
Details in Plug-in documentation




                                          22 |   © 2012 IBM Corporation
Debug configuration




                      23 |   © 2012 IBM Corporation
Debug configuration




                      24 |   © 2012 IBM Corporation
JavaDoc for XSP
www.ibmpressbooks.com/title/9780132486316/XPages_JavaDoc_852.zip
JavaDoc from ExtLib




                                                            25 |   © 2012 IBM Corporation
Even more debug configuration!
Add to Notes.ini:
 JavaEnableDebug=1
 JavaDebugOptions=transport=dt_socket,
 server=y,suspend=n,address=8000
Eclipse parameter need to match




                                         26 |   © 2012 IBM Corporation
Create the project
File – New – Plug-in Project




                               27 |   © 2012 IBM Corporation
Creating a library
File – New – Other – XSP SDK – XPages Library




                                                28 |   © 2012 IBM Corporation
Wouldn't it be nice
if you don't have to
start from scratch?




                       29 |   © 2012 IBM Corporation
Agenda
What is it
Installation
Module overview




                  30 |   © 2012 IBM Corporation
Modules
Application
Beans
Components
Context
Expression Language
LiveCycle
Listeners
RenderKit
Resolver
Resources
Servlet
SSJS



                      31 |   © 2012 IBM Corporation
Application
The “god” objects




                    32 |   © 2012 IBM Corporation
Beans
Alternative to SSJS stored in a scope
Java classes with an empty constructor
Method pairs with get/set
   public String getApprover() { … }
   public void setApprover(String newApprover) { …. }
Very usable in Expression language (EL) #{beanName.approver}
Starter kit adds sample for “Server context” - not available in SSJS!




                                                                        |   © 2012 IBM Corporation
Components
The core of UI experience
Create new tags (JSP tags)
“Knows” properties and how to save/restore them
Delegates rendering to a Renderer




                                                  |   © 2012 IBM Corporation
Renderer & Renderkit
Renderkit is a collection of Renderers
Problem of potentially leaking implementation




                                                |   © 2012 IBM Corporation
Context
Interface from JSF to J2EE servlet implementation
Custom application wide actions (e.g. request logging)
Filters go there




                                                         |   © 2012 IBM Corporation
Expression Language
XPages uses javascript: as additional binding
Method and Value binding allow to implement additional language bindings. A few
 ideas:
   Jython
   LUA
   Rhino
   Direct Java calls
   Lolcode




                                                                     |   © 2012 IBM Corporation
LiveCycle
Intercept and extend the standard lifecycle.
Interesting for custom phase listeners




                                               |   © 2012 IBM Corporation
Listeners
React on events in the application live cycle: creation and deletion of “things”
Application start/stop
Context (runs always on a request)
Phase (JSF processing model! - not all phases need to run)
Session (finally the “when has he logged out” question answered)
Value changed (back-end of course!)




                                                                          |   © 2012 IBM Corporation
Resolver
Intercept when variables or properties get resolved
e.g add other language bindings than javascript:




                                                      |   © 2012 IBM Corporation
Resources
Anything that is “static” addressable via an URL
Lives under .ibmxspres
Ideas:
   Images that render based on device or network (yes the IP address would give it away when you
       are mobile)
   Variations of documents based on a user role
   Additional JavaScript libraries (I'm waiting for jquery)




                                                                                     |   © 2012 IBM Corporation
Servlet
Bypass the JSF rendering completely
Provide their own URL
e.g. DominoWebDAV
Servlet configuration required




                                      |   © 2012 IBM Corporation
SSJS
Provide system wide JavaScript libraries
Would be a good place for common.js
Define new system wide global objects




                                           |   © 2012 IBM Corporation
44 |   © 2012 IBM Corporation
Thank you!

FILL IN YOUR SESSION
               EVALUATIONS*




                            45 |   © 2012 IBM Corporation


                    * or a kitten must die!
Legal disclaimer
 © IBM Corporation 2012. 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.

 Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary
 depending upon many factors, including considerations such as the amount of multiprogramming in the user's job stream, the I/O configuration, the storage configuration, and the workload processed.
 Therefore, no assurance can be given that an individual user will achieve results similar to those stated here.

 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, 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.

 Adobe, the Adobe logo, PostScript, and the PostScript logo are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States, and/or other countries.

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

 Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both.

 Intel, Intel Centrino, Celeron, Intel Xeon, Intel SpeedStep, Itanium, and Pentium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.

 UNIX is a registered trademark of The Open Group in the United States and other countries.

 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 a fictitious company refer to a fictitious company and are used for illustration purposes only.




                                                                                                                                                                                   46 |    © 2012 IBM Corporation

Weitere ähnliche Inhalte

Was ist angesagt?

Inside Android's Dalvik VM - NEJUG Nov 2011
Inside Android's Dalvik VM - NEJUG Nov 2011Inside Android's Dalvik VM - NEJUG Nov 2011
Inside Android's Dalvik VM - NEJUG Nov 2011Doug Hawkins
 
AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applicatio...
AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applicatio...AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applicatio...
AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applicatio...Stephan H. Wissel
 
ビジネスオープンソースソフトウェアの衝撃
ビジネスオープンソースソフトウェアの衝撃ビジネスオープンソースソフトウェアの衝撃
ビジネスオープンソースソフトウェアの衝撃OSSラボ株式会社
 
Xebia adobe flash mobile applications
Xebia adobe flash mobile applicationsXebia adobe flash mobile applications
Xebia adobe flash mobile applicationsMichael Chaize
 
Installation Guide XBRL Software [Zen Exbace] on Windows XP
Installation Guide XBRL Software [Zen Exbace] on Windows XPInstallation Guide XBRL Software [Zen Exbace] on Windows XP
Installation Guide XBRL Software [Zen Exbace] on Windows XPKDK Software
 
AD114 - Don't be afraid of curly brackets reloaded - even more JavaScript for...
AD114 - Don't be afraid of curly brackets reloaded - even more JavaScript for...AD114 - Don't be afraid of curly brackets reloaded - even more JavaScript for...
AD114 - Don't be afraid of curly brackets reloaded - even more JavaScript for...Stephan H. Wissel
 
Super feats of integration x pages with symphony sharepoint and office
Super feats of integration  x pages with symphony sharepoint and officeSuper feats of integration  x pages with symphony sharepoint and office
Super feats of integration x pages with symphony sharepoint and officeJohn Head
 
Pjproject su Android: uno scontro su più livelli
Pjproject su Android: uno scontro su più livelliPjproject su Android: uno scontro su più livelli
Pjproject su Android: uno scontro su più livelliGiacomo Bergami
 
JavaOne 2009 Deploying Apps for Consumers Bof5150
JavaOne 2009 Deploying Apps for Consumers Bof5150JavaOne 2009 Deploying Apps for Consumers Bof5150
JavaOne 2009 Deploying Apps for Consumers Bof5150Jeff Hoffman
 
Choosing the Right Community Linux for Your Enterprise
Choosing the Right Community Linux for Your EnterpriseChoosing the Right Community Linux for Your Enterprise
Choosing the Right Community Linux for Your EnterpriseRogue Wave Software
 
Drupal and-flex-drupal camp
Drupal and-flex-drupal campDrupal and-flex-drupal camp
Drupal and-flex-drupal campClaudiu Cristea
 
MWLUG 2011: Notes/Domino Application Development Competitive Advantage
MWLUG 2011: Notes/Domino Application Development Competitive AdvantageMWLUG 2011: Notes/Domino Application Development Competitive Advantage
MWLUG 2011: Notes/Domino Application Development Competitive AdvantageJohn Head
 
Jenkins Enterprise by CloudBees Webinar
Jenkins Enterprise by CloudBees WebinarJenkins Enterprise by CloudBees Webinar
Jenkins Enterprise by CloudBees WebinarCloudBees
 
We4IT LCTY 2013 - x-pages-men - ibm domino xpages - performance in a nutshell
We4IT LCTY 2013 - x-pages-men - ibm domino xpages - performance in a nutshellWe4IT LCTY 2013 - x-pages-men - ibm domino xpages - performance in a nutshell
We4IT LCTY 2013 - x-pages-men - ibm domino xpages - performance in a nutshellWe4IT Group
 
IBM Lotus Notes/Domino Application Development Competitive Advantage : The So...
IBM Lotus Notes/Domino Application Development Competitive Advantage : The So...IBM Lotus Notes/Domino Application Development Competitive Advantage : The So...
IBM Lotus Notes/Domino Application Development Competitive Advantage : The So...John Head
 

Was ist angesagt? (15)

Inside Android's Dalvik VM - NEJUG Nov 2011
Inside Android's Dalvik VM - NEJUG Nov 2011Inside Android's Dalvik VM - NEJUG Nov 2011
Inside Android's Dalvik VM - NEJUG Nov 2011
 
AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applicatio...
AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applicatio...AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applicatio...
AD111 - The X Path: Practical guide to taking your IBM Lotus Notes applicatio...
 
ビジネスオープンソースソフトウェアの衝撃
ビジネスオープンソースソフトウェアの衝撃ビジネスオープンソースソフトウェアの衝撃
ビジネスオープンソースソフトウェアの衝撃
 
Xebia adobe flash mobile applications
Xebia adobe flash mobile applicationsXebia adobe flash mobile applications
Xebia adobe flash mobile applications
 
Installation Guide XBRL Software [Zen Exbace] on Windows XP
Installation Guide XBRL Software [Zen Exbace] on Windows XPInstallation Guide XBRL Software [Zen Exbace] on Windows XP
Installation Guide XBRL Software [Zen Exbace] on Windows XP
 
AD114 - Don't be afraid of curly brackets reloaded - even more JavaScript for...
AD114 - Don't be afraid of curly brackets reloaded - even more JavaScript for...AD114 - Don't be afraid of curly brackets reloaded - even more JavaScript for...
AD114 - Don't be afraid of curly brackets reloaded - even more JavaScript for...
 
Super feats of integration x pages with symphony sharepoint and office
Super feats of integration  x pages with symphony sharepoint and officeSuper feats of integration  x pages with symphony sharepoint and office
Super feats of integration x pages with symphony sharepoint and office
 
Pjproject su Android: uno scontro su più livelli
Pjproject su Android: uno scontro su più livelliPjproject su Android: uno scontro su più livelli
Pjproject su Android: uno scontro su più livelli
 
JavaOne 2009 Deploying Apps for Consumers Bof5150
JavaOne 2009 Deploying Apps for Consumers Bof5150JavaOne 2009 Deploying Apps for Consumers Bof5150
JavaOne 2009 Deploying Apps for Consumers Bof5150
 
Choosing the Right Community Linux for Your Enterprise
Choosing the Right Community Linux for Your EnterpriseChoosing the Right Community Linux for Your Enterprise
Choosing the Right Community Linux for Your Enterprise
 
Drupal and-flex-drupal camp
Drupal and-flex-drupal campDrupal and-flex-drupal camp
Drupal and-flex-drupal camp
 
MWLUG 2011: Notes/Domino Application Development Competitive Advantage
MWLUG 2011: Notes/Domino Application Development Competitive AdvantageMWLUG 2011: Notes/Domino Application Development Competitive Advantage
MWLUG 2011: Notes/Domino Application Development Competitive Advantage
 
Jenkins Enterprise by CloudBees Webinar
Jenkins Enterprise by CloudBees WebinarJenkins Enterprise by CloudBees Webinar
Jenkins Enterprise by CloudBees Webinar
 
We4IT LCTY 2013 - x-pages-men - ibm domino xpages - performance in a nutshell
We4IT LCTY 2013 - x-pages-men - ibm domino xpages - performance in a nutshellWe4IT LCTY 2013 - x-pages-men - ibm domino xpages - performance in a nutshell
We4IT LCTY 2013 - x-pages-men - ibm domino xpages - performance in a nutshell
 
IBM Lotus Notes/Domino Application Development Competitive Advantage : The So...
IBM Lotus Notes/Domino Application Development Competitive Advantage : The So...IBM Lotus Notes/Domino Application Development Competitive Advantage : The So...
IBM Lotus Notes/Domino Application Development Competitive Advantage : The So...
 

Ähnlich wie The xsp starter kit

BP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM DominoBP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM DominoSerdar Basegmez
 
3978 Why is Java so different... A Session for Cobol/PLI/Assembler Developers
3978   Why is Java so different... A Session for Cobol/PLI/Assembler Developers3978   Why is Java so different... A Session for Cobol/PLI/Assembler Developers
3978 Why is Java so different... A Session for Cobol/PLI/Assembler Developersnick_garrod
 
We4IT lcty 2013 - infra-man - whats new in ibm domino application development
We4IT lcty 2013 - infra-man - whats new in ibm domino application developmentWe4IT lcty 2013 - infra-man - whats new in ibm domino application development
We4IT lcty 2013 - infra-man - whats new in ibm domino application developmentWe4IT Group
 
Developing XPages Applications
Developing XPages ApplicationsDeveloping XPages Applications
Developing XPages ApplicationsNiklas Heidloff
 
Zend Products and PHP for IBMi
Zend Products and PHP for IBMi  Zend Products and PHP for IBMi
Zend Products and PHP for IBMi Shlomo Vanunu
 
JVM Multitenancy (JavaOne 2012)
JVM Multitenancy (JavaOne 2012)JVM Multitenancy (JavaOne 2012)
JVM Multitenancy (JavaOne 2012)Graeme_IBM
 
BoxGrinder – FOSDEM 2012
BoxGrinder – FOSDEM 2012BoxGrinder – FOSDEM 2012
BoxGrinder – FOSDEM 2012marekgoldmann
 
Domino X Pages 8.5
Domino X Pages 8.5Domino X Pages 8.5
Domino X Pages 8.5John Head
 
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...Nuxeo
 
Show110 | Using the XPages Extension Library for the Real World
Show110 | Using the XPages Extension Library for the Real WorldShow110 | Using the XPages Extension Library for the Real World
Show110 | Using the XPages Extension Library for the Real Worldpdhannan
 
Webconf nodejs-production-architecture
Webconf nodejs-production-architectureWebconf nodejs-production-architecture
Webconf nodejs-production-architectureBen Lin
 
Introducing CrossWorlds for IBM Domino
Introducing CrossWorlds for IBM DominoIntroducing CrossWorlds for IBM Domino
Introducing CrossWorlds for IBM DominoDaniele Vistalli
 
Real World Java Compatibility (Tim Ellison)
Real World Java Compatibility (Tim Ellison)Real World Java Compatibility (Tim Ellison)
Real World Java Compatibility (Tim Ellison)Chris Bailey
 
Lotusphere 2012 - Show115 - Socialize Your Apps Using OpenSocial
Lotusphere 2012 - Show115 - Socialize Your Apps Using OpenSocialLotusphere 2012 - Show115 - Socialize Your Apps Using OpenSocial
Lotusphere 2012 - Show115 - Socialize Your Apps Using OpenSocialRyan Baxter
 
What is Codename One.pdf
What is Codename One.pdfWhat is Codename One.pdf
What is Codename One.pdfShaiAlmog1
 
Domino OSGi Development
Domino OSGi DevelopmentDomino OSGi Development
Domino OSGi DevelopmentPaul Fiore
 
JMP201 - IBM Sametime 8.5 Deployment Workshop
JMP201 - IBM Sametime 8.5 Deployment WorkshopJMP201 - IBM Sametime 8.5 Deployment Workshop
JMP201 - IBM Sametime 8.5 Deployment WorkshopWes Morgan
 

Ähnlich wie The xsp starter kit (20)

BP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM DominoBP207 - Meet the Java Application Server You Already Own – IBM Domino
BP207 - Meet the Java Application Server You Already Own – IBM Domino
 
3978 Why is Java so different... A Session for Cobol/PLI/Assembler Developers
3978   Why is Java so different... A Session for Cobol/PLI/Assembler Developers3978   Why is Java so different... A Session for Cobol/PLI/Assembler Developers
3978 Why is Java so different... A Session for Cobol/PLI/Assembler Developers
 
We4IT lcty 2013 - infra-man - whats new in ibm domino application development
We4IT lcty 2013 - infra-man - whats new in ibm domino application developmentWe4IT lcty 2013 - infra-man - whats new in ibm domino application development
We4IT lcty 2013 - infra-man - whats new in ibm domino application development
 
Developing XPages Applications
Developing XPages ApplicationsDeveloping XPages Applications
Developing XPages Applications
 
Zend Products and PHP for IBMi
Zend Products and PHP for IBMi  Zend Products and PHP for IBMi
Zend Products and PHP for IBMi
 
JVM Multitenancy (JavaOne 2012)
JVM Multitenancy (JavaOne 2012)JVM Multitenancy (JavaOne 2012)
JVM Multitenancy (JavaOne 2012)
 
BoxGrinder – FOSDEM 2012
BoxGrinder – FOSDEM 2012BoxGrinder – FOSDEM 2012
BoxGrinder – FOSDEM 2012
 
Domino X Pages 8.5
Domino X Pages 8.5Domino X Pages 8.5
Domino X Pages 8.5
 
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
 
Show110 | Using the XPages Extension Library for the Real World
Show110 | Using the XPages Extension Library for the Real WorldShow110 | Using the XPages Extension Library for the Real World
Show110 | Using the XPages Extension Library for the Real World
 
J2me step by step
J2me step by stepJ2me step by step
J2me step by step
 
Webconf nodejs-production-architecture
Webconf nodejs-production-architectureWebconf nodejs-production-architecture
Webconf nodejs-production-architecture
 
Introducing CrossWorlds for IBM Domino
Introducing CrossWorlds for IBM DominoIntroducing CrossWorlds for IBM Domino
Introducing CrossWorlds for IBM Domino
 
Real World Java Compatibility (Tim Ellison)
Real World Java Compatibility (Tim Ellison)Real World Java Compatibility (Tim Ellison)
Real World Java Compatibility (Tim Ellison)
 
Android Internals
Android InternalsAndroid Internals
Android Internals
 
Lotusphere 2012 - Show115 - Socialize Your Apps Using OpenSocial
Lotusphere 2012 - Show115 - Socialize Your Apps Using OpenSocialLotusphere 2012 - Show115 - Socialize Your Apps Using OpenSocial
Lotusphere 2012 - Show115 - Socialize Your Apps Using OpenSocial
 
What is Codename One.pdf
What is Codename One.pdfWhat is Codename One.pdf
What is Codename One.pdf
 
Domino OSGi Development
Domino OSGi DevelopmentDomino OSGi Development
Domino OSGi Development
 
The power of dots
The power of dotsThe power of dots
The power of dots
 
JMP201 - IBM Sametime 8.5 Deployment Workshop
JMP201 - IBM Sametime 8.5 Deployment WorkshopJMP201 - IBM Sametime 8.5 Deployment Workshop
JMP201 - IBM Sametime 8.5 Deployment Workshop
 

Mehr von Stephan H. Wissel

IBM Connect 2017 - Beyond Domino Designer
IBM Connect 2017 - Beyond Domino DesignerIBM Connect 2017 - Beyond Domino Designer
IBM Connect 2017 - Beyond Domino DesignerStephan H. Wissel
 
XPages is Workflow's new best friend
XPages is Workflow's new best friendXPages is Workflow's new best friend
XPages is Workflow's new best friendStephan H. Wissel
 
SHOW107: The DataSource Session: Take XPages data boldly where no XPages data...
SHOW107: The DataSource Session: Take XPages data boldly where no XPages data...SHOW107: The DataSource Session: Take XPages data boldly where no XPages data...
SHOW107: The DataSource Session: Take XPages data boldly where no XPages data...Stephan H. Wissel
 
AD107 Microsoft SharePoint meets IBM Lotus Domino
AD107 Microsoft SharePoint meets IBM Lotus DominoAD107 Microsoft SharePoint meets IBM Lotus Domino
AD107 Microsoft SharePoint meets IBM Lotus DominoStephan H. Wissel
 
AD215 - Practical Magic with DXL
AD215 - Practical Magic with DXLAD215 - Practical Magic with DXL
AD215 - Practical Magic with DXLStephan H. Wissel
 

Mehr von Stephan H. Wissel (6)

IBM Connect 2017 - Beyond Domino Designer
IBM Connect 2017 - Beyond Domino DesignerIBM Connect 2017 - Beyond Domino Designer
IBM Connect 2017 - Beyond Domino Designer
 
XPages is Workflow's new best friend
XPages is Workflow's new best friendXPages is Workflow's new best friend
XPages is Workflow's new best friend
 
SHOW107: The DataSource Session: Take XPages data boldly where no XPages data...
SHOW107: The DataSource Session: Take XPages data boldly where no XPages data...SHOW107: The DataSource Session: Take XPages data boldly where no XPages data...
SHOW107: The DataSource Session: Take XPages data boldly where no XPages data...
 
AD107 Microsoft SharePoint meets IBM Lotus Domino
AD107 Microsoft SharePoint meets IBM Lotus DominoAD107 Microsoft SharePoint meets IBM Lotus Domino
AD107 Microsoft SharePoint meets IBM Lotus Domino
 
Paperprototyping
PaperprototypingPaperprototyping
Paperprototyping
 
AD215 - Practical Magic with DXL
AD215 - Practical Magic with DXLAD215 - Practical Magic with DXL
AD215 - Practical Magic with DXL
 

Kürzlich hochgeladen

AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 

Kürzlich hochgeladen (20)

AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 

The xsp starter kit

  • 1. The XSP Starter Kit Stephan H. Wissel | NotesSensei | IBM © 2012 IBM Corporation
  • 2. Agenda What is it Installation Module overview 2 | © 2012 IBM Corporation
  • 3. About Me IBM Collaboration & Productivity Advisor Counsellor for personcentric development IBM Singapore Pte Ltd Blog: http://www.wissel.net/ Twitter: notessensei Google: http://www.wissel.net/+ Lotus Notes since 2.1 Favorite motorbike: Moto Guzzi Le Mans Speaks Singlish with a German accent 3 | © 2012 IBM Corporation
  • 4. About You* Develop software (or need to know about it) Have a Java background (or heard about it) Want to advance XPages development (or let develop) Love Code deep dives (your dog's name is Eclipse) Just are a fan (welcome back) * 2 out of 5 qualify you 4 | © 2012 IBM Corporation
  • 5. Really about you This session 5 | © 2012 IBM Corporation
  • 6. XPage application development 6 | © 2012 IBM Corporation
  • 7. XSP Starter Kit 7 | © 2012 IBM Corporation
  • 8. Agenda What is it Installation Module overview 8 | © 2012 IBM Corporation
  • 9. Work in progress New releases coming often Rough edges Eclipse experience required 9 | © 2012 IBM Corporation
  • 10. Global Architecture Supports both the Domino server and the rich client Supports the data and the design elements replication Domino Server Notes Client The runtime directly reads from the NSF Domino Designer in Eclipse NSF files NSF replication Eclipse Workspace Eclipse directly reads/writes to the NSF thanks to a custom EFS 10 | © 2012 IBM Corporation
  • 11. J2EE Artifacts C li e n t R e q u e s t D o m in o H T T P S e rv e r X P a g e s S e r v le t E n g i n e 2 . 4 s e r v le t e n g i n e V i r t u a l J 2 E E m o d u le s N o W A R d e p lo y m e n t re q u ire d T h e s e r v e r d ir e c tly r e a d s th e d e s ig n e le m e n ts fr o m th e N S F d a ta b a s e N S F d a ta b a s e c o n ta in in g th e d e s ig n e le m e n t s & t h e d a t a 11 | © 2012 IBM Corporation
  • 12. XPages Architecture – 8.5.2++ Both the Domino server and the Notes client are deployed as OSGi bundles The same extension mechanism is used in both platforms; extensions are provided as OSGi bundles. NSF Applications NSF Applications XPages Extensions OSGi bundles XPages Extensions OSGi bundles XPD Profile XPages XPD Profile XPages Runtime +Web Runtime Container OSGi Runtime OSGi Runtime Domino HTTP Task Notes Client Process Domino Server Notes Client | © 2012 IBM Corporation 12
  • 13. JSF Processing Model http://www.ibm.com/developerworks/java/library/j-jsf2/ 13 | © 2012 IBM Corporation
  • 14. What you need http://eclipse.org Eclipse (current version is Indigo 3.7) http://openntf.org Works on Mac/Linux too! XPages SDK for Eclipse RCP (Nathan Freeman, GBS) XPages Starterkit (Nathan Freeman, GBS) Domino Debug Plug-in (David Taieb, IBM) http://ibm.com Domino Designer Domino server Oracle JSF Know-How 14 | © 2012 IBM Corporation
  • 15. What you read The “Classic” Just released Coming soon 15 | © 2012 IBM Corporation
  • 16. Agenda What is it Installation Module overview 16 | © 2012 IBM Corporation
  • 17. Installation Extract Eclipse version to disk 17 | © 2012 IBM Corporation
  • 18. Configure Eclipse Edit eclipse.ini: From: -Xms40m -Xmx512m To: -Xms512m -Xmx1024m Start Eclipse, select workspace 18 | © 2012 IBM Corporation
  • 19. Add Plug-ins Unzip com.ibm.domino.osgi.debug.site.zip from “IBM Domino Debug Plugin build.zip” Help – Install new Software Add new sites - com.ibm.domino.osgi.debug.site.zip - org.openntf.xsp.sdk.update.zip Uncheck: Group by category 19 | © 2012 IBM Corporation
  • 20. Add Plug-ins Reboot after install 20 | © 2012 IBM Corporation
  • 21. Configure Target Platform One for Notes, one for Domino 21 | © 2012 IBM Corporation
  • 22. Configure Domino Debug setup 2 settings needed OSGi Debug to make plug-in available Remote Java to actually debug Remote SSJS is future Create new OSGi Debug configuration Details in Plug-in documentation 22 | © 2012 IBM Corporation
  • 23. Debug configuration 23 | © 2012 IBM Corporation
  • 24. Debug configuration 24 | © 2012 IBM Corporation
  • 26. Even more debug configuration! Add to Notes.ini: JavaEnableDebug=1 JavaDebugOptions=transport=dt_socket, server=y,suspend=n,address=8000 Eclipse parameter need to match 26 | © 2012 IBM Corporation
  • 27. Create the project File – New – Plug-in Project 27 | © 2012 IBM Corporation
  • 28. Creating a library File – New – Other – XSP SDK – XPages Library 28 | © 2012 IBM Corporation
  • 29. Wouldn't it be nice if you don't have to start from scratch? 29 | © 2012 IBM Corporation
  • 30. Agenda What is it Installation Module overview 30 | © 2012 IBM Corporation
  • 32. Application The “god” objects 32 | © 2012 IBM Corporation
  • 33. Beans Alternative to SSJS stored in a scope Java classes with an empty constructor Method pairs with get/set public String getApprover() { … } public void setApprover(String newApprover) { …. } Very usable in Expression language (EL) #{beanName.approver} Starter kit adds sample for “Server context” - not available in SSJS! | © 2012 IBM Corporation
  • 34. Components The core of UI experience Create new tags (JSP tags) “Knows” properties and how to save/restore them Delegates rendering to a Renderer | © 2012 IBM Corporation
  • 35. Renderer & Renderkit Renderkit is a collection of Renderers Problem of potentially leaking implementation | © 2012 IBM Corporation
  • 36. Context Interface from JSF to J2EE servlet implementation Custom application wide actions (e.g. request logging) Filters go there | © 2012 IBM Corporation
  • 37. Expression Language XPages uses javascript: as additional binding Method and Value binding allow to implement additional language bindings. A few ideas: Jython LUA Rhino Direct Java calls Lolcode | © 2012 IBM Corporation
  • 38. LiveCycle Intercept and extend the standard lifecycle. Interesting for custom phase listeners | © 2012 IBM Corporation
  • 39. Listeners React on events in the application live cycle: creation and deletion of “things” Application start/stop Context (runs always on a request) Phase (JSF processing model! - not all phases need to run) Session (finally the “when has he logged out” question answered) Value changed (back-end of course!) | © 2012 IBM Corporation
  • 40. Resolver Intercept when variables or properties get resolved e.g add other language bindings than javascript: | © 2012 IBM Corporation
  • 41. Resources Anything that is “static” addressable via an URL Lives under .ibmxspres Ideas: Images that render based on device or network (yes the IP address would give it away when you are mobile) Variations of documents based on a user role Additional JavaScript libraries (I'm waiting for jquery) | © 2012 IBM Corporation
  • 42. Servlet Bypass the JSF rendering completely Provide their own URL e.g. DominoWebDAV Servlet configuration required | © 2012 IBM Corporation
  • 43. SSJS Provide system wide JavaScript libraries Would be a good place for common.js Define new system wide global objects | © 2012 IBM Corporation
  • 44. 44 | © 2012 IBM Corporation
  • 45. Thank you! FILL IN YOUR SESSION EVALUATIONS* 45 | © 2012 IBM Corporation * or a kitten must die!
  • 46. Legal disclaimer © IBM Corporation 2012. 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. Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the user's job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here. 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, 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. Adobe, the Adobe logo, PostScript, and the PostScript logo are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States, and/or other countries. Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both. Intel, Intel Centrino, Celeron, Intel Xeon, Intel SpeedStep, Itanium, and Pentium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. UNIX is a registered trademark of The Open Group in the United States and other countries. 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 a fictitious company refer to a fictitious company and are used for illustration purposes only. 46 | © 2012 IBM Corporation