SlideShare ist ein Scribd-Unternehmen logo
1 von 53
XPages on IBM Bluemix:
The Dos and Don'ts
(Eme06)
Oliver Busse, We4IT, Germany
#engageug
Many Dos, not so much Don‘ts 
2#engageug
About me
3#engageug
• Working for We4IT
• Aveedo® Application Framework
• „Bleeding Yellow“ since R4.5
• IBM Champion for ICS
2015 + 2016
• OpenNTF Member Director
@zeromancer1972
www.oliverbusse.com
@we4it
www.we4it.com
Agenda
• Prerequisites
• Best practices: design and data separation
• Using the DDE plugin vs. the CF command line
• Understanding the "mysterious" MANIFEST.YML file
• Experiment: holding data in the XSP runtime
• Security considerations
• Plugins and extensions? No problem!
• Tipps & tricks
4#engageug
• Prerequisites
• Best practices: design and data separation
• Using the DDE plugin vs. the CF command line
• Understanding the "mysterious" MANIFEST.YML file
• Experiment: holding data in the XSP runtime
• Security considerations
• Plugins and extensions? No problem!
• Tipps & tricks
5#engageug
Prerequisites
• Create an IBM Bluemix account
• Create an XPages NoSQL database service
(i.e. a Domino Server)
• Get the latest* Extension Library from OpenNTF
• Install Extlib on your local Domino Designer to get the
Bluemix plugin
• Setup Bluemix preferences in DDE
6#engageug
*) 9.0.1v16, January 2016
Create or login to your Bluemix account
7#engageug
XPages NoSQL database service
• Add a service
• Scroll down to „Bluemix Labs Catalog“
• Find „XPages NoSQL Database“
8#engageug
Additional steps (not described here)
• Open the XPages NoSQL Database service properties
page
• Grab the user ID to access the Bluemix Domino
instance
• slaney/Bluemix (USA)
• langan/Bluemix (UK)
• coming soon: CAN and AUS
• Optional: setup additional web users
9#engageug
10#engageug
11#engageug
Get the Extlib from OpenNTF
• Download and install it via the updatesite mechanism
• https://extlib.openntf.org/
• https://www.dalsgaard-data.eu/blog/deploy-an-eclipse-
update-site-to-ibm-domino-and-ibm-domino-designer/
• Check Extlib version in DDE and server
12#engageug
Bluemix prefs in Domino Designer
• File, Preferences, Domino Designer, IBM Bluemix
13#engageug
New IBM Bluemix toolbar control
14#engageug
• Prerequisites
• Best practices: design and data separation
• Using the DDE plugin vs. the CF command line
• Understanding the "mysterious" MANIFEST.YML file
• Experiment: holding data in the XSP runtime
• Security considerations
• Plugins and extensions? No problem!
• Tipps & tricks
15#engageug
Design and data separation
• Create the data part on the Bluemix Domino instance
• create a blank database
or
• copy and existing database with data
• Setup ACL etc.
• Keep in mind the additional webusers you may have created
before
16#engageug
Setup local dev environment
• Separate data and design also on your local
environment
• Find and modify ALL static references to „database“ on
every XPage, Custom Control and Code
• Document data sources
• View data sources
17#engageug
Compute „database“ references
• Utilize the bluemixContext bean
• comes with the OpenNTF Extension Library since v13
• isRunningOnBluemix()
• findDatabaseName() always returns „tododata.nsf“
• static default filename of the data part on the XPages NoSQL
service
18#engageug
https://www.eu-gb.bluemix.net/docs/services/XPagesNoSQLDatabase/index.html
More flexible: use a custom bean
• Compute server and filepath dynamically
• for the local and the Bluemix environment
• Allows a different filename on the XPages NoSQL
service (other than „tododata.nsf“)
• Generic code for „database“ computation for
document, view and repeat data sources
• There is a snippet for you… 
• https://openntf.org/XSnippets.nsf/snippet.xsp?id=daobean-
for-xsp-on-bluemix
19#engageug
Examples: the DAO-Bean
20#engageug
<xp:this.data>
<xp:dominoDocument
var="document1"
databaseName="#{javascript:dao.dbpath}"
formName="greeting">
</xp:dominoDocument>
</xp:this.data>
<xp:repeat
id="greetings"
rows="9999"
var="greeting"
indexVar="index">
<xp:this.value>
<![CDATA[#{javascript:dao.getViewEntries("greetings")}]]>
</xp:this.value>
…
</xp:repeat>
• Prerequisites
• Best practices: design and data separation
• Using the DDE plugin vs. the CF command line
• Understanding the "mysterious" MANIFEST.YML file
• Experiment: holding data in the XSP runtime
• Security considerations
• Plugins and extensions? No problem!
• Caveats and restrictions
• Tipps & tricks
21#engageug
What the DDE Plugin does
• When running for the first time
• It will ask for a local folder
• It will create a copy (or replica) of the XSP part
• It will create a manifest.yml file
• It contacts the Bluemix XSP runtime and uploads the 2 files
• Afterwards
• It updates the local copy / replica
• It modifies the manifest.yml file
• It contacts the Bluemix XSP runtime and uploads the 2 files
22#engageug
What the DDE Plugin also does…
• It won‘t display error messages or log outputs during
deployment
• hard to troubleshoot
• Sometimes it may not work when running a second,
third, … time
• DDE restart will solve this problem
23#engageug
The CF command line
• CF = Cloud Foundry
• Download and install the command line
• https://github.com/cloudfoundry/cli/releases
• http://docs.cloudfoundry.org/devguide/cf-cli/
• You can create a batch file to accellerate deployment
• Verbose output of any action during deployment
process
• Access to the XSP runtime file system (e.g. for reading
system logs)
24#engageug
A simple triplet of commands
• cf api
• use api.bluemix.net or api.eu-gb.bluemix.net
• cf api https://api.bluemix.net
• cf login
• provide username and password
• cf login –u username –p password
• cf push
• will upload your local droplet instantly using the
manifest.yml file
• cf push
• cf push <applicationName>
25#engageug
Benefits using the CF command line
• Full control of what‘s being done
• Understand how cloud deployment works
• Create new XSP runtimes and instances on the fly (wait
for it!)
• Deploy plugins and other resources (wait for it!)
26#engageug
Disadvantage using the CF command line
• You have to create the local NSF copy / replica
manually
• beware of local encryption!
• You have to type in a console… ;-)
• I recommend using CMDER command line replacement for
Windows
27#engageug
• Prerequisites
• Best practices: design and data separation
• Using the DDE plugin vs. the CF command line
• Understanding the "mysterious" MANIFEST.YML file
• Experiment: holding data in the XSP runtime
• Security considerations
• Plugins and extensions? No problem!
• Tipps & tricks
28#engageug
The manifest.yml file
• The manifest.yml file is a simple text file (not even
XML)
• It contains fundamental definitions for the runtime and
the service(s) used
• When using hybrid it contains credentials!
• do not commit the file to a repository!
• Domino Designer Plugin comes with a versatile editor
for the manifest.yml file
29#engageug
The manifest.yml editor
• Gives you the basic configuration for a single XSP
runtime application
30#engageug
Example: manifest.yml
31#engageug
---
applications:
- name: greets
host: greets
instances: 1
memory: 512M
timeout: 180
buildpack: xpages_buildpack
command: /app/launch_xpages_webcontainer
env:
APP_HOME_URL: /greets_xsp.nsf
APP_PRELOAD_DB: greets_xsp.nsf
services:
- IBM XPages NoSQL Database-UK
= custom setting
= default setting
Did you know?
• The manifest.yml file can deploy more than one
application to the XSP runtime 
• APP_PRELOAD_DB: xsp1.nsf, xsp2.nsf, xsp3.nsf
• By setting values manually you can modify and / or
create new XSP runtimes, e.g.
• scaling instances and memory
• setting up new XSP runtimes and hosts
32#engageug
• Prerequisites
• Best practices: design and data separation
• Using the DDE plugin vs. the CF command line
• Understanding the "mysterious" MANIFEST.YML file
• Experiment: holding data in the XSP runtime
• Security considerations
• Plugins and extensions? No problem!
• Tipps & tricks
33#engageug
Experiment: data in the XSP runtime
• This is not supported!
• This may work flawlessly, but don‘t rely on it
• Maybe useful for configurations, not for production
data
• XSP Runtime is a slim Domino environment, so
everything is possible regarding data
• Faulty behavior of pager
34#engageug
Pros and cons
+Direct and fast access to commonly used data sets (e.g.
application and user profiles)
+No data separation necessary
+No changes needed in an existing application
- Data will be overwritten
- every time you re-deploy
- every time you re-scale the application
- every time the runtime restarts
35#engageug
• Prerequisites
• Best practices: design and data separation
• Using the DDE plugin vs. the CF command line
• Understanding the "mysterious" MANIFEST.YML file
• Experiment: holding data in the XSP runtime
• Security considerations
• Plugins and extensions? No problem!
• Tipps & tricks
36#engageug
Security considerations
• You have to manage at least two ACLs
• XSP Runtime (design part)
• XPages NoSQL service (data part)
• Design part
• manage Anonymous access only to force a login page
• Data part
• Manage ACL corresponding to the user ID and web users you
may set up in the XPages NoSQL service
• Other known ACL rules such as user roles apply here
• You can lock yourself out from that ACL – be careful, Full
Access Admin is NOT available to unlock!
37#engageug
Locked out from data NSF?
• Deleting and re-creating the service has no effect, NSFs
will re-appear!
• You have to contact IBM support for unlocking or
deleting the NSF!
38#engageug
• Locked out from design NSF?
• remove the runtime and re-deploy – phew!
• Prerequisites
• Best practices: design and data separation
• Using the DDE plugin vs. the CF command line
• Understanding the "mysterious" MANIFEST.YML file
• Experiment: holding data in the XSP runtime
• Security considerations
• Plugins and extensions? No problem!
• Tipps & tricks
39#engageug
Imagine…
• to use your favorite extensions even on IBM Bluemix
• to enrich your application with genius software like the
OpenNTF Domino API or the XLogger
• You can do this!
40#engageug
+
Using plugins: preparation
• Create a folder „shared-plugins“ in the local
deployment folder
• Download the plugin or extension, unzip it
• Locate the updatesite version of the plugin
• Copy the content of the plugins folder into the
“shared-plugins” folder (.jar-files)
41#engageug
Using plugins: deployment
• Deploy the application (cf push)
42#engageug
• Prerequisites
• Best practices: design and data separation
• Using the DDE plugin vs. the CF command line
• Understanding the "mysterious" MANIFEST.YML file
• Experiment: holding data in the XSP runtime
• Security considerations
• Plugins and extensions? No problem!
• Tipps & tricks
43#engageug
Using the XPages Toolbox
• Versatile profiling tool for performance monitoring
• Available on OpenNTF for on-premises use
• https://www.openntf.org/main.nsf/project.xsp?r=project/XP
ages%20Toolbox/
• Setup automatically by modifying the manifest.yml file
• Add this to the ENV section:
• APP_INCLUDE_XPAGES_TOOLBOX: '1'
44#engageug
XPages Toolbox (Profiler)
45#engageug
Grant restricted access of the JVM
• Like in on-premises environments you may want to
enable full access for the JVM when using e.g. Java
reflections.
• Instead of setting the java.pol file you simply add this
to the manifest.yml ENV section
• APP_JAVA_POLICY_ALL_PERMISSION: '1‘
• Keep in mind that this may be a security issue
46#engageug
Verbose mode while deploying
• When using the CF command line the following added
to the manifest.yml file will deliver detailed messages
during the deployment
• APP_VERBOSE_STAGING: '1'
47#engageug
Don‘t want to type?
• Use the editor to set those up ;-)
48#engageug
Missing view icons
• When using view icons in XPages view panels the icons
are missing
• They won‘t be displayed even if you use
@ViewIconUrl SSJS function
• However, you can add them manually 
49#engageug
View icons: lost but found
• Open the deployment folder of the XSP part
• Create the folder notesdata/domino
• Copy the folder <NotesData>/domino/icons to it
• The folder will be published to the XSP runtime
• The view icons will re-appear!
50#engageug
Q & A
51#engageug
Thank you!
Special thanks to:
• Tony McGuckin, Martin Donnelly, Brian Gleeson
(IBM Ireland Labs, XPages and Bluemix Dev Team)
• Pete Janzen
(IBM, Sr. Product Manager, IBM Enterprise Social Solutions)
52#engageug
Resources
• https://openntf.org/XSnippets.nsf/snippet.xsp?id=daobean-for-xsp-on-Bluemix
• http://notesx.net:8090/obusse/Greets
• http://greets.eu-gb.mybluemix.net/
• http://cmder.net/
• https://www.openntf.org/main.nsf/project.xsp?r=project/XPages%20Toolbox/
• http://oliverbusse.notesx.net/hp.nsf/blogpost.xsp?documentId=10C2
53#engageug

