a10: appserver ™ mode case studies noel shannon senior solution consultant

48
A10: AppServer Mode Case Studies Noel Shannon Senior Solution Consultant

Upload: susan-hilda-brown

Post on 23-Dec-2015

229 views

Category:

Documents


8 download

TRANSCRIPT

A10: AppServer™ Mode Case Studies

Noel ShannonSenior Solution Consultant

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

© 2008 Progress Software Corporation46

Questions?

© 2008 Progress Software Corporation47

Thank You

© 2008 Progress Software Corporation48