Professional Documents
Culture Documents
Boston, MA
Wednesday August 4, 2009
WebSphere 101
Application Server Intro &
Concepts for Beginners
Michael Stephen
msteff@us.ibm.com
IBM WAS L2 Team Lead
Paul Houde
phoude@us.ibm.com
IBM Advanced Technical Skills
Day
Time
Title
Speaker
312
Monday
12:15
Lab
Stephen
203
Monday
4:30
Follis
203
Wednesday
9:30
WebSphere 101
Houde/Stephen
201
Wednesday
1:30
Hutchinson
200
Wednesday
3:00
Hutchinson
310
Wednesday
4:30
Follis/Bagwell
203
Wednesday
6:00
Bagwell
310
Thursday
8:00
Bagwell
310
Thursday
9:30
ODonnell
310
Thursday
11:00
Bagwell
200
Thursday
12:15
Loos
310
Thursday
1:30
Folis
2
WebSphere Adapters
Our
WebSphere Application Server
Focus
Branch Transformation Toolkit for WebSphere Studio
WebSphere Business Events
WebSphere Business Integration Server
:
:
WebSphere Virtual Enterprise
WebSphere Voice Response for AIX
WebSphere Voice Server
Probably close to 100 products that carry the WebSphere brand name
Im using
WebSphere
Nowadays
Business
Logic
Developer
Transaction
Developer
Communications
Published Interfaces
User Access
and Security
Data Access
Transaction
Communications
Data Access
Security
Application Server
Standards
7
Agreed-to Standards
Rules and regulations agreed to by the players in an industry that will
allow the different offerings to work better together.
Otherwise wed have islands of proprietary technology and difficulty interconnecting
Application Server
HTTP
Internet
TCP/IP
Router
Java
Java EE
JDBC, JCA and JMS
WebSphere Application Server
Router OSPF
DHCP
Ethernet
IEEE
802.xx
Java
Application
Java
Application
Platform neutrality
Different kinds of Java programs
9
WebSphere
Application Server
Java Virtual Machine
Web
Application
EJB
Application
POJO
Web Application
An application thats accessed with a browser. This typically
consists of static files (HTML, JPG/GIF), and Java programs that
generate dynamic output:
Servlets -- Java program that contains logic to do things like perform
calculations, access data, and format a reply
JSPs -- stands for Java Server Pages, its a way to create a dynamic
web page that can be populated with dynamic content
EJB Application
Stands for Enterprise Java Bean, its a more sophisticated
application thats intended for high-end applications. Two
flavors:
Session Beans -- meant to hold the logic of the application
Entity Beans -- meant to represent data as an object
Many EJB applications are made up of just session beans -- easier.
Java EE
Too simple a
categorization,
but okay for now
POJO
Stands for Plain Old Java Object. It is the simplest form of a
Java program and lately more people are returning to simplicity.
(POJO commonly applies to the EJB 3.0 environment and Java Batch
environment)
Data connectivity
10
Relational
Database API
JDBC
Vendor Supplied
Access Code
Non-Relational
Data API
JCA
Vendor Supplied
Access Code
Messaging API
JMS
Vendor Supplied
Access Code
Non-Relational Databases
CICS, IMS, SAP, PeopleSoft, etc.
JCA = Java Connector Architecture
Standard: a defined set of APIs that are converted to
the specific commands needed for the backend data
store by the vendor supplied code
Messaging Providers
MQ as provider, or WebSphere built-in messaging
JMS = Java Messaging Service
Standard: a defined set of APIs for applications to
send and receive messaging. The actual carrier of
the messages can be MQ or the built-in system of
WebSphere.
WOLA
11
Three Tier
12
Presentation
Tier
Application
Logic Tier
Data Tier
Creation of the
HTML used at the
browser to display
result to user
All three can exist on the same platform -- logical three, physical one:
LPAR
WebSphere Application Server
Web
Page
Web Application
EJB Application
HTML, JPG/GIF,
Servlet or JSPs
Session and/or
Entity beans
CICS
IMS
DB2
Presentation
Logic
Data
Much more to talk about but this paints the basic picture
What application types run where
13
COBOL
Java
POJO
Servlets
JSPs
EJBs
Some exceptions
and caveats to this
see below
CICS
HTTP Server
Tomcat
4
5
Is possible to use JCL to launch a HTTP server, but the point here is that batch JCL cant itself provide a web server
Either BPXBATCH direct invocation of JVM, or the use of something like JZOS
CICS supports EJBs, but the specification level supported is quite back-level. In general CICS is not considered the preferred place for EJBs
Tomcat is an open-source servlet/JSP engine
It is possible to have native code -- C/C++ -- run in the WebSphere address space (JNI code). But in general WAS is a Java runtime
environment
6. Relatively recent thing in WebSphere
Use in combination
14
DB2
It can be a
complementary
addition to the
existing
architecture
WebSphere
Application
Server z/OS
Batch
Programs
CICS
3270
Terminal
Users
IMS
Overview of WAS
15
16
Published Interfaces
Transaction
Communications
Data Access
Security
Application Server
Java Runtime
2
EJB Container*
1. Server is Started
On z/OS thats done with a START command (more later)
This native code is what establishes the lower-level
plumbing and allows for the invocation of the Java
environment
DMGR
CR
Node Agent
CR
SR
AppServer
CR
SR
Node
AppServer
CR
SR
SR
zWLM
Manages starting of SRs
Manages stopping of SRs
Requests queued to zWLM, then to SR
Controller Region
AppServer
CR
Servant Region
JVM
JVM
zWLM
SR
Native Code
App
App
Native Code
JCL
Servant Region
JVM
App
App
Native Code
Exploits platform
20
zWLM -- managing servant regions to defined goals; internal routing of IIOP based on
environment awareness; classification of workload
RMF and SMF -- reporting on transactions and server components
SAF -- security profile repository, including things such as keyrings and digital certificates
-
Thursday 9:30 Room 310 Security Architecture: How does WebSphere Play
Specialty Engines -- zAAPs and zIIPs / Coupling Facility -- for logging
Type 2 connectors -- native code implementation; true cross-memory communications
Sysplex Distributor and DVIPA support -- for intelligent balancing of traffic (Distributor) and the
protection against adapter or TCP stack outage (DVIPA)
Intra-Sysplex or inter-LPAR communications -- XCF (cross coupling facility) or Hypersockets
Sysplex data sharing -- for common data access: DB2, MQ, CICS, IMS
Hardware design -- fault tolerance; redundancy; hot-pluggable, etc.
The node
21
LPAR
Key Points:
Nodes are a logical thing
its not a started task
AppServer
CR
AppServer
SR
CR
AppServer
Node
CR
SR
AppServer
CR
SR
AppServer
Node
SR
CR
SR
AppServer
CR
SR
LPAR
Key Points:
DMGR
CR
SR
AppServer
CR
SR
AppServer
CR
SR
AppServer
CR
SR
Can be
restarted
here
AppServer
CR
SR
AppServer
CR
SR
AppServer
CR
SR
Something is missing
Node Agents
23
LPAR
DMGR
CR
Node Agent
CR
WebSphere is a distributed
architecture -- this allows the
configuration to be on separate
machines and still work.
SR
AppServer
CR
SR
Node Agent
CR
AppServer
CR
Key Points:
Master Configuration
CR
SR
AppServer
SR
Configuration
files for this
node
AppServer
CR
SR
Configuration
files for this
node
AppServer
CR
SR
AppServer
CR
SR
Clusters
24
LPAR
Key Points:
DMGR
CR
Node Agent
CR
SR
AppServer
CR
SR
Node Agent
CR
AppServer
CR
SR
SR
CR
SR
AppServer
CR
AppServer
CR
AppServer
SR
AppServer
Cluster
CR
SR
Cell
25
LPAR
Key Points:
DMGR
CR
Node Agent
CR
SR
AppServer
CR
SR
Node Agent
CR
AppServer
CR
SR
SR
CR
SR
AppServer
CR
AppServer
CR
AppServer
SR
AppServer
Cluster
CR
SR
Flexible Management . . .
26
Flexible Management
Additional architectures were introduced in WAS V7 to deal with the
administration of large groups of WAS cells
LPAR
LPAR
Job Manager:
Job Mgr
CR
DMGR
SR
ND Cell
Nodeagent
App
AppServers
Servers
DMGR
ND Cell
AppServer
Nodeagent
CR
App
AppServers
Servers
SR
AppServer
CR
Administrative Agent:
LPAR
SR
SR
AppServer
CR
AppServer
SR
CR
AppServer
CR
SR
SR
29
File
Sys
/usr/lpp/zWebSphere/V7R0
Unix Systems Services
File System
No module libraries thats different from in the past. Now the entire
product is contained within a file system (HFS or zFS)
LPAR A
Daemon
CR
Upload generated
batch JCL jobs to
z/OS and run
Cell
DMGR
CR
SR
/wasv7config/mycell/mydmnode
/DeploymentManager
/profiles/default
Node Agent
CR
AppServer
CR
SR
Whole bunch of
customized XML files
/wasv7config/mycell/mynodea
/AppServer
Node
Start Servers
AppServer
CR
SR
/profiles/default
Whole bunch of
customized XML files
Cell
DMGR
CR
SR
Node Agent
CR
Node
AppServer
CR
SR
SAF Profiles
They are what provides the essential z/OS security for the started tasks -Userids and Groups for file ownership and administrative access;
STARTED profiles for assignment of IDs, etc.
AppServer
CR
SR
Customized
Batch JCL jobs
These get uploaded to z/OS
where theyre submitted, one
after another, to create the
configuration runtime.
Uploading and running the
jobs is the easy part.
The real challenge is coming up with all the names and values and ports
the WCT is going to ask for. Without a plan for those names youll very
quickly get confused.
http://www.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/PRS3357
Spreadsheet
33
Instruction checklist
Key Points:
BBOSBRAK
BBOSBRAM
BBODBRAK
BBODCPY1
BBODCHFS
BBODHFSA
BBOWWPFD
Typical problems are -- typos in the input data (spreadsheet helps avoid
this) and insufficient authority (what you need is well documented)
Federation
35
LPAR A
Cell
Key Points:
DMGR
CR
Federate
Node Agent
CR
Federate
AppServer
CR
SR
SR
Node Agent
CR
AppServer
CR
SR
Details of this deliberately left out dont worry about those right now. Key
is the concept of joining a node into the DMGRs cell to make it grow. Get
that concept and youre half-way home.
Further customization and usage
36
37
Cell
DMGR
CR
Node Agent
CR
Administrative
Console
SR
AppServer
CR
SR
AppServer
CR
SR
This post-creation customization is common across all platforms its not just a z/OS thing.
In fact, its common across all middleware -- DB2, CICS, MQ all require some customization
Administrative Console
38
Configuration
File System
Key Messages:
There are a lot of options within the Administrative Console
You learn this over time you cant master this right away
Always remember what its doing -- updating configuration XML with your new
information, such as JDBC, MQ, applications, etc.
WSADMIN
39
Cell
DMGR
CR
Node Agent
CR
Node
SR
AppServer
CR
SR
AppServer
CR
SR
Key Messages:
Very handy for repetitive tasks
Useful to insure consistent deployments across QA, Test, Production
Does take some getting used to like any programming language
Deploying Apps
40
Admin Console
or WSADMIN
Developer
Deployer
Key Messages:
Application
EAR file
The Admin function will break open the zip-format EAR file and put the individual
files in the proper places in the configuration file structure
Who performs role of deployer is different in each customer sometimes a
separate group; sometimes the z/OS system programmers.
Some knowledge of the application and whats its designed to do is necessary. You
cant deploy applications blindly.
Talk to your developers and understand whats going on in the application!
Front-end balancing
41
Web services
Web 2.0
EJB 3.0
WAS 6.1
1. Choose the
application server
technology you need.
Web 2.0
Web services
EJB 3.0
2. Install additional
functionality on core
WAS Application Server
SCA
CEA
SAML
OLA
XML
OSGI/
JPA
WAS 7.0
42
Cell
DMGR
CR
Node Agent
CR
SR
Front-End
Device
Users
AppServer
CR
SR
Key Messages:
Node
AppServer
CR
SR
Other topics
43
Grand Summary
And we come to the end with a single summary chart:
Application Server
Provides a common set of functions and services so developers can focus on business-value, not plumbing code.
Open Standards
Is what allows the industry to settle on things that allow interoperability.
44