SlideShare une entreprise Scribd logo
1  sur  55
THE DEV-ADMIN CHIMERA:
CUSTOMISING CONNECTIONS
WITH A LITTLE BIT OF DOMINO THROWN IN
WHAT WE’RE HERE TO TALK ABOUT
•
•
•
•
•
•
•

The what , how and where of Connections
Admin for administrators
Making Changes
Customizations Within the Framework
Working with applications
Customizations Outside the Framework
Security
WHY?
• IBM connections requires far more interaction and
Trust between Developers and Administrators than
nearly any other major platform
• It lacks the security granularity of Domino.
• It lacks delegation as you would see in a cloud service such
as Amazon web service‟s.
• To get nearly any customization working, both Developers
and Admins have to work together.
• Developers can break environments and have their code
broken by Administrators in a wide variety of ways
• Administrators have to know the details of any non IBM code
running on their servers and
• Developers have to seriously adhere to architecture standards.
WHO ARE WE? – MARK MYERS
• A Member of the London Developer Co-op
(londc.com) A group of UK based developers
•
•
•
•
•

Ben Poole
Julian Woodward
Mark Myers (me)
Robin Willis
Matt White

• Developer from a support background
• 12+ years on Domino, 15+ years in IT
• Speaker at 3x Lotuspheres, 4x UKLUGs, 1x ILUG,
1x BLUG

• Contact

• Email: Mark@londc.com , Twitter: @stickfight , Skype:
Stickfight , Blog: stickfight.co.uk
WHO ARE WE – GAB DAVIS
• An Administrator, first of ccMail, then Notes and
Domino, Sametime, Connections, WebSphere, DB2,
TDI ..running to keep up with an ever expanding
range of software
• Co-founder of The Turtle Partnership in 1996 along
with Tim Davis (development) and Mike Smith
• Co-Author the Sametime Administrators‟s Guide,
the IBM Connections Enterprise Redwiki and
Connections101.net
• Speaker at Lotusphere, The View, UKLUG, BLUG,
AUSLUG, IAMLUG, NLUG, DANNOTES, ISBUG etc –
loves an excuse to write a new presentation
• Nerd Girl
• Travels a lot (most my bio photos are taken on
planes)
CONNECTIONS IN ALL ITS GUISES
A INTRODUCTION TO CONNECTIONS
• IBM Connections can be used as a descriptor in two
ways
• The name of a group of WebSphere applications that install
under the product name of “IBM Connections”
• The name of a collection of servers, services and
applications that deliver the IBM Connections experience
the user sees

• When people talk about “customising Connections”
90% of the time they mean the WebSphere J2EE
applications
• When people talk about “administering
Connections” they could mean work across any of
20+ different systems and applications
• A Connections
Administrator is
knowledgeable about
many different products
and tools that have a
wider application than just
IBM Connections

• A Connections developer
can use development
tools from CSS to
OpenSocial gadgets to
Java and more, all have
a much wider application
than just IBM Connections
PRODUCTS THAT MAKE UP
CONNECTIONS - REQUIRED
•
•
•
•
•
•

Operating System
LDAP
Databases
Tivoli Directory Integrator
WebSphere Application Server
IBM Connections
PRODUCTS THAT MAKE UP
CONNECTIONS - OPTIONAL
•
•
•
•
•

IBM HTTP Server (optional‟ish)
IBM Filenet
Connections Content Manager.
IBM Cognos
WebSphere Edge Server
ARCHITECTURE
ARCHITECTURE

?
DATA SOURCES – WHERE THINGS ARE
• WebSphere has no database itself and your
information has to be stored somewhere.
• We need a database server, either DB2 , SQL or Oracle
• Most of the applications have their own dedicated
database for storing the tables and data they need

• As administrators we don‟t mess with the design or
structure of the Connections databases
• These are created by IBM supplied scripts and occasionally
updated during fixpacks by new scripts
• If you touch it, you break it.
DATA SOURCES – THE DEVELOPER’S
DILEMMA
• Your developer may want access to the databases
• That‟s fine. They can have read access
• BUT not using your standard db2admin credentials, create them
their own
• BUT if they ask for write access your first answer is “no”.
• Your second answer is “let‟s talk about what you‟re trying to do”

• Remember if you touch the design of the
databases or the data, you‟ve broken it
• Even if it works, you‟re now so far outside what IBM will
support you‟re entirely on your own
IS THAT ALL?
• Well no, there‟s data in other places too
• File attachments uploaded into files or activities or
forums etc aren‟t kept in the databases
• Only pointers to those files are kept in the databases
• The files themselves are stored on the file system

• If you have multiple WebSphere servers those files
can‟t stay in sync, this isn‟t Domino
• So there needs to be a file share location (NFS) that all
servers can see and access
• Don‟t worry the files aren‟t easily readable as content or
even a file structure

• This is called Connections Shared Data
SHARED DATA - ADMINISTRATOR
• Back up your Connections shared data location
• Make sure that shared data is on a fast accessible disk
that isn‟t fragmenting
• Make sure you move the data if you move the servers
• The location of the share is determined by an
environment variable set in WebSphere so it‟s easy to
change the value of that variable or even where that
path points to, at a later date if you need more
capacity
• Handling shared data is part of your upgrade strategy
• If your shared store is broken you may not notice until
someone tries to look at, download or upload a file
attachment
SHARED DATA - DEVELOPER
• The files you want to access may be on the data share but
how to find them will be in a table in the application‟s
database e.g.
• Opnact for “activities”
• Files for “files”

• The files will be secured on the file system with a local user
account that WebSphere runs under
• You will need an account created for you that can access that part of
the file system

• Connections maintains internal indexes to determine where to
place a new file and what to call it
• If you are going to attempt to create your own data you must update
both the application database and the file system

• IBM do not publish the structure of the Connections databases
• Basically they don‟t want you doing any direct writing of data
IS THAT ALL?
• No. There‟s also local data stores for Connections
applications
• Some information needs to be local to the server
running each application and is exclusively used by
that application on that server
• Another server with a cluster of the application will
have a different local data store and its own locally
created information
• A good example of this is the search index
• The search index is created by the search application on
each server that application runs on
LOCAL DATA - ADMINISTRATOR
• You can copy a search index between servers but
that‟s a point in time copy, it won‟t stay in sync
• Don‟t copy any local data whilst your destination server is
running

• Local data in general will be re-created by the
applications if removed
• Whereas the shared data is a single location to
backup, the local data is different on every server
• Losing your local data shouldn‟t be fatal for your
environment but I don‟t recommend it
LOCAL DATA - DEVELOPER
• The local data is the least likely place you would
want to retrieve data from
• I can‟t think of a circumstance when you would want to
write local data

• Since local data is specific to a server, each
instance of an application will generate different
local data
• If you are writing to local data (again why?) you
would have to write to each server that contains an
instance of the application you are working with
ANYTHING ELSE?
• Many customisations are in a specific customisation
directory in the shared data store
• This protects them from being overwritten during upgrades
• More on this later