Weitere ähnliche Inhalte

Was ist angesagt?

MySQL Monitoring with Zabbix
MySQL Monitoring with ZabbixMySQL Monitoring with Zabbix
MySQL Monitoring with ZabbixFromDual GmbH
 
Take your database source code and data under control
Take your database source code and data under controlTake your database source code and data under control
Take your database source code and data under controlMarcin Przepiórowski
 
The Complete MariaDB Server Tutorial - Percona Live 2015
The Complete MariaDB Server Tutorial - Percona Live 2015The Complete MariaDB Server Tutorial - Percona Live 2015
The Complete MariaDB Server Tutorial - Percona Live 2015Colin Charles
 
Puppet Camp Charlotte 2015: Use Puppet to Manage your NetApp Storage Infrastr...
Puppet Camp Charlotte 2015: Use Puppet to Manage your NetApp Storage Infrastr...Puppet Camp Charlotte 2015: Use Puppet to Manage your NetApp Storage Infrastr...
Puppet Camp Charlotte 2015: Use Puppet to Manage your NetApp Storage Infrastr...Puppet
 
WalB: Real-time and Incremental Backup System for Block Devices
WalB: Real-time and Incremental Backup System for Block DevicesWalB: Real-time and Incremental Backup System for Block Devices
WalB: Real-time and Incremental Backup System for Block Devicesuchan_nos
 
