A New Object Model for WebSpeed and HTTP

Slides:



Advertisements
Similar presentations
Server Access The REST of the Story David Cleary
Advertisements

DEV-2: Getting Started with OpenEdge® Architect – Part I
Real World Development using OpenEdge Mobile – some advanced features Brian C. Preece Ypsilon Software Ltd
Zoiner Tejada Hershey Technologies. About Zoiner Tejada.
REST support for B2B access to your AppServer PUG Challenge Americas Michael Jacobs : Senior Software Architect Edsel Garcia : Principal Software.
OpenEdge BPM What’s Coming in 11.3 Michael Banks Suresh Inavolu.
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
Developing Application Extensions with Axis2 Chathura Herath Eran Chinthaka.
Inside the JSDO: Mobile and Web
Scale Up Access to your 4GL Application using Web Services
Care and Feeding of the Pacific Application Server for OpenEdge in Production David Cleary Principal Software Engineer Progress Software.
Pacific Application Server for OpenEdge
Authenticating REST/Mobile clients using LDAP and OERealm
DEV-14: Understanding and Programming for the AppServer™
Pacific Application Server for OpenEdge
Performance testing of Progress Appservers and a plug-in for Jmeter
What’s new in Progress Developer Studio for OpenEdge 11.0?
OpenEdge BPM. 2 Challenges Process implementation not documented Processes should be explicit – not buried within an application or handled thru “tribal.
A New Object Model for WebSpeed and HTTP
The Easiest Way to Write Web Applications Jordi Sastre IT Architect, PSC May 2012.
Web Development Challenges and How They are Solved in ps:eScript Matt Verrinder Progress Software UK Internet & Integration Technologies.
OPS-17: Utilizing Firewalls - In the Reign of Fire
DONE-10: Adminserver Survival Tips Brian Bowman Product Manager, Data Management Group.
© 2009 Progress Software Corporation 1 Click to Edit Master Subtitle Style Overview of OpenEdge® GUI for.NET Release 10.2A Jarmo Nieminen Senior Technical.
SOA-12: Integrate over the Web with OpenEdge® Web Services
What is Architecture  Architecture is a subjective thing, a shared understanding of a system’s design by the expert developers on a project  In the.
INT-11: It’s Monday Morning, Do You Know Where Your Service Has Been? Service Management with Sonic ™ and Actional Marv Stone Progress Software.
WEB 304 An Overview of ASP.NET and Windows Workflow Foundation Kashif Alam Program Manager Developer Division Microsoft Corporation.
Extending ArcGIS for Server
Channel Partner Conference 2013 Yarra Valley Developer Session ABM Annual Channel Partner Conference 2013.
DEV-25: From Box to Development for WSA/AIA/WebSpeed ™ using Tomcat Matt Harrison Senior Software Engineer, Progress OpenEdge.
DEV-5: Introduction to WebSpeed ® Stephen Ferguson Sr. Training Program Manager.
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.
Introduction to the Adapter Server Rob Mace June, 2008.
DONE-08 Sizing and Performance Tuning N-Tier Applications Mike Furgal Performance Manager Progress Software
SOA-14: Deploying your SOA Application David Cleary Principal Software Engineer.
INT-5: Integrate over the Web with OpenEdge® Web Services
OpenEdge ® GUI for.NET ™ Modernize your user interface with ABL Shelley Chase OpenEdge Architect Progress Software Corporation Session 113.
ARCH-11: Building your Presentation with Classes John Sadd Fellow and OpenEdge Evangelist Sasha Kraljevic Principal TSE.
SE-2840 Dr. Mark L. Hornick1 Servlet Threads and Sessions.
INT-9: Implementing ESB Processes with OpenEdge ® and Sonic ™ David Cleary Principal Software Engineer.
Migrating to Progress Application Server for OpenEdge (PASOE)
© 2015 Progress Software Corporation. All rights reserved. 2 Not a Powerpoint presentation !
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
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.
DEV-8: AppServer ™ Mode Case Studies Simon Epps Solutions Engineer.
ARCH-5: Service Interfaces in Practice Christian Stiller Technical Architect.
E81 CSE 532S: Advanced Multi-Paradigm Software Development Venkita Subramonian, Christopher Gill, Ying Huang, Marc Sentany Department of Computer Science.
.NET Mobile Application Development XML Web Services.
Introduction to ASP.NET development. Background ASP released in 1996 ASP supported for a minimum 10 years from Windows 8 release ASP.Net 1.0 released.
SpeedScript to Stylish UI with PAS for OE WebHandlers Irfan Pasha Syed 06/26/2016.
Edsel Garcia Shelley Chase Fantastic Web Apps in 11.6 WebSpeed in the Pacific AppServer for OpenEdge.
29 th June 2016 Jawahar Surapaneni What is My Application Doing? Monitoring with OE BPM.
Windows Communication Foundation and Web Services
242: Get Your Head in the Cloud!
Progress Apama Fundamentals
562: Power of Single Sign-On in OpenEdge
Netscape Application Server
DEV-25: You've Got a Problem, Here’s How to Find It
Windows Communication Foundation and Web Services
WEB API.
ARCH-1: Application Architecture made Simple
C6: Introducing Native Invocation with the OpenEdge® Adapter for Sonic™ ESB Chris James Senior Consultant.
– JukeBox – transparency, flexibility, speed and comfort!
An Introduction to Software Architecture
Deepak Shenoy Agni Software
Chengyu Sun California State University, Los Angeles
SOA-09: Conducting Business with OpenEdge® and SonicMQ®
Presentation transcript:

A New Object Model for WebSpeed and HTTP David Cleary Mike Banks Progress Software

Progress Application Server for OpenEdge Overview ABL application server tightly integrated into PAS: startup, shutdown, client request threading and scheduling One PAS for OE instance equals one classic AppServer instance ( i.e. one ABL app ) Uses a single threaded OS process to run concurrent ABL sessions Most classic AppServer application migrate with few changes Supports http clients for: REST, SOAP, OpenEdge WebClient Can port pre 11.5 REST & Mobile web application Supports classic AppServer clients using a HTTP bridge Open REST administration for OpenEdge components (same as used by OEE/OEM) Command line utilities for secure deployments environments OEE/OEM & AdminServer optional Progress Development Studio for OpenEdge support

PAS for OpenEdge 11.5.1 Contains over 50 bug fixes (internal and customer reported) Support for paths with spaces on Windows Added cgiip messenger support to connect to Classic WebSpeed Performance improvements

Feature Enhancements in PAS for OpenEdge 11.6 All four transports supported in a single web application APSV, SOAP, REST, WEB OERealm and ClientPrincipal support on all transports Share a security context between transports Multiple application support in a single instance Each application has its own session manager Performance improvements Context management through HTTP sessions Support for Classic WebSpeed New OpenHTTP programming model

Webspeed support in Progress Application Server for OpenEdge Next generation Application Server platform that integrates multiple functions Same core server for Rollbase, Corticon, and OpenEdge AppServer / WebSpeed ABL applications ABL applications run in the new multi- session agent, which uses a single OS process for improved performance and scalability Simpler administration / deployment and is preconfigured to operate as a production-ready server Progress Application Server (includes WebSpeed support) ABL Sessions Next generation Application Server platform that integrates multiple functions Web Server (Tomcat), OpenEdge AppServer, OpenEdge AppServer Adapters Runs in the unified Progress Progress Application Server (PAS) platform Same core server for OpenEdge (ABL), Rollbase (JavaScript) and Corticon (Java) Common server installation, administration and configuration Powered by a new multi-session agent that runs in a single process (ABL virtual machine) Reduces the number of OS processes Allows for resource sharing like DB connections across multiple sessions Supplied in addition to (and not a replacement for) the current/classic AppServer OE AppServer licenses are traded-in as appropriate The Progress Application Server for OpenEdge is aPAS server with a embedded ABL language engine -- ABL application server for managing ABL Sessions that execute ABL Requests. As an example, PAS for OE is an Progress product that can be installed into any PAS distribution. Acceptable abbreviations are PAS for OpenEdge or PAS for OE.

Classic Webspeed vs. PAS for OpenEdge Browser Client (http) Browser Web Server + Messenger Web Server + Messenger PAS for OpenEdge HTTP Session Manager MSAgent 50 ABL Sessions APSV (AIA) SOAP (WSA) REST/Mobile APSV (AIA) SOAP (WSA) REST/Mobile Stateless AdminServer Session Manager WebSpeed Agent (1 ABL Session) 50 Agents CLASSIC Must have an AdminServer - AdminServer starts NameServer and AppServer - then the AdminServer is just used to monitor and manage Client connects to NameServer (optional) and is then redirected to the AppServer If the Client needs to connect through the internet (HTTP/HTTPS) - you must install and configure separate and distinct adapters AIA/WSA/REST/Mobile PAS for OE Start the PAS for OE instance Client connects using HTTP/HTTPS always + AdminServer is not necessary (except for running OEMgmt on the same machine or publishing) State Reset not supported (no one used it). + There is NO NameServer (load balancing and fault tolerance are handled another way) NameServer MSAgent 150 ABL Sessions

Benefits of Migrating WebSpeed Applications to PAS for OE Runs the same* WebSpeed application code Consolidated ABL application deployment Supports web application security requirements Well defined deployment models Migration path to full HTTP request/response handling & present day UI technologies Progress Application Server (includes WebSpeed support) ABL Sessions Consolidate your application’s deployment to a single web server Scalable web application using industry standard load balancers and clusters Share application server and web server functionality in a single deployment platform Full compatibility (@98%) with classic WebSpeed, and still benefit from the multi-session agent technology Well defined deployment models to simplify distributing your application Simplify OpenEdge updates by updating the OE installation – not your deployed application server(s) Clear migration path to using present day UI technologies and full open access to HTTP for classic WebSpeed applications Enhanced development platform with the ability to transparently use UNIX servers Built-in industry tested web authentication and roll-based authorization to your application * Some changes may be required to support customized OpenEdge distributed procedures

Why a new model? All HTTP verbs Full HTTP request Control of HTTP response

Goals Object-oriented Programming Model Compatibility with existing WebSpeed application code* Coexistence with Progress Application Server applications Customer-specified handlers (à la web-disp.p) * Some changes may be required

Introduction Client Customer Object (implements IWebHandler) Web Transport Tomcat HTTP Request HTTP Response Web Stream Progress Application Server

Progress.Web.IWebHandler INTERFACE Progress.Web.IWebHandler: METHOD PUBLIC INTEGER HandleRequest( ). END INTERFACE.

Web Handlers

Web Handler Configuration In openedge.properties [pas1.ROOT.WEB] defaultHandler=OpenEdge.Web.CompatibilityHandler If you wrote your own handler defaultHandler=MyCustomHandler

CompatibilityHandler Implements IWebHandler The HandleRequest() method Starts web/objects/web-handler.p persistently if not started runs process-web-request in the handle web/objects/web-handler.p is the web-disp replacement Starts webutil/paswebstart.p (sets itself as web-utilities-hdl) The web-notify event is changed to process-web-request The wait-for logic is removed

CompatibilityHandler webutil/paswebstart.p Uses old web-start as include New function GetEnv() All calls to OS-GETENV() changed to use new GetEnv() function New multi-session-agent() function that returns true if in PAS Some configuration properties are now in openedge.properties instead of ubroker.properties

Demos Compatibility Handler

OpenHTTP

WebSpeed OpenHTTP Writing your own IWebHandler implementation from scratch can be complex Most applications will not use all HTTP verbs Some behavior is frequently common for all handlers Progress Application Server (includes WebSpeed support) ABL Sessions

OpenHTTP An abstract class that implements the IWebHandler interface Dispatching for all the common HTTP verbs Provides default behavior for the methods you don’t override

WebRequest Class Object representation of HTTP request Lightweight class that provides access to the web context Properties for common elements Methods for headers, cookies, path parameters

WebResponse Object Object representation of HTTP response Properties for common elements Methods for headers, cookies

WebResponseWriter Writes an HTTP response to the Web Stream Status/Headers written on first use of Write() Close to “commit” response

Demo OpenHTTP

Advanced Web Handler Configuration In openedge.properties [pas1.ROOT.WEB] defaultHandler=OpenEdge.Web.CompatibilityHandler handler1=OrderWebHandler: /customer/{custid}/order/{orderid} handler2=CustomerWebHandler: /customer/{custid}

Demo HRWeb

Q & A