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