Pacific Application Server for OpenEdge PUG Challenge 2014 David Cleary Principal Software Engineer June 9, 2014 Disclaimer This presentation is for informational purposes only. You are cautioned that any information contained in this presentation may change in the course of product development. This presentation may not be interpreted as a commitment on behalf of Progress, and future development and release of this product remains at the sole discretion of Progress. 2 © 2014 Progress Software Corporation. All rights reserved. Agenda Introduction to the Pacific Application Server for OpenEdge Pacific Application Server for OpenEdge Architecture Performance and Scalability 3 © 2014 Progress Software Corporation. All rights reserved. Introduction to PASOE 4 © 2014 Progress Software Corporation. All rights reserved. Pacific Application Server Platform Created from Apache Tomcat 7.0.42 distribution Configured for production by default • Default ROOT application replaced • Tomcat manager web applications not installed • Auto deployment disabled by default • Shutdown port disabled on Unix • JMX not enabled by default • Web crawler filtering enabled Spring Security Framework included Realms and roles defined to implement access control Enhanced command line tool to configure and manage server Will be default implementation for Rollbase and Corticon 5 © 2014 Progress Software Corporation. All rights reserved. Pacific Application Server for OpenEdge (PASOE) Responds to the need for tighter integration between OpenEdge and web technologies for both cloud and on-premise solutions Re-architecture and re-implementation of the traditional AppServer stack Runs in PSC’s unified Pacific Application Server (PAS) platform Simplifies web based ABL application architectures, deployment, and administration Optional server-side session context management Security built-in Open REST APIs & JMX for remote administration Two products: • Pacific Application Server for OpenEdge (development) • Pacific Application Server for OpenEdge (production) 6 © 2014 Progress Software Corporation. All rights reserved. Some Comparisons of PASOE versus traditional AppServer 7 PASOE AppServer Mixed stateless & stateful ABL application models per instance Limited to one ABL application model per AppServer instance Integrated [adapter] transports Independent adapters Single web application: Multiple web applications: • Less process resource consumption • More process resource consumption • Single configuration • Multiple configurations Two tier network connections Three tier network connections Many ABL sessions per OS process One ABL session per OS process © 2014 Progress Software Corporation. All rights reserved. Pacific Application Server for OpenEdge Architecture (PASOE) 8 © 2014 Progress Software Corporation. All rights reserved. PASOE Architectural Concepts and Terms PAS is a Java web application server with Progress extensions • Optional web application for remote administration using text, html, or JMX proxy APIs ABL services for Pacific Application Server (ABLPAS) • An collection of Java web applications and resources installed and into a PAS • Java web applications use multi-session agent OS process (MSAgent) • Optional web application for remote administration using REST APIs • ABLPAS web services can be installed into the PAS of other PSC product installations PASOE is an OpenEdge installed PAS with a pre-installed ABLPAS services You design, package, deploy, configure, debug, and control access to your ABL application in the context of a web application running in a web server 9 © 2014 Progress Software Corporation. All rights reserved. Out With The Old – In With The New Compare the number of lines and boxes OLD NEW PAS web server AIA WSA Agent Agent Agent (1 session) REST/SOAP services REST Admin Service uBroker ABLPAS (adapters) OpenEdge RDBMS Console admin UI © 2014 Progress Software Corporation. All rights reserved. Console admin UI MSAgent (n sessions) Security risk – run in intranet only OpenEdge RDBMS 10 OpenEdge PASOE installation ABL Application Note: remote OEM administration is optional PASOE Software Ecosystem unified Pacific Application Server Command-line Tools Security Services Session Management Administration Services Common Services ABLPAS Services REST/Mobile/SOAP services ABL r-code Mobile applications 11 ABL Application © 2014 Progress Software Corporation. All rights reserved. OpenEdge RDBMS PASOE Web Services oemanager.war oeabl.war Common Services Spring Security Spring Security Admin REST API Network Transports Metrics ABL Session Manager Logging Properties MSAgent (ABL sessions) MSAgent (ABL sessions) 12 © 2014 Progress Software Corporation. All rights reserved. JMX Consol e PASOE ABL Application Architecture Models Client controls ABL session model via traditional AppServer connection type Stateless session model • Equivalent to traditional AppServer state-free connection type (any session, in any Agent, in any PASOE server, can execute a client’s request) • Client can execute concurrent ABL requests – one per PASOE server connection • Client, User, and ABL application context managed entirely by the ABL business application • Asynchronous [out] requests executed within same running ABL session Stateful session model • Equivalent to traditional AppServer state-aware connection type • Sticky ABL sessions (each client request routed to same PASOE server, MSAgent, and ABL session) • Client context stored within ABL session between requests ( manually deleted) • Client can execute pipelined ABL requests to single ABL session • Asynchronous [out] requests executed within same running ABL session 13 © 2014 Progress Software Corporation. All rights reserved. AppServer Event Procedures agentStartupProc & agentShutdownProc • Executes when Session Manager starts / stops Agent OS process sessionStartupProc & sessionShutdownProc • Executes when Agent starts/stops an ABL session • Occurred in traditional AppServer when the single ABL session Agent started/stopped sessionConnectProc & sessionDisconnectProc • Executes when client starts/stops a session-managed (state-aware) connection sessionActivateProc & sessionDeactivateProc • Executes when client runs a procedure/class • Occurred in traditional AppServer only for session-free (state-free) connections 14 © 2014 Progress Software Corporation. All rights reserved. MS Agent Architecture PASOE Web Services Common Services ABL Session Manager Admin MSAgent Pool MSAgent Admin ABL Request Manager ABL Admin Session Metrics MSAgent ABL Session & Thread Manager Free ABL Session Pool Free OS thread Pool 15 © 2014 Progress Software Corporation. All rights reserved. Shared Resources Active ABL Session Pool OE DB Resource Sharing in Initial Release Shared • Self-service OpenEdge database connections • Procedure libraries • R-code • Promsg files • OS threads Not shared • Temp-tables / ProDatasets • Sockets (including SOAP and AppServer connections) • Network OpenEdge database connections • LBI & DBI files • ABL session memory 16 © 2014 Progress Software Corporation. All rights reserved. PASOE Instances PASOE relies upon PAS’s instance support • Each instance is an individual run-time server • All instances share common binaries, shell scripts, and libraries • All web applications and services are deployed to an instance The PASOE installation in DLC is a non-runnable template for creating instances An instance can be a unit of deployment (with customer’s configuration & applications) All instance lives outside of the OpenEdge install (such as WRKDIR) An instance’s lifetime can span multiple OE release installations An instance can have its own shared [web] application libraries 17 © 2014 Progress Software Corporation. All rights reserved. Creating PASOE Instances DLC/servers/pasoe PASOE (V1.0.0) Tomcat lib bin conf logs temp work webapps PAS common/lib extras PASOE Instance Tomcat Start,stop, etc Full copy ROOT bin conf logs temp work webapps PAS common/lib tcman.sh create [ports] [alias-name] <target-directory> 18 © 2014 Progress Software Corporation. All rights reserved. Instance Topology CATALINA_BASE Inst1 Inst2 Apache httpd CATALINA_HOME (version 1.0) Inst3 Inst4 Tomcat Cluster 19 © 2014 Progress Software Corporation. All rights reserved. PASOE Instance Deployment Options CATALINA_BASE Inst1 Inst2 Deploy preconfigured instance CATALINA_HOME (version 1.0) Inst3 Inst4 20 .WAR applications © 2014 Progress Software Corporation. All rights reserved. .ZIP deployment archive Inst-A .WAR applications PASOE Upgrades Using Instances CATALINA_BASE Inst1 Inst2 CATALINA_HOME (version 1.0) CATALINA_HOME (version 1.1) Inst3 Inst4 21 © 2014 Progress Software Corporation. All rights reserved. Configuration and Log Files 22 <instance>/conf/appserver.properties # PAS configuration properties <instance>/conf/openedge.properties # PASOE properties (like PROPATH) <instance>/logs/<oeabl-app>.<date>.log # PASOE web services log <instance>/logs/ROOT.agent.log # PASOE MSAgent log © 2014 Progress Software Corporation. All rights reserved. Application Deployment Options SOAP service • SOAP service descriptor .wsm generated by Proxygen • Deploy .wsm file via PASOE command line tool deploySOAP REST service • REST/Mobile service descriptor .paar file exported from PDSOE (same as 11.3) • Deploy .paar file from PASOE command line tool deployREST ABL r-code / libraries • Same as traditional AppServer ( it’s all about PROPATH ) As a OEABL Java web application (.war) • Create .war file from OEABL service with embedded ABL code and SOAP/REST services Deploy PASOE instance as a ZIP file with pre-installed OEABL services (manual) 23 © 2014 Progress Software Corporation. All rights reserved. Performance and Scalability 24 © 2014 Progress Software Corporation. All rights reserved. ATM Test Simulates ATM Banking Transactions Highly update intensive Machine Specifications • Redhat Linux Server 6.1 64 Bit • 8 CPU’s • 6 GB Ram Classic AppServer • 1 Agent per Client (75 Clients = 75 Agent Processes) PASOE • 1 Agent Period. 25 © 2014 Progress Software Corporation. All rights reserved. ATM Test 75 Clients Stateless 75 Clients State-Aware PASOE (TPS) Classic (TPS) 100 Clients Stateless 100 Clients State-Aware 0 26 © 2014 Progress Software Corporation. All rights reserved. 500 1000 1500 2000 Early Access Availability in Coming Months Interested? Contact Rob Straight – rob.straight@progress.com 27 © 2014 Progress Software Corporation. All rights reserved.