Escolar Documentos
Profissional Documentos
Cultura Documentos
Understanding and
Programming for the
AppServer
Pat Bonser
Product Readiness
Understanding and
Programming for the AppServer
Agenda
Architecture
Accessing an Application Server Process
Operating Modes
Managing Context
Parallel Client Requests
Architecture
ER
-ORD
E
T
A
VALID
esult
RU N
return r
Clients
RUN CHECK-CREDIT
RUN
return result
U PD A
TE-IN
V
ENTO
RY
return
res
ult
VALIDATE
ORDER
CHECK
CREDIT
UPDATE
INVENTORY
Data
Architecture
Any client
OpenEdge Application Server
GUI
Character
AppServer
Application
Code
4GL
Web Service
Client
Data
Data
Architecture
Any client
Web Browser
GUI
Character
Speed
Script
AppServer
Application
Code
4GL
Web Service
Client
Data
Data
Components
AppServer Architecture
AppServer
Clients
NameServer
Application
Broker
4GL
Business
Logic
Data
Data
Components
Application Server Process
Executes OpenEdge
4GL procedures
Application Server
processes are
reused
Determined by
AppServer
operating mode
AppServer
NameServer
Application
Broker
Application
Server
Processes
4GL
Business
Logic
Components
Application Broker
Typically started at
system startup-time
Manages pools of reusable application
server processes
Manages client requests
for 4GL procedure
execution
AppServer
NameServer
Application
Broker
4GL
Business
Logic
Components
NameServer
Location transparency
Machine A
Clients
NameServer
Inventory
70%
70%
Inventory (A and B)
Machine B
30%
Pay
roll
(C)
Inventory
Machine C
Load balancing
9 2005 Progress Software Corporation
Payroll
30%
Understanding and
Programming for the AppServer
Agenda
Architecture
Accessing an Application Server Process
Operating Modes
Managing Context
Parallel Client Requests
2.
Connect to AppServer
Ret = hdl:CONNECT(-S 5353 -H pisces
-AppService Account).
3.
Run procedures
RUN AccountBL.p ON SERVER hdl
(INPUT account-number).
4.
Disconnect
ret = hdl:DISCONNECT().
5.
ry
o
t
en s
v
n
=I =zeu 7
S
A ost 09
H rt=3
Po
NameServer
Client
AS=Inventory
Host=zeus
Port=3097
AS
Ho=Inv
Po st= ent
rt= zeu ory
30 s
97
Connect
Host=zeus
Port=3097
AppServer
Host=gemini
Port=5162
NameServer
AS=Inventory
Host=zeus
Port=3097
Host=zeus
Port=3097
proc a
Run
Client
Connect
AppServer
Understanding and
Programming for the AppServer
Agenda
Architecture
Accessing an Application Server Process
Operating Modes
Managing Context
Parallel Client Requests
Application context
Performance Goals
Session-free model
State-free
Operating Modes
Session Managed Model
State-reset
One client per Application Server process
Session state is reset on disconnect
State-aware
One client per Application Server process
Session state is maintained across connections
Stateless
Connection managed by AppServer Broker
Operating Modes
state-aware & state-reset
Session Managed Model
AppServer
Application Server Processes
Client 2
Client 3
NameServer
Client 1
Client 4
Application
Broker
4GL
Data
Data
Operating Modes
stateless
Session Managed Model
AppServer
Application Server Processes
Client 2
Client 3
NameServer
Client 1
Client 4
Application
Broker
Message
Queue
4GL
Data
Data
Operating Modes
Session-free Model
State-free
No connection maintained between client and
AppServer process
Pooled connections
Operating Modes
state-free
Session-free Model
4GL Clients
AppServer
Application Server Processes
Client 1
Web Service
Client
Client 3
Web Services
Adapter
Client 2
NameServer
Open Clients
Application
Broker
4GL
Data
Data
CONNECT()
Session-free connection
Session-free
Session-free
Design considerations
Procedures can execute concurrently
Order of completion not predictable
Persistent procedures
Create a context
Internal procedures execute
On same AppServer
Serially, losing parallel advantage
Reduce scalability
24 2005 Progress Software Corporation
Resource Considerations
System Resources
state-reset
state-aware
stateless
(bound/unbound)
stateless
Throughput
state-free
Server Responsiveness
Programming Considerations
state-aware
state-reset
stateless
(bound/unbound)
stateless
state-free
Development Costs/ Time
26 2005 Progress Software Corporation
Understanding and
Programming for the AppServer
Agenda
Architecture
Accessing an Application Server Process
Operating Modes
Managing Context
Parallel Client Requests
Managing Context
Configuration procedures
Managing Context
Session
Connection
Request
Startup
Shutdown
Connect
Disconnect
Activate
Deactivate
Managing Context
stateless - bound / unbound
Dynamically
Set
SESSION:SERVER-CONNECTION-BOUND-REQUEST to TRUE
Managing Context
stateless
CLIENT-CONNECTION-ID attribute
Session managed
Character attribute on a server handle
Returns connection ID string for the
AppServer connection
Session-free
Returns unknown-value
Logical connection to AppServer
represented by a pool of connections
Managing Context
Understanding and
Programming for the AppServer
Agenda
Architecture
Accessing an Application Server Process
Operating Modes
Managing Context
Parallel Client Requests
Synchronous
AppServer
Client
Request
#2
#2
Client
Example
Calling procedure
RUN BL.p ON SERVER hAppSrv ASYNCHRONOUS
SET hRq2
EVENT-PROCEDURE BL-evt-proc IN THIS-PROCEDURE
(INPUT-OUTPUT TABLE order-table,
OUTPUT iCount).
Event procedure
PROCEDURE BL-evt-proc:
DEFINE INPUT PARAMETER TABLE FOR order-table.
DEFINE INPUT PARAMETER iCount as INT NO-UNDO.
ASYNC-REQUEST-COUNT()
CANCEL-REQUESTS() method
Session managed
Raises STOP for request currently running
Purges send request queue of pending
requests
Session-free
Raises STOP for ALL requests currently
running
Purges queued requests
Understanding and
Programming for the AppServer
Summary & Questions
Architecture
Accessing an Application Server Process
Operating Modes
Managing Context
Parallel Client Requests
Additional Information
Other Exchange Sessions
SOA-03
Open Up Access to your 4GL Applications Using Web
Services
DEV-12
Bridging the Microsoft and Progress Worlds with the .NET
Open Client
DONE-02
Where Did You Go Wrong? Diagnostics and Troubleshooting
in OpenEdge
DONE-04
Best Practices - Designing for Performance:
These are a Few of My Favorite Tricks
DONE-08
Sizing and Performance Tuning N-Tier Applications
Additional Information
Documentation
OpenEdge Documentation
Getting Started:
Application and Integration Services
Application Server:
Administration
Developing AppServer Applications
Development:
Open Client Introduction & Programming
Expert Series:
OpenEdge Revealed: Achieving Server
Control with Fathom Management
Additional Information
Education
www.progress.com/education