a10: appserver ™ mode case studies noel shannon senior solution consultant
TRANSCRIPT
© 2008 Progress Software Corporation2
Agenda
AppServer Fundamentals• AppServer Environment
Distributed Computing Design Considerations AppServer Operating Modes Case Studies
© 2008 Progress Software Corporation3
AppServer Environment
The Components
Bro
ke
r
Agents
Business
Logic
AppServer
Data
Na
me
Se
rver
Clients
© 2008 Progress Software Corporation4
AppServer Environment
NameServer
AppServer2
App1
Client1
AppServer1
App1
AppServer3
App1
Na
me
Se
rver
© 2008 Progress Software Corporation5
AppServer Environment
Inside the AppServer Agent
Agent Startup
Agent Shutdown
Client Connect
Client Disconnect
Begin Request
End Request
Ses
sio
n
Co
nn
ecti
on
Req
ues
t
Three levels of execution context
Differ in when they are set and how long they last
Operating modes handle context differently
© 2008 Progress Software Corporation6
Agenda
AppServer Fundamentals Distributed Computing Design Considerations
• Authentication and Authorization
• User Context Management
• Application State Management
• Performance and Scalability
AppServer Operating Modes Case Studies
© 2008 Progress Software Corporation7
Authentication and Authorization
Get the user login Lookup the user-id in authentication system Validate a “shared-secret” Check that the user account is valid Create login context info container
• Identify using unique token
• Seal to prevent tampering
Authentication Process
© 2008 Progress Software Corporation8
Authentication and Authorization
Lookup the login context info Lookup user’s access-control data Check access-controls on access to
application resources
Authorization Process
© 2008 Progress Software Corporation9
Authentication
Client/Server Environment
Lookup User Account
Authenticate User
Retrieve Acct Info
Create Login Context
User Accts
Access Control
Client
Co
llec
t L
og
in
Cre
de
nti
als
User Input
Audit Log
© 2008 Progress Software Corporation10
Authorization
Client/Server Environment
Authorization Manager
Data
Client
User Input
Business
Logic
Access Control
Audit Log
© 2008 Progress Software Corporation11
Authentication
N-Tier Environment
Application Server
User Input
Lookup User Account
Authenticate User
Retrieve Acct Info
Create Login Context
Collect Login
Credentials
Client
Request Authentication
Retain TokenAccess Control
Audit Log
User Accts
© 2008 Progress Software Corporation12
Authorization
N-Tier Environment
Application Server
User Input
Client
Service Request
Authorization Manager
Business
Logic
Audit LogAccess Control
User Accts
© 2008 Progress Software Corporation13
User Context Management
Client/Server
User Authentication Process
Client
User Input
DEFINE VAR user_name as char.
DEFINE VAR user_id as char.
DEFINE VAR user_lang as char.
Business
Logic
User Accts
© 2008 Progress Software Corporation14
User Context Management
N-Tier
User Context
Application Server
User Input
Client
Service Request
Authentication Process
Authentication Request
User Context Object
Business
Logic
User Accts
Audit Log
© 2008 Progress Software Corporation15
Application State Management
Client/Server
Inventory Data
Client
DEF VAR tot as dec init 0.
DEF QUERY qInv
FOR Inventory.
OPEN QUERY qInv
FOR EACH Inventory.
GET FIRST qInv.
DO WHILE AVAILABLE(qInv):
tot = tot + qInv.amount.
GET NEXT qInv.
END.
© 2008 Progress Software Corporation16
Application State Management
N-Tier
Application ServerClient
Procedure initQry()
Procedure getAmt()
tot = 0.
RUN initQry() on hAS.
Repeat while more:
RUN getAmt() on hAS.
tot = tot + amt.
End.
Inventory Data
Define QUERY qInv
For Inventory.
© 2008 Progress Software Corporation17
Performance and Scalability
Client/Server
Data
Client
User Business
Logic
User
User
User
© 2008 Progress Software Corporation18
Performance and Scalability
N-Tier
Data
Client
Client
Client
Client
Application Resources
Application Server
Client
Client
© 2008 Progress Software Corporation19
Agenda
AppServer Fundamentals Distributed Computing Design Considerations AppServer Operating Modes
• State-reset
• State-aware
• Stateless
• State-free
Case Studies
© 2008 Progress Software Corporation20
State-Reset/State-aware Operating Modes
Connection Process
ABL
AppServer
Data
Client2
Client1
Client3
Client4
X
Na
me
Se
rver
Agent
Agent
Agent
Bro
ke
r
© 2008 Progress Software Corporation21
State-Reset/State-aware Operating Modes
Inside the AppServer Agent
Agent Startup
Agent Shutdown
Client Connect
Client Disconnect
Begin Request
End Request
Startup Procedure
Shutdown Procedure
Connect Procedure
Disconnect Procedure
Ses
sio
n
Co
nn
ecti
on
Req
ues
t
Client bound to Agent for CONNECTION Context
© 2008 Progress Software Corporation22
Stateless Operating Mode
Connection Process
Bro
ke
r
Agents
ABL
AppServer
Data
Client2
Client1
Client3
Client4
Na
me
Se
rver
© 2008 Progress Software Corporation23
Stateless Operating Mode
Inside the AppServer Agent
Agent Startup
Agent Shutdown
Client Connect
Client Disconnect
Begin Request
End Request
Startup Procedure
Shutdown Procedure
Connect Procedure
Disconnect Procedure
Ses
sio
n
Co
nn
ecti
on
Req
ues
t
Client bound to Agent for REQUEST Context
Activate Procedure
Deactivate Procedure
SERVER-CONNECTION-ID SERVER-CONNECTION-CONTEXT
© 2008 Progress Software Corporation24
State-Free Operating Mode
Connection Process
Client1
Nam
eSer
ver
AppServer1
App1
AppServer2
App1
AppServer3
App1
Data
© 2008 Progress Software Corporation25
State-free Operating Mode
Inside the AppServer Agent
Agent Startup
Agent Shutdown
Client Connect
Client Disconnect
Begin Request
End Request
Startup Procedure
Shutdown Procedure
Ses
sio
n
Co
nn
ecti
on
Req
ues
t
Client bound to Agent for REQUEST Context
Activate Procedure
Deactivate Procedure
© 2008 Progress Software Corporation26
Agenda
AppServer Fundamentals Distributed Computing Design Considerations AppServer Operating Modes Case Studies
• Authentication and Authorization
• User Context Management
• Application State Management
• Performance and Scalability
© 2008 Progress Software Corporation27
Authentication and Authorization
State-reset/State-aware
AppServer
User Input
Client
CONNECT Procedure
CONNECT Request
Login Context Object
Business Logic
User Accts
Audit Log
Authentication Request
Authentication Process
Login Context Object
Service Request
User Input
© 2008 Progress Software Corporation28
Authentication and Authorization
Stateless
User Context
AppServer
User Input
Client
Service Request
Authentication Process
Authentication Request
User Accts
Audit Log
SERVER-CONNECTION-IDLogin Context
Object
Business
LogicUser Input
© 2008 Progress Software Corporation29
Authentication and Authorization
State-free
User Context
AppServer
User Input
Client
Service Request
Authentication Process
Authentication Request
User Accts
Audit Log
Login Context Object
Business
Logic
SERVER-CONNECTION-ID is NOT available
User Input
© 2008 Progress Software Corporation30
User Context Management
State-reset/State-aware
Application Server
User Input
Client
Service Request
Authentication Process
Authentication Request
Business
Logic
User Accts
Audit Log
DEF VAR user_name ...
DEF VAR user_lang ...
Set Session User-Id Once at Login
User Input
© 2008 Progress Software Corporation31
User Context Management
Stateless
User Context
AppServer
User Input
Client
Service Request
Authentication Process
Authentication Request
User Accts
Audit Log
User Context Object
Business
Logic
Set Session User-Id prior to each request
SERVER-CONNECTION-ID
User Input
© 2008 Progress Software Corporation32
User Context Management
State-free
User Context
AppServer
User Input
Client
Service Request
Authentication Process
Authentication Request
User Accts
Audit Log
User Context Object
Business
Logic
SERVER-CONNECTION-ID is NOT available
Set Session User-Id prior to each request
User Input
© 2008 Progress Software Corporation33
Application State Management
State-reset/State-aware
Application Server
User Input
Client
Service Request
Authentication Process
Authentication Request
Business
Logic
User Accts
Audit Log
DEF VAR tot ...
DEF QUERY qInv ...
User Input
© 2008 Progress Software Corporation34
Application State Management
Stateless
Application Context
AppServer
User Input
Client
Service Request
Authentication Process
Authentication Request
User Accts
Audit Log
Application Context
Business
Logic
SERVER CONNECTION
CONTEXT
SERVER-CONNECTION-ID
User Input
© 2008 Progress Software Corporation35
Application State Management
State-free
Application Context
AppServer
User Input
Client
Service Request
Authentication Process
Authentication Request
User Accts
Audit Log
Application Context
Business
Logic SERVER CONNECTION CONTEXT is
NOT availableSERVER-CONNECTION-ID is
NOT available
User Input
© 2008 Progress Software Corporation36
Performance and Scalability
State-aware/State-reset
ABL
AppServer
Data
Client2
Client1
Clientn
Agent1
Agent2
Agentn
Client3 Agent3
Bro
ke
r
© 2008 Progress Software Corporation37
Performance and Scalability
Stateless
Bro
ke
r ABL
AppServer
Data
Client2
Client1
Client3
Client4
Agent1
Agent2
Agent3
Clientn
Agentm
© 2008 Progress Software Corporation38
Performance and Scalability
State-free
Clientn
Nam
eSer
ver
AppServer1
App1
AppServer2
App1
AppServerm
App1
Data
© 2008 Progress Software Corporation39
Getting Started
Scalability is not a requirement• Small number of users
• Application is somewhat static
Requires complex application state• Requires large critical sections
• Makes extensive use of remote persistent procedures
Requires fastest possible response time
Consider State-reset or State-aware mode if your application…
© 2008 Progress Software Corporation40
Getting Started
Need to support large number of users Manages small amounts of application state Critical sections are small Makes minimal use of remote persistent
procedures Makes short-lived remote procedure calls
Consider Stateless mode if your application…
© 2008 Progress Software Corporation41
Getting Started
Requires maximum scalability Can be distributed across multiple systems
• Any request can execute on different systems
Can make use of concurrent processing of remote procedures
Consider State-free mode if your application…
© 2008 Progress Software Corporation42
Getting Started
Organize your application into multiple services
Different services can use different operating modes
Consider multiple operating modes
© 2008 Progress Software Corporation43
In Summary
Different operating modes are available to suit different application requirements
Choice of modes often requires tradeoff between scalability and complexity
Choose the mode or modes most appropriate for both short and long term goals
© 2008 Progress Software Corporation44
For More Information, go to…
PSDN• Designing Common Business Services for the AppServer,
by Anthony Swindells
• Understanding the AppServer, Inside-Out
• A Stateful Application in a Stateless World
Documentation:• OpenEdge® Application Server: Developing AppServer
Applications
• OpenEdge Application Server: Administration
• OpenEdge Development: ABL Handbook, by John Sadd
© 2008 Progress Software Corporation45
Relevant Exchange Sessions
OPS-12: Caring for an Ailing AppServer
OPS-7: Migrating Your Distributed Application from V9 to OpenEdge with (Almost) No Downtime
OPS-19: What Is IPv6 and Why Should I Care?