A New Object Model for WebSpeed and HTTP

Slides:



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

Technical Support Update & OpenEdge Roadmap
Real World Development using OpenEdge Mobile – some advanced features Brian C. Preece Ypsilon Software Ltd
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
Scale Up Access to your 4GL Application using Web Services
Real World Development using OpenEdge/ Rollbase Mobile – the basics Brian C. Preece Ypsilon Software Ltd
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.
What's new in OpenEdge BPM 11.x Abhinav Agarwal June 8 th, 2015.
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
OPS-17: Utilizing Firewalls - In the Reign of Fire
SOA-06: Get On the Bus with the OpenEdge ® Adapter for Sonic ESB ® David Cleary Principal Software Engineer, Progress.
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.
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.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
WEB 304 An Overview of ASP.NET and Windows Workflow Foundation Kashif Alam Program Manager Developer Division Microsoft Corporation.
Extending ArcGIS for Server
© 2009 Research In Motion Limited Advanced Java Application Development for the BlackBerry Smartphone Trainer name Date.
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.
Computer Emergency Notification System (CENS)
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.
Alcatel-Lucent CDC Workshop, Coaching & Knowledge Transfer Architecture.
SOA-14: Deploying your SOA Application David Cleary Principal Software Engineer.
Andrew S. Budarevsky Adaptive Application Data Management Overview.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
INT-5: Integrate over the Web with OpenEdge® Web Services
COMP-1: OpenEdge® Management Overview and Demo Principal Technical Support Engineer Cyril E. Gleiman.
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.
© 2009 Research In Motion Limited Advanced Java Application Development for the BlackBerry Smartphone Trainer name Date.
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 !
A New Object Model for WebSpeed and HTTP
© 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.
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.
1 PSI/PhUSE Single Day Event – SAS Applications – June 11, 2009 SAS Drug Development from the Inside Magnus Mengelbier Director.
© 2010 IBM Corporation RESTFul Service Modelling in Rational Software Architect April, 2011.
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.
242: Get Your Head in the Cloud!
562: Power of Single Sign-On in OpenEdge
Netscape Application Server
Java Servlets By: Tejashri Udavant..
DEV-25: You've Got a Problem, Here’s How to Find It
Transforming SharePoint Farm Solutions to the Add-in Model
WEB API.
ARCH-1: Application Architecture made Simple
C6: Introducing Native Invocation with the OpenEdge® Adapter for Sonic™ ESB Chris James Senior Consultant.
(c) 2011 Microsoft. All rights reserved.
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

Michael Banks Bio Speaker Bio Michael Banks is a principal engineer in the OpenEdge group at Progress Software. His contributions span the OpenEdge product set and include work on the .NET Bridge, WebSpeed, the Web Services Adapter, the REST Adapter, OpenEdge BPM, the OpenEdge AppServer, and the Pacific Application Server for OpenEdge. In addition to his interest in server-side software, Michael has a background in computer graphics and has presented at Siggraph and other UI events. He has also been a speaker at several Exchange and PUG conferences. Michael is also an Adjunct Lecturer at Bentley University in Waltham, MA.

Legal Disclaimer The contents of these materials are confidential information of Progress Software Corporation or its affiliated entities (collectively Progress Software). These materials may also include information about future features, products, technologies and/or services that are under consideration by Progress Software. Progress Software makes no commitments with respect to such future features, products, technologies and/or services. The information contained in these materials is subject to change. Progress Software does not guarantee any release dates or that there will be a release of any future features, products, technologies and/or services (if any) referenced herein.

Pacific 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 application server 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 Pacific 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 Pacific 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 Pacific 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 Pacific 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 Pacific 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 Pacific Application Server applications Customer-specified handlers (à la web-disp.p) Pacific Application Server (includes Webspeed support) ABL Sessions * Some changes may be required

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

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.WebspeedHandler If you wrote your own handler defaultHandler=MyCustomHandler

WebspeedHandler 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

WebspeedHandler 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 web-context

Demos Compatibility Handler

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

Demos Basic IWebHandler

OpenHTTP

OpenHTTP Writing your own Web Handler from scratch can be difficult Most applications will not use all HTTP verbs Some behavior is frequently common for all handlers

OpenHTTP WebHandler 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 Properties for common elements Methods for headers, cookies, path parameters

Demo OpenHTTP

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

Demo OpenHTTP Resource Mapping

When can I get it?

OpenEdge 11.6 ESAP 3 Target date of June 17 Compatibility testing with your existing WebSpeed applications OpenHTTP API

Q & A