pacific application server for openedge pug challenge 2014 david cleary principal software engineer...

28
Pacific Application Server for OpenEdge PUG Challenge 2014 David Cleary Principal Software Engineer June 9, 2014

Upload: colin-rice

Post on 23-Dec-2015

229 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Pacific Application Server for OpenEdge PUG Challenge 2014 David Cleary Principal Software Engineer June 9, 2014

Pacific Application Serverfor

OpenEdge

PUG Challenge 2014

David ClearyPrincipal Software EngineerJune 9, 2014

Page 2: Pacific Application Server for OpenEdge PUG Challenge 2014 David Cleary Principal Software Engineer June 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.

Page 3: Pacific Application Server for OpenEdge PUG Challenge 2014 David Cleary Principal Software Engineer June 9, 2014

© 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

Page 4: Pacific Application Server for OpenEdge PUG Challenge 2014 David Cleary Principal Software Engineer June 9, 2014

© 2014 Progress Software Corporation. All rights reserved.4

Introduction to PASOE

Page 5: Pacific Application Server for OpenEdge PUG Challenge 2014 David Cleary Principal Software Engineer June 9, 2014

© 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

Page 6: Pacific Application Server for OpenEdge PUG Challenge 2014 David Cleary Principal Software Engineer June 9, 2014

© 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)

Page 7: Pacific Application Server for OpenEdge PUG Challenge 2014 David Cleary Principal Software Engineer June 9, 2014

© 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

Page 8: Pacific Application Server for OpenEdge PUG Challenge 2014 David Cleary Principal Software Engineer June 9, 2014

© 2014 Progress Software Corporation. All rights reserved.8

Pacific Application Serverfor

OpenEdge Architecture

(PASOE)

Page 9: Pacific Application Server for OpenEdge PUG Challenge 2014 David Cleary Principal Software Engineer June 9, 2014

© 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

Page 10: Pacific Application Server for OpenEdge PUG Challenge 2014 David Cleary Principal Software Engineer June 9, 2014

© 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

Page 11: Pacific Application Server for OpenEdge PUG Challenge 2014 David Cleary Principal Software Engineer June 9, 2014

© 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

Page 12: Pacific Application Server for OpenEdge PUG Challenge 2014 David Cleary Principal Software Engineer June 9, 2014

© 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)

Page 13: Pacific Application Server for OpenEdge PUG Challenge 2014 David Cleary Principal Software Engineer June 9, 2014

© 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

Page 14: Pacific Application Server for OpenEdge PUG Challenge 2014 David Cleary Principal Software Engineer June 9, 2014

© 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

Page 15: Pacific Application Server for OpenEdge PUG Challenge 2014 David Cleary Principal Software Engineer June 9, 2014

© 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

Page 16: Pacific Application Server for OpenEdge PUG Challenge 2014 David Cleary Principal Software Engineer June 9, 2014

© 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

Page 17: Pacific Application Server for OpenEdge PUG Challenge 2014 David Cleary Principal Software Engineer June 9, 2014

© 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

Page 18: Pacific Application Server for OpenEdge PUG Challenge 2014 David Cleary Principal Software Engineer June 9, 2014

© 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

Page 19: Pacific Application Server for OpenEdge PUG Challenge 2014 David Cleary Principal Software Engineer June 9, 2014

© 2014 Progress Software Corporation. All rights reserved.19

Instance Topology

CATALINA_HOME(version 1.0)

Inst4

Inst2

Inst3

Inst1CATALINA_BASE

Tomcat Cluster

Apachehttpd

Page 20: Pacific Application Server for OpenEdge PUG Challenge 2014 David Cleary Principal Software Engineer June 9, 2014

© 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

Page 21: Pacific Application Server for OpenEdge PUG Challenge 2014 David Cleary Principal Software Engineer June 9, 2014

© 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)

Page 22: Pacific Application Server for OpenEdge PUG Challenge 2014 David Cleary Principal Software Engineer June 9, 2014

© 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

Page 23: Pacific Application Server for OpenEdge PUG Challenge 2014 David Cleary Principal Software Engineer June 9, 2014

© 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)

Page 24: Pacific Application Server for OpenEdge PUG Challenge 2014 David Cleary Principal Software Engineer June 9, 2014

© 2014 Progress Software Corporation. All rights reserved.24

Performance and Scalability

Page 25: Pacific Application Server for OpenEdge PUG Challenge 2014 David Cleary Principal Software Engineer June 9, 2014

© 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.

Page 26: Pacific Application Server for OpenEdge PUG Challenge 2014 David Cleary Principal Software Engineer June 9, 2014

© 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)

Page 27: Pacific Application Server for OpenEdge PUG Challenge 2014 David Cleary Principal Software Engineer June 9, 2014

© 2014 Progress Software Corporation. All rights reserved.27

Early Access Availability in Coming Months

Interested? Contact Rob Straight – [email protected]

Page 28: Pacific Application Server for OpenEdge PUG Challenge 2014 David Cleary Principal Software Engineer June 9, 2014