Alexei Vladishev - Zabbix - Monitoring Solution for Everyone
Alexei Vladishev - Zabbix - Monitoring Solution for EveryoneAlexei Vladishev - Zabbix - Monitoring Solution for Everyone
Alexei Vladishev - Zabbix - Monitoring Solution for EveryoneZabbix
 
Silicon Valley Code Camp 2015 - Advanced MongoDB - The Sequel
Silicon Valley Code Camp 2015 - Advanced MongoDB - The SequelSilicon Valley Code Camp 2015 - Advanced MongoDB - The Sequel
Silicon Valley Code Camp 2015 - Advanced MongoDB - The SequelDaniel Coupal
 
Day 2 General Session Presentations RedisConf
Day 2 General Session Presentations RedisConfDay 2 General Session Presentations RedisConf
Day 2 General Session Presentations RedisConfRedis Labs
 
Monitoring all Elements of Your Database Operations With Zabbix
Monitoring all Elements of Your Database Operations With ZabbixMonitoring all Elements of Your Database Operations With Zabbix
Monitoring all Elements of Your Database Operations With ZabbixZabbix
 
Drupal commerce performance profiling and tunning using loadstorm experiments...
Drupal commerce performance profiling and tunning using loadstorm experiments...Drupal commerce performance profiling and tunning using loadstorm experiments...
Drupal commerce performance profiling and tunning using loadstorm experiments...Andy Kucharski
 
Life In The FastLane: Full Speed XPages
Life In The FastLane: Full Speed XPagesLife In The FastLane: Full Speed XPages
Life In The FastLane: Full Speed XPagesUlrich Krause
 
EECI 2013 - ExpressionEngine Performance & Optimization - Laying a Solid Foun...
EECI 2013 - ExpressionEngine Performance & Optimization - Laying a Solid Foun...EECI 2013 - ExpressionEngine Performance & Optimization - Laying a Solid Foun...
EECI 2013 - ExpressionEngine Performance & Optimization - Laying a Solid Foun...Nexcess.net LLC
 
VMworld 2016: Getting Started with PowerShell and PowerCLI for Your VMware En...
VMworld 2016: Getting Started with PowerShell and PowerCLI for Your VMware En...VMworld 2016: Getting Started with PowerShell and PowerCLI for Your VMware En...
VMworld 2016: Getting Started with PowerShell and PowerCLI for Your VMware En...VMworld
 
Scaling with Symfony - PHP UK
Scaling with Symfony - PHP UKScaling with Symfony - PHP UK
Scaling with Symfony - PHP UKRicard Clau
 
Nagios, Getting Started.
Nagios, Getting Started.Nagios, Getting Started.
Nagios, Getting Started.Hitesh Bhatia
 
MarvelClient for iOS - Client Management for Domino Mobile App
MarvelClient for iOS - Client Management for Domino Mobile AppMarvelClient for iOS - Client Management for Domino Mobile App
MarvelClient for iOS - Client Management for Domino Mobile Apppanagenda
 
Zabbix introduction ( RadixCloud Radix Technologies SA)
Zabbix introduction ( RadixCloud Radix Technologies SA)Zabbix introduction ( RadixCloud Radix Technologies SA)
Zabbix introduction ( RadixCloud Radix Technologies SA)Martin Markovski
 

Was ist angesagt? (18)

MySQL Monitoring with Zabbix
MySQL Monitoring with ZabbixMySQL Monitoring with Zabbix
MySQL Monitoring with Zabbix
 
Take your database source code and data under control
Take your database source code and data under controlTake your database source code and data under control
Take your database source code and data under control
 
Monitor Your Business
Monitor Your BusinessMonitor Your Business
Monitor Your Business
 
The Complete MariaDB Server Tutorial - Percona Live 2015
The Complete MariaDB Server Tutorial - Percona Live 2015The Complete MariaDB Server Tutorial - Percona Live 2015
The Complete MariaDB Server Tutorial - Percona Live 2015
 
Puppet Camp Charlotte 2015: Use Puppet to Manage your NetApp Storage Infrastr...
Puppet Camp Charlotte 2015: Use Puppet to Manage your NetApp Storage Infrastr...Puppet Camp Charlotte 2015: Use Puppet to Manage your NetApp Storage Infrastr...
Puppet Camp Charlotte 2015: Use Puppet to Manage your NetApp Storage Infrastr...
 
WalB: Real-time and Incremental Backup System for Block Devices
WalB: Real-time and Incremental Backup System for Block DevicesWalB: Real-time and Incremental Backup System for Block Devices
WalB: Real-time and Incremental Backup System for Block Devices
 
Alexei Vladishev - Zabbix - Monitoring Solution for Everyone
Alexei Vladishev - Zabbix - Monitoring Solution for EveryoneAlexei Vladishev - Zabbix - Monitoring Solution for Everyone
Alexei Vladishev - Zabbix - Monitoring Solution for Everyone
 
Silicon Valley Code Camp 2015 - Advanced MongoDB - The Sequel
Silicon Valley Code Camp 2015 - Advanced MongoDB - The SequelSilicon Valley Code Camp 2015 - Advanced MongoDB - The Sequel
Silicon Valley Code Camp 2015 - Advanced MongoDB - The Sequel
 
Day 2 General Session Presentations RedisConf
Day 2 General Session Presentations RedisConfDay 2 General Session Presentations RedisConf
Day 2 General Session Presentations RedisConf
 
Monitoring all Elements of Your Database Operations With Zabbix
Monitoring all Elements of Your Database Operations With ZabbixMonitoring all Elements of Your Database Operations With Zabbix
Monitoring all Elements of Your Database Operations With Zabbix
 
Drupal commerce performance profiling and tunning using loadstorm experiments...
Drupal commerce performance profiling and tunning using loadstorm experiments...Drupal commerce performance profiling and tunning using loadstorm experiments...
Drupal commerce performance profiling and tunning using loadstorm experiments...
 
Life In The FastLane: Full Speed XPages
Life In The FastLane: Full Speed XPagesLife In The FastLane: Full Speed XPages
Life In The FastLane: Full Speed XPages
 
