Martina Schmidt martina.schmidt@de.ibm.com for z/os 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. is built on J2EE technology and provides: Application Application Application Web services JCA Connectors to EIS J2EE artifacts Embedded messaging Distributed caching Transaction management Workload management Connection Mgmt Communications High Availability Security Systems Mgmt etc Service Service Service Application Operating System It also shields applications from platform specifics and allows the application designer to focus on Business Logic 2 1
for z/os Application Serving: the Basics J2EE Application Model Components Container Connectors Components Fokus der Anwendungsentwickler, EJBs, Servlets, JSPs und s 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 3 for z/os Application Serving: the Basics Typical Deployment Web servers provide static content and support basic application front-end functions Business applications, data access, integration Browser Firewall Web Firewall Application Internet Internet DMZ Internal Network Network firewall, often specialized hardware Often a software firewall 4 2
for z/os Application Serving: the Basics J2EE Application Applet Container Legacy Application J2SE J2EE Application Web Browser Web Container Servlet JSP EJB Container EJB Application Container J2EE J2SE J2EE J2SE J2SE Database 5 for z/os Application Serving: the Basics The Family Summary Ultimate scalability & performance; functional depth & breadth Multiple Business Models, Multiple Deployments Options WebSphere Application Network Deployment for zos Customer Needs WebSphere Application Reduced acquisition costs; Small footprint.. WebSphere Application Community Edition WebSphere Application - Express Built on common WebSphere code Built on open source technology Fast deployment of single app; low transaction volumes Capabilities High transaction volumes, High Availability, Advanced Web Services 7 3
for z/os Application Serving: the Basics Services User Devices Enterprise Infrastructure Browser HTML Java Applet Desktop.Net Application Java Application HTTP SOAP IIOP Web Container Java Pages Java Servlets Java Ápplication EJB Container Session Beans HTTP IIOP JCA JMS SOAP Enterprise Assets Enterprise Integration Framework Java Applications Non-Java Applications (Packaged or Custom) Other Devices.Java Sockets Java Servlets Entity Beans JDBC DB2 Other SQL Other SQL DB2 8 for z/os Typical Middleware architecture Process Application App App App Resources Database CICS 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 process leads to unavailability of the application unless the application is clustered. 9 4
for z/os Typical Application Distributed Box Application DB Basic Application on non-z/os platforms Positive Simple Negative Does not Scale Not Highly Available Entire server can fail by Application Code 10 for z/os Typical Application - A little better availability Distributed Box Application IP Sprayer/ Web Distributed Box Application Distributed Box Application DB DB DB 11 5
for z/os Gold Standard With Distributed Application s Load Balancer HTTP WAS WAS WAS Cell 1 HTTP Cluster Network Network Switch Switchd DMZ Trusted Zone DB DB DB Load Balancer HTTP WAS WAS WAS HTTP Cluster Cell 2 12 for z/os Typical Application s How do you scale the Application? Add more boxes How do you scale the Database? Add more boxes and replicate 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 I handle peak loads? Keep enough boxes available to handle the max possible load What about when I don t have peak loads? The s will be underutilized How do you route work evenly to multiple boxes? Round-robin inbound work How do you ensure that your servers are evenly utilized? Best guess based on Application Knowledge Add More Boxes 13 6
for z/os WebSphere for z/os Architecture Mainframe A WAS z/os application server is comprised of multiple processes. Logical WAS z/os Application Mem-to-Mem WLM Only authorized, robust system code is executed within the process. Application code is executed within the Application Process. code is executed within the Process. Theoretically, processes are clones Theoretically, of each other. processes are clones of each other. They can be terminated or created without They can interrupting be terminated the overall or created enduser experience without interrupting the overall enduser experience processes can be dynamically created or processes destroyed can by be Work-load dynamically created Management. or destroyed The decisions by Work-load can be Management. based on user-defined The decisions service can be based policies. on user-defined service policies. 15 for z/os Why is WAS z/os Reliable? Mainframe Logical WAS z/os Application If a servant process is terminated, the application can still be served by any of the other servants within the Application. WLM Detects that the has terminated and starts a new one. Mem-to-Mem WLM X 16 7
for z/os Why is WAS z/os Scalable? Mainframe Within a WAS z/os Application, one can define a minimum and maximum number of servant processes that are allowed. Workload could suddenly spike, overloading the WebSphere Logical WAS z/os Application Work items begin to queue up and wait for an available servant. WLM can detect this and act MinSR=2, MaxSR=3 Mem-to-Mem If the maximum number of servants has not been reached, WLM can start a new process to handle the load. Built-in vertical clustering WLM 17 for z/os Why is WAS z/os Scalable? Mainframe After some time, the spike in workload could end. Our workload would then return to normal WLM can detect that the servants are underutilized and act Logical WAS z/os Application Mem-to-Mem WLM terminates the extra servants until utilization goals are reached. This allows system resources to be freed and available for other system services. WLM 18 8
for z/os Why is WAS z/os High Available? Sysplex Distributor ARM LPAR 1 WAS LPAR 2 WAS X X In order to provide a true high-availability server, the processes would be clustered. If a controller process fails, the Sysplex Distributor would route work to the other controller process. ARM detects that the controller failed and restarts it. 19 for z/os How does WAS leverage WLM? WAS uses four distinct functions of WLM: Routing Work is distributed among multiple s Queuing Work that cannot be distributed waits until a is available Prioritizing Higher priority work can be distributed before lower priority work Process Management Starts and Stops s as needed (to scale, for failure recovery, etc). 20 9
for z/os How does WAS z/os leverage WLM? - Workload can be classified (WLM Service Policies) - Higher priority work can be given more system resources Logical WAS z/os Application Mainframe Mem-to-Mem Priority 1 CPU s WLM Priority 2 Priority 3 21 for z/os How does WAS z/os leverage WLM? Intelligent routing to LPAR s via WLM and the Sysplex Distributor = Simple Request = Complex Request WLM 34% 54% Util LPAR 1 Sysplex Distributor WLM 44% 38% 39% Util LPAR 2 22 10
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 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 n 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 11
for z/os WebSphere AS Security Mechanisms Sicherheit in 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 for z/os 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 z- specific 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 12
for z/os WebSphere z/os Application How do you scale the Application? Increase the Max s per How do you scale the Database? Use a Shared DB2 Database How do you handle failover? Use ARM for s. s are handled via WLM How is an application highly available? s are restartable via WLM. s 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 s, freeing up system resources for other work How do you route work evenly to multiple s? 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 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 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 13
for z/os Questions? 32 14