SlideShare ist ein Scribd-Unternehmen logo
1 von 40
Downloaden Sie, um offline zu lesen
PASOE Best Practices
Structure, monitoring, security
Peter Judge, Progress Software
pjudge@progress.com
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.2
$ whoami
pjudge@progress.com
Software Architect*
@ Progress since 2003
Integration-y stuff – Authentication Gateway, HTTP-Out,
Corticon et al
OE Best Practices / OERA / AutoEdge / CCS
4GL since 1996
* Aka programmer who knows PowerPoint
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.3
Agenda
 Application structure & design
 Monitoring
 Troubleshooting & Logging
 Security
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.4
MSAgent
PASOE
Application server components
Classic AppServer Components PASOE Components
AppServer
Agent
(1 ABL Session)
Agent
(1 ABL Session)
Agent
(1 ABL Session)
50 Agents
1 ABL Session1 ABL Session1 ABL Session1 ABL Session150 ABL Sessions
Session Manager
AdminServer
Client
NameServer
Client
AppServer
Agent
(1 ABL Session)
Agent
(1 ABL Session)
Agent
(1 ABL Session)
50 Agents
AppServer
Agent
(1 ABL Session)
Agent
(1 ABL Session)
Agent
(1 ABL Session)
50 Agents
State-Aware Stateless State-Free
Rest/Mobile
AIA WSA
WebSpeed
REST/Mobile
APSV (AIA)
SOAP (WSA)
REST/Mobile
WEB
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.5
Application and URI design
 Webapps and URI spaces
 Number of ABL applications
 Deployment aspects