EECI 2013 - ExpressionEngine Performance & Optimization - Laying a Solid Foun...
EECI 2013 - ExpressionEngine Performance & Optimization - Laying a Solid Foun...EECI 2013 - ExpressionEngine Performance & Optimization - Laying a Solid Foun...
EECI 2013 - ExpressionEngine Performance & Optimization - Laying a Solid Foun...
 
VMworld 2016: Getting Started with PowerShell and PowerCLI for Your VMware En...
VMworld 2016: Getting Started with PowerShell and PowerCLI for Your VMware En...VMworld 2016: Getting Started with PowerShell and PowerCLI for Your VMware En...
VMworld 2016: Getting Started with PowerShell and PowerCLI for Your VMware En...
 
Scaling with Symfony - PHP UK
Scaling with Symfony - PHP UKScaling with Symfony - PHP UK
Scaling with Symfony - PHP UK
 
Nagios, Getting Started.
Nagios, Getting Started.Nagios, Getting Started.
Nagios, Getting Started.
 
MarvelClient for iOS - Client Management for Domino Mobile App
MarvelClient for iOS - Client Management for Domino Mobile AppMarvelClient for iOS - Client Management for Domino Mobile App
MarvelClient for iOS - Client Management for Domino Mobile App
 
Zabbix introduction ( RadixCloud Radix Technologies SA)
Zabbix introduction ( RadixCloud Radix Technologies SA)Zabbix introduction ( RadixCloud Radix Technologies SA)
Zabbix introduction ( RadixCloud Radix Technologies SA)
 

Andere mochten auch

DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsar...
DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsar...DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsar...
DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsar...JRibbeck
 
ULC - Connect 2014 Nachlese
ULC - Connect 2014 NachleseULC - Connect 2014 Nachlese
ULC - Connect 2014 NachleseOliver Busse
 
OSA Anwendertreffen 2014 - "Clients ausgedünnt: Notes-/Domino-Anwendungen web...
OSA Anwendertreffen 2014 - "Clients ausgedünnt: Notes-/Domino-Anwendungenweb...OSA Anwendertreffen 2014 - "Clients ausgedünnt: Notes-/Domino-Anwendungenweb...
OSA Anwendertreffen 2014 - "Clients ausgedünnt: Notes-/Domino-Anwendungen web...Oliver Busse
 
SUTOL 2015 - Utilizing the OpenNTF Domino API
SUTOL 2015 - Utilizing the OpenNTF Domino APISUTOL 2015 - Utilizing the OpenNTF Domino API
SUTOL 2015 - Utilizing the OpenNTF Domino APIOliver Busse
 
Utilizing the open ntf domino api
Utilizing the open ntf domino apiUtilizing the open ntf domino api
Utilizing the open ntf domino apiOliver Busse
 
ISBG 2016 - XPages on IBM Bluemix
ISBG 2016 - XPages on IBM BluemixISBG 2016 - XPages on IBM Bluemix
ISBG 2016 - XPages on IBM BluemixOliver Busse
 
Transformations - a TLCC & Teamstudio Webinar
Transformations - a TLCC & Teamstudio WebinarTransformations - a TLCC & Teamstudio Webinar
Transformations - a TLCC & Teamstudio WebinarOliver Busse
 
Utilizing the OpenNTF Domino API
Utilizing the OpenNTF Domino APIUtilizing the OpenNTF Domino API
Utilizing the OpenNTF Domino APIOliver Busse
 
Dnug 112014 modernization_openn_ntf_ersatzsession
Dnug 112014 modernization_openn_ntf_ersatzsessionDnug 112014 modernization_openn_ntf_ersatzsession
Dnug 112014 modernization_openn_ntf_ersatzsessionOliver Busse
 
DNUG 38: "Einen Rahmen schaffen: Vorteile durch Frameworks in der Domino-Webe...
DNUG 38: "Einen Rahmen schaffen: Vorteile durch Frameworks in der Domino-Webe...DNUG 38: "Einen Rahmen schaffen: Vorteile durch Frameworks in der Domino-Webe...
DNUG 38: "Einen Rahmen schaffen: Vorteile durch Frameworks in der Domino-Webe...Oliver Busse
 
Fix & fertig: Best Practises für "XPages-Migranten"
Fix & fertig: Best Practises für "XPages-Migranten"Fix & fertig: Best Practises für "XPages-Migranten"
Fix & fertig: Best Practises für "XPages-Migranten"Oliver Busse
 
Xpages - oder was man mit einer alten Notes-DB so alles anstellen kann
Xpages - oder was man mit einer alten Notes-DB so alles anstellen kannXpages - oder was man mit einer alten Notes-DB so alles anstellen kann
Xpages - oder was man mit einer alten Notes-DB so alles anstellen kannBelsoft
 
Out of the Blue - the Workflow in Bluemix Development
Out of the Blue - the Workflow in Bluemix DevelopmentOut of the Blue - the Workflow in Bluemix Development
Out of the Blue - the Workflow in Bluemix DevelopmentOliver Busse
 
Java & Notes - Mit Eclipse neue Features für Notes entwickeln | C.Habermueller
Java & Notes - Mit Eclipse neue Features für Notes entwickeln | C.HabermuellerJava & Notes - Mit Eclipse neue Features für Notes entwickeln | C.Habermueller
Java & Notes - Mit Eclipse neue Features für Notes entwickeln | C.HabermuellerChristian Habermueller
 
Out of the Blue: Getting started with IBM Bluemix development
Out of the Blue: Getting started with IBM Bluemix developmentOut of the Blue: Getting started with IBM Bluemix development
Out of the Blue: Getting started with IBM Bluemix developmentOliver Busse
 
MWLUG 2016 : AD117 : Xpages & jQuery DataTables
MWLUG 2016 : AD117 : Xpages & jQuery DataTablesMWLUG 2016 : AD117 : Xpages & jQuery DataTables
MWLUG 2016 : AD117 : Xpages & jQuery DataTablesMichael Smith
 

Andere mochten auch (20)

DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsar...
DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsar...DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsar...
DNUG 2014 Herbstkonferenz: Moderne Architektur - Hochskalierbare Anwendungsar...
 
ULC - Connect 2014 Nachlese
ULC - Connect 2014 NachleseULC - Connect 2014 Nachlese
ULC - Connect 2014 Nachlese
 
OSA Anwendertreffen 2014 - "Clients ausgedünnt: Notes-/Domino-Anwendungen web...
OSA Anwendertreffen 2014 - "Clients ausgedünnt: Notes-/Domino-Anwendungenweb...OSA Anwendertreffen 2014 - "Clients ausgedünnt: Notes-/Domino-Anwendungenweb...
OSA Anwendertreffen 2014 - "Clients ausgedünnt: Notes-/Domino-Anwendungen web...
 
