pacific application server for openedge pug challenge 2014 david cleary principal software engineer...
TRANSCRIPT
Pacific Application Serverfor
OpenEdge
PUG Challenge 2014
David ClearyPrincipal Software EngineerJune 9, 2014
© 2014 Progress Software Corporation. All rights reserved.2
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.
© 2014 Progress Software Corporation. All rights reserved.3
Agenda
Introduction to the Pacific Application Server for OpenEdge
Pacific Application Server for OpenEdge Architecture
Performance and Scalability
© 2014 Progress Software Corporation. All rights reserved.4
Introduction to PASOE
© 2014 Progress Software Corporation. All rights reserved.5
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
© 2014 Progress Software Corporation. All rights reserved.6
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)
© 2014 Progress Software Corporation. All rights reserved.7
Some Comparisons of PASOE versus traditional AppServer
PASOE
Mixed stateless & stateful ABL application models per instance
Integrated [adapter] transports
Single web application:• Less process resource consumption
• Single configuration
Two tier network connections
Many ABL sessions per OS process
AppServer
Limited to one ABL application model per AppServer instance
Independent adapters
Multiple web applications:• More process resource consumption
• Multiple configurations
Three tier network connections
One ABL session per OS process
© 2014 Progress Software Corporation. All rights reserved.8
Pacific Application Serverfor
OpenEdge Architecture
(PASOE)
© 2014 Progress Software Corporation. All rights reserved.9
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
© 2014 Progress Software Corporation. All rights reserved.10
Out With The Old – In With The New
web server
AIA
uBroker
OpenEdgeRDBMS
AgentAgentAgent
(1 session)
AdminService
PAS
OpenEdgeRDBMS
MSAgent(n sessions)
Compare the number of lines
and boxesNEW
Security risk – run in intranet only
Console admin UI
OLD
ABLPAS(adapters)
Console admin UI
OpenEdge PASOE installation
Note: remote OEM administration is optional
ABL Application
REST/SOAPservices
WSA REST
© 2014 Progress Software Corporation. All rights reserved.11
unified Pacific Application Server
Administration Services Session Management
Security Services
Common Services
PASOE Software Ecosystem
Command-lineTools
OpenEdgeManager
Progress Developer’s
Studio
RollbaseService
CorticonService
ABLPASServices
OpenEdgeRDBMS
ABL Application
REST/Mobile/SOAP servicesABL r-code
Mobile applications
OEE/OEMAdministraion
AdminService
© 2014 Progress Software Corporation. All rights reserved.12
MSAgent (ABL sessions)
PASOE Web Services
oeabl.war
Network Transports
Spring Security
oemanager.war
Spring Security
REST APIAdmin
Metrics
Logging
Properties
Common Services
JMXConsole
ABL Session Manager
MSAgent (ABL sessions)
© 2014 Progress Software Corporation. All rights reserved.13
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
© 2014 Progress Software Corporation. All rights reserved.14
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
© 2014 Progress Software Corporation. All rights reserved.15
MSAgent
MS Agent Architecture
ABL Session Manager
PASOE Web Services
Admin
Metrics
Common Services
MSAgentAdmin
ABL AdminSession
ABL Request Manager
MSAgent Pool
ABL Session &Thread Manager
FreeABL Session
Pool
FreeOS thread
Pool
Active ABL Session Pool
SharedResources OE DB
© 2014 Progress Software Corporation. All rights reserved.16
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
© 2014 Progress Software Corporation. All rights reserved.17
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
© 2014 Progress Software Corporation. All rights reserved.18
Creating PASOE Instances
PASOE (V1.0.0)
Tomcat lib bin conf logs temp work webappsPAS common/lib extras
PASOE Instance
Tomcat bin conf logs temp work webappsPAS common/lib
Start,stop, etc
ROOT
Full copy
tcman.sh create [ports] [alias-name] <target-directory>
DLC/servers/pasoe
© 2014 Progress Software Corporation. All rights reserved.19
Instance Topology
CATALINA_HOME(version 1.0)
Inst4
Inst2
Inst3
Inst1CATALINA_BASE
Tomcat Cluster
Apachehttpd
© 2014 Progress Software Corporation. All rights reserved.20
PASOE Instance Deployment Options
CATALINA_HOME(version 1.0)
Inst4
Inst2
Inst3
Inst1CATALINA_BASE
.WARapplications
Inst-ADeploy preconfigured instance .WARapplications
.ZIP deployment archive
© 2014 Progress Software Corporation. All rights reserved.21
PASOE Upgrades Using Instances
CATALINA_HOME(version 1.0)
Inst4
Inst1
Inst2
Inst3
CATALINA_BASE
CATALINA_HOME(version 1.1)
© 2014 Progress Software Corporation. All rights reserved.22
Configuration and Log Files
<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.23
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)
© 2014 Progress Software Corporation. All rights reserved.24
Performance and Scalability
© 2014 Progress Software Corporation. All rights reserved.25
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.
© 2014 Progress Software Corporation. All rights reserved.26
ATM Test
100 Clients State-Aware
100 Clients Stateless
75 Clients State-Aware
75 Clients Stateless
0 200 400 600 800 1000 1200 1400 1600 1800
PASOE (TPS)Classic (TPS)
© 2014 Progress Software Corporation. All rights reserved.27
Early Access Availability in Coming Months
Interested? Contact Rob Straight – [email protected]