Administrator
Application Developer
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.6
PASOE Instance oepas1 / https://example.com:8810
AVMs
rcode
cfg, img
MS Agent
Agent sessions
ABL
request
SOAP
REST
APSVWebapp Security
/SportsSvc Transports
/wsa/*
/rest/*
/apsv
Services
WEB-INF/
rcode, …
Admin
Session
Session
Mgmt
ABL
Session
Map
Instances, web-apps and ABL applications
Application security context
ABL Application sports-demo
ABL
WEB/web/*
HTTP
Requests
Clients
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.7
PASOE Instance oepas1 / https://example.com:8810
AVMs
rcode
cfg, img
MS Agent
Agent sessions
ABL
request
SOAP
REST
APSVWebapp Security
/SportsSvc Transports
/wsa/*
/rest/*
/apsv
Services
WEB-INF/
rcode, …
Admin
Session
Session
Mgmt
ABL
Session
Map
Instances, web-apps and ABL applications
Application security context
ABL Application sports-demo
ABL
WEB/web/*
HTTP
Requests
Clients
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.8
PASOE Instance oepas1 / https://example.com:8810
AVMs
rcode
cfg, img
MS Agent
Agent sessions
ABL
request
SOAP
REST
APSVWebapp Security
/SportsSvc Transports
/wsa/*
/rest/*
/apsv
Services
WEB-INF/
rcode, …
Admin
Session
Session
Mgmt
ABL
Session
Map
Instances, web-apps and ABL applications
Application security context
ABL Application sports-demo
ABL
WEB/web/*
HTTP
Requests
Clients
SOAP
REST
APSVWebapp Security
/PubSports Transports
/wsa/*
/rest/*
/apsv
Services
WEB-INF/
rcode, …
ABL
WEB/web/*
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.9
PASOE Instance oepas1 / https://example.com:8810
AVMs
rcode
cfg, img
MS Agent
Agent sessions
ABL
request
SOAP
REST
APSVWebapp Security
/SportsSvc Transports
/wsa/*
/rest/*
/apsv
Services
WEB-INF/
rcode, …
Admin
Session
Session
Mgmt
ABL
Session
Map
Instances, web-apps and ABL applications
Application security context
ABL Application sports-demo
ABL
WEB/web/*
HTTP
Requests
Clients
SOAP
REST
APSVWebapp Security
/PubSports Transports
/wsa/*
/rest/*
/apsv
Services
WEB-INF/
rcode, …
ABL
WEB/web/*
LDAP
_User
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.10
Why multiple ABL webapps?
 For ease of security configuration
• 1 URL, 1 realm easy to grok
 To allow modularisation of application
• Service interfaces
• Add-on (paid) modules
• Webapp traffic monitoring, billing, etc
 Acts as deployment package
• Rcode (and source, optionally)
• Configuration information
• Database stuff (data, schema)
• Patches/updates
 All of above could be done in a single ABL webapp, but way more complex
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.11
PASOE Instance oepas1 / https://example.com:8810
Instances, web-apps and ABL applications
rcode
cfg, img
MS Agent
Agent sessions
SessionManager
Application security context
ABL
request
SOAP
REST
APSVWebapp Security
/SportsSvc Transports
/wsa/*
/rest/*
/apsv
Services
WEB-INF/
rcode, …
ABL Application sports-demo
ABL
WEB/web/*
Application security context
ABL
request
SOAP
REST
APSVWebapp Security
/TaxCalcSvc Transports
/wsa/*
/rest/*
/apsv
Services
WEB-INF/
rcode, …
ABL Application tax-erp
ABL
WEB/web/*
rcode
cfg, img
MS Agent
Agent sessions
SessionManager
HTTP
Requests
Clients
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.12
PASOE Instance oepas1 / https://example.com:8810
Instances, web-apps and ABL applications
rcode
cfg, img
MS Agent
Agent sessions
SessionManager
Application security context
ABL
request
SOAP
REST
APSVWebapp Security
/SportsSvc Transports
/wsa/*
/rest/*
/apsv
Services
WEB-INF/
rcode, …
ABL Application sports-demo
ABL
WEB/web/*
Application security context
ABL
request
SOAP
REST
APSVWebapp Security
/TaxCalcSvc Transports
/wsa/*
/rest/*
/apsv
Services
WEB-INF/
rcode, …
ABL Application tax-erp
ABL
WEB/web/*
rcode
cfg, img
MS Agent
Agent sessions
SessionManager
HTTP
Requests
Clients
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.13
Why multiple instances & ABL apps?
 1 PASOE instance  1 ABL application
• Max scalability, flexibility
 1 PASOE instance  n ABL applications
• A family of cooperating ABL applications from single vendor in same instance
• Developer environment
• Small deployments (limited resources: physical & people)
 Created using standard tcman tool
tcman.bat deploy $DLC/servers/PASOE/extras/oeabl.war
TaxCalcSvc # web-app / URI
tax-erp # ABL app name
 Configuration in standard file/location
$CATALINA_BASE/conf/openedge.properties
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.14
Service interfaces
Service Interface Technologies (11.6+)
TomcatWebServer
Business logic (ABL)
CustomerData.cls
EmployeeData.cls
REST ADAPTER
Transport /rest
Tech Java
Config .paar file
Artifacts .paar file
• Transform
data
• Validation
• Request &
response
• Route
requests
• Error handling
PASOE Server Instance
WEB HANDLER
Transport /web
Tech ABL
Config openedge.properties
Artifacts ABL classes
Service Interface (ABL)
EmployeeWebHandler.cls
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.15
GET /web/schedule HTTP/1.1
Host: pugchallenge.org
Accept: application/json
DELETE /web/schedule HTTP/1.1
Host: pugchallenge.org
Accept: application/json
POST /web/register HTTP/1.1
Host: pugchallenge.org
Content-Type: application/json
POST /web/feedback/session HTTP/1.1
Host: pugchallenge.org
Content-Type: application/json
Routing requests
manage_sessions.p
register_attendee.p
provide_feedback.p
Web.ScheduleHandler
Web.FeedbackHandler
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.16
GET /web/schedule HTTP/1.1
Host: pugchallenge.org
Accept: application/json
DELETE /web/schedule HTTP/1.1
Host: pugchallenge.org
Accept: application/json
POST /web/register HTTP/1.1
Host: pugchallenge.org
Content-Type: application/json
POST /web/feedback/session HTTP/1.1
Host: pugchallenge.org
Content-Type: application/json
Routing requests
manage_sessions.p
register_attendee.p
provide_feedback.p
Web.ScheduleHandler
Web.FeedbackHandler
[pugpas.ConfApp.WEB]
defaultHandler = OpenEdge.Web.CompatibilityHandler // Classic WebSpeed
handler1 = Web.ScheduleHandler : /schedule/
handler2 = Web.FeedbackHandler : /feedback/session/{id}
handler3 = Web.FeedbackHandler : /feedback/session/
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.17
Single-tier architectures
UI
BL
GET <webapp>/web/app/Employees
SI handler1=Secure.AppHandler: /app/
EmployeeData.cls
ReadData(…)
UpdateData(…)
HTTP to ABL
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.18
Multi-tier architectures
UI
App.Dmz.SecurityWebHandler
SI
BL
GET <webapp>/web/app/Employees
handler1=DmzWebHandler: /app/{Entities}/
SI handler1=Secure.AppHandler: /app/
/web/app
EmployeeData.cls
ReadData(…)
UpdateData(…)
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.19
Multi-tier architectures
UI
App.Dmz.SecurityWebHandler
SI
BL
GET <webapp>/web/app/Employees
handler1=DmzWebHandler: /app/{Entities}/
SI handler1=Secure.AppHandler: /app/ RUN service/secure_app_gateway.p
/web/app /apsv
EmployeeData.cls
ReadData(…)
UpdateData(…)
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.20
Multi-tier, multi-tenant architectures
UI
App.Dmz.TenancyWebHandler
SI
GET <webapp>/web/app/Employees
handler1=DmzWebHandler: /app/{Entities}/
BL
SI handler1=Secure.AppHandler: /app/
BL
SI handler1=Secure.AppHandler: /app/
t1 t2
EmployeeData.cls
ReadData(…)
UpdateData(…)
EmployeeData.cls
ReadData(…)
UpdateData(…)
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.21
Monitoring
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.22
Resource allocation in PASOE
 We optimize for #agents, # sessions
 Process (agent) start is expensive
 Session start is expensive
• Maximise reuse of sessions
• OS-level monitoring of the agent process may not privide (much) insight
 At the OS level, thread-context switching is faster than process context switching
 We don't spread the load just for fun: if 1 session can deal with an entire application's
load, it will
 Tomcat is master for concurrent request control
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.23
Monitoring PASOE instances
 PASOE was developed with industry standard monitoring in mind
 Built into a Tomcat container it allows for JMX monitoring in the JVM
• Several available Tomcat monitoring tools available
• Connects via port or PID
 REST APIs added for easy access of PASOE
• Documented for easy use
• Easily accessible by many tools (we include one)
• Accessed via the same HTTP/S port as the application
• But since it is a separate web application we can protect it
 OpenEdge Management
• Has its own REST APIs for extensibility
• Uses PASOE REST APIs
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.24
1. REST APIs for PASOE
• Accessed via the same HTTP/S port as the application
• But since it is a separate web application we can protect it
2. JMX calls to the Tomcat JVM
• There are 2 ways to access the Tomcat JVM
– Via the PID of the java process
– Via network ports
• There are 2* ways to gather information
– Jconsole – a GUI based tool
– Java code to the JVM
– A coming-soon batch script
Rule #1: Always monitor
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.25
oemanager REST API
1. /oemanager/applications/
2. /oemanager/applications/<abl-app>/webapps
3. /oemanager/applications/<abl-app>/sessions
4. /oemanager/applications/<abl-app>/agents
1. /oemanager/applications/<abl-app>/agents/<agent-id>/sessions
5. /oemanager/applications/<abl-app>/clients
6. /oemanager/applications/<abl-app>/metrics
7. /oemanager/applications/<abl-app>/requests
rcode, cfg,
img
MS Agent
Agent sessionsABL
request
SOAP
REST
APSVWebapp Security
/SportsSvc Transports
/wsa/*
/rest/*
/apsv
Services
Admin
Session
Session
Mgmt
ABL Application sports-demo
ABL
WEB/web/*
1
2
3
4
5
6
7
4.1
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.26
 Think of metrics as asbman –query
• concurrentConnectedClients
• maxQueueDepth
• maxConcurrentClients
• readErrors
• reserveConnectionTimeouts
• timesQueued
• avgQueueDepth
REST API: /oemanager/applications/<abl-app>/metrics6
GET DELETE
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.27
REST API: /oemanager/applications/<abl-app>/sessions
{
"elapsedTimeMs": 3343,
"bound": false,
"requestState": "RUNNING",
"requestID": "",
"agentConnInfo": {
"state": "RESERVED",
"localAddr": "/127.0.0.1:60464",
"agentID": "AG-/5vs3eApTMiPV5M+W47T3w",
"connID": "AC-nRJgbuKtSNWcy6YWQknTbg",
"connPoolID": "CP-30BInu3FRwOGQB0u0LwJ/g",
"agentAddr": "localhost/127.0.0.1:62004"
},
"ablSessionID": "5",
"sessionState": "RESERVED", // IDLE,ACTIVE
"agentID": "AG-/5vs3eApTMiPV5M+W47T3w",
"clientConnInfo": {
"elapsedTimeMs": 5214,
"requestProcedure": "ngasPing.p",
"requestUrl": "http://localhost:16680/apsv",
"clientName": "172.21.75.148",
"httpSessionId": "<session-id>.pas1",
"executerThreadId": "catalina-exec-8",
"reqStartTimeStr": "2014-09-17T08:41:48.138-0400",
"requestID": "ngasPing.p",
"adapterType": "APSV", // REST,SOAP,WEB
"sessionID": "Iphz68lUQKexuHibyy6S+A"
},
"adapterType": "APSV",
"sessionPoolID": "SP-RFplWI9/Rta9j1pp+WcRyQ",
"sessionID": "Iphz68lUQKexuHibyy6S+A",
"sessionType": "SESSION_MANAGED", // SESSION_FREE
"lastAccessStr": "2014-09-17T08:41:50.006-0400"
3
GET DELETE
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.28
REST API:
/oemanager/applications/<abl-app>/agents/<agent-id>/sessions/
"AgentSession": {
"SessionId": 1,
"SessionState": "ACTIVE",
"StartTime": "2014-09-22T11:07:49.744",
"EndTime": null,
"ThreadId": 2,
"ConnectiondId": 1342,
"SessionExternalState": 0,
"SessionMemory": 978433
}
4.1
GET DELETE
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.29
REST API: /oemanager/applications/<abl-app>/requests
{
"requestElapsedTime": 1889,
"requestStartTimeStamp": "2016-09-17T10:11:26.934-0400",
"requestState": "RUNNING",
"requestID": "xfJqPACGU4jqE4pd0Auzwg",
"sessionID": "8DvBtOplRHijAj7NcSAQKw"
}
7
GET DELETE
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.30
Troubleshooting & logging
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.31
Troubleshooting
 Breakup the troubleshooting into
a) handling client requests (Tomcat instance)
b) executing ABL requests
 Where to look?
• Tomcat
• WebApp
• Session Manager
• Agent
• ABL Session
rcode, cfg,
img
MS Agent
Agent sessionsABL
request
SO
AP
RE
ST
AP
SV
Webapp Security
/SportsSvc Transports
/wsa/*
/rest/*
/apsv
Services
Admin
Session
Sessi
on
Mgmt
ABL Application sports-demo
ABL
WE
B
/web/*
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.33
The flow of a request
 Tomcat receives request
 Routes to webapp
 Routes to transport
 Routes to Session Manager
 Finds open connection (the Session Manager knows which agents have open connections)
• Connection = available worker thread in an agent that contains an avm
• Connection is the bridge between the webapp and the avm process
(an open connection is a worker thread , NOT a session)
• Session manager
– Has list of agents (Ordered by time of instantiation)
o Agent has list of connections (with status)
 Finds an available session
• Worker thread looks in the agent's pool of sessions
 Executes ABL
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.34
Logging is your friend
 The service logging configuration found in
<web-app-name>/WEB-INF/logging.xml
<project>/PASOEContent/WEB-INF/logging.xml
 DEBUG and TRACE level produce lots of logging – monitor log file sizes
 LOG-MANAGER for ABL-related logging
<!-- OEABL Security -->
<logger name="com.progress.appserv.services.security" level="INFO"/>
<!-- Spring Security -->
<logger name="org.springframework" level="INFO"/>
<logger name="org.springframework.security.web.access" level="INFO"/>
<logger name="org.springframework.security.saml" level="INFO"/>
<!-- SAML -->
<logger name="org.opensaml" level="INFO"/>
<logger name=" PROTOCOL_MESSAGE " level="INFO"/>
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.35
Logging configuration
 Agent logfile rollovers
 Logfile archives
tcman clean -A
agentLogFile=
Location, name, and roll-over of the agent log file.
To have the agent log file rollover at midnight add {yyyy-
MM-dd} for the same format as other log files.
Example: <path-to>/<instancename>.agent.{yyyy-MM-dd}.log
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.36
Security
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.37
 Deploy the REST API application
<instance>/bin/tcman deploy $DLC/servers/pasoe/extras/oemanager.war
 Limit access to this application to only localhost requests
• Add filter to <instance>/webapps/oemanager/WEB-INF/web.xml
 Access control
• Change the default passwords for access
<instance>/conf/tomcat-user.xml
• Remove the default & sample users and password
• Add new user(s) and password(s)
Securing the oemanager webapp
<user username="tomcat" password="tomcat" roles="ROLE_PSCAdmin,ROLE_PSCOper,ROLE_PSCUser" />
<user username="tcuser1" password="tcuser" roles="ROLE_PSCUser" />
<user username="tcuser2" password="tcuser" roles="ROLE_PSCNone" />
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.38
Securing the oemanager webapp
<!-- END:container.security -->
<filter>
<filter-name>Remote Address Filter</filter-name>
<filter-class>org.apache.catalina.filters.RemoteAddrFilter
</filter-class>
<init-param>
<param-name>allow</param-name>
<param-value>127.d+.d+.d+|::1|0:0:0:0:0:0:0:1</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Remote Address Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
© 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.39
Securing the ROOT application
The default ROOT webapp is the OpenEdge version (oeabl.war). If you are using multiple
webapps and not ROOT …
 Rather use the Tomcat default version in $dlc/servers/paseo/extras
<instance>/bin/tcman deploy $DLC/servers/pasoe/extras/ROOT.war
 Alternatively use a secured/hardened webapp as ROOT
• There are plenty of guides on how to secure a Tomcat webapp
Questions?
Progress application server for openedge best practices - PUG Baltic Annual Conference 2017

Weitere ähnliche Inhalte

Was ist angesagt?

Building a High-Performance Distributed Task Queue on MongoDB
Building a High-Performance Distributed Task Queue on MongoDBBuilding a High-Performance Distributed Task Queue on MongoDB
Building a High-Performance Distributed Task Queue on MongoDBMongoDB
 
Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...
Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...
Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...Amazon Web Services Korea
 
PostgreSQLの範囲型と排他制約
PostgreSQLの範囲型と排他制約PostgreSQLの範囲型と排他制約
PostgreSQLの範囲型と排他制約Akio Ishida
 
MySQL Connectors 8.0.19 & DNS SRV
MySQL Connectors 8.0.19 & DNS SRVMySQL Connectors 8.0.19 & DNS SRV
MySQL Connectors 8.0.19 & DNS SRVKenny Gryp
 
(BDT309) Data Science & Best Practices for Apache Spark on Amazon EMR
(BDT309) Data Science & Best Practices for Apache Spark on Amazon EMR(BDT309) Data Science & Best Practices for Apache Spark on Amazon EMR
(BDT309) Data Science & Best Practices for Apache Spark on Amazon EMRAmazon Web Services
 
PostgreSQL and Benchmarks
PostgreSQL and BenchmarksPostgreSQL and Benchmarks
PostgreSQL and BenchmarksJignesh Shah
 
Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬)
Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬) Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬)
Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬) Amazon Web Services Korea
 
MySQL Failover and Orchestrator
MySQL Failover and OrchestratorMySQL Failover and Orchestrator
MySQL Failover and OrchestratorSimon J Mudd
 
MySQL Multi Master Replication
MySQL Multi Master ReplicationMySQL Multi Master Replication
MySQL Multi Master ReplicationMoshe Kaplan
 
Terraform Modules Restructured
Terraform Modules RestructuredTerraform Modules Restructured
Terraform Modules RestructuredDoiT International
 
Creating_scheduled_reports_with_Zabbix.pdf
Creating_scheduled_reports_with_Zabbix.pdfCreating_scheduled_reports_with_Zabbix.pdf
Creating_scheduled_reports_with_Zabbix.pdfITDispendik
 
Salesforce enabling real time scenarios at scale using kafka
Salesforce enabling real time scenarios at scale using kafkaSalesforce enabling real time scenarios at scale using kafka
Salesforce enabling real time scenarios at scale using kafkaThomas Alex
 
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera ) Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera ) Mydbops
 
Demystifying flink memory allocation and tuning - Roshan Naik, Uber
Demystifying flink memory allocation and tuning - Roshan Naik, UberDemystifying flink memory allocation and tuning - Roshan Naik, Uber
Demystifying flink memory allocation and tuning - Roshan Naik, UberFlink Forward
 
DAT202_Getting started with Amazon Aurora
DAT202_Getting started with Amazon AuroraDAT202_Getting started with Amazon Aurora
DAT202_Getting started with Amazon AuroraAmazon Web Services
 
MySQL Performance Schema in Action
MySQL Performance Schema in ActionMySQL Performance Schema in Action
MySQL Performance Schema in ActionSveta Smirnova
 
Dual write strategies for microservices
Dual write strategies for microservicesDual write strategies for microservices
Dual write strategies for microservicesBilgin Ibryam
 
MySQL Monitoring with Zabbix
MySQL Monitoring with ZabbixMySQL Monitoring with Zabbix
MySQL Monitoring with ZabbixFromDual GmbH
 
Introduction to GraphQL using Nautobot and Arista cEOS
Introduction to GraphQL using Nautobot and Arista cEOSIntroduction to GraphQL using Nautobot and Arista cEOS
Introduction to GraphQL using Nautobot and Arista cEOSJoel W. King
 

Was ist angesagt? (20)

Building a High-Performance Distributed Task Queue on MongoDB
Building a High-Performance Distributed Task Queue on MongoDBBuilding a High-Performance Distributed Task Queue on MongoDB
Building a High-Performance Distributed Task Queue on MongoDB
 
Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...
Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...
Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...
 
PostgreSQLの範囲型と排他制約
PostgreSQLの範囲型と排他制約PostgreSQLの範囲型と排他制約
PostgreSQLの範囲型と排他制約
 
MySQL Connectors 8.0.19 & DNS SRV
MySQL Connectors 8.0.19 & DNS SRVMySQL Connectors 8.0.19 & DNS SRV
MySQL Connectors 8.0.19 & DNS SRV
 
(BDT309) Data Science & Best Practices for Apache Spark on Amazon EMR
(BDT309) Data Science & Best Practices for Apache Spark on Amazon EMR(BDT309) Data Science & Best Practices for Apache Spark on Amazon EMR
(BDT309) Data Science & Best Practices for Apache Spark on Amazon EMR
 
PostgreSQL and Benchmarks
PostgreSQL and BenchmarksPostgreSQL and Benchmarks
PostgreSQL and Benchmarks
 
Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬)
Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬) Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬)
Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬)
 
Query logging with proxysql
Query logging with proxysqlQuery logging with proxysql
Query logging with proxysql
 
MySQL Failover and Orchestrator
MySQL Failover and OrchestratorMySQL Failover and Orchestrator
MySQL Failover and Orchestrator
 
MySQL Multi Master Replication
MySQL Multi Master ReplicationMySQL Multi Master Replication
MySQL Multi Master Replication
 
Terraform Modules Restructured
Terraform Modules RestructuredTerraform Modules Restructured
Terraform Modules Restructured
 
Creating_scheduled_reports_with_Zabbix.pdf
Creating_scheduled_reports_with_Zabbix.pdfCreating_scheduled_reports_with_Zabbix.pdf
Creating_scheduled_reports_with_Zabbix.pdf
 
Salesforce enabling real time scenarios at scale using kafka
Salesforce enabling real time scenarios at scale using kafkaSalesforce enabling real time scenarios at scale using kafka
Salesforce enabling real time scenarios at scale using kafka
 
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera ) Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
 
Demystifying flink memory allocation and tuning - Roshan Naik, Uber
Demystifying flink memory allocation and tuning - Roshan Naik, UberDemystifying flink memory allocation and tuning - Roshan Naik, Uber
Demystifying flink memory allocation and tuning - Roshan Naik, Uber
 
DAT202_Getting started with Amazon Aurora
DAT202_Getting started with Amazon AuroraDAT202_Getting started with Amazon Aurora
DAT202_Getting started with Amazon Aurora
 
MySQL Performance Schema in Action
MySQL Performance Schema in ActionMySQL Performance Schema in Action
MySQL Performance Schema in Action
 
Dual write strategies for microservices
Dual write strategies for microservicesDual write strategies for microservices
Dual write strategies for microservices
 
MySQL Monitoring with Zabbix
MySQL Monitoring with ZabbixMySQL Monitoring with Zabbix
MySQL Monitoring with Zabbix
 
Introduction to GraphQL using Nautobot and Arista cEOS
Introduction to GraphQL using Nautobot and Arista cEOSIntroduction to GraphQL using Nautobot and Arista cEOS
Introduction to GraphQL using Nautobot and Arista cEOS
 

Ähnlich wie Progress application server for openedge best practices - PUG Baltic Annual Conference 2017

Oracle REST Data Services Best Practices/ Overview
Oracle REST Data Services Best Practices/ OverviewOracle REST Data Services Best Practices/ Overview
Oracle REST Data Services Best Practices/ OverviewKris Rice
 
Explore Advanced CA Release Automation Configuration Topics
Explore Advanced CA Release Automation Configuration TopicsExplore Advanced CA Release Automation Configuration Topics
Explore Advanced CA Release Automation Configuration TopicsCA Technologies
 
Using Istio to Secure & Monitor Your Services
Using Istio to Secure & Monitor Your ServicesUsing Istio to Secure & Monitor Your Services
Using Istio to Secure & Monitor Your ServicesAlcide
 
Introduction to the Wave Platform API
Introduction to the Wave Platform APIIntroduction to the Wave Platform API
Introduction to the Wave Platform APISalesforce Developers
 
Sap Process Integration
Sap Process Integration Sap Process Integration
Sap Process Integration Tauhidul Islam
 
Introduction to Alfresco Surf Platform
Introduction to Alfresco Surf PlatformIntroduction to Alfresco Surf Platform
Introduction to Alfresco Surf PlatformAlfresco Software
 
Implementing Data Caching and Data Synching Using Oracle MAF
Implementing Data Caching and Data Synching Using Oracle MAFImplementing Data Caching and Data Synching Using Oracle MAF
Implementing Data Caching and Data Synching Using Oracle MAFSteven Davelaar
 
CA 7 Workload Agent Diagnostics - CA Workload Automation Technology Summit (W...
CA 7 Workload Agent Diagnostics - CA Workload Automation Technology Summit (W...CA 7 Workload Agent Diagnostics - CA Workload Automation Technology Summit (W...
CA 7 Workload Agent Diagnostics - CA Workload Automation Technology Summit (W...Extra Technology
 
Building Rich Applications with Appcelerator
Building Rich Applications with AppceleratorBuilding Rich Applications with Appcelerator
Building Rich Applications with AppceleratorMatt Raible
 
Introduction to ASP.NET
Introduction to ASP.NETIntroduction to ASP.NET
Introduction to ASP.NETPeter Gfader
 
How to Use the CA Application Performance Management Command Center for Appli...
How to Use the CA Application Performance Management Command Center for Appli...How to Use the CA Application Performance Management Command Center for Appli...
How to Use the CA Application Performance Management Command Center for Appli...CA Technologies
 
REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)Sascha Wenninger
 
Introductiontoapachecamel 110131060022-phpapp01
Introductiontoapachecamel 110131060022-phpapp01Introductiontoapachecamel 110131060022-phpapp01
Introductiontoapachecamel 110131060022-phpapp01dheeraj kumar
 
PLNOG15: The Power of the Open Standards SDN API’s - Mikael Holmberg
PLNOG15: The Power of the Open Standards SDN API’s - Mikael Holmberg PLNOG15: The Power of the Open Standards SDN API’s - Mikael Holmberg
PLNOG15: The Power of the Open Standards SDN API’s - Mikael Holmberg PROIDEA
 

Ähnlich wie Progress application server for openedge best practices - PUG Baltic Annual Conference 2017 (20)

Oracle REST Data Services Best Practices/ Overview
Oracle REST Data Services Best Practices/ OverviewOracle REST Data Services Best Practices/ Overview
Oracle REST Data Services Best Practices/ Overview
 
Explore Advanced CA Release Automation Configuration Topics
Explore Advanced CA Release Automation Configuration TopicsExplore Advanced CA Release Automation Configuration Topics
Explore Advanced CA Release Automation Configuration Topics
 
JAX-RS.next
JAX-RS.nextJAX-RS.next
JAX-RS.next
 
Using Istio to Secure & Monitor Your Services
Using Istio to Secure & Monitor Your ServicesUsing Istio to Secure & Monitor Your Services
Using Istio to Secure & Monitor Your Services
 
Introduction to the Wave Platform API
Introduction to the Wave Platform APIIntroduction to the Wave Platform API
Introduction to the Wave Platform API
 
Sap Process Integration
Sap Process Integration Sap Process Integration
Sap Process Integration
 
Introduction to Alfresco Surf Platform
Introduction to Alfresco Surf PlatformIntroduction to Alfresco Surf Platform
Introduction to Alfresco Surf Platform
 
Implementing Data Caching and Data Synching Using Oracle MAF
Implementing Data Caching and Data Synching Using Oracle MAFImplementing Data Caching and Data Synching Using Oracle MAF
Implementing Data Caching and Data Synching Using Oracle MAF
 
CA 7 Workload Agent Diagnostics - CA Workload Automation Technology Summit (W...
CA 7 Workload Agent Diagnostics - CA Workload Automation Technology Summit (W...CA 7 Workload Agent Diagnostics - CA Workload Automation Technology Summit (W...
CA 7 Workload Agent Diagnostics - CA Workload Automation Technology Summit (W...
 
Building Rich Applications with Appcelerator
Building Rich Applications with AppceleratorBuilding Rich Applications with Appcelerator
Building Rich Applications with Appcelerator
 
Oracle API Gateway
Oracle API GatewayOracle API Gateway
Oracle API Gateway
 
Introduction to ASP.NET
Introduction to ASP.NETIntroduction to ASP.NET
Introduction to ASP.NET
 
How to Use the CA Application Performance Management Command Center for Appli...
How to Use the CA Application Performance Management Command Center for Appli...How to Use the CA Application Performance Management Command Center for Appli...
How to Use the CA Application Performance Management Command Center for Appli...
 
SAP PI and SOA Overview
SAP PI and SOA OverviewSAP PI and SOA Overview
SAP PI and SOA Overview
 
REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)
 
Si so product 1 day technical
Si so product 1 day technicalSi so product 1 day technical
Si so product 1 day technical
 
Introductiontoapachecamel 110131060022-phpapp01
Introductiontoapachecamel 110131060022-phpapp01Introductiontoapachecamel 110131060022-phpapp01
Introductiontoapachecamel 110131060022-phpapp01
 
Sun Web Server Brief
Sun Web Server BriefSun Web Server Brief
Sun Web Server Brief
 
PLNOG15: The Power of the Open Standards SDN API’s - Mikael Holmberg
PLNOG15: The Power of the Open Standards SDN API’s - Mikael Holmberg PLNOG15: The Power of the Open Standards SDN API’s - Mikael Holmberg
PLNOG15: The Power of the Open Standards SDN API’s - Mikael Holmberg
 
Kscope presentation 2013
Kscope presentation 2013Kscope presentation 2013
Kscope presentation 2013
 

Mehr von Alen Leit

Aurea Software successful integration case study - Patient Travels (patient p...
Aurea Software successful integration case study - Patient Travels (patient p...Aurea Software successful integration case study - Patient Travels (patient p...
Aurea Software successful integration case study - Patient Travels (patient p...Alen Leit
 
Welcome to PUG Baltic Annual Conference 2017
Welcome to PUG Baltic Annual Conference 2017Welcome to PUG Baltic Annual Conference 2017
Welcome to PUG Baltic Annual Conference 2017Alen Leit
 
First steps in implementing Corticon for OE insurance application - PUG Balti...
First steps in implementing Corticon for OE insurance application - PUG Balti...First steps in implementing Corticon for OE insurance application - PUG Balti...
First steps in implementing Corticon for OE insurance application - PUG Balti...Alen Leit
 
Progress OE Roadmap and Vision - PUG Baltic Annual Conference 2017
Progress OE Roadmap and Vision - PUG Baltic Annual Conference 2017Progress OE Roadmap and Vision - PUG Baltic Annual Conference 2017
Progress OE Roadmap and Vision - PUG Baltic Annual Conference 2017Alen Leit
 
Progress core product group strategy and roadmap - PUG Baltic Annual Conferen...
Progress core product group strategy and roadmap - PUG Baltic Annual Conferen...Progress core product group strategy and roadmap - PUG Baltic Annual Conferen...
Progress core product group strategy and roadmap - PUG Baltic Annual Conferen...Alen Leit
 
Kendo UI workshop introduction - PUG Baltic Annual Conference 2017
Kendo UI workshop introduction - PUG Baltic Annual Conference 2017Kendo UI workshop introduction - PUG Baltic Annual Conference 2017
Kendo UI workshop introduction - PUG Baltic Annual Conference 2017Alen Leit
 
ABL - 4GL Code Performance - PUG Baltic Annual Conference 2017
ABL - 4GL Code Performance - PUG Baltic Annual Conference 2017ABL - 4GL Code Performance - PUG Baltic Annual Conference 2017
ABL - 4GL Code Performance - PUG Baltic Annual Conference 2017Alen Leit
 
Progress software developers course - PUG Baltic Annual Conference 2017
Progress software developers course - PUG Baltic Annual Conference 2017Progress software developers course - PUG Baltic Annual Conference 2017
Progress software developers course - PUG Baltic Annual Conference 2017Alen Leit
 
Laerdal Medical experience with Aurea products - Aurea & Helmes Nordic Semina...
Laerdal Medical experience with Aurea products - Aurea & Helmes Nordic Semina...Laerdal Medical experience with Aurea products - Aurea & Helmes Nordic Semina...
Laerdal Medical experience with Aurea products - Aurea & Helmes Nordic Semina...Alen Leit
 
Aurea Enterprise Road map (cloud, microservies etc) - Aurea & Helmes Nordic S...
Aurea Enterprise Road map (cloud, microservies etc) - Aurea & Helmes Nordic S...Aurea Enterprise Road map (cloud, microservies etc) - Aurea & Helmes Nordic S...
Aurea Enterprise Road map (cloud, microservies etc) - Aurea & Helmes Nordic S...Alen Leit
 
Mine pasientreiser Success story - How Patient Travels delivered patient port...
Mine pasientreiser Success story - How Patient Travels delivered patient port...Mine pasientreiser Success story - How Patient Travels delivered patient port...
Mine pasientreiser Success story - How Patient Travels delivered patient port...Alen Leit
 
Aurea PRIME overview - Aurea & Helmes Nordic Seminar 2017
Aurea PRIME overview - Aurea & Helmes Nordic Seminar 2017Aurea PRIME overview - Aurea & Helmes Nordic Seminar 2017
Aurea PRIME overview - Aurea & Helmes Nordic Seminar 2017Alen Leit
 
Creating value with Aurea CRM - Aurea & Helmes Nordic Seminar 2017
Creating value with Aurea CRM - Aurea & Helmes Nordic Seminar 2017Creating value with Aurea CRM - Aurea & Helmes Nordic Seminar 2017
Creating value with Aurea CRM - Aurea & Helmes Nordic Seminar 2017Alen Leit
 

Mehr von Alen Leit (13)

Aurea Software successful integration case study - Patient Travels (patient p...
Aurea Software successful integration case study - Patient Travels (patient p...Aurea Software successful integration case study - Patient Travels (patient p...
Aurea Software successful integration case study - Patient Travels (patient p...
 
Welcome to PUG Baltic Annual Conference 2017
Welcome to PUG Baltic Annual Conference 2017Welcome to PUG Baltic Annual Conference 2017
Welcome to PUG Baltic Annual Conference 2017
 
First steps in implementing Corticon for OE insurance application - PUG Balti...
First steps in implementing Corticon for OE insurance application - PUG Balti...First steps in implementing Corticon for OE insurance application - PUG Balti...
First steps in implementing Corticon for OE insurance application - PUG Balti...
 
Progress OE Roadmap and Vision - PUG Baltic Annual Conference 2017
Progress OE Roadmap and Vision - PUG Baltic Annual Conference 2017Progress OE Roadmap and Vision - PUG Baltic Annual Conference 2017
Progress OE Roadmap and Vision - PUG Baltic Annual Conference 2017
 
Progress core product group strategy and roadmap - PUG Baltic Annual Conferen...
Progress core product group strategy and roadmap - PUG Baltic Annual Conferen...Progress core product group strategy and roadmap - PUG Baltic Annual Conferen...
Progress core product group strategy and roadmap - PUG Baltic Annual Conferen...
 
Kendo UI workshop introduction - PUG Baltic Annual Conference 2017
Kendo UI workshop introduction - PUG Baltic Annual Conference 2017Kendo UI workshop introduction - PUG Baltic Annual Conference 2017
Kendo UI workshop introduction - PUG Baltic Annual Conference 2017
 
ABL - 4GL Code Performance - PUG Baltic Annual Conference 2017
ABL - 4GL Code Performance - PUG Baltic Annual Conference 2017ABL - 4GL Code Performance - PUG Baltic Annual Conference 2017
ABL - 4GL Code Performance - PUG Baltic Annual Conference 2017
 
Progress software developers course - PUG Baltic Annual Conference 2017
Progress software developers course - PUG Baltic Annual Conference 2017Progress software developers course - PUG Baltic Annual Conference 2017
Progress software developers course - PUG Baltic Annual Conference 2017
 
Laerdal Medical experience with Aurea products - Aurea & Helmes Nordic Semina...
Laerdal Medical experience with Aurea products - Aurea & Helmes Nordic Semina...Laerdal Medical experience with Aurea products - Aurea & Helmes Nordic Semina...
Laerdal Medical experience with Aurea products - Aurea & Helmes Nordic Semina...
 
Aurea Enterprise Road map (cloud, microservies etc) - Aurea & Helmes Nordic S...
Aurea Enterprise Road map (cloud, microservies etc) - Aurea & Helmes Nordic S...Aurea Enterprise Road map (cloud, microservies etc) - Aurea & Helmes Nordic S...
Aurea Enterprise Road map (cloud, microservies etc) - Aurea & Helmes Nordic S...
 
Mine pasientreiser Success story - How Patient Travels delivered patient port...
Mine pasientreiser Success story - How Patient Travels delivered patient port...Mine pasientreiser Success story - How Patient Travels delivered patient port...
Mine pasientreiser Success story - How Patient Travels delivered patient port...
 
Aurea PRIME overview - Aurea & Helmes Nordic Seminar 2017
Aurea PRIME overview - Aurea & Helmes Nordic Seminar 2017Aurea PRIME overview - Aurea & Helmes Nordic Seminar 2017
Aurea PRIME overview - Aurea & Helmes Nordic Seminar 2017
 
Creating value with Aurea CRM - Aurea & Helmes Nordic Seminar 2017
Creating value with Aurea CRM - Aurea & Helmes Nordic Seminar 2017Creating value with Aurea CRM - Aurea & Helmes Nordic Seminar 2017
Creating value with Aurea CRM - Aurea & Helmes Nordic Seminar 2017
 

Kürzlich hochgeladen

Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfYashikaSharma391629
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 

Kürzlich hochgeladen (20)

Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 

Progress application server for openedge best practices - PUG Baltic Annual Conference 2017

  • 1. PASOE Best Practices Structure, monitoring, security Peter Judge, Progress Software pjudge@progress.com
  • 2. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.2 $ whoami pjudge@progress.com Software Architect* @ Progress since 2003 Integration-y stuff – Authentication Gateway, HTTP-Out, Corticon et al OE Best Practices / OERA / AutoEdge / CCS 4GL since 1996 * Aka programmer who knows PowerPoint
  • 3. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.3 Agenda  Application structure & design  Monitoring  Troubleshooting & Logging  Security
  • 4. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.4 MSAgent PASOE Application server components Classic AppServer Components PASOE Components AppServer Agent (1 ABL Session) Agent (1 ABL Session) Agent (1 ABL Session) 50 Agents 1 ABL Session1 ABL Session1 ABL Session1 ABL Session150 ABL Sessions Session Manager AdminServer Client NameServer Client AppServer Agent (1 ABL Session) Agent (1 ABL Session) Agent (1 ABL Session) 50 Agents AppServer Agent (1 ABL Session) Agent (1 ABL Session) Agent (1 ABL Session) 50 Agents State-Aware Stateless State-Free Rest/Mobile AIA WSA WebSpeed REST/Mobile APSV (AIA) SOAP (WSA) REST/Mobile WEB
  • 5. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.5 Application and URI design  Webapps and URI spaces  Number of ABL applications  Deployment aspects Administrator Application Developer
  • 6. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.6 PASOE Instance oepas1 / https://example.com:8810 AVMs rcode cfg, img MS Agent Agent sessions ABL request SOAP REST APSVWebapp Security /SportsSvc Transports /wsa/* /rest/* /apsv Services WEB-INF/ rcode, … Admin Session Session Mgmt ABL Session Map Instances, web-apps and ABL applications Application security context ABL Application sports-demo ABL WEB/web/* HTTP Requests Clients
  • 7. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.7 PASOE Instance oepas1 / https://example.com:8810 AVMs rcode cfg, img MS Agent Agent sessions ABL request SOAP REST APSVWebapp Security /SportsSvc Transports /wsa/* /rest/* /apsv Services WEB-INF/ rcode, … Admin Session Session Mgmt ABL Session Map Instances, web-apps and ABL applications Application security context ABL Application sports-demo ABL WEB/web/* HTTP Requests Clients
  • 8. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.8 PASOE Instance oepas1 / https://example.com:8810 AVMs rcode cfg, img MS Agent Agent sessions ABL request SOAP REST APSVWebapp Security /SportsSvc Transports /wsa/* /rest/* /apsv Services WEB-INF/ rcode, … Admin Session Session Mgmt ABL Session Map Instances, web-apps and ABL applications Application security context ABL Application sports-demo ABL WEB/web/* HTTP Requests Clients SOAP REST APSVWebapp Security /PubSports Transports /wsa/* /rest/* /apsv Services WEB-INF/ rcode, … ABL WEB/web/*
  • 9. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.9 PASOE Instance oepas1 / https://example.com:8810 AVMs rcode cfg, img MS Agent Agent sessions ABL request SOAP REST APSVWebapp Security /SportsSvc Transports /wsa/* /rest/* /apsv Services WEB-INF/ rcode, … Admin Session Session Mgmt ABL Session Map Instances, web-apps and ABL applications Application security context ABL Application sports-demo ABL WEB/web/* HTTP Requests Clients SOAP REST APSVWebapp Security /PubSports Transports /wsa/* /rest/* /apsv Services WEB-INF/ rcode, … ABL WEB/web/* LDAP _User
  • 10. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.10 Why multiple ABL webapps?  For ease of security configuration • 1 URL, 1 realm easy to grok  To allow modularisation of application • Service interfaces • Add-on (paid) modules • Webapp traffic monitoring, billing, etc  Acts as deployment package • Rcode (and source, optionally) • Configuration information • Database stuff (data, schema) • Patches/updates  All of above could be done in a single ABL webapp, but way more complex
  • 11. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.11 PASOE Instance oepas1 / https://example.com:8810 Instances, web-apps and ABL applications rcode cfg, img MS Agent Agent sessions SessionManager Application security context ABL request SOAP REST APSVWebapp Security /SportsSvc Transports /wsa/* /rest/* /apsv Services WEB-INF/ rcode, … ABL Application sports-demo ABL WEB/web/* Application security context ABL request SOAP REST APSVWebapp Security /TaxCalcSvc Transports /wsa/* /rest/* /apsv Services WEB-INF/ rcode, … ABL Application tax-erp ABL WEB/web/* rcode cfg, img MS Agent Agent sessions SessionManager HTTP Requests Clients
  • 12. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.12 PASOE Instance oepas1 / https://example.com:8810 Instances, web-apps and ABL applications rcode cfg, img MS Agent Agent sessions SessionManager Application security context ABL request SOAP REST APSVWebapp Security /SportsSvc Transports /wsa/* /rest/* /apsv Services WEB-INF/ rcode, … ABL Application sports-demo ABL WEB/web/* Application security context ABL request SOAP REST APSVWebapp Security /TaxCalcSvc Transports /wsa/* /rest/* /apsv Services WEB-INF/ rcode, … ABL Application tax-erp ABL WEB/web/* rcode cfg, img MS Agent Agent sessions SessionManager HTTP Requests Clients
  • 13. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.13 Why multiple instances & ABL apps?  1 PASOE instance  1 ABL application • Max scalability, flexibility  1 PASOE instance  n ABL applications • A family of cooperating ABL applications from single vendor in same instance • Developer environment • Small deployments (limited resources: physical & people)  Created using standard tcman tool tcman.bat deploy $DLC/servers/PASOE/extras/oeabl.war TaxCalcSvc # web-app / URI tax-erp # ABL app name  Configuration in standard file/location $CATALINA_BASE/conf/openedge.properties
  • 14. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.14 Service interfaces Service Interface Technologies (11.6+) TomcatWebServer Business logic (ABL) CustomerData.cls EmployeeData.cls REST ADAPTER Transport /rest Tech Java Config .paar file Artifacts .paar file • Transform data • Validation • Request & response • Route requests • Error handling PASOE Server Instance WEB HANDLER Transport /web Tech ABL Config openedge.properties Artifacts ABL classes Service Interface (ABL) EmployeeWebHandler.cls
  • 15. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.15 GET /web/schedule HTTP/1.1 Host: pugchallenge.org Accept: application/json DELETE /web/schedule HTTP/1.1 Host: pugchallenge.org Accept: application/json POST /web/register HTTP/1.1 Host: pugchallenge.org Content-Type: application/json POST /web/feedback/session HTTP/1.1 Host: pugchallenge.org Content-Type: application/json Routing requests manage_sessions.p register_attendee.p provide_feedback.p Web.ScheduleHandler Web.FeedbackHandler
  • 16. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.16 GET /web/schedule HTTP/1.1 Host: pugchallenge.org Accept: application/json DELETE /web/schedule HTTP/1.1 Host: pugchallenge.org Accept: application/json POST /web/register HTTP/1.1 Host: pugchallenge.org Content-Type: application/json POST /web/feedback/session HTTP/1.1 Host: pugchallenge.org Content-Type: application/json Routing requests manage_sessions.p register_attendee.p provide_feedback.p Web.ScheduleHandler Web.FeedbackHandler [pugpas.ConfApp.WEB] defaultHandler = OpenEdge.Web.CompatibilityHandler // Classic WebSpeed handler1 = Web.ScheduleHandler : /schedule/ handler2 = Web.FeedbackHandler : /feedback/session/{id} handler3 = Web.FeedbackHandler : /feedback/session/
  • 17. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.17 Single-tier architectures UI BL GET <webapp>/web/app/Employees SI handler1=Secure.AppHandler: /app/ EmployeeData.cls ReadData(…) UpdateData(…) HTTP to ABL
  • 18. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.18 Multi-tier architectures UI App.Dmz.SecurityWebHandler SI BL GET <webapp>/web/app/Employees handler1=DmzWebHandler: /app/{Entities}/ SI handler1=Secure.AppHandler: /app/ /web/app EmployeeData.cls ReadData(…) UpdateData(…)
  • 19. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.19 Multi-tier architectures UI App.Dmz.SecurityWebHandler SI BL GET <webapp>/web/app/Employees handler1=DmzWebHandler: /app/{Entities}/ SI handler1=Secure.AppHandler: /app/ RUN service/secure_app_gateway.p /web/app /apsv EmployeeData.cls ReadData(…) UpdateData(…)
  • 20. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.20 Multi-tier, multi-tenant architectures UI App.Dmz.TenancyWebHandler SI GET <webapp>/web/app/Employees handler1=DmzWebHandler: /app/{Entities}/ BL SI handler1=Secure.AppHandler: /app/ BL SI handler1=Secure.AppHandler: /app/ t1 t2 EmployeeData.cls ReadData(…) UpdateData(…) EmployeeData.cls ReadData(…) UpdateData(…)
  • 21. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.21 Monitoring
  • 22. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.22 Resource allocation in PASOE  We optimize for #agents, # sessions  Process (agent) start is expensive  Session start is expensive • Maximise reuse of sessions • OS-level monitoring of the agent process may not privide (much) insight  At the OS level, thread-context switching is faster than process context switching  We don't spread the load just for fun: if 1 session can deal with an entire application's load, it will  Tomcat is master for concurrent request control
  • 23. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.23 Monitoring PASOE instances  PASOE was developed with industry standard monitoring in mind  Built into a Tomcat container it allows for JMX monitoring in the JVM • Several available Tomcat monitoring tools available • Connects via port or PID  REST APIs added for easy access of PASOE • Documented for easy use • Easily accessible by many tools (we include one) • Accessed via the same HTTP/S port as the application • But since it is a separate web application we can protect it  OpenEdge Management • Has its own REST APIs for extensibility • Uses PASOE REST APIs
  • 24. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.24 1. REST APIs for PASOE • Accessed via the same HTTP/S port as the application • But since it is a separate web application we can protect it 2. JMX calls to the Tomcat JVM • There are 2 ways to access the Tomcat JVM – Via the PID of the java process – Via network ports • There are 2* ways to gather information – Jconsole – a GUI based tool – Java code to the JVM – A coming-soon batch script Rule #1: Always monitor
  • 25. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.25 oemanager REST API 1. /oemanager/applications/ 2. /oemanager/applications/<abl-app>/webapps 3. /oemanager/applications/<abl-app>/sessions 4. /oemanager/applications/<abl-app>/agents 1. /oemanager/applications/<abl-app>/agents/<agent-id>/sessions 5. /oemanager/applications/<abl-app>/clients 6. /oemanager/applications/<abl-app>/metrics 7. /oemanager/applications/<abl-app>/requests rcode, cfg, img MS Agent Agent sessionsABL request SOAP REST APSVWebapp Security /SportsSvc Transports /wsa/* /rest/* /apsv Services Admin Session Session Mgmt ABL Application sports-demo ABL WEB/web/* 1 2 3 4 5 6 7 4.1
  • 26. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.26  Think of metrics as asbman –query • concurrentConnectedClients • maxQueueDepth • maxConcurrentClients • readErrors • reserveConnectionTimeouts • timesQueued • avgQueueDepth REST API: /oemanager/applications/<abl-app>/metrics6 GET DELETE
  • 27. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.27 REST API: /oemanager/applications/<abl-app>/sessions { "elapsedTimeMs": 3343, "bound": false, "requestState": "RUNNING", "requestID": "", "agentConnInfo": { "state": "RESERVED", "localAddr": "/127.0.0.1:60464", "agentID": "AG-/5vs3eApTMiPV5M+W47T3w", "connID": "AC-nRJgbuKtSNWcy6YWQknTbg", "connPoolID": "CP-30BInu3FRwOGQB0u0LwJ/g", "agentAddr": "localhost/127.0.0.1:62004" }, "ablSessionID": "5", "sessionState": "RESERVED", // IDLE,ACTIVE "agentID": "AG-/5vs3eApTMiPV5M+W47T3w", "clientConnInfo": { "elapsedTimeMs": 5214, "requestProcedure": "ngasPing.p", "requestUrl": "http://localhost:16680/apsv", "clientName": "172.21.75.148", "httpSessionId": "<session-id>.pas1", "executerThreadId": "catalina-exec-8", "reqStartTimeStr": "2014-09-17T08:41:48.138-0400", "requestID": "ngasPing.p", "adapterType": "APSV", // REST,SOAP,WEB "sessionID": "Iphz68lUQKexuHibyy6S+A" }, "adapterType": "APSV", "sessionPoolID": "SP-RFplWI9/Rta9j1pp+WcRyQ", "sessionID": "Iphz68lUQKexuHibyy6S+A", "sessionType": "SESSION_MANAGED", // SESSION_FREE "lastAccessStr": "2014-09-17T08:41:50.006-0400" 3 GET DELETE
  • 28. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.28 REST API: /oemanager/applications/<abl-app>/agents/<agent-id>/sessions/ "AgentSession": { "SessionId": 1, "SessionState": "ACTIVE", "StartTime": "2014-09-22T11:07:49.744", "EndTime": null, "ThreadId": 2, "ConnectiondId": 1342, "SessionExternalState": 0, "SessionMemory": 978433 } 4.1 GET DELETE
  • 29. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.29 REST API: /oemanager/applications/<abl-app>/requests { "requestElapsedTime": 1889, "requestStartTimeStamp": "2016-09-17T10:11:26.934-0400", "requestState": "RUNNING", "requestID": "xfJqPACGU4jqE4pd0Auzwg", "sessionID": "8DvBtOplRHijAj7NcSAQKw" } 7 GET DELETE
  • 30. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.30 Troubleshooting & logging
  • 31. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.31 Troubleshooting  Breakup the troubleshooting into a) handling client requests (Tomcat instance) b) executing ABL requests  Where to look? • Tomcat • WebApp • Session Manager • Agent • ABL Session rcode, cfg, img MS Agent Agent sessionsABL request SO AP RE ST AP SV Webapp Security /SportsSvc Transports /wsa/* /rest/* /apsv Services Admin Session Sessi on Mgmt ABL Application sports-demo ABL WE B /web/*
  • 32. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.33 The flow of a request  Tomcat receives request  Routes to webapp  Routes to transport  Routes to Session Manager  Finds open connection (the Session Manager knows which agents have open connections) • Connection = available worker thread in an agent that contains an avm • Connection is the bridge between the webapp and the avm process (an open connection is a worker thread , NOT a session) • Session manager – Has list of agents (Ordered by time of instantiation) o Agent has list of connections (with status)  Finds an available session • Worker thread looks in the agent's pool of sessions  Executes ABL
  • 33. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.34 Logging is your friend  The service logging configuration found in <web-app-name>/WEB-INF/logging.xml <project>/PASOEContent/WEB-INF/logging.xml  DEBUG and TRACE level produce lots of logging – monitor log file sizes  LOG-MANAGER for ABL-related logging <!-- OEABL Security --> <logger name="com.progress.appserv.services.security" level="INFO"/> <!-- Spring Security --> <logger name="org.springframework" level="INFO"/> <logger name="org.springframework.security.web.access" level="INFO"/> <logger name="org.springframework.security.saml" level="INFO"/> <!-- SAML --> <logger name="org.opensaml" level="INFO"/> <logger name=" PROTOCOL_MESSAGE " level="INFO"/>
  • 34. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.35 Logging configuration  Agent logfile rollovers  Logfile archives tcman clean -A agentLogFile= Location, name, and roll-over of the agent log file. To have the agent log file rollover at midnight add {yyyy- MM-dd} for the same format as other log files. Example: <path-to>/<instancename>.agent.{yyyy-MM-dd}.log
  • 35. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.36 Security
  • 36. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.37  Deploy the REST API application <instance>/bin/tcman deploy $DLC/servers/pasoe/extras/oemanager.war  Limit access to this application to only localhost requests • Add filter to <instance>/webapps/oemanager/WEB-INF/web.xml  Access control • Change the default passwords for access <instance>/conf/tomcat-user.xml • Remove the default & sample users and password • Add new user(s) and password(s) Securing the oemanager webapp <user username="tomcat" password="tomcat" roles="ROLE_PSCAdmin,ROLE_PSCOper,ROLE_PSCUser" /> <user username="tcuser1" password="tcuser" roles="ROLE_PSCUser" /> <user username="tcuser2" password="tcuser" roles="ROLE_PSCNone" />
  • 37. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.38 Securing the oemanager webapp <!-- END:container.security --> <filter> <filter-name>Remote Address Filter</filter-name> <filter-class>org.apache.catalina.filters.RemoteAddrFilter </filter-class> <init-param> <param-name>allow</param-name> <param-value>127.d+.d+.d+|::1|0:0:0:0:0:0:0:1</param-value> </init-param> </filter> <filter-mapping> <filter-name>Remote Address Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
  • 38. © 2016 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.39 Securing the ROOT application The default ROOT webapp is the OpenEdge version (oeabl.war). If you are using multiple webapps and not ROOT …  Rather use the Tomcat default version in $dlc/servers/paseo/extras <instance>/bin/tcman deploy $DLC/servers/pasoe/extras/ROOT.war  Alternatively use a secured/hardened webapp as ROOT • There are plenty of guides on how to secure a Tomcat webapp