SUTOL 2015 - Utilizing the OpenNTF Domino API
SUTOL 2015 - Utilizing the OpenNTF Domino APISUTOL 2015 - Utilizing the OpenNTF Domino API
SUTOL 2015 - Utilizing the OpenNTF Domino API
 
Utilizing the open ntf domino api
Utilizing the open ntf domino apiUtilizing the open ntf domino api
Utilizing the open ntf domino api
 
ISBG 2016 - XPages on IBM Bluemix
ISBG 2016 - XPages on IBM BluemixISBG 2016 - XPages on IBM Bluemix
ISBG 2016 - XPages on IBM Bluemix
 
GraphDb in XPages
GraphDb in XPagesGraphDb in XPages
GraphDb in XPages
 
Transformations - a TLCC & Teamstudio Webinar
Transformations - a TLCC & Teamstudio WebinarTransformations - a TLCC & Teamstudio Webinar
Transformations - a TLCC & Teamstudio Webinar
 
Transformations
TransformationsTransformations
Transformations
 
Utilizing the OpenNTF Domino API
Utilizing the OpenNTF Domino APIUtilizing the OpenNTF Domino API
Utilizing the OpenNTF Domino API
 
Dnug 112014 modernization_openn_ntf_ersatzsession
Dnug 112014 modernization_openn_ntf_ersatzsessionDnug 112014 modernization_openn_ntf_ersatzsession
Dnug 112014 modernization_openn_ntf_ersatzsession
 
DNUG 38: "Einen Rahmen schaffen: Vorteile durch Frameworks in der Domino-Webe...
DNUG 38: "Einen Rahmen schaffen: Vorteile durch Frameworks in der Domino-Webe...DNUG 38: "Einen Rahmen schaffen: Vorteile durch Frameworks in der Domino-Webe...
DNUG 38: "Einen Rahmen schaffen: Vorteile durch Frameworks in der Domino-Webe...
 
Fix & fertig: Best Practises für "XPages-Migranten"
Fix & fertig: Best Practises für "XPages-Migranten"Fix & fertig: Best Practises für "XPages-Migranten"
Fix & fertig: Best Practises für "XPages-Migranten"
 
Xpages - oder was man mit einer alten Notes-DB so alles anstellen kann
Xpages - oder was man mit einer alten Notes-DB so alles anstellen kannXpages - oder was man mit einer alten Notes-DB so alles anstellen kann
Xpages - oder was man mit einer alten Notes-DB so alles anstellen kann
 
Out of the Blue - the Workflow in Bluemix Development
Out of the Blue - the Workflow in Bluemix DevelopmentOut of the Blue - the Workflow in Bluemix Development
Out of the Blue - the Workflow in Bluemix Development
 
Find your data
Find your dataFind your data
Find your data
 
Java & Notes - Mit Eclipse neue Features für Notes entwickeln | C.Habermueller
Java & Notes - Mit Eclipse neue Features für Notes entwickeln | C.HabermuellerJava & Notes - Mit Eclipse neue Features für Notes entwickeln | C.Habermueller
Java & Notes - Mit Eclipse neue Features für Notes entwickeln | C.Habermueller
 
Out of the Blue: Getting started with IBM Bluemix development
Out of the Blue: Getting started with IBM Bluemix developmentOut of the Blue: Getting started with IBM Bluemix development
Out of the Blue: Getting started with IBM Bluemix development
 
MWLUG 2016 : AD117 : Xpages & jQuery DataTables
MWLUG 2016 : AD117 : Xpages & jQuery DataTablesMWLUG 2016 : AD117 : Xpages & jQuery DataTables
MWLUG 2016 : AD117 : Xpages & jQuery DataTables
 
SMC Derivative Daily
SMC Derivative Daily SMC Derivative Daily
SMC Derivative Daily
 

Ähnlich wie XPages on Bluemix - the Do's and Dont's

XPages on IBM Bluemix: The Do's and Dont's - ICS.UG 2016
XPages on IBM Bluemix: The Do's and Dont's - ICS.UG 2016XPages on IBM Bluemix: The Do's and Dont's - ICS.UG 2016
XPages on IBM Bluemix: The Do's and Dont's - ICS.UG 2016ICS User Group
 
engage 2019 - 15 Domino v10 Admin features we LOVE
engage 2019 - 15 Domino v10 Admin features we LOVEengage 2019 - 15 Domino v10 Admin features we LOVE
engage 2019 - 15 Domino v10 Admin features we LOVEChristoph Adler
 
Soccnx10: Best and worst practices deploying IBM Connections
Soccnx10: Best and worst practices deploying IBM ConnectionsSoccnx10: Best and worst practices deploying IBM Connections
Soccnx10: Best and worst practices deploying IBM Connectionspanagenda
 
Best And Worst Practices Deploying IBM Connections
Best And Worst Practices Deploying IBM ConnectionsBest And Worst Practices Deploying IBM Connections
Best And Worst Practices Deploying IBM ConnectionsLetsConnect
 
XPages Blast - Lotusphere 2011
XPages Blast - Lotusphere 2011XPages Blast - Lotusphere 2011
XPages Blast - Lotusphere 2011Tim Clark
 
Session 6638 - The One-Day CICS Transaction Server Upgrade: Migration Conside...
Session 6638 - The One-Day CICS Transaction Server Upgrade: Migration Conside...Session 6638 - The One-Day CICS Transaction Server Upgrade: Migration Conside...
Session 6638 - The One-Day CICS Transaction Server Upgrade: Migration Conside...nick_garrod
 
Extension Library - Viagra for XPages
Extension Library - Viagra for XPagesExtension Library - Viagra for XPages
Extension Library - Viagra for XPagesUlrich Krause
 
1049: Best and Worst Practices for Deploying IBM Connections - IBM Connect 2016
1049: Best and Worst Practices for Deploying IBM Connections - IBM Connect 20161049: Best and Worst Practices for Deploying IBM Connections - IBM Connect 2016
1049: Best and Worst Practices for Deploying IBM Connections - IBM Connect 2016panagenda
 
C++ Programming and the Persistent Memory Developers Kit
C++ Programming and the Persistent Memory Developers KitC++ Programming and the Persistent Memory Developers Kit
C++ Programming and the Persistent Memory Developers KitIntel® Software
 
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...Databricks
 
KACE Agent Architecture and Troubleshooting Overview
KACE Agent Architecture and Troubleshooting OverviewKACE Agent Architecture and Troubleshooting Overview
KACE Agent Architecture and Troubleshooting OverviewDell World
 
Hpc lunch and learn
Hpc lunch and learnHpc lunch and learn
Hpc lunch and learnJohn D Almon
 
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...NCCOMMS
 
2020 07-30 elastic agent + ingest management
2020 07-30 elastic agent + ingest management2020 07-30 elastic agent + ingest management
2020 07-30 elastic agent + ingest managementDaliya Spasova
 