• Communities are a special case
• A community contains data from many other applications like
forums, blogs, files, activities
• Community content is written out directly to those applications
and cross referenced in a Community

• If you delete a Community you create holes in the
databases of those applications, restoring a backup of
your Community won‟t fill in those holes again
• Deleting a Community is “crossing the beams” bad.
LDAP - AUTHENTICATION
• LDAP is used In Connections for authenticating users
access to the system
• Multiple different LDAP servers can be specified to
operate like Directory Assistance in Domino
• If you want to use failover LDAP servers set those up
in WebSphere rather than point WebSphere at a
load balancer for LDAP
• WebSphere will be more consistently reliable and stable

• If your LDAP server (or even DNS) is slow to respond,
your users will experience slow server access
LDAP – POPULATING PROFILES
• Profiles in Connections are populated from your
LDAP directory
• Connections uses Tivoli Directory Integrator to move
the data from your LDAP source to the PEOPLEDB
database
• It‟s possible to populate bi-directionally and to
populate from multiple sources
• IBM supply all the scripts, batch files and
assemblylines needed to manage profiles
• Use the IBM supplied files as templates, do not create your
own – you won‟t have support
ADMINISTRATOR –POPULATING PROFILES
• There are three methods to populate profiles
• The population wizard that provides a GUI to import LDAP
source to PeopleDB destination
• Manually modifying the XML and properties files supplied by
IBM and running the batch files such as collect_dns and
sync_all dns to populate the data either LDAPtoPEOPLEDB or
LDAPtoPEOPLEDBtoLDAP (bi directionally)
• Create an assemblyline using TDI‟s configuration editor
interface and using IBM supplied ProfileConnector
• As assemblyline can connect to nearly any data source
• Assemblylines can run very quickly and custom populate data to
and from multiple data sources
DEVELOPER – WORKING WITH
PROFILES
• Registration and User management is not exactly
built in to connections it is mainly catered to existing
directories.
• If you want to allow users to register them selves you are
going to have to write your own registration app or
customize the one used with your User directory

• If you are using an external directory, beg and
plead not to have the email field turned off as it
makes the integration with atom feeds far harder
DEVELOPER – WORKING WITH
PROFILES
• The main internal connection user table has 7 (yes
7!) user identification fields
• Even so your main issue will be uniquely identifying a user if
you are authenticating via your LDAP non-Connections
directory and then calling or modifying items within the
Connections environment
• The most useful field from a developers perspective is the
“profGuid” field in the “EMPLOYEE” table in the
“jdbc/profiles” datasource almost certainly called
PEOPLEDB
IBM HTTP SERVER
• The IBM HTTP Server routes URL queries to and from
users to the back end WebSphere applications
• Since this is the route through which all traffic travels
we can secure SSL through IHS intead of
WebSphere
• IHS is cluster aware when added to WebSphere and
will dynamically route requests across the cluster
• Multiple IHS servers can be used via a load
balancer to route Connections traffic
IBM HTTP SERVER ADMINISTRATOR
• Configuration for IHS happens in three main places
• Httpd.conf file , a complex text file held on the file
system
• This can easily be ovewritten and a simple change can
break Connections completely

• Plugin-cfg.xml – the WebSphere plugin file that
informs IHS what URLs need to be redirected to the
back end servers and not resolved locally
• This is generated from within WebSphere and distributed via
the ISC

• Plugin-key.kdb / plugin-key.sth used to store the SSL
certificates
IBM HTTP SERVER - DEVELOPER
• When you add a new application or URL, it wont
show up when you start the application as the HTTP
server wont know about it.
• You have to go ask your administrator to update the HTTP
server configuration.
• Generate Plugin – Populate Plugin

• You can in addition get the direct port to the http stack on
the websphere server so you can do your testing straight
away without pestering your admin all the time
• Direct ports are usually 9081, 9082, 9083 etc insecure and 9443,
9445, 9445 secure depending on how many clusters you have o
one server
CONNECTIONS CONTENT MANAGER
• CCM uses FileNet as a document library which itself
needs to store file data and references
• We have additional databases that are created
either during install or via the DBWizard to be used
exclusively by Filenet
• There is also a Filenet Administration Interface called
the Administering Console for Content Engine
where the Filenet specific configuration settings are
held including how to map Filenet to Connections
applications and behaviour
COGNOS
• Cognos is used for creating and reporting Metrics, it
uses WebShere to deliver HTML reports that are built
into the Metrics application in Connections
• Data is held in three places
• Metrics and Cognos databases created by the
Connections DBWizard
• Cognos configuration interface
• Transformer Cubes on the Cognos file system
ARCHITECTURE
LDAP Server

Tivoli Directory
Integrator

IBM HTTP Server
Database Server &
Databases
CLUSTER
WebSphere Application Server

WebSphere Application Server

Connections Applications

Connections Applications

WebSphere Application Server
Deployment Manager

Connections Applications
Cognos Server

WebSphere Edge Server
(Load Balancing & Caching Proxy)

FileNet Content Engine Server
FileNet Content Engine Client
FileNet Collaboration Services (FNCS)
ADMINISTRATION
WEBSPHERE ADMINISTRATION
• Once IBM Connections is installed there are two places
where we would perform day to day administration
• Application security - the rights users have to applications
• Application security isn‟t very granular “one size fits all”
• New roles that change behaviour aren‟t something you can add

• Wsadmin
• WebSphere‟s command line administration tool for sending
instructions to applications
• Wsadmin is also used to make changes to application configuration
settings
APPLICATION SECURITY
• For every application there are pre-defined roles
that that determine the scope of the user‟s
behaviour
• Many of the roles such as “admin” or “globalmoderator” apply across multiple applications
• But do different specific things in each application
• And must be set separately

• There are also pre-defined special “categories” you
can assigned to applications such as
• all authenticated users in application‟s realm
• Everyone (includes anonymous users)
APPLICATION SECURITY - ACTIVITIES
WSADMIN – SENDING COMMANDS
To run any wsadmin command always start from the bin
directory of the deployment manager e.g
• C:IBMWebSphereAppServerprofilesDmgr01bin
• Call wsadmin by typing
wsadmin(.sh) –lang jython –username [name] –password [password]
then choose which application you want to work with
execfile(“profilesAdmin.py”)

• Any changes you make here will be pushed out to all the
nodes
• Wsadmin commands are case sensitive regardless of your
platform
WSADMIN – MODIFYING
CONNECTIONS CONFIGURATION
• wsadmin –lang jython –username [name] –password
[password]
• execfile(“connectionsConfig.py”)
• LCConfigService.checkOutConfig(“[filepath]”,AdminContro
l.getCell())

• The LotusConnections-config.xml file will be in your
filepath where it can be edited then checked back
in and validated
• LCConfigService.checkInConfig()
JAAS AUTHENTICATION
• To connect each application to its data source
there is a J2C authentication resource created
during install
• If you need to change the account name or
password you will need to edit the details for the
JAAS Alias
• Global Security – JAAS – J2C authentication data
REORG SCRIPTS
• To handle database fragmentation you should
regularly run the supplied IBM reorg.sql scripts
• The scripts are located in the connections.sql
directory of the installer
• The reorg scripts traverse each table in the
database clearing up whitespace and optimising
the remaining data
BACKING UP CONFIGURATION
• Always backup before making configuration
changes
• From the deployment manager bin directory run
the backupconfig(.sh)
• Backupconfig c:backupsgdbackup.zip –nostop
• The backup will be a zip file,
• The –nostop command prevents backupconfig from stopping
the deployment manager before running

