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

Slides:



Advertisements
Similar presentations
Database Architectures and the Web
Advertisements

OPS-12: Caring for an Ailing AppServer ™ Roy Ellis Principal QA Engineer.
REST support for B2B access to your AppServer PUG Challenge Americas Michael Jacobs : Senior Software Architect Edsel Garcia : Principal Software.
OPS-7: Migrating your Distributed Application from V9 to OpenEdge ® 10 with (Almost) No Downtime Roy Ellis Principal QA Engineer.
DEV-13: You've Got a Problem, Here’s How to Find It
Scale Up Access to your 4GL Application using Web Services
IT:Network:Applications VIRTUAL DESKTOP INFRASTRUCTURE.
SOA Security Chapter 12 SOA for Dummies. Outline User Authentication/ authorization Authenticating Software and Data Auditing and the Enterprise Service.
Slide 1 Systems Analysis & Design CS183 Spring Semester 2008 Dr. Jonathan Y. Clark Course Website:
Care and Feeding of the Pacific Application Server for OpenEdge in Production David Cleary Principal Software Engineer Progress Software.
Hands-On Microsoft Windows Server Connecting Through Terminal Services Terminal server – Enables clients to run services and software applications.
Authenticating REST/Mobile clients using LDAP and OERealm
DEV-14: Understanding and Programming for the AppServer™
Performance testing of Progress Appservers and a plug-in for Jmeter
A New Object Model for WebSpeed and HTTP
Web Development Challenges and How They are Solved in ps:eScript Matt Verrinder Progress Software UK Internet & Integration Technologies.
1 SAMBA. 2 Module - SAMBA ♦ Overview The presence of diverse machines in the network environment is natural. So their interoperability is critical. This.
OPS-17: Utilizing Firewalls - In the Reign of Fire
DB-19: OpenEdge® Authentication Without the _User Table
OPS-6: Caring for an Ailing AppServer ™ Hugo Loera Chavez Principal Tech Support Engineer.
STRATEGIES INVOLVED IN REMOTE COMPUTATION
DONE-10: Adminserver Survival Tips Brian Bowman Product Manager, Data Management Group.
SOA-12: Integrate over the Web with OpenEdge® Web Services
Database Architectures and the Web Session 5
MOVE-14: Migrating Your 4GL Authentication System to OpenEdge® 10
Database Design – Lecture 16
Remote Access Chapter 4. Learning Objectives Understand implications of IEEE 802.1x and how it is used Understand VPN technology and its uses for securing.
Jeff Shiley. Start Point System Environment User Experience Our “Unique” Requirements Solution System Evaluation & Prototype Single Sign-on Component.
MOVE-9: Audit enable your Application the Easy Way Anthony D Swindells Engineering Fellow.
Enterprise Java Bean Matt. 2 J2EE 3 J2EE Overview.
Slide 1 Physical Architecture Layer Design Chapter 13.
SSL, Single Sign On, and External Authentication Presented By Jeff Kelley April 12, 2005.
DEV-5: Introduction to WebSpeed ® Stephen Ferguson Sr. Training Program Manager.
Oracle Application Express Security. © 2009 Oracle Corporation Authentication Out-of-the-Box Pre-Configured Schemes LDAP Directory credentials Oracle.
1 Maryland ColdFusion User Group Session Management December 2001 Michael Schuler
ARCH-3: Context Management in the OpenEdge® Reference Architecture John Sadd Engineering Fellow and OpenEdge Evangelist.
DEV-09: User Authentication in an OpenEdge™ 10.1 Distributed Computing Environment Michael Jacobs Development Architect.
ARCH-4: The Presentation Layer in the OpenEdge® Reference Architecture Frank Beusenberg Senior Technical Consultant.
DONE-08 Sizing and Performance Tuning N-Tier Applications Mike Furgal Performance Manager Progress Software
DB-1: OpenEdge ® SQL in a 10.1B multi- database environment for ODBC and JDBC Brian Werne Sr. Engineering Manager, OpenEdge SQL and OpenEdge Management.
DEV-01 What’s New in Progress Dynamics ® Anthony Swindells Progress Fellow.
Authentication Proxy for the VistA Hospital Information System William Majurski Information Technology Laboratory.
Oracle's Distributed Database Bora Yasa. Definition A Distributed Database is a set of databases stored on multiple computers at different locations and.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
CS795.Net Impersonation… why & How? Presented by: Vijay Reddy Mara.
ARCH-07: Implementing the OpenEdge™ Reference Architecture – Part 2
Biometric Authentication in Distributed Computing Environments Vijai Gandikota Karthikeyan Mahadevan Bojan Cukic.
ARCH-11: Building your Presentation with Classes John Sadd Fellow and OpenEdge Evangelist Sasha Kraljevic Principal TSE.
Progress Software Identity Management 101 Sarah Marshall OpenEdge QA Architect May 2012.
ARCH-08 A Common Business Service Approach to Application Development Anthony Swindells Progress Fellow.
Rob Davidson, Partner Technology Specialist Microsoft Management Servers: Using management to stay secure.
A New Object Model for WebSpeed and HTTP
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
C10: Getting Rejected on the Bus How OpenEdge ® Developers Deal with Failure Chris James Senior Consultant.
ARCH-5: Service Interfaces in Practice Christian Stiller Technical Architect.
Michael Dunn Ryan Sessions Kyle Kerrigan.  Allows corporate office to manage client locations remotely  Distributed application ◦ i.e. agents & data.
The overview How the open market works. Players and Bodies  The main players are –The component supplier  Document  Binary –The authorized supplier.
Biosolid Design Spec Brief April 21, Overview Design Overview Proposed System Architecture User Interface Subsystem Interfaces Package & File Organization.
Chapter 29: Program Security Dr. Wayne Summers Department of Computer Science Columbus State University
Core and Framework DIRAC Workshop October Marseille.
Using Correlated Tracing to Diagnose Query Level Performance What’s slowing down my app? Jerome Halmans Senior Software Development Engineer Microsoft.
1© Copyright 2012 EMC Corporation. All rights reserved. Next Generation Authentication Bring Your Own security impact Tim Dumas – Technology Consultant.
562: Power of Single Sign-On in OpenEdge
Database Architectures and the Web
Server Concepts Dr. Charles W. Kann.
Network Services.
DUCKS – Distributed User-mode Chirp-Knowledgeable Server
An Introduction to Computer Networking
C6: Introducing Native Invocation with the OpenEdge® Adapter for Sonic™ ESB Chris James Senior Consultant.
ARCH-4: A Stateful Application in a Stateless World
Presentation transcript:

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

© 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 Broker Agents Business Logic AppServer Data NameServer Clients

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

© 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

© 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 Collect Login Credentials 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 Token Access 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 Log Access 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 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.

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

© 2008 Progress Software Corporation18 Performance and Scalability N-Tier Data Client Application Resources Application Server 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 Client 2 Client 1 Client 3 Client 4 X NameServer Agent Broker

© 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

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

© 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

© 2008 Progress Software Corporation24 State-Free Operating Mode Connection Process Client 1 NameServer AppServer 1 App1 AppServer 2 App1 AppServer 3 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 Session Connection Request 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-ID Login Context Object Business Logic User 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 available SERVER-CONNECTION-ID is NOT available User Input

© 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

© 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

© 2008 Progress Software Corporation38 Performance and Scalability State-free Client n NameServer AppServer 1 App1 AppServer 2 App1 AppServer m 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 Questions ?

© 2008 Progress Software Corporation46 Thank You

© 2008 Progress Software Corporation47