Practical solutions for connections administrators lite
Practical solutions for connections administrators litePractical solutions for connections administrators lite
Practical solutions for connections administrators liteSharon James
 
Anatomy of Autoconfig in Oracle E-Business Suite
Anatomy of Autoconfig in Oracle E-Business SuiteAnatomy of Autoconfig in Oracle E-Business Suite
Anatomy of Autoconfig in Oracle E-Business Suitevasuballa
 
XPages -Beyond the Basics
XPages -Beyond the BasicsXPages -Beyond the Basics
XPages -Beyond the BasicsUlrich Krause
 
Netflix oss season 2 episode 1 - meetup Lightning talks
Netflix oss   season 2 episode 1 - meetup Lightning talksNetflix oss   season 2 episode 1 - meetup Lightning talks
Netflix oss season 2 episode 1 - meetup Lightning talksRuslan Meshenberg
 
AdminCamp 2018 - IBM Notes V10 Performance Boost
AdminCamp 2018 - IBM Notes V10 Performance BoostAdminCamp 2018 - IBM Notes V10 Performance Boost
AdminCamp 2018 - IBM Notes V10 Performance BoostChristoph Adler
 

Ähnlich wie XPages on Bluemix - the Do's and Dont's (20)

XPages on IBM Bluemix: The Do's and Dont's - ICS.UG 2016
XPages on IBM Bluemix: The Do's and Dont's - ICS.UG 2016XPages on IBM Bluemix: The Do's and Dont's - ICS.UG 2016
XPages on IBM Bluemix: The Do's and Dont's - ICS.UG 2016
 
engage 2019 - 15 Domino v10 Admin features we LOVE
engage 2019 - 15 Domino v10 Admin features we LOVEengage 2019 - 15 Domino v10 Admin features we LOVE
engage 2019 - 15 Domino v10 Admin features we LOVE
 
Soccnx10: Best and worst practices deploying IBM Connections
Soccnx10: Best and worst practices deploying IBM ConnectionsSoccnx10: Best and worst practices deploying IBM Connections
Soccnx10: Best and worst practices deploying IBM Connections
 
Best And Worst Practices Deploying IBM Connections
Best And Worst Practices Deploying IBM ConnectionsBest And Worst Practices Deploying IBM Connections
Best And Worst Practices Deploying IBM Connections
 
XPages Blast - Lotusphere 2011
XPages Blast - Lotusphere 2011XPages Blast - Lotusphere 2011
XPages Blast - Lotusphere 2011
 
Session 6638 - The One-Day CICS Transaction Server Upgrade: Migration Conside...
Session 6638 - The One-Day CICS Transaction Server Upgrade: Migration Conside...Session 6638 - The One-Day CICS Transaction Server Upgrade: Migration Conside...
Session 6638 - The One-Day CICS Transaction Server Upgrade: Migration Conside...
 
Extension Library - Viagra for XPages
Extension Library - Viagra for XPagesExtension Library - Viagra for XPages
Extension Library - Viagra for XPages
 
1049: Best and Worst Practices for Deploying IBM Connections - IBM Connect 2016
1049: Best and Worst Practices for Deploying IBM Connections - IBM Connect 20161049: Best and Worst Practices for Deploying IBM Connections - IBM Connect 2016
1049: Best and Worst Practices for Deploying IBM Connections - IBM Connect 2016
 
C++ Programming and the Persistent Memory Developers Kit
C++ Programming and the Persistent Memory Developers KitC++ Programming and the Persistent Memory Developers Kit
C++ Programming and the Persistent Memory Developers Kit
 
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
Lessons Learned Replatforming A Large Machine Learning Application To Apache ...
 
KACE Agent Architecture and Troubleshooting Overview
KACE Agent Architecture and Troubleshooting OverviewKACE Agent Architecture and Troubleshooting Overview
KACE Agent Architecture and Troubleshooting Overview
 
Hpc lunch and learn
Hpc lunch and learnHpc lunch and learn
Hpc lunch and learn
 
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
 
2020 07-30 elastic agent + ingest management
2020 07-30 elastic agent + ingest management2020 07-30 elastic agent + ingest management
2020 07-30 elastic agent + ingest management
 
Practical solutions for connections administrators lite
Practical solutions for connections administrators litePractical solutions for connections administrators lite
Practical solutions for connections administrators lite
 
Avoid boring work_v2
Avoid boring work_v2Avoid boring work_v2
Avoid boring work_v2
 
Anatomy of Autoconfig in Oracle E-Business Suite
Anatomy of Autoconfig in Oracle E-Business SuiteAnatomy of Autoconfig in Oracle E-Business Suite
Anatomy of Autoconfig in Oracle E-Business Suite
 
XPages -Beyond the Basics
XPages -Beyond the BasicsXPages -Beyond the Basics
XPages -Beyond the Basics
 
Netflix oss season 2 episode 1 - meetup Lightning talks
Netflix oss   season 2 episode 1 - meetup Lightning talksNetflix oss   season 2 episode 1 - meetup Lightning talks
Netflix oss season 2 episode 1 - meetup Lightning talks
 
AdminCamp 2018 - IBM Notes V10 Performance Boost
AdminCamp 2018 - IBM Notes V10 Performance BoostAdminCamp 2018 - IBM Notes V10 Performance Boost
AdminCamp 2018 - IBM Notes V10 Performance Boost
 

Mehr von Oliver Busse

HCL Domino Volt - der NSF Killer?
HCL Domino Volt - der NSF Killer?HCL Domino Volt - der NSF Killer?
HCL Domino Volt - der NSF Killer?Oliver Busse
 
Outlook becomes a Team Player - with a clever add-in
Outlook becomes a Team Player - with a clever add-inOutlook becomes a Team Player - with a clever add-in
Outlook becomes a Team Player - with a clever add-inOliver Busse
 
The NERD stuff - opening for Domino to the modern web developer
The NERD stuff - opening for Domino to the modern web developerThe NERD stuff - opening for Domino to the modern web developer
The NERD stuff - opening for Domino to the modern web developerOliver Busse
 
DNUG Development Day 2019
DNUG Development Day 2019DNUG Development Day 2019
DNUG Development Day 2019Oliver Busse
 
DNUG44 Watson Workspace
DNUG44 Watson WorkspaceDNUG44 Watson Workspace
DNUG44 Watson WorkspaceOliver Busse
 
Paradiesisch - OpenNTF
Paradiesisch - OpenNTFParadiesisch - OpenNTF
Paradiesisch - OpenNTFOliver Busse
 
Utilizing the OpenNTF Domino API
Utilizing the OpenNTF Domino APIUtilizing the OpenNTF Domino API
Utilizing the OpenNTF Domino APIOliver Busse
 

Mehr von Oliver Busse (7)

