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.