• Restoreconfig c:backupsgdbackup.zip
• Restore once you have stopped the server
CUSTOMIZATIONS WITHIN THE
FRAMEWORK
• These are Customizations that use IBM APIs to
integrate with Connections (nearly always via
ATOM feed), normally broken down into 2 types
• XML: These involve changes to the XML configuration
documents for connections.
• None XML: where you don‟t need to touch the undying
connections files (such as Iwidgets)

• The Basic Premise for this type of customization is
that IBM will support it from One version to the Next
• Not to be underestimated, when a client updates their
connections environment, you don‟t want people pointing
at your changes and blaming them for project slippage.
CUSTOMIZATIONS WITHIN THE
FRAMEWORK
• Connections is not a RAD environment but it is a
very updateable environment with a lot of feeds.
• You get far more bang for your buck by writing truly external
apps, via either domino or native java apps, then feeding
back into the connections environment.
• Such applications need SSO and / or service accounts,
check that these will be available BEFORE writing your code
• Before committing to an in-framework customization,
confirm that it is do able, all things are possible but the level
of hacking needed my render the solution unviable to your
administrator and / or client.
XML FILE UPDATES
• Nearly everything serious requires a restart of the
effected application (Profiles/Commons etc)
• Treat it as an architectural area.
• Don‟t store any setting or configuration that might ever
change (there are lots of other areas to do that)
XML FILE UPDATES
• Documentation is a bit thin on the ground
• http://www-10.lotus.com/ldd/appdevwiki.nsf/
(that‟s your lot)

• If something is not implicitly mentioned in the
documentation it might be tolerated/support in a
given release but not for future release even on the
adopted platforms
• E.g. dojo.i18n.getLocalization solution not supported between
3 and 4.5
CUSTOMIZATIONS OUTSIDE THE
FRAMEWORK
• When your customizations go outside the functions
provided by IBM.
• Basically this only happens when the ATOM APIs do not do
the job for you, and you end up with a native app reading /
writing to the Connections DB2 data bases

• IBM will not support this type of customization, but
on the plus side you can deliver exceptional
solutions to clients.
• Eg. Editing activity stream.
• Expanding data accessibility.
CUSTOMIZATIONS OUTSIDE THE
FRAMEWORK
• An .Ear (Enterprise ARchive) is Basically a normal
War file (Web application ARchive) wrapped in a
configuration wrapper.
• It contains Lots and lots of very cool features, very
few of which you should use on connections
without full buy in from your administrator
• Remember you are on a shared server and you can not
make any assumptions as to what is happening
• Far Better to write detailed installation instructions that allow
your admin to balance the system.
• Make No Assumptions on your application regarding
available resources, give detailed errors on the sys log.
CUSTOMIZATIONS OUTSIDE THE
FRAMEWORK
• Do not use the full functionality provided by .ear
CUSTOMIZATIONS OUTSIDE THE
FRAMEWORK
• JDBC connections
• It has already been mentioned, but resist the urge to use
the Integrated JDBC connections.
• If a developer is not 100% trusted i.e. external. the lack of
security on the system JDBC connections is reason enough
for a code audit.
• Their Presence is a bonus point for all external application to
be written on a Domino server.
LOGS
• Any application problems will be found in the
SystemOut.log of the server where the application is
running
• If you are using a cluster then you will need to
check the SystemOut for each server in the cluster
• Modify the LOG_ROOT WebSphere variable for log location
• Configure each server log for rollover and retention
LOGS - DEVELOPER
• Remember which application server your stuff is on
(check Web modules on the application properties
if you are unsure)
• It‟s best if you can agree on a server for all your
customization work with your admin (where applicable)
• It‟s a total face palm moment if you complain to your
admin and you have been looking at the wrong servers log.

• Be responsible with your Logging, remember you
have to share it so don‟t stuff it with pages and
pages of entries when you are not actively
debugging.
LOGS - ADMINISTRATOR
• Don‟t give your developer rights to do any of the
things Mark just mentioned
• No logging into the ISC to apply their own applications,
review servers or modify logs

• No. Bad Mark.
DO’S & DO NOTS
• Admin:

• Backup your configuration using backupconfig before making
changes to the configuration
• Never manually edit an XML configuration file, always use
wsadmin which verifies the XML structure as it‟s checked back
in
• Schedule the database reorg maintenance scripts to run
regularly,
• Set up specific credentials for developers to use to access the
Connections data, don‟t re-use administration credentials
• Ensure you have a test / staging server to test customisations
and developments on
• Never let your developer have ISC access or wsadmin access
to a production environment!
DO’S & DO NOTS
• Developer:

• Never underestimate the fragility of the connections
environment.
• Never forget to document as you go as there are far more
„fiddly bits‟ in connections than a lot of other environments
(and its really embarrassing to ask an admin to deploy to a PT
or UAT environment and the darn thing doesn't work)
• Consider Connections as basically „Beta‟ software and code
accordingly in every aspect (logging, error handling).
• Don‟t be tempted to access areas via data sources and other
back doors stick to API‟s or stand alone code.
• Remember “A miss is as good as a mile” with IBM support, you
might regard it as inventive and only a tiny bit off
documentation standards, they regard it as “Not supported”
• If you need to do that kind of thing then separate you code
completely and integrate via approved API‟s
WHO ARE WE AGAIN?

Contenu connexe

Tendances

cloud session uklug
cloud session uklugcloud session uklug
cloud session uklugdominion
 
An introduction to configuring Domino for Docker
An introduction to configuring Domino for DockerAn introduction to configuring Domino for Docker
An introduction to configuring Domino for DockerGabriella Davis
 
OVERVIEW OF FACEBOOK SCALABLE ARCHITECTURE.
OVERVIEW  OF FACEBOOK SCALABLE ARCHITECTURE.OVERVIEW  OF FACEBOOK SCALABLE ARCHITECTURE.
OVERVIEW OF FACEBOOK SCALABLE ARCHITECTURE.Rishikese MR
 
Using Dashboards to Transform Application Data Visualization
Using Dashboards to Transform Application Data VisualizationUsing Dashboards to Transform Application Data Visualization
Using Dashboards to Transform Application Data VisualizationKathy Brown
 
IBM InterConnect 2015 - What is New in IBM Connections 2015
IBM InterConnect 2015 - What is New in IBM Connections 2015IBM InterConnect 2015 - What is New in IBM Connections 2015
IBM InterConnect 2015 - What is New in IBM Connections 2015Luis Benitez
 
Our take on Domino 10 - a Ytria webinar
Our take on Domino 10 - a Ytria webinarOur take on Domino 10 - a Ytria webinar
Our take on Domino 10 - a Ytria webinarBenedek Menesi
 
Populating your domino directory or any domino database with tivoli directory...
Populating your domino directory or any domino database with tivoli directory...Populating your domino directory or any domino database with tivoli directory...
Populating your domino directory or any domino database with tivoli directory...dominion
 
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
 
IDI103 - What is New in IBM Connections - IBM ConnectED 2015
IDI103 - What is New in IBM Connections - IBM ConnectED 2015IDI103 - What is New in IBM Connections - IBM ConnectED 2015
IDI103 - What is New in IBM Connections - IBM ConnectED 2015Luis Benitez
 
Adm02. IBM Connections Adminblast
Adm02. IBM Connections AdminblastAdm02. IBM Connections Adminblast
Adm02. IBM Connections Adminblastpanagenda
 
Str02. IBM Application Modernization with panagenda ApplicationInsights
Str02. IBM Application Modernization with panagenda ApplicationInsightsStr02. IBM Application Modernization with panagenda ApplicationInsights
Str02. IBM Application Modernization with panagenda ApplicationInsightspanagenda
 
1693: 21 Ways to Make Your Data Work for You - IBM Connect 2016
1693: 21 Ways to Make Your Data Work for You - IBM Connect 20161693: 21 Ways to Make Your Data Work for You - IBM Connect 2016
1693: 21 Ways to Make Your Data Work for You - IBM Connect 2016panagenda
 
XPages: No Experience Needed
XPages: No Experience NeededXPages: No Experience Needed
XPages: No Experience NeededKathy Brown
 
IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8
IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8
IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8Teamstudio
 
Deep diveconnections eco systeem
Deep diveconnections eco systeemDeep diveconnections eco systeem
Deep diveconnections eco systeemSasja Beerendonk
 
Act. teresa and mechelle
Act. teresa and mechelleAct. teresa and mechelle
Act. teresa and mechelleteresamembrano
 
Face Off Domino vs Exchange On Premises
Face Off Domino vs Exchange On PremisesFace Off Domino vs Exchange On Premises
Face Off Domino vs Exchange On PremisesGabriella Davis
 

Tendances (20)

cloud session uklug
cloud session uklugcloud session uklug
cloud session uklug
 
An introduction to configuring Domino for Docker
An introduction to configuring Domino for DockerAn introduction to configuring Domino for Docker
An introduction to configuring Domino for Docker
 
OVERVIEW OF FACEBOOK SCALABLE ARCHITECTURE.
OVERVIEW  OF FACEBOOK SCALABLE ARCHITECTURE.OVERVIEW  OF FACEBOOK SCALABLE ARCHITECTURE.
OVERVIEW OF FACEBOOK SCALABLE ARCHITECTURE.
 
Using Dashboards to Transform Application Data Visualization
Using Dashboards to Transform Application Data VisualizationUsing Dashboards to Transform Application Data Visualization
Using Dashboards to Transform Application Data Visualization
 
IBM InterConnect 2015 - What is New in IBM Connections 2015
IBM InterConnect 2015 - What is New in IBM Connections 2015IBM InterConnect 2015 - What is New in IBM Connections 2015
IBM InterConnect 2015 - What is New in IBM Connections 2015
 
Our take on Domino 10 - a Ytria webinar
Our take on Domino 10 - a Ytria webinarOur take on Domino 10 - a Ytria webinar
Our take on Domino 10 - a Ytria webinar
 
Populating your domino directory or any domino database with tivoli directory...
Populating your domino directory or any domino database with tivoli directory...Populating your domino directory or any domino database with tivoli directory...
Populating your domino directory or any domino database with tivoli directory...
 
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
 
IDI103 - What is New in IBM Connections - IBM ConnectED 2015
IDI103 - What is New in IBM Connections - IBM ConnectED 2015IDI103 - What is New in IBM Connections - IBM ConnectED 2015
IDI103 - What is New in IBM Connections - IBM ConnectED 2015
 
Adm02. IBM Connections Adminblast
Adm02. IBM Connections AdminblastAdm02. IBM Connections Adminblast
Adm02. IBM Connections Adminblast
 
Str02. IBM Application Modernization with panagenda ApplicationInsights
Str02. IBM Application Modernization with panagenda ApplicationInsightsStr02. IBM Application Modernization with panagenda ApplicationInsights
Str02. IBM Application Modernization with panagenda ApplicationInsights
 
1693: 21 Ways to Make Your Data Work for You - IBM Connect 2016
1693: 21 Ways to Make Your Data Work for You - IBM Connect 20161693: 21 Ways to Make Your Data Work for You - IBM Connect 2016
1693: 21 Ways to Make Your Data Work for You - IBM Connect 2016
 
XPages: No Experience Needed
XPages: No Experience NeededXPages: No Experience Needed
XPages: No Experience Needed
 
Quickr
QuickrQuickr
Quickr
 
Ms vs ibm_v1.3
Ms vs ibm_v1.3Ms vs ibm_v1.3
Ms vs ibm_v1.3
 
Migration:Impossible ... Not so
Migration:Impossible ... Not soMigration:Impossible ... Not so
Migration:Impossible ... Not so
 
IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8
IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8
IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8
 
Deep diveconnections eco systeem
Deep diveconnections eco systeemDeep diveconnections eco systeem
Deep diveconnections eco systeem
 
Act. teresa and mechelle
Act. teresa and mechelleAct. teresa and mechelle
Act. teresa and mechelle
 
Face Off Domino vs Exchange On Premises
Face Off Domino vs Exchange On PremisesFace Off Domino vs Exchange On Premises
Face Off Domino vs Exchange On Premises
 

En vedette

LDC Via building a new app
LDC Via  building a new appLDC Via  building a new app
LDC Via building a new appMark Myers
 
Saleforce For Domino Dogs
Saleforce For Domino DogsSaleforce For Domino Dogs
Saleforce For Domino DogsMark Myers
 
Ar*@!+$es to this. getting IBM connections to do what you want
Ar*@!+$es to this. getting IBM connections to do what you want Ar*@!+$es to this. getting IBM connections to do what you want
Ar*@!+$es to this. getting IBM connections to do what you want Mark Myers
 
OpenNTF.org: Celebrating 10 years of community driven open source (Speedgeeki...
OpenNTF.org: Celebrating 10 years of community driven open source (Speedgeeki...OpenNTF.org: Celebrating 10 years of community driven open source (Speedgeeki...
OpenNTF.org: Celebrating 10 years of community driven open source (Speedgeeki...John Head
 
The Notes/Domino Application Development Competitive Advantage - IamLUG
The Notes/Domino Application Development Competitive Advantage - IamLUGThe Notes/Domino Application Development Competitive Advantage - IamLUG
The Notes/Domino Application Development Competitive Advantage - IamLUGJohn Head
 
Creating mobile apps - an introduction to Ionic (Engage 2016)
Creating mobile apps - an introduction to Ionic (Engage 2016)Creating mobile apps - an introduction to Ionic (Engage 2016)
Creating mobile apps - an introduction to Ionic (Engage 2016)Mark Leusink
 
The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...Mark Leusink
 

En vedette (7)

LDC Via building a new app
LDC Via  building a new appLDC Via  building a new app
LDC Via building a new app
 
Saleforce For Domino Dogs
Saleforce For Domino DogsSaleforce For Domino Dogs
Saleforce For Domino Dogs
 
Ar*@!+$es to this. getting IBM connections to do what you want
Ar*@!+$es to this. getting IBM connections to do what you want Ar*@!+$es to this. getting IBM connections to do what you want
Ar*@!+$es to this. getting IBM connections to do what you want
 
OpenNTF.org: Celebrating 10 years of community driven open source (Speedgeeki...
OpenNTF.org: Celebrating 10 years of community driven open source (Speedgeeki...OpenNTF.org: Celebrating 10 years of community driven open source (Speedgeeki...
OpenNTF.org: Celebrating 10 years of community driven open source (Speedgeeki...
 
The Notes/Domino Application Development Competitive Advantage - IamLUG
The Notes/Domino Application Development Competitive Advantage - IamLUGThe Notes/Domino Application Development Competitive Advantage - IamLUG
The Notes/Domino Application Development Competitive Advantage - IamLUG
 
Creating mobile apps - an introduction to Ionic (Engage 2016)
Creating mobile apps - an introduction to Ionic (Engage 2016)Creating mobile apps - an introduction to Ionic (Engage 2016)
Creating mobile apps - an introduction to Ionic (Engage 2016)
 
The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...
 

Similaire à The Dev-Admin Chimera: Customising Connections (with Gab Davis)

Uklug 2014 connections dev faq
Uklug 2014  connections dev faqUklug 2014  connections dev faq
Uklug 2014 connections dev faqMark Myers
 
IBM Connections – Managing Growth and Expansion
IBM Connections – Managing Growth and ExpansionIBM Connections – Managing Growth and Expansion
IBM Connections – Managing Growth and ExpansionLetsConnect
 
The Best Local Database for React Native Application Development .pdf
The Best Local Database for React Native Application Development .pdfThe Best Local Database for React Native Application Development .pdf
The Best Local Database for React Native Application Development .pdfTechugo
 
DevOps+Data: Working with Source Control
DevOps+Data: Working with Source ControlDevOps+Data: Working with Source Control
DevOps+Data: Working with Source ControlEd Leighton-Dick
 
BITM3730 11-22.pptx
BITM3730 11-22.pptxBITM3730 11-22.pptx
BITM3730 11-22.pptxMattMarino13
 
IBM Connections Design To #NOTFAIL
IBM Connections Design To #NOTFAILIBM Connections Design To #NOTFAIL
IBM Connections Design To #NOTFAILGabriella Davis
 
A Hitchhiker's Guide to troubleshooting IBM Connections
A Hitchhiker's Guide to troubleshooting IBM ConnectionsA Hitchhiker's Guide to troubleshooting IBM Connections
A Hitchhiker's Guide to troubleshooting IBM ConnectionsICON UK EVENTS Limited
 
Connections install in 45 mins
Connections install in 45 minsConnections install in 45 mins
Connections install in 45 minsSharon James
 
Moving Windows Applications to the Cloud
Moving Windows Applications to the CloudMoving Windows Applications to the Cloud
Moving Windows Applications to the CloudRightScale
 
SOA with Zend Framework
SOA with Zend FrameworkSOA with Zend Framework
SOA with Zend FrameworkMike Willbanks
 
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)TIMETOACT GROUP
 
IWMW 1997: Database-WWW Integration
IWMW 1997: Database-WWW IntegrationIWMW 1997: Database-WWW Integration
IWMW 1997: Database-WWW IntegrationIWMW
 
Introduction to Active Directory
Introduction to Active DirectoryIntroduction to Active Directory
Introduction to Active DirectoryJalpesh Vadgama
 
Becoming A Connections Administrator
Becoming A Connections AdministratorBecoming A Connections Administrator
Becoming A Connections AdministratorGabriella Davis
 
Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3Wen-Tien Chang
 

Similaire à The Dev-Admin Chimera: Customising Connections (with Gab Davis) (20)

Uklug 2014 connections dev faq
Uklug 2014  connections dev faqUklug 2014  connections dev faq
Uklug 2014 connections dev faq
 
IBM Connections – Managing Growth and Expansion
IBM Connections – Managing Growth and ExpansionIBM Connections – Managing Growth and Expansion
IBM Connections – Managing Growth and Expansion
 
The Best Local Database for React Native Application Development .pdf
The Best Local Database for React Native Application Development .pdfThe Best Local Database for React Native Application Development .pdf
The Best Local Database for React Native Application Development .pdf
 
DevOps+Data: Working with Source Control
DevOps+Data: Working with Source ControlDevOps+Data: Working with Source Control
DevOps+Data: Working with Source Control
 
BITM3730 11-22.pptx
BITM3730 11-22.pptxBITM3730 11-22.pptx
BITM3730 11-22.pptx
 
IBM Connections Design To #NOTFAIL
IBM Connections Design To #NOTFAILIBM Connections Design To #NOTFAIL
IBM Connections Design To #NOTFAIL
 
A Hitchhiker's Guide to troubleshooting IBM Connections
A Hitchhiker's Guide to troubleshooting IBM ConnectionsA Hitchhiker's Guide to troubleshooting IBM Connections
A Hitchhiker's Guide to troubleshooting IBM Connections
 
Connections install in 45 mins
Connections install in 45 minsConnections install in 45 mins
Connections install in 45 mins
 
Domain Controller.pptx
Domain Controller.pptxDomain Controller.pptx
Domain Controller.pptx
 
Moving Windows Applications to the Cloud
Moving Windows Applications to the CloudMoving Windows Applications to the Cloud
Moving Windows Applications to the Cloud
 
SOA with Zend Framework
SOA with Zend FrameworkSOA with Zend Framework
SOA with Zend Framework
 
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
 
Data harmony update 2021
Data harmony update 2021 Data harmony update 2021
Data harmony update 2021
 
IWMW 1997: Database-WWW Integration
IWMW 1997: Database-WWW IntegrationIWMW 1997: Database-WWW Integration
IWMW 1997: Database-WWW Integration
 
Introduction to Active Directory
Introduction to Active DirectoryIntroduction to Active Directory
Introduction to Active Directory
 
Becoming A Connections Administrator
Becoming A Connections AdministratorBecoming A Connections Administrator
Becoming A Connections Administrator
 
Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3
 
Lecture 9: Dynamic web application
Lecture 9: Dynamic web applicationLecture 9: Dynamic web application
Lecture 9: Dynamic web application
 
Network operating system
Network operating systemNetwork operating system
Network operating system
 
Chapter Two.pptx
Chapter Two.pptxChapter Two.pptx
Chapter Two.pptx
 

Plus de Mark Myers

Engage 2017 - Choose your own adventure
Engage 2017 - Choose your own adventureEngage 2017 - Choose your own adventure
Engage 2017 - Choose your own adventureMark Myers
 
1 app 2 developers 3 servers
1 app 2 developers 3 servers1 app 2 developers 3 servers
1 app 2 developers 3 serversMark Myers
 
Vertical vs Horizontal Scaling
Vertical vs Horizontal Scaling Vertical vs Horizontal Scaling
Vertical vs Horizontal Scaling Mark Myers
 
SHOW104: Practical Java
SHOW104: Practical JavaSHOW104: Practical Java
SHOW104: Practical JavaMark Myers
 
Proper Connections Development for Proper Domino Developers
Proper Connections Development for Proper Domino DevelopersProper Connections Development for Proper Domino Developers
Proper Connections Development for Proper Domino DevelopersMark Myers
 
Blug2013 frameworks
Blug2013 frameworksBlug2013 frameworks
Blug2013 frameworksMark Myers
 
Show104 buried treasure
Show104 buried treasureShow104 buried treasure
Show104 buried treasureMark Myers
 
BP203 limitless languages
BP203 limitless languagesBP203 limitless languages
BP203 limitless languagesMark Myers
 

Plus de Mark Myers (8)

Engage 2017 - Choose your own adventure
Engage 2017 - Choose your own adventureEngage 2017 - Choose your own adventure
Engage 2017 - Choose your own adventure
 
1 app 2 developers 3 servers
1 app 2 developers 3 servers1 app 2 developers 3 servers
1 app 2 developers 3 servers
 
Vertical vs Horizontal Scaling
Vertical vs Horizontal Scaling Vertical vs Horizontal Scaling
Vertical vs Horizontal Scaling
 
SHOW104: Practical Java
SHOW104: Practical JavaSHOW104: Practical Java
SHOW104: Practical Java
 
Proper Connections Development for Proper Domino Developers
Proper Connections Development for Proper Domino DevelopersProper Connections Development for Proper Domino Developers
Proper Connections Development for Proper Domino Developers
 
Blug2013 frameworks
Blug2013 frameworksBlug2013 frameworks
Blug2013 frameworks
 
Show104 buried treasure
Show104 buried treasureShow104 buried treasure
Show104 buried treasure
 
BP203 limitless languages
BP203 limitless languagesBP203 limitless languages
BP203 limitless languages
 

Dernier

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 

Dernier (20)

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 

The Dev-Admin Chimera: Customising Connections (with Gab Davis)

  • 1. THE DEV-ADMIN CHIMERA: CUSTOMISING CONNECTIONS WITH A LITTLE BIT OF DOMINO THROWN IN
  • 2. WHAT WE’RE HERE TO TALK ABOUT • • • • • • • The what , how and where of Connections Admin for administrators Making Changes Customizations Within the Framework Working with applications Customizations Outside the Framework Security
  • 3. WHY? • IBM connections requires far more interaction and Trust between Developers and Administrators than nearly any other major platform • It lacks the security granularity of Domino. • It lacks delegation as you would see in a cloud service such as Amazon web service‟s. • To get nearly any customization working, both Developers and Admins have to work together. • Developers can break environments and have their code broken by Administrators in a wide variety of ways • Administrators have to know the details of any non IBM code running on their servers and • Developers have to seriously adhere to architecture standards.
  • 4. WHO ARE WE? – MARK MYERS • A Member of the London Developer Co-op (londc.com) A group of UK based developers • • • • • Ben Poole Julian Woodward Mark Myers (me) Robin Willis Matt White • Developer from a support background • 12+ years on Domino, 15+ years in IT • Speaker at 3x Lotuspheres, 4x UKLUGs, 1x ILUG, 1x BLUG • Contact • Email: Mark@londc.com , Twitter: @stickfight , Skype: Stickfight , Blog: stickfight.co.uk
  • 5. WHO ARE WE – GAB DAVIS • An Administrator, first of ccMail, then Notes and Domino, Sametime, Connections, WebSphere, DB2, TDI ..running to keep up with an ever expanding range of software • Co-founder of The Turtle Partnership in 1996 along with Tim Davis (development) and Mike Smith • Co-Author the Sametime Administrators‟s Guide, the IBM Connections Enterprise Redwiki and Connections101.net • Speaker at Lotusphere, The View, UKLUG, BLUG, AUSLUG, IAMLUG, NLUG, DANNOTES, ISBUG etc – loves an excuse to write a new presentation • Nerd Girl • Travels a lot (most my bio photos are taken on planes)
  • 6. CONNECTIONS IN ALL ITS GUISES
  • 7. A INTRODUCTION TO CONNECTIONS • IBM Connections can be used as a descriptor in two ways • The name of a group of WebSphere applications that install under the product name of “IBM Connections” • The name of a collection of servers, services and applications that deliver the IBM Connections experience the user sees • When people talk about “customising Connections” 90% of the time they mean the WebSphere J2EE applications • When people talk about “administering Connections” they could mean work across any of 20+ different systems and applications
  • 8. • A Connections Administrator is knowledgeable about many different products and tools that have a wider application than just IBM Connections • A Connections developer can use development tools from CSS to OpenSocial gadgets to Java and more, all have a much wider application than just IBM Connections
  • 9. PRODUCTS THAT MAKE UP CONNECTIONS - REQUIRED • • • • • • Operating System LDAP Databases Tivoli Directory Integrator WebSphere Application Server IBM Connections
  • 10. PRODUCTS THAT MAKE UP CONNECTIONS - OPTIONAL • • • • • IBM HTTP Server (optional‟ish) IBM Filenet Connections Content Manager. IBM Cognos WebSphere Edge Server
  • 13. DATA SOURCES – WHERE THINGS ARE • WebSphere has no database itself and your information has to be stored somewhere. • We need a database server, either DB2 , SQL or Oracle • Most of the applications have their own dedicated database for storing the tables and data they need • As administrators we don‟t mess with the design or structure of the Connections databases • These are created by IBM supplied scripts and occasionally updated during fixpacks by new scripts • If you touch it, you break it.
  • 14. DATA SOURCES – THE DEVELOPER’S DILEMMA • Your developer may want access to the databases • That‟s fine. They can have read access • BUT not using your standard db2admin credentials, create them their own • BUT if they ask for write access your first answer is “no”. • Your second answer is “let‟s talk about what you‟re trying to do” • Remember if you touch the design of the databases or the data, you‟ve broken it • Even if it works, you‟re now so far outside what IBM will support you‟re entirely on your own
  • 15. IS THAT ALL? • Well no, there‟s data in other places too • File attachments uploaded into files or activities or forums etc aren‟t kept in the databases • Only pointers to those files are kept in the databases • The files themselves are stored on the file system • If you have multiple WebSphere servers those files can‟t stay in sync, this isn‟t Domino • So there needs to be a file share location (NFS) that all servers can see and access • Don‟t worry the files aren‟t easily readable as content or even a file structure • This is called Connections Shared Data
  • 16. SHARED DATA - ADMINISTRATOR • Back up your Connections shared data location • Make sure that shared data is on a fast accessible disk that isn‟t fragmenting • Make sure you move the data if you move the servers • The location of the share is determined by an environment variable set in WebSphere so it‟s easy to change the value of that variable or even where that path points to, at a later date if you need more capacity • Handling shared data is part of your upgrade strategy • If your shared store is broken you may not notice until someone tries to look at, download or upload a file attachment
  • 17. SHARED DATA - DEVELOPER • The files you want to access may be on the data share but how to find them will be in a table in the application‟s database e.g. • Opnact for “activities” • Files for “files” • The files will be secured on the file system with a local user account that WebSphere runs under • You will need an account created for you that can access that part of the file system • Connections maintains internal indexes to determine where to place a new file and what to call it • If you are going to attempt to create your own data you must update both the application database and the file system • IBM do not publish the structure of the Connections databases • Basically they don‟t want you doing any direct writing of data
  • 18. IS THAT ALL? • No. There‟s also local data stores for Connections applications • Some information needs to be local to the server running each application and is exclusively used by that application on that server • Another server with a cluster of the application will have a different local data store and its own locally created information • A good example of this is the search index • The search index is created by the search application on each server that application runs on
  • 19. LOCAL DATA - ADMINISTRATOR • You can copy a search index between servers but that‟s a point in time copy, it won‟t stay in sync • Don‟t copy any local data whilst your destination server is running • Local data in general will be re-created by the applications if removed • Whereas the shared data is a single location to backup, the local data is different on every server • Losing your local data shouldn‟t be fatal for your environment but I don‟t recommend it
  • 20. LOCAL DATA - DEVELOPER • The local data is the least likely place you would want to retrieve data from • I can‟t think of a circumstance when you would want to write local data • Since local data is specific to a server, each instance of an application will generate different local data • If you are writing to local data (again why?) you would have to write to each server that contains an instance of the application you are working with
  • 21. ANYTHING ELSE? • Many customisations are in a specific customisation directory in the shared data store • This protects them from being overwritten during upgrades • More on this later • Communities are a special case • A community contains data from many other applications like forums, blogs, files, activities • Community content is written out directly to those applications and cross referenced in a Community • If you delete a Community you create holes in the databases of those applications, restoring a backup of your Community won‟t fill in those holes again • Deleting a Community is “crossing the beams” bad.
  • 22. LDAP - AUTHENTICATION • LDAP is used In Connections for authenticating users access to the system • Multiple different LDAP servers can be specified to operate like Directory Assistance in Domino • If you want to use failover LDAP servers set those up in WebSphere rather than point WebSphere at a load balancer for LDAP • WebSphere will be more consistently reliable and stable • If your LDAP server (or even DNS) is slow to respond, your users will experience slow server access
  • 23. LDAP – POPULATING PROFILES • Profiles in Connections are populated from your LDAP directory • Connections uses Tivoli Directory Integrator to move the data from your LDAP source to the PEOPLEDB database • It‟s possible to populate bi-directionally and to populate from multiple sources • IBM supply all the scripts, batch files and assemblylines needed to manage profiles • Use the IBM supplied files as templates, do not create your own – you won‟t have support
  • 24. ADMINISTRATOR –POPULATING PROFILES • There are three methods to populate profiles • The population wizard that provides a GUI to import LDAP source to PeopleDB destination • Manually modifying the XML and properties files supplied by IBM and running the batch files such as collect_dns and sync_all dns to populate the data either LDAPtoPEOPLEDB or LDAPtoPEOPLEDBtoLDAP (bi directionally) • Create an assemblyline using TDI‟s configuration editor interface and using IBM supplied ProfileConnector • As assemblyline can connect to nearly any data source • Assemblylines can run very quickly and custom populate data to and from multiple data sources
  • 25. DEVELOPER – WORKING WITH PROFILES • Registration and User management is not exactly built in to connections it is mainly catered to existing directories. • If you want to allow users to register them selves you are going to have to write your own registration app or customize the one used with your User directory • If you are using an external directory, beg and plead not to have the email field turned off as it makes the integration with atom feeds far harder
  • 26. DEVELOPER – WORKING WITH PROFILES • The main internal connection user table has 7 (yes 7!) user identification fields • Even so your main issue will be uniquely identifying a user if you are authenticating via your LDAP non-Connections directory and then calling or modifying items within the Connections environment • The most useful field from a developers perspective is the “profGuid” field in the “EMPLOYEE” table in the “jdbc/profiles” datasource almost certainly called PEOPLEDB
  • 27. IBM HTTP SERVER • The IBM HTTP Server routes URL queries to and from users to the back end WebSphere applications • Since this is the route through which all traffic travels we can secure SSL through IHS intead of WebSphere • IHS is cluster aware when added to WebSphere and will dynamically route requests across the cluster • Multiple IHS servers can be used via a load balancer to route Connections traffic
  • 28. IBM HTTP SERVER ADMINISTRATOR • Configuration for IHS happens in three main places • Httpd.conf file , a complex text file held on the file system • This can easily be ovewritten and a simple change can break Connections completely • Plugin-cfg.xml – the WebSphere plugin file that informs IHS what URLs need to be redirected to the back end servers and not resolved locally • This is generated from within WebSphere and distributed via the ISC • Plugin-key.kdb / plugin-key.sth used to store the SSL certificates
  • 29. IBM HTTP SERVER - DEVELOPER • When you add a new application or URL, it wont show up when you start the application as the HTTP server wont know about it. • You have to go ask your administrator to update the HTTP server configuration. • Generate Plugin – Populate Plugin • You can in addition get the direct port to the http stack on the websphere server so you can do your testing straight away without pestering your admin all the time • Direct ports are usually 9081, 9082, 9083 etc insecure and 9443, 9445, 9445 secure depending on how many clusters you have o one server
  • 30. CONNECTIONS CONTENT MANAGER • CCM uses FileNet as a document library which itself needs to store file data and references • We have additional databases that are created either during install or via the DBWizard to be used exclusively by Filenet • There is also a Filenet Administration Interface called the Administering Console for Content Engine where the Filenet specific configuration settings are held including how to map Filenet to Connections applications and behaviour
  • 31. COGNOS • Cognos is used for creating and reporting Metrics, it uses WebShere to deliver HTML reports that are built into the Metrics application in Connections • Data is held in three places • Metrics and Cognos databases created by the Connections DBWizard • Cognos configuration interface • Transformer Cubes on the Cognos file system
  • 32. ARCHITECTURE LDAP Server Tivoli Directory Integrator IBM HTTP Server Database Server & Databases CLUSTER WebSphere Application Server WebSphere Application Server Connections Applications Connections Applications WebSphere Application Server Deployment Manager Connections Applications Cognos Server WebSphere Edge Server (Load Balancing & Caching Proxy) FileNet Content Engine Server FileNet Content Engine Client FileNet Collaboration Services (FNCS)
  • 34. WEBSPHERE ADMINISTRATION • Once IBM Connections is installed there are two places where we would perform day to day administration • Application security - the rights users have to applications • Application security isn‟t very granular “one size fits all” • New roles that change behaviour aren‟t something you can add • Wsadmin • WebSphere‟s command line administration tool for sending instructions to applications • Wsadmin is also used to make changes to application configuration settings
  • 35. APPLICATION SECURITY • For every application there are pre-defined roles that that determine the scope of the user‟s behaviour • Many of the roles such as “admin” or “globalmoderator” apply across multiple applications • But do different specific things in each application • And must be set separately • There are also pre-defined special “categories” you can assigned to applications such as • all authenticated users in application‟s realm • Everyone (includes anonymous users)
  • 37. WSADMIN – SENDING COMMANDS To run any wsadmin command always start from the bin directory of the deployment manager e.g • C:IBMWebSphereAppServerprofilesDmgr01bin • Call wsadmin by typing wsadmin(.sh) –lang jython –username [name] –password [password] then choose which application you want to work with execfile(“profilesAdmin.py”) • Any changes you make here will be pushed out to all the nodes • Wsadmin commands are case sensitive regardless of your platform
  • 38. WSADMIN – MODIFYING CONNECTIONS CONFIGURATION • wsadmin –lang jython –username [name] –password [password] • execfile(“connectionsConfig.py”) • LCConfigService.checkOutConfig(“[filepath]”,AdminContro l.getCell()) • The LotusConnections-config.xml file will be in your filepath where it can be edited then checked back in and validated • LCConfigService.checkInConfig()
  • 39. JAAS AUTHENTICATION • To connect each application to its data source there is a J2C authentication resource created during install • If you need to change the account name or password you will need to edit the details for the JAAS Alias • Global Security – JAAS – J2C authentication data
  • 40. REORG SCRIPTS • To handle database fragmentation you should regularly run the supplied IBM reorg.sql scripts • The scripts are located in the connections.sql directory of the installer • The reorg scripts traverse each table in the database clearing up whitespace and optimising the remaining data
  • 41. BACKING UP CONFIGURATION • Always backup before making configuration changes • From the deployment manager bin directory run the backupconfig(.sh) • Backupconfig c:backupsgdbackup.zip –nostop • The backup will be a zip file, • The –nostop command prevents backupconfig from stopping the deployment manager before running • Restoreconfig c:backupsgdbackup.zip • Restore once you have stopped the server
  • 42. CUSTOMIZATIONS WITHIN THE FRAMEWORK • These are Customizations that use IBM APIs to integrate with Connections (nearly always via ATOM feed), normally broken down into 2 types • XML: These involve changes to the XML configuration documents for connections. • None XML: where you don‟t need to touch the undying connections files (such as Iwidgets) • The Basic Premise for this type of customization is that IBM will support it from One version to the Next • Not to be underestimated, when a client updates their connections environment, you don‟t want people pointing at your changes and blaming them for project slippage.
  • 43. CUSTOMIZATIONS WITHIN THE FRAMEWORK • Connections is not a RAD environment but it is a very updateable environment with a lot of feeds. • You get far more bang for your buck by writing truly external apps, via either domino or native java apps, then feeding back into the connections environment. • Such applications need SSO and / or service accounts, check that these will be available BEFORE writing your code • Before committing to an in-framework customization, confirm that it is do able, all things are possible but the level of hacking needed my render the solution unviable to your administrator and / or client.
  • 44. XML FILE UPDATES • Nearly everything serious requires a restart of the effected application (Profiles/Commons etc) • Treat it as an architectural area. • Don‟t store any setting or configuration that might ever change (there are lots of other areas to do that)
  • 45. XML FILE UPDATES • Documentation is a bit thin on the ground • http://www-10.lotus.com/ldd/appdevwiki.nsf/ (that‟s your lot) • If something is not implicitly mentioned in the documentation it might be tolerated/support in a given release but not for future release even on the adopted platforms • E.g. dojo.i18n.getLocalization solution not supported between 3 and 4.5
  • 46. CUSTOMIZATIONS OUTSIDE THE FRAMEWORK • When your customizations go outside the functions provided by IBM. • Basically this only happens when the ATOM APIs do not do the job for you, and you end up with a native app reading / writing to the Connections DB2 data bases • IBM will not support this type of customization, but on the plus side you can deliver exceptional solutions to clients. • Eg. Editing activity stream. • Expanding data accessibility.
  • 47. CUSTOMIZATIONS OUTSIDE THE FRAMEWORK • An .Ear (Enterprise ARchive) is Basically a normal War file (Web application ARchive) wrapped in a configuration wrapper. • It contains Lots and lots of very cool features, very few of which you should use on connections without full buy in from your administrator • Remember you are on a shared server and you can not make any assumptions as to what is happening • Far Better to write detailed installation instructions that allow your admin to balance the system. • Make No Assumptions on your application regarding available resources, give detailed errors on the sys log.
  • 48. CUSTOMIZATIONS OUTSIDE THE FRAMEWORK • Do not use the full functionality provided by .ear
  • 49. CUSTOMIZATIONS OUTSIDE THE FRAMEWORK • JDBC connections • It has already been mentioned, but resist the urge to use the Integrated JDBC connections. • If a developer is not 100% trusted i.e. external. the lack of security on the system JDBC connections is reason enough for a code audit. • Their Presence is a bonus point for all external application to be written on a Domino server.
  • 50. LOGS • Any application problems will be found in the SystemOut.log of the server where the application is running • If you are using a cluster then you will need to check the SystemOut for each server in the cluster • Modify the LOG_ROOT WebSphere variable for log location • Configure each server log for rollover and retention
  • 51. LOGS - DEVELOPER • Remember which application server your stuff is on (check Web modules on the application properties if you are unsure) • It‟s best if you can agree on a server for all your customization work with your admin (where applicable) • It‟s a total face palm moment if you complain to your admin and you have been looking at the wrong servers log. • Be responsible with your Logging, remember you have to share it so don‟t stuff it with pages and pages of entries when you are not actively debugging.
  • 52. LOGS - ADMINISTRATOR • Don‟t give your developer rights to do any of the things Mark just mentioned • No logging into the ISC to apply their own applications, review servers or modify logs • No. Bad Mark.
  • 53. DO’S & DO NOTS • Admin: • Backup your configuration using backupconfig before making changes to the configuration • Never manually edit an XML configuration file, always use wsadmin which verifies the XML structure as it‟s checked back in • Schedule the database reorg maintenance scripts to run regularly, • Set up specific credentials for developers to use to access the Connections data, don‟t re-use administration credentials • Ensure you have a test / staging server to test customisations and developments on • Never let your developer have ISC access or wsadmin access to a production environment!
  • 54. DO’S & DO NOTS • Developer: • Never underestimate the fragility of the connections environment. • Never forget to document as you go as there are far more „fiddly bits‟ in connections than a lot of other environments (and its really embarrassing to ask an admin to deploy to a PT or UAT environment and the darn thing doesn't work) • Consider Connections as basically „Beta‟ software and code accordingly in every aspect (logging, error handling). • Don‟t be tempted to access areas via data sources and other back doors stick to API‟s or stand alone code. • Remember “A miss is as good as a mile” with IBM support, you might regard it as inventive and only a tiny bit off documentation standards, they regard it as “Not supported” • If you need to do that kind of thing then separate you code completely and integrate via approved API‟s
  • 55. WHO ARE WE AGAIN?