HCL Domino Volt - der NSF Killer?
HCL Domino Volt - der NSF Killer?HCL Domino Volt - der NSF Killer?
HCL Domino Volt - der NSF Killer?
 
Outlook becomes a Team Player - with a clever add-in
Outlook becomes a Team Player - with a clever add-inOutlook becomes a Team Player - with a clever add-in
Outlook becomes a Team Player - with a clever add-in
 
The NERD stuff - opening for Domino to the modern web developer
The NERD stuff - opening for Domino to the modern web developerThe NERD stuff - opening for Domino to the modern web developer
The NERD stuff - opening for Domino to the modern web developer
 
DNUG Development Day 2019
DNUG Development Day 2019DNUG Development Day 2019
DNUG Development Day 2019
 
DNUG44 Watson Workspace
DNUG44 Watson WorkspaceDNUG44 Watson Workspace
DNUG44 Watson Workspace
 
Paradiesisch - OpenNTF
Paradiesisch - OpenNTFParadiesisch - OpenNTF
Paradiesisch - OpenNTF
 
Utilizing the OpenNTF Domino API
Utilizing the OpenNTF Domino APIUtilizing the OpenNTF Domino API
Utilizing the OpenNTF Domino API
 

Kürzlich hochgeladen

Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfYashikaSharma391629
 

Kürzlich hochgeladen (20)

Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
 

