This presentation aims to introduce you, the Domino administrator, to the fundamentals of IBM WebSphere Application Server (WAS).
It aims to cover: -
What is WebSphere Application Server (WAS) ?
A brief history of WebSphere Application Server
The core building blocks of a typical WAS infrastructure
An examination of some of the core WAS configuration files
An illustration, by demonstration, of WAS administration
via command-line
via script
via graphical user interface
Note that I'm going to focus on WAS v7 because that's what is currently delivered via IBM products such as Connections and Sametime .....
Human Factors of XR: Using Human Factors to Design XR Systems
Dave hay web sphere administration for domino administrators
1. DanNotes – Danish Notes User Group 2012
about.me/david_hay
WebSphere Administration for Domino Administrators
Wednesday 2 May 2012
1
2. Introduction
With IBM since 1992
Experienced with hardware, software and services
● Started with AS/400 and iSeries
● Moved onto Network Station
● Working with WebSphere and Lotus software since 2000
● Linux and Mac advocate
● Collaboration evangelist
● Serial blogger
Infrastructure Architect
● Focused on IBM middleware and integration with client hardware, software and services
With IBM Software Services since 2009
● Wide range of projects, including Collaboration Portal, Secure Portal, Process Portal, Google Search
Appliance integration and, most recently, WAS integration with Active Directory .....
2
3. Session objectives
This presentation aims to introduce you, the Domino administrator, to the fundamentals of
IBM WebSphere Application Server (WAS).
It aims to cover: -
●
What is WebSphere Application Server (WAS) ?
●
A brief history of WebSphere Application Server
●
The core building blocks of a typical WAS infrastructure
●
An examination of some of the core WAS configuration files
●
An illustration, by demonstration, of WAS administration
●
via command-line
●
via script
●
via graphical user interface
●
Note that I'm going to focus on WAS v7 because that's what is currently delivered via IBM
products such as Connections and Sametime .....
3
3
4. What is Java Enterprise Edition (JEE) ?
Source: The Java EE 6 Tutorial: Basic Concepts (4th Edition) - Eric Jendrock (Author), Ian Evans, Devika Gollapudi, Kim Haase & Chinmayee Srivathsa
4
5. What is WebSphere Application Server (WAS) ?
●
A core component of many IBM software products
●
IBM Connections
●
WebSphere Portal
●
IBM Web Content Manager
●
IBM Sametime
●
IBM Lotus Quickr for WebSphere Portal
●
IBM Forms
●
From the WebSphere Brand of IBM Software
●
Available on every server software platform on the market ......
●
Often misnamed purely as WebSphere
●
WebSphere is the brand
●
WAS is but one product
●
A standards-based Java Enterprise Edition (JEE) application server.
●
A set of run-time components, servers and services
●
Based and built upon open-standards including JEE6, OSGi, CEA, JPA, SAML, SCA, SDO,
SIP, Web 2.0, Mobile, Dynamic Scripting and XML :-)
5
5
6. A brief history of WebSphere Application Server – v1 to v7
6
6
7. A brief history of WebSphere Application Server – Up to Date
WAS V8
Web 2.0 & Mobile FeP
WAS HV Refresh
WAS V7 Feature Packs Migration Toolkit Refresh
(XML, CEA, SCA)
SAML & WOLA
WAS HV
WAS EC2 AMI
2011
WebSphere
0
01
Application Server
V7 2
WAS V7 & V6.1
Feature Packs
WebSphere 9
Application 200
Server V6.1
Feature Packs
0 8
20
(FeP)
WAS V8 Alpha, Beta & Beta Refresh
WebSphere WAS V7 Feature Packs
Application Server
OSGi Apps & JPA 2.0
V6.1 0 7
WebSphere 20 Modern Batch
CEA Mobile Widgets
Application Server Dynamic Scripting
V6.0.2
WAS HV Refresh
6 Migration Toolkit Refresh
00
WebSphere
Application Server 2
V6
5
200
7
8. Introducing WebSphere Application Server 8.5 ....
Specifically, WAS 8.5 will include …
The Liberty Profile
●
A dynamic WAS profile
●
Features and services deployed on-demand
●
Model is similar to that of the Linux kernel
●
Built around the Open Services Gateway Imitative (OSGI) model
●
For example: -
●
The application only requires Java servlets, only the WAS kernel, the HTTP transport and the web
container are loaded....
●
The application then requires database persistence via the Java Persistence API ? Load that up ....
●
No WAS restarts required
●
Ideal for development.
●
Perhaps this is a parallel with the way that Domino works ? One can load and unload tasks
such as nldap and nhttpd at will. Just a thought ..... :-)
8
9. WAS vs. Domino – What's the Difference ?
John P. Lamb, Michael Laskey and Gopal Indurkhya explain in their book, IBM WebSphere
and Lotus: Implementing Collaborative Solutions, which applications are best suited for Lotus
Domino or WebSphere Application Server in the following way:
“At a high level, the type of application is an important factor in deciding on which platform to build. ...
the strengths of Domino lie in collaborative applications.
Domino is good at applications involving user interaction, providing a scalable document data store,
rich content handling, and a robust security model.
WebSphere Application Server (WAS) is ideal for transactional applications, highly leveraging a
relational data store, and providing enterprise-level J2EE application hosting.”
9
9
10. Deployment
Manager Oracle
IBM WAS
HTTP
Server
Site Load
Visitor Balancer
WAS
Domino
Domino
Directory
10
11. Some examples of where WAS fits ...
IBM Connections
IBM Sametime
WebSphere Portal
11
13. What will you see most commonly ....
Most IBM Collaboration Solutions ( nee Lotus ) deployments will include some entitlement for
●
WAS Network Deployment (WAS ND)
●
Built on top of the WAS Base edition
●
Advanced deployment services such as: -
●
Advanced clustering
●
Dynamic scalability
●
High availability
●
Supports multiple, distributed servers as well as stand-alone servers
●
Centralized administration of multiple servers
●
Advanced management features for distributed configurations
●
Includes: -
●
IBM HTTP Server
●
WebSphere Plugin
●
WebSphere Edge Components ( Load Balancer, Reverse Proxy )
●
etc.
13
14. What are the core WAS building blocks ?
Application in this model refers to a Java EE (J2EE) web
application, comprised of an Enterprise ARchive (.EAR) file
and/or Web Application Archive ( .WAR) files.
Application Server is a process that hosts and runs one or
more Java EE web application. Each application server runs
in its own Java Virtual Machine (JVM).
Another name for Application Server is Instance or JVM
instance or merely JVM
Node is an individual physical or virtual system/machine that
contains an installation of WebSphere Application Server.
Cell is a group of Nodes in an administrative domain.
14
15. What are the core WAS building blocks ?
Deployment Manager administers multiple
nodes in a cell from a centralized location.
Node Agents work with the Deployment
Manager to perform administrative functions.
Cluster is a group of application servers that
are used for the same purpose / run the same
applications.
15
16. To put it another way ....
●
A cell consists of one or more physical or logical ( virtual ) nodes
●
A node contains one or more application servers or instances
●
An instance comprises a single JVM
●
Applications are deployed to instances
A cluster consists of one or more instances ( a cluster of one wouldn't be
●
much of a cluster )
●
The configuration of the cell is managed by the Deployment Manager
instance
Each node has a Node Agent instance which is communicates with the
●
Deployment Manager
16
17. File System Layout
Split into two distinct sections: -
●
Read-only product static files or product binaries
●
shared by any functional instance of the WAS product
●
Set of configuration files that are customized
●
Known as the WAS profile
●
Minimum of one profile per WAS installation
Analagous to Domino partitioning
17
18. File System Layout – Domino and WAS Compared
Domino Product Binaries WAS Product Binaries
+ + + +
Domino Domino
Data Data WAS WAS
Directory Directory Profile Profile
Domino Domino Application Application
Server Server Server / Server /
Deployment Deployment
Manager Manager
Physical / Virtual Machine Physical / Virtual Machine
18
19. An Example - IBM Connections Deployment
WAS Product Binaries WAS Product Binaries
+ + + +
WAS WAS WAS WAS
Profile Profile Profile Profile
(DMgr01) (AppSrv01) (AppSrv01) (AppSrv02)
Deployment Application Application Application
Manager Server Server Server
Instance Instance Instance Instance
(Profiles) (Homepage) (Blogs)
Node 1 Node 2
19
20. What else do we need to know about the WAS file system ?
Product Binaries
/opt/IBM/WebSphere/AppServer
Profiles
/opt/IBM/WebSphere/AppServer/profiles/Dmgr01
/opt/IBM/WebSphere/AppServer/profiles/AppSrv01
/opt/IBM/WebSphere/wp_profile
Cell Configuration
/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/config/cells/rhel
Node Configuration
/opt/IBM/WebSphere/AppServer/profiles/wp_profile/config/cells/rhel/nodes/rhel/servers/server1
/opt/IBM/WebSphere/AppServer/profiles/wp_profile/config/cells/rhel/nodes/rhel/servers/WebSphere_Portal
Note: these are examples of paths; guess which OS I mainly use :-)
20
21. Where does WAS keep it's logs ?
●
In multiple places
●
With the binaries
●
/opt/IBM/WebSphere/AppServer
●
/opt/IBM/WebSphere/PortalServer
●
/opt/IBM/WebSphere/UpdateInstaller/logs
●
With the web server Most Useful
●
/opt/IBM/HTTPServer/logs
●
/opt/IBM/HTTPServer/Plugin/logs
●
With the profile
●
/opt/IBM/WebSphere/AppServer/profiles/wp_profile/logs
●
/opt/IBM/WebSphere/AppServer/profiles/wp_profile/logs/server1
●
/opt/IBM/WebSphere/AppServer/profiles/wp_profile/logs/WebSphere_Portal
21
22. Which bits of WAS do we really need to know about ? ( 1/3 )
●
The Web Container
●
Similar to the Domino Web Server
●
Serves dynamic web content such as servlets and JSPs
●
Can serve static content, but this isn't a typical pattern
●
Receives requests vis Web container inbound transport chain
●
Participates in Single Sign-On interactions including LTPA and SPNEGO
●
The EJB Container
●
Similar to Domino IIOP Task in that it communicates over the RMI/ORB protocol.
●
Runtime for deployment and management of Enterprise JavaBeans (EJB)
●
Can interaction with Web Container
●
The Service Integration (SI) Bus
●
Default Java Message Service (JMS) provider
●
Provides point-to-point and publish/subscribe services between application servers
●
JMS is a reliable protocol with built-in Quality of Service (QoS) and intelligent mediation
●
Provides asynchronous messaging capability
●
IBM Connections makes particular use of the SIbus
22
23. Which bits of WAS do we really need to know about ? ( 2/3 )
●
Java Database Connectivity (JDBC)
●
Provides loose coupling between application servers and relational databases
●
Application talks to application server, application server talks to JDBC data source, JDBC data
source talks to JDBC driver, JDBC driver talks to relational database
●
Supports performance characteristics such as connection and statement pooling
●
JDBC drivers exist for most relational database platforms, including: -
●
DB2 UDB
●
Domino :-)
●
Oracle
●
SQL Server
●
PostgreQL
●
MySQL
●
Lightweight Third Party Authentication (LTPA)
●
Provides identity assertion across Domino and WAS-based servers
●
Allows a user to log-in once and then seamlessly access other servers in SSO realm
●
Proprietary to IBM
●
Potentially more efficient that mechanisms which “call back” e.g. SPNEGO, Kerberos
23
24. Which bits of WAS do we really need to know about ? ( 3/3 )
●
Federated Respository
●
Unlike Domino, WAS cannot be used as a LDAP server
●
However, it does have its own built-in user registry – defaultWIMFileBasedRealm – which, out-of-
the-box, contains the administration user ID
●
Federated Repository function allows WAS to see multiple user registries, including WIM, LDAP,
database, custom adapters etc.
●
This provides a single logical repository of users and groups, similar to Domino's Directory
Assistance feature
●
Job Manager
●
Introduced in WAS v7, this adds flexible management to WAS
●
Application servers register with the Job Manager, via an Administrative Agent
●
The Job Manager can then queue jobs to one of many Application Servers
●
Jobs can include wsadmin scripts, application management commands, server start/stop
commands etc.
●
The next slide provides an illustration of the Job Manager hierarchy
24
26. What is the Interated Solutions Console (ISC) ?
●
A single, common interface for system administration
●
The main platform on which IBM and non-IBM products can build administrative user interfaces
as individual plug-ins to a common console framework
●
A Java EE application running on WAS
●
Completely web-based
●
No separate admin client ( not required since v4 )
●
Not the only game in town for WAS admin
26
28. Apart from the ISC, we also have wsadmin ....
●
wsadmin is a scripting interface to the
WAS administration APIs
●
wsadmin can be interactive: -
$ ./wsadmin.sh -lang jython -c 'AdminApp.list()'
or scripted
$ ./wsadmin.sh -lang jacl -f ~/extractDataSource.tcl
●
wsadmin supports two different scripting languages
●
Jacl - a self-contained implementation of Tool Command Langage – Tcl
●
Jython – a Java-based implementation of the Python programming language
Jacl has been deprecated in favour of Jython, which could also be said to be simpler
●
Why script ?
Automation, audit trail, re-use, remote access, consistency ....l
28
29. A quick plug for automation ....
●
Rational Automation Framework
●
A customizable framework to provide automation of: -
●
environment build-outs
●
configuration management
●
application deployments on heterogeneous middleware platforms
●
IBM Workload Deployer
●
A hardware appliance that provides access to IBM middleware virtual images and patterns
●
Easily, quickly and repeatedly create application environments
●
Provide for secure deployment in a private cloud
●
Uses Rational Automation Framework
●
IBM PureSystems
●
Expert, integrated, enterprise-level family of cloud system
●
Encompasses applications, services, hardware, and the expertise
●
Uses Rational Automation Framework
29
32. Next Steps ....
●
Go here and download the WAS 8.5 Liberty Profile
●
Sign up for IBM developerWorks
●
Check out some of the links at the end of this deck
Download a trial / evaluation of one of the IBM Lotus products that include
●
WAS
●
IBM WebSphere Portal
●
IBM Web Content Manager
●
IBM Forms
●
etc.
●
Reach out to IBM Software Services :-)
32
34. References
WebSphere Application Server
WebSphere Application Server Version 7.0 Information Center
WebSphere Application Server product architecture
JVM updates in WebSphere Application Server V8: Using wsadmin and Jython to easily collect and report
WebSphere Application Server PMI data
WebSphere Scripting: WSADMIN, jacl, jython [PDF]
Jython script library
Redbook - WebSphere Application Server V7 Administration and Configuration Guide [PDF]
Using Jython Scripting Language With WSADMIN
IBM Education Assistant – WebSphere
Overview of IBM WebSphere Application Server Concepts for IBM Lotus Connections Administrators [PDF]
IBM WebSphere Application Server Introduction for Lotus [PDF]
Introducing the WAS Liberty Profile
WebSphere Application Server V8.5 Concepts, Planning and Design Guide
34
36. Recap of the Demo ( 1/2 )
The main points of the file system
●
Product binaries
●
Profiles
●
Where the logs are kept
●
For binaries and installations
●
For profiles
●
How to start and stop WAS
●
Examples of scripts and “short cuts”
●
How to back up WAS
●
backupConfig.sh
●
Some core configuration files
●
Cell configuration – resources.xml
●
Security configuration – security.xml
●
WIM configuration – wimconfig.xml
●
SOAP client configuration - soap.client.props
36
37. Recap of the Demo ( 2/2 )
●
The Integrated Solutions Console
●
wsadmin
●
JACL
●
Jython
●
Federated Repositories
●
defaultWIM
●
LDAP
●
Update Installer
●
Covers IHS, Plugin, SDK, WAS ....
●
Common TCP/IP ports
●
And how to see what's listening ....
37
38. wsadmin – what did we do ?
JACL - lots of dollars, now deprecated
$AdminApp uninstall DefaultApplication
$AdminApp list
$AdminApp install /opt/IBM/WebSphere/AppServer/installableApps/DefaultApplication.ear
$AdminApp taskInfo /opt/IBM/WebSphere/AppServer/installableApps/DefaultApplication.ear
MapModulesToServers
$AdminConfig save
38
39. wsadmin – what did we do ?
Jython - it's the future
Getting Help
print Help.help() // Penelope Pitstop
print AdminConfig.help()
print AdminApp.help()
print AdminControl.help()
print AdminTask.help()
print AdminServerManagement.help()
print AdminTask.help('-commands')
Unformatted output - hard to read
AdminApp.list()
AdminApp.install('/opt/IBM/WebSphere/AppServer/installableApps/DefaultApplication.ear')
AdminApp.uninstall('DefaultApplication.ear')
AdminApp.taskInfo('/opt/IBM/WebSphere/AppServer/installableApps/DefaultApplication.ear',
'MapModulesToServers')
AdminConfig.save()
39
40. wsadmin – what did we do ?
Formatted output - easier on the eyes
print AdminApp.list()
print AdminApp.uninstall('DefaultApplication.ear')
print AdminConfig.save()
print AdminApp.install('/opt/IBM/WebSphere/AppServer/installableApps/DefaultApplication.ear')
print
AdminApp.taskInfo('/opt/IBM/WebSphere/AppServer/installableApps/DefaultApplication.ear','MapModul
esToServers')
print AdminConfig.save()
print AdminApplication.startApplicationOnSingleServer("DefaultApplication.ear","rhel","server1")
print AdminConfig.save()
print AdminServerManagement.listServers()
print AdminServerManagement.showServerInfo("rhel","server1")
40