Presentation is loading. Please wait.

Presentation is loading. Please wait.

DEV-8: AppServer ™ Mode Case Studies Simon Epps Solutions Engineer.

Similar presentations


Presentation on theme: "DEV-8: AppServer ™ Mode Case Studies Simon Epps Solutions Engineer."— Presentation transcript:

1 DEV-8: AppServer ™ Mode Case Studies Simon Epps Solutions Engineer

2 © 2008 Progress Software Corporation2 Agenda  AppServer Fundamentals AppServer Environment  Distributed Computing Design Considerations  AppServer Operating Modes  Case Studies

3 © 2008 Progress Software Corporation3 AppServer Environment The Components Broker Agents Business Logic AppServer Data NameServer Clients

4 © 2008 Progress Software Corporation4 AppServer Environment NameServer AppServer 2 App1 Client 1 AppServer 1 App1 AppServer 3 App1 NameServer

5 © 2008 Progress Software Corporation5 AppServer Environment Inside the AppServer Agent Agent Startup Agent Shutdown Client Connect Client Disconnect Begin Request End Request Session Connection Request  Three levels of execution context  Differ in when they are set and how long they last  Operating modes handle context differently

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

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

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

9 © 2008 Progress Software Corporation9 Authentication Client/Server Environment Lookup User Account Authenticate User Retrieve Acct Info Create Login Context User Accts Access Control Client Collect Login Credentials User Input Audit Log

10 © 2008 Progress Software Corporation10 Authorization Client/Server Environment Authorization Manager Data Client User Input Business Logic Access Control Audit Log

11 © 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 Token Access Control Audit Log User Accts

12 © 2008 Progress Software Corporation12 Authorization N-Tier Environment Application Server User Input Client Service Request Authorization Manager Business Logic Audit Log Access Control User Accts

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

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

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

16 © 2008 Progress Software Corporation16 Application State Management N-Tier Application Server Client 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.

17 © 2008 Progress Software Corporation17 Performance and Scalability Client/Server Data Client User Business Logic User

18 © 2008 Progress Software Corporation18 Performance and Scalability N-Tier Data Client Application Resources Application Server Client

19 © 2008 Progress Software Corporation19 Agenda  AppServer Fundamentals  Distributed Computing Design Considerations  AppServer Operating Modes State-reset State-aware Stateless State-free  Case Studies

20 © 2008 Progress Software Corporation20 State-Reset/State-aware Operating Modes Connection Process ABL AppServer Data Client 2 Client 1 Client 3 Client 4 X NameServer Agent Broker

21 © 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 Session Connection Request Client bound to Agent for CONNECTION Context

22 © 2008 Progress Software Corporation22 Stateless Operating Mode Connection Process Broker Agents ABL AppServer Data Client 2 Client 1 Client 3 Client 4 NameServer

23 © 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 Session Connection Request Client bound to Agent for REQUEST Context Activate Procedure Deactivate Procedure SERVER-CONNECTION-ID SERVER-CONNECTION-CONTEXT

24 © 2008 Progress Software Corporation24 State-Free Operating Mode Connection Process Client 1 NameServer AppServer 1 App1 AppServer 2 App1 AppServer 3 App1 Data

25 © 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 Session Connection Request Client bound to Agent for REQUEST Context Activate Procedure Deactivate Procedure

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

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

28 © 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-ID Login Context Object Business Logic User Input

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

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

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

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

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

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

35 © 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 available SERVER-CONNECTION-ID is NOT available User Input

36 © 2008 Progress Software Corporation36 Performance and Scalability State-aware/State-reset ABL AppServer Data Client 2 Client 1 Client n Agent 1 Agent 2 Agent n Client 3 Agent 3 Broker

37 © 2008 Progress Software Corporation37 Performance and Scalability Stateless Broker ABL AppServer Data Client 2 Client 1 Client 3 Client 4 Agent 1 Agent 2 Agent 3 Client n Agent m

38 © 2008 Progress Software Corporation38 Performance and Scalability State-free Client n NameServer AppServer 1 App1 AppServer 2 App1 AppServer m App1 Data

39 © 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…

40 © 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…

41 © 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…

42 © 2008 Progress Software Corporation42 Getting Started  Organize your application into multiple services  Different services can use different operating modes Consider multiple operating modes

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

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

45 © 2008 Progress Software Corporation45 Questions ?

46 © 2008 Progress Software Corporation46 Thank You

47 © 2008 Progress Software Corporation47


Download ppt "DEV-8: AppServer ™ Mode Case Studies Simon Epps Solutions Engineer."

Similar presentations


Ads by Google