XPages on Bluemix - the Do's and Dont's

  • 1. XPages on IBM Bluemix: The Dos and Don'ts (Eme06) Oliver Busse, We4IT, Germany #engageug
  • 2. Many Dos, not so much Don‘ts  2#engageug
  • 3. About me 3#engageug • Working for We4IT • Aveedo® Application Framework • „Bleeding Yellow“ since R4.5 • IBM Champion for ICS 2015 + 2016 • OpenNTF Member Director @zeromancer1972 www.oliverbusse.com @we4it www.we4it.com
  • 4. Agenda • Prerequisites • Best practices: design and data separation • Using the DDE plugin vs. the CF command line • Understanding the "mysterious" MANIFEST.YML file • Experiment: holding data in the XSP runtime • Security considerations • Plugins and extensions? No problem! • Tipps & tricks 4#engageug
  • 5. • Prerequisites • Best practices: design and data separation • Using the DDE plugin vs. the CF command line • Understanding the "mysterious" MANIFEST.YML file • Experiment: holding data in the XSP runtime • Security considerations • Plugins and extensions? No problem! • Tipps & tricks 5#engageug
  • 6. Prerequisites • Create an IBM Bluemix account • Create an XPages NoSQL database service (i.e. a Domino Server) • Get the latest* Extension Library from OpenNTF • Install Extlib on your local Domino Designer to get the Bluemix plugin • Setup Bluemix preferences in DDE 6#engageug *) 9.0.1v16, January 2016
  • 7. Create or login to your Bluemix account 7#engageug
  • 8. XPages NoSQL database service • Add a service • Scroll down to „Bluemix Labs Catalog“ • Find „XPages NoSQL Database“ 8#engageug
  • 9. Additional steps (not described here) • Open the XPages NoSQL Database service properties page • Grab the user ID to access the Bluemix Domino instance • slaney/Bluemix (USA) • langan/Bluemix (UK) • coming soon: CAN and AUS • Optional: setup additional web users 9#engageug
  • 12. Get the Extlib from OpenNTF • Download and install it via the updatesite mechanism • https://extlib.openntf.org/ • https://www.dalsgaard-data.eu/blog/deploy-an-eclipse- update-site-to-ibm-domino-and-ibm-domino-designer/ • Check Extlib version in DDE and server 12#engageug
  • 13. Bluemix prefs in Domino Designer • File, Preferences, Domino Designer, IBM Bluemix 13#engageug
  • 14. New IBM Bluemix toolbar control 14#engageug
  • 15. • Prerequisites • Best practices: design and data separation • Using the DDE plugin vs. the CF command line • Understanding the "mysterious" MANIFEST.YML file • Experiment: holding data in the XSP runtime • Security considerations • Plugins and extensions? No problem! • Tipps & tricks 15#engageug
  • 16. Design and data separation • Create the data part on the Bluemix Domino instance • create a blank database or • copy and existing database with data • Setup ACL etc. • Keep in mind the additional webusers you may have created before 16#engageug
  • 17. Setup local dev environment • Separate data and design also on your local environment • Find and modify ALL static references to „database“ on every XPage, Custom Control and Code • Document data sources • View data sources 17#engageug
  • 18. Compute „database“ references • Utilize the bluemixContext bean • comes with the OpenNTF Extension Library since v13 • isRunningOnBluemix() • findDatabaseName() always returns „tododata.nsf“ • static default filename of the data part on the XPages NoSQL service 18#engageug https://www.eu-gb.bluemix.net/docs/services/XPagesNoSQLDatabase/index.html
  • 19. More flexible: use a custom bean • Compute server and filepath dynamically • for the local and the Bluemix environment • Allows a different filename on the XPages NoSQL service (other than „tododata.nsf“) • Generic code for „database“ computation for document, view and repeat data sources • There is a snippet for you…  • https://openntf.org/XSnippets.nsf/snippet.xsp?id=daobean- for-xsp-on-bluemix 19#engageug
  • 21. • Prerequisites • Best practices: design and data separation • Using the DDE plugin vs. the CF command line • Understanding the "mysterious" MANIFEST.YML file • Experiment: holding data in the XSP runtime • Security considerations • Plugins and extensions? No problem! • Caveats and restrictions • Tipps & tricks 21#engageug
  • 22. What the DDE Plugin does • When running for the first time • It will ask for a local folder • It will create a copy (or replica) of the XSP part • It will create a manifest.yml file • It contacts the Bluemix XSP runtime and uploads the 2 files • Afterwards • It updates the local copy / replica • It modifies the manifest.yml file • It contacts the Bluemix XSP runtime and uploads the 2 files 22#engageug
  • 23. What the DDE Plugin also does… • It won‘t display error messages or log outputs during deployment • hard to troubleshoot • Sometimes it may not work when running a second, third, … time • DDE restart will solve this problem 23#engageug
  • 24. The CF command line • CF = Cloud Foundry • Download and install the command line • https://github.com/cloudfoundry/cli/releases • http://docs.cloudfoundry.org/devguide/cf-cli/ • You can create a batch file to accellerate deployment • Verbose output of any action during deployment process • Access to the XSP runtime file system (e.g. for reading system logs) 24#engageug
  • 25. A simple triplet of commands • cf api • use api.bluemix.net or api.eu-gb.bluemix.net • cf api https://api.bluemix.net • cf login • provide username and password • cf login –u username –p password • cf push • will upload your local droplet instantly using the manifest.yml file • cf push • cf push <applicationName> 25#engageug
  • 26. Benefits using the CF command line • Full control of what‘s being done • Understand how cloud deployment works • Create new XSP runtimes and instances on the fly (wait for it!) • Deploy plugins and other resources (wait for it!) 26#engageug
  • 27. Disadvantage using the CF command line • You have to create the local NSF copy / replica manually • beware of local encryption! • You have to type in a console… ;-) • I recommend using CMDER command line replacement for Windows 27#engageug
  • 28. • Prerequisites • Best practices: design and data separation • Using the DDE plugin vs. the CF command line • Understanding the "mysterious" MANIFEST.YML file • Experiment: holding data in the XSP runtime • Security considerations • Plugins and extensions? No problem! • Tipps & tricks 28#engageug
  • 29. The manifest.yml file • The manifest.yml file is a simple text file (not even XML) • It contains fundamental definitions for the runtime and the service(s) used • When using hybrid it contains credentials! • do not commit the file to a repository! • Domino Designer Plugin comes with a versatile editor for the manifest.yml file 29#engageug
  • 30. The manifest.yml editor • Gives you the basic configuration for a single XSP runtime application 30#engageug
  • 31. Example: manifest.yml 31#engageug --- applications: - name: greets host: greets instances: 1 memory: 512M timeout: 180 buildpack: xpages_buildpack command: /app/launch_xpages_webcontainer env: APP_HOME_URL: /greets_xsp.nsf APP_PRELOAD_DB: greets_xsp.nsf services: - IBM XPages NoSQL Database-UK = custom setting = default setting
  • 32. Did you know? • The manifest.yml file can deploy more than one application to the XSP runtime  • APP_PRELOAD_DB: xsp1.nsf, xsp2.nsf, xsp3.nsf • By setting values manually you can modify and / or create new XSP runtimes, e.g. • scaling instances and memory • setting up new XSP runtimes and hosts 32#engageug
  • 33. • Prerequisites • Best practices: design and data separation • Using the DDE plugin vs. the CF command line • Understanding the "mysterious" MANIFEST.YML file • Experiment: holding data in the XSP runtime • Security considerations • Plugins and extensions? No problem! • Tipps & tricks 33#engageug
  • 34. Experiment: data in the XSP runtime • This is not supported! • This may work flawlessly, but don‘t rely on it • Maybe useful for configurations, not for production data • XSP Runtime is a slim Domino environment, so everything is possible regarding data • Faulty behavior of pager 34#engageug
  • 35. Pros and cons +Direct and fast access to commonly used data sets (e.g. application and user profiles) +No data separation necessary +No changes needed in an existing application - Data will be overwritten - every time you re-deploy - every time you re-scale the application - every time the runtime restarts 35#engageug
  • 36. • Prerequisites • Best practices: design and data separation • Using the DDE plugin vs. the CF command line • Understanding the "mysterious" MANIFEST.YML file • Experiment: holding data in the XSP runtime • Security considerations • Plugins and extensions? No problem! • Tipps & tricks 36#engageug
  • 37. Security considerations • You have to manage at least two ACLs • XSP Runtime (design part) • XPages NoSQL service (data part) • Design part • manage Anonymous access only to force a login page • Data part • Manage ACL corresponding to the user ID and web users you may set up in the XPages NoSQL service • Other known ACL rules such as user roles apply here • You can lock yourself out from that ACL – be careful, Full Access Admin is NOT available to unlock! 37#engageug
  • 38. Locked out from data NSF? • Deleting and re-creating the service has no effect, NSFs will re-appear! • You have to contact IBM support for unlocking or deleting the NSF! 38#engageug • Locked out from design NSF? • remove the runtime and re-deploy – phew!
  • 39. • Prerequisites • Best practices: design and data separation • Using the DDE plugin vs. the CF command line • Understanding the "mysterious" MANIFEST.YML file • Experiment: holding data in the XSP runtime • Security considerations • Plugins and extensions? No problem! • Tipps & tricks 39#engageug
  • 40. Imagine… • to use your favorite extensions even on IBM Bluemix • to enrich your application with genius software like the OpenNTF Domino API or the XLogger • You can do this! 40#engageug +
  • 41. Using plugins: preparation • Create a folder „shared-plugins“ in the local deployment folder • Download the plugin or extension, unzip it • Locate the updatesite version of the plugin • Copy the content of the plugins folder into the “shared-plugins” folder (.jar-files) 41#engageug
  • 42. Using plugins: deployment • Deploy the application (cf push) 42#engageug
  • 43. • Prerequisites • Best practices: design and data separation • Using the DDE plugin vs. the CF command line • Understanding the "mysterious" MANIFEST.YML file • Experiment: holding data in the XSP runtime • Security considerations • Plugins and extensions? No problem! • Tipps & tricks 43#engageug
  • 44. Using the XPages Toolbox • Versatile profiling tool for performance monitoring • Available on OpenNTF for on-premises use • https://www.openntf.org/main.nsf/project.xsp?r=project/XP ages%20Toolbox/ • Setup automatically by modifying the manifest.yml file • Add this to the ENV section: • APP_INCLUDE_XPAGES_TOOLBOX: '1' 44#engageug
  • 46. Grant restricted access of the JVM • Like in on-premises environments you may want to enable full access for the JVM when using e.g. Java reflections. • Instead of setting the java.pol file you simply add this to the manifest.yml ENV section • APP_JAVA_POLICY_ALL_PERMISSION: '1‘ • Keep in mind that this may be a security issue 46#engageug
  • 47. Verbose mode while deploying • When using the CF command line the following added to the manifest.yml file will deliver detailed messages during the deployment • APP_VERBOSE_STAGING: '1' 47#engageug
  • 48. Don‘t want to type? • Use the editor to set those up ;-) 48#engageug
  • 49. Missing view icons • When using view icons in XPages view panels the icons are missing • They won‘t be displayed even if you use @ViewIconUrl SSJS function • However, you can add them manually  49#engageug
  • 50. View icons: lost but found • Open the deployment folder of the XSP part • Create the folder notesdata/domino • Copy the folder <NotesData>/domino/icons to it • The folder will be published to the XSP runtime • The view icons will re-appear! 50#engageug
  • 52. Thank you! Special thanks to: • Tony McGuckin, Martin Donnelly, Brian Gleeson (IBM Ireland Labs, XPages and Bluemix Dev Team) • Pete Janzen (IBM, Sr. Product Manager, IBM Enterprise Social Solutions) 52#engageug
  • 53. Resources • https://openntf.org/XSnippets.nsf/snippet.xsp?id=daobean-for-xsp-on-Bluemix • http://notesx.net:8090/obusse/Greets • http://greets.eu-gb.mybluemix.net/ • http://cmder.net/ • https://www.openntf.org/main.nsf/project.xsp?r=project/XPages%20Toolbox/ • http://oliverbusse.notesx.net/hp.nsf/blogpost.xsp?documentId=10C2 53#engageug