2009 IBM Corporation. WebSphere Application Server for z/OS. 2. Application
Serving: the Basics. What is an application server? Operating System.
Application ...
Martina Schmidt
[email protected]
WebSphere Application Server for z/OS
© 2009 IBM Corporation
WebSphere Application Server for z/OS
Application Serving: the Basics What is an application server? An application server is middleware designed as a fully functioning deployment platform for applications. WebSphere Application Server is built on J2EE technology and provides: Web services
Connection Mgmt
JCA Connectors to EIS
Communications
J2EE artifacts
High Availability
Embedded messaging
Security
Distributed caching
Systems Mgmt
Transaction management
etc…
Application
Application
Application
Service
Service
Service
Application Server Operating System
Workload management
It also shields applications from platform specifics and allows the application designer to focus on Business Logic 2
© 2009 IBM Corporation
1
WebSphere Application Server for z/OS
Application Serving: the Basics J2EE Application Model
Components Fokus der Anwendungsentwickler, EJBs, Servlets, JSPs und Clients Verhalten der einzelnen Komponenten kann beim Deployment spezifiziert werden, anstatt im Programmcode Container Stellen den Komponenten transparent Services zur Verfügung, wie z.B. Transaktionalität oder Resourcenpooling Container und Connectors verbergen Komplexität und begünstigen Portabilität Connectors Definieren portable Service APIs, um sich an existierende Anwendungen anzustecken Begünstigen Flexibilität, da sie eine Menge von Implementierungen von spezifischen Services ermöglichen
Components
Container
Connectors
3
© 2009 IBM Corporation
WebSphere Application Server for z/OS
Application Serving: the Basics Typical Deployment Web servers provide static content and support basic application front-end functions Firewall
Firewall
Browser
Web Server
Internet
Internet DMZ
Application Server
Internal Network
Network firewall, often specialized hardware 4
Business applications, data access, integration
Often a software firewall © 2009 IBM Corporation
2
WebSphere Application Server for z/OS
Application Serving: the Basics J2EE Application Server Legacy Application
Applet Container J2SE
J2EE Application Server Web Container
EJB Container
Servlet Web Browser
EJB
JSP
Application Client Container
J2EE
J2EE
J2SE
J2SE
J2SE
Database
5
© 2009 IBM Corporation
WebSphere Application Server for z/OS
Application Serving: the Basics The WebSphere Application Server Family Summary Ultimate scalability & performance; functional depth & breadth
Customer Needs
Multiple Business Models, Multiple Deployments Options
WebSphere Application Server for zOS
WebSphere Application Server Network Deployment WebSphere Application Server WebSphere Application Server - Express
Reduced acquisition costs; Small footprint..
WebSphere Application Server Community Edition
Fast deployment of single app; low transaction volumes… 7
Built on common WebSphere code Built on open source technology
Capabilities
High transaction volumes, High Availability, Advanced Web Services… © 2009 IBM Corporation
3
WebSphere Application Server for z/OS
Application Serving: the Basics WebSphere Application Server Services User Devices
Enterprise Infrastructure
Enterprise Assets
WebSphere Application Server Browser Web Container HTML
Java Server Pages
HTTP
Java Applet
HTTP
Java Servlets
Session Beans
Desktop
SOAP
.Net Application
Java Ápplication
Java Application
IIOP
Java Applications
JCA JMS SOAP
(Packaged or Custom)
Non-Java Applications
IIOP
Other Devices .Java Client
Enterprise Integration Framework
EJB Container
Java Servlets
Entity Beans
Sockets
JDBC
Other SQL
DB2
Other SQL
DB2 8
© 2009 IBM Corporation
WebSphere Application Server for z/OS
WebSphere Application Server Typical Middleware architecture
Process
Resources
Application Server Database
Client
App
App CICS
App
TCP/IP
9
IMS
Typical application server runs as a single process Fatal exceptions that stem from Applications can terminate the entire server process. In order to scale, we would start multiple server processes. – Multiple servers would typically run on multiple boxes Termination of a Server process leads to unavailability of the application unless the application is clustered. © 2009 IBM Corporation
4
WebSphere Application Server for z/OS
WebSphere Application Server Typical Application Server Distributed Box Client
Application Server
Client
TCP/IP
DB
Client
Basic Application Server on non-z/OS platforms – Positive •Simple – Negative •Does not Scale •Not Highly Available •Entire server can fail by Application Code 10
© 2009 IBM Corporation
WebSphere Application Server for z/OS
WebSphere Application Server Typical Application Server- A little better availability Distributed Box Client
Application Server
Client
TCP/IP
Client Client Client Client
IP Sprayer/
Distributed Box Application Server
Web Server
TCP/IP
DB DB DB
Distributed Box Application … Server TCP/IP
… 11
© 2009 IBM Corporation
5
WebSphere Application Server for z/OS
WebSphere Application Server “Gold Standard” With Distributed Application Servers Cell 1 HTTP Server
WAS WAS
Load Balancer
WAS HTTP Server
Network Network Switch Switchd
… Cluster
DMZ
Trusted Zone
HTTP Server
DB DB DB
WAS WAS
Load Balancer
WAS HTTP Server
… Cluster Cell 2
12
© 2009 IBM Corporation
WebSphere Application Server for z/OS
WebSphere Application Server Typical Application Servers How do you scale the Application? – Add more boxes
What about when I don’t have peak loads? – The Servers will be underutilized
How do you scale the Database? – Add more boxes and replicate
How do you route work evenly to multiple boxes? – Round-robin inbound work
How do you handle failover? – Add more boxes How is an application highly available? – Install the application on many boxes How are requests prioritized? – Add more boxes to handle Gold Customers
How do you ensure that your servers are evenly utilized? – Best guess based on Application Knowledge
“Add More Boxes”
How do I handle peak loads? – Keep enough boxes available to handle the max possible load 13
© 2009 IBM Corporation
6
WebSphere Application Server for z/OS
WebSphere Application Server WebSphere for z/OS Server Architecture A WAS z/OS application server is comprised of multiple processes.
Mainframe Logical WAS z/OS Application Server
Mem-to-Mem
WLM
Client Client
Servant
Servant
Controller
Only authorized, robust system code is executed within the Controller process. Application code is executed within the Process. Servant Application code is executed within the Servant Process. – Theoretically, Servant processes are of eachServant other. processes are – clones Theoretically, clones of each other. – They can be terminated or created interrupting the overall end– without Theyexperience can be terminated or created user without interrupting the overall enduser experience – Servant processes can be dynamically destroyed bybe Work-load – created Servant or processes can dynamically Management. The decisions can be createdonoruser-defined destroyed byservice Work-load based Management. The decisions can be policies. based on user-defined service policies.
TCP/IP
Client
Servant
15
© 2009 IBM Corporation
WebSphere Application Server for z/OS
WebSphere Application Server Why is WAS z/OS Reliable? Mainframe
If a servant process is terminated, the application can still be served by any of the other servants within the Application Server.
Logical WAS z/OS Application Server
Mem-to-Mem
Controller TCP/IP
Client
16
Servant
WLM
Client Client
WLM Detects that the Servant has terminated and starts a new one.
Servant
X
Servant
© 2009 IBM Corporation
7
WebSphere Application Server for z/OS
WebSphere Application Server Why is WAS z/OS Scalable? Within a WAS z/OS Application Server, one can define a minimum and maximum number of servant processes that are allowed. Workload could suddenly spike, overloading the WebSphere Server
Mainframe
Client
Logical WAS z/OS Application Server
Mem-to-Mem
Client
Servant
Built-in vertical clustering
WLM
Client Client
If the maximum number of servants has not been reached, WLM can start a new Servant process to handle the load.
MinSR=2, MaxSR=3
Client
Work items begin to queue up and wait for an available servant. WLM can detect this and act…
Servant
Controller TCP/IP
Client
Servant
17
© 2009 IBM Corporation
WebSphere Application Server for z/OS
WebSphere Application Server Why is WAS z/OS Scalable? After some time, the spike in workload could end. Our workload would then return to normal
Mainframe Client
WLM can detect that the servants are underutilized and act…
Logical WAS z/OS Application Server
WLM terminates the extra servants until utilization goals are reached. This allows system resources to be freed and available for other system services.
Client Mem-to-Mem
Client
WLM
Client Client
Servant
Controller
Servant
TCP/IP
Client
18
Servant
© 2009 IBM Corporation
8
WebSphere Application Server for z/OS
WebSphere Application Server Why is WAS z/OS High Available? LPAR 1 Client
WAS
Controller
Client Client Client Client
Sysplex Distributor ARM
Servant Servant
If a controller process fails, the Sysplex Distributor would route work to the other controller process.
Servant
ARM detects that the controller failed and restarts it.
LPAR 2 WAS
X
Controller
Client
In order to provide a true high-availability server, the Controller processes would be clustered.
X Servant Servant Servant
19
© 2009 IBM Corporation
WebSphere Application Server for z/OS
WebSphere Application Server How does WAS leverage WLM?
20
WAS uses four distinct functions of WLM: – Routing • Work is distributed among multiple Servants – Queuing • Work that cannot be distributed waits until a Servant is available – Prioritizing • Higher priority work can be distributed before lower priority work – Process Management • Starts and Stops Servants as needed (to scale, for failure recovery, etc).
© 2009 IBM Corporation
9
WebSphere Application Server for z/OS
WebSphere Application Server How does WAS z/OS leverage WLM? - Workload can be classified (WLM Service Policies) - Higher priority work can be given more system resources
Client Client
Priority
Mem-to-Mem
Client
Servant
1
CPU’s
Priority
WLM
Client Client
Mainframe
Logical WAS z/OS Application Server
2 Servant
Controller
Priority
3
TCP/IP
Client
Servant
21
© 2009 IBM Corporation
WebSphere Application Server for z/OS
WebSphere Application Server How does WAS z/OS leverage WLM? Intelligent routing to LPAR’s via WLM and the Sysplex Distributor = Simple Request
= Complex Request WLM
Client
LPAR 1 Servant
34% Util 54%
Client
Controller
Client Client
Servant
Sysplex Distributor WLM
Client Client
Servant
LPAR 2 Servant
44% 38%Util 39% Util Controller
Servant Servant
22
© 2009 IBM Corporation
10
WebSphere Application Server for z/OS
WebSphere for z/OS Uses Enclaves
Eine „Geschäftstransaktion" ohne Adressraumgrenzen – Zwei Arten – Existieren in goal (Ziel) mode und compatibility (Verträglichkeit) mode – System oder Sysplex Geltungsbereich unabhängige Enclaven – echte SRM Transaktion – Wird in Serviceklasse oder Performancegruppe separat klassifiziert und verwaltet abhängige Enclaven – Logische Erweiterung einer existierenden Adressraumtransaktion – Erbt Serviceklasse / pgn vom existierenden Adressraum
24
© 2009 IBM Corporation
WebSphere Application Server for z/OS
z/OS Resource Recovery Services (RRS) Usage
Erforderlich um 2-phase commits zu benutzen: – Unterstützt verschiedene & mehrfache Ressourcenmanager: WebSphere, DB2, IMS, CICS, APPC – Differenziert zWAS von anderen Web Application Servern Nutzung des Subsystems ist abhängig vom Produkt: – Nutzen RRS optional wenn es bei ihrer Initialisierung aktiv ist: APPC, IMS, MQ, DB2 – Muss bei Initialisierung gesagt bekommen, RRS zu nutzen: CICS – RRS muss bei ihrer Initialisierung aktiv sein: WebSphere für z/OS
25
© 2009 IBM Corporation
11
WebSphere Application Server for z/OS
WebSphere AS Security Mechanisms
Sicherheit in WebSphere Application Server Infrastruktur – RACF Profile & Erlaubnisse – HFS Datei/Verzeichnis Erlaubnis & Eigentum – Administrator Tool Sicherheit Sicherheit für Anwendungsdeployment – SSL – Kerberos – EJB Rollen & Runas Support – Kryptographie Support – JAAS – CSIv2
26
© 2009 IBM Corporation
WebSphere Application Server for z/OS
WebSphere Application Server Developer Responsibilities
How do Developers leverage these QoS? – By writing well-designed J2EE Applications Is there anything specific that Developers must do on z/OS? – NO. WAS z/OS provides these qualities of service to J2EE applications, no zspecific application code is required. If the Java Runtime is platform optimized, will the java code in my application only run on z/OS? – NO. Java Runtime Optimizations are hidden from the Developer. Developer writes standard code, the Runtime is optimized under the covers Are there z-specific features that my application code could include? – Sure… but z-specific code isn’t required to take advantage of WLM, RRS, etc.
28
© 2009 IBM Corporation
12
WebSphere Application Server for z/OS
WebSphere Application Server WebSphere z/OS Application Server How do you scale the Application? – Increase the Max Servants per Server How do you scale the Database? – Use a Shared DB2 Database How do you handle failover? – Use ARM for Controllers. Servants are handled via WLM How is an application highly available? – Servants are restartable via WLM. Controllers are recoverable via ARM How are requests prioritized? – WLM How do I handle peak loads? – WLM spawns servants
What about when I don’t have peak loads? – WLM eliminates excess Servants, freeing up system resources for other work How do you route work evenly to multiple Servers? – Sysplex Distributor routes work to specific LPAR’s based on WLM metrics for resource utilization How do you ensure that your servers are evenly utilized? – WLM Metrics are used to decide where to route work to
WAS integration with z/OS System Facilities provides a more robust, efficient, scalable environment
29
© 2009 IBM Corporation
WebSphere Application Server for z/OS
System z Application Assist Processor (zAAP)
New specialty assist processor dedicated exclusively to execution of Java workloads under z/OS® – e.g. WebSphere®, CICS, IMS, DB2 Available on IBM Server™ zSeries® 990 (z990), zSeries 890 (z890) and System z9 / z10 BC and EC servers Used by workloads with Java cycles, e.g. WebSphere, DB2® – Executes Java code with no changes to applications Attractively priced, much lower than standard CPs Significantly lower maintenance costs than standard CPs Traditional IBM zSeries software charges unaffected Sub-capacity eligible IBM software charges can be reduced Up to 1 zAAP per general purpose processor in a CEC Objective: Enable integration of new Java based Web applications with core z/OS backend database environment for high performance, reliability, availability, security, and lower total cost of ownership
30
© 2009 IBM Corporation
13
WebSphere Application Server for z/OS
Questions?
32
© 2009 IBM Corporation
14