ARCH-07: Implementing the OpenEdge™ Reference Architecture – Part 2

Slides:



Advertisements
Similar presentations
DEV-2: Getting Started with OpenEdge® Architect – Part I
Advertisements

ARCH-01: Introduction to the OpenEdge™ Reference Architecture Don Sorcinelli Applied Technology Group.
ARCH-13 Developing WebSpeed  Applications Chris Skeldon Principal Consultant.
Scale Up Access to your 4GL Application using Web Services
SOA with Progress Philipp Walther Consultant. © 2007 Progress Software Corporation2 Agenda  SOA  Enterprise Service Bus (ESB)  The Progress SOA Portfolio.
CSLA Presenter Sergey Barskiy, senior consultant at Magenic Technologies your questions Send an in order.
1 Chapter 2 Database Environment Transparencies © Pearson Education Limited 1995, 2005.
Chapter 2 Database Environment.
Chapter 2 Database Environment Pearson Education © 2014.
John Sadd Progress Fellow and OpenEdge Evangelist
Exchange in Real Time DEV-06: The ProDataSet in OpenEdge™ 10 John Sadd Progress Fellow and OpenEdge Evangelist.
Working with SQL and PL/SQL/ Session 1 / 1 of 27 SQL Server Architecture.
DEV-14: Understanding and Programming for the AppServer™
Deploying Dynamics Applications Thomas Hansen – Director, appSolutions a|s
Sys Prog & Scripting - HW Univ1 Systems Programming & Scripting Lecture 15: PHP Introduction.
Web Development Challenges and How They are Solved in ps:eScript Matt Verrinder Progress Software UK Internet & Integration Technologies.
Advanced Workflow. Agenda 1. Understanding the Overall Architecture 2. Setting up Outlook for Workflow 3. Launching Workflow from Applications 4. Getting.
ARCH12: QA Considerations - OERA ARCH-12: QA considerations for applications following the OpenEdge Reference Architecture SMAT-Team Tobago Thomas Hutegger.
Database Environment 1.  Purpose of three-level database architecture.  Contents of external, conceptual, and internal levels.  Purpose of external/conceptual.
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
Chapter 22 Systems Design, Implementation, and Operation Copyright © 2012 Pearson Education, Inc. publishing as Prentice Hall 22-1.
DB-19: OpenEdge® Authentication Without the _User Table
DEV-07: Increasing Productivity with Tools for Business Logic Gikas Principal Software Engineer.
ARCH-1: It’s a Tall World After All Taking Application Architecture Seriously John Sadd Progress Fellow and OpenEdge Evangelist Mike Ormerod Technical.
CSC271 Database Systems Lecture # 4.
Enticy GROUP THE A Framework for Web and WinForms (Client-Server) Applications “Enterprise Software Architecture”
ARCH-03: Implementing the OpenEdge™ Reference Architecture – Part 1 John Sadd Progress Fellow and OpenEdge Evangelist.
DEV-5: Introduction to WebSpeed ® Stephen Ferguson Sr. Training Program Manager.
The ProDataSet in OpenEdge™ 10
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.
MOVE10: Darwin or Big Bang? 1 MOVE-10: Darwin or Big Bang? SMAT-Team Tobago Thomas Hutegger & Pheona Job
DEV-01 What’s New in Progress Dynamics ® Anthony Swindells Progress Fellow.
The european ITM Task Force data structure F. Imbeaux.
Bayu Adhi Tama, M.T.I 1 © Pearson Education Limited 1995, 2005.
INTRODUCTION TO DBS Database: a collection of data describing the activities of one or more related organizations DBMS: software designed to assist in.
ARCH-7: A Class-Based Implementation of the OpenEdge® Reference Architecture John Sadd Fellow and OpenEdge Evangelist Applied Technology.
Introduction Database integral part of our day to day life Collection of related database Database Management System : software managing and controlling.
ARCH-11: Building your Presentation with Classes John Sadd Fellow and OpenEdge Evangelist Sasha Kraljevic Principal TSE.
Chapter 5: Distributed objects and remote invocation Introduction Remote procedure call Events and notifications.
Introduction to Enterprise JavaBeans Topics In Systems Architecture Barry Herbold
DEV-6: Advanced Object-Oriented Programming in the ABL Evan Bleicher Senior Development Manager Shelley Chase
ARCH-08 A Common Business Service Approach to Application Development Anthony Swindells Progress Fellow.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Presented by Vishy Grandhi.  Architecture (Week 1) ◦ Development Environments ◦ Model driven architecture ◦ Licensing and configuration  AOT (Week 2)
© 2013, published by Flat World Knowledge Chapter 10 Understanding Software: A Primer for Managers 10-1.
A7: Architecting Your Application in OpenEdge ® 10 Mike Ormerod Applied Architect.
ARCH-7: Integrate this! SonicMQ® and the OpenEdge® Reference Architecture Christian Stiller Technical Architect.
DEV-5: Using ProDataSets™ in OpenEdge ® 10 Cheryl LaBarge Product Readiness.
DEV-8: AppServer ™ Mode Case Studies Simon Epps Solutions Engineer.
ARCH-5: Service Interfaces in Practice Christian Stiller Technical Architect.
ARCH-04 Before You Begin Your Transformation Project… Phillip Magnay Architect – Applied Technology.
Java Programming: Advanced Topics 1 Enterprise JavaBeans Chapter 14.
MOVE-15: Leveraging Business Entities, Data Access Objects and ProDataSets with a Progress Dynamics® or ADM2 GUI Peter Judge Principal Software Engineer.
Chapter 2 Database Environment.
DEV-9: Using the ProDataSet™ in OpenEdge® 10
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
IBM Express Runtime Quick Start Workshop © 2007 IBM Corporation Deploying a Solution.
© 2010 IBM Corporation RESTFul Service Modelling in Rational Software Architect April, 2011.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
Chapter 2 Database Environment Pearson Education © 2009.
Data, Databases, and DBMSs
ARCH-1: Application Architecture made Simple
Database Environment Transparencies
ARCH-4: A Stateful Application in a Stateless World
ARCH-2: OpenEdge Reference Architecture (OERA) Latest Thinking
ARCH-14: Power Your Organisation with OpenEdge
SOA-09: Conducting Business with OpenEdge® and SonicMQ®
Presentation transcript:

ARCH-07: Implementing the OpenEdge™ Reference Architecture – Part 2 John Sadd Progress Fellow and OpenEdge Evangelist

Modern Application Architecture OpenEdge Reference Architecture – a layered view Separated presentation and integration layers Users Enterprise Services Presentation Layer Integration Layer Common business logic with advanced models Business Servicing Layer Data access abstracted from storage Data Access Layer Managed Data Stores Unmanaged Data Stores

Agenda Introducing the Service Interface Layer Managing ProDataSet Instances Context Management Creating a WebSpeed® User Interface Additional Topics and Futures Conclusions

SOA – Service Interaction Model Bind Invoke Service Requestor Provider Broker/ Directory Find / Details Publish Enterprise Services Bus Task

Container-managed Support Services Security Transaction Control Session/Context Management Client Side Fn() Presentation Container Service Proxy Service Interface Service Container Order Mgmt Server Side …

The Service Interface Layer in the Architecture Users Enterprise Services Presentation Layer Integration Layer Service Interface Business Servicing Layer Data Access Layer Managed Data Stores Unmanaged Data Stores

Role of the Sample Service Interface Layer Manages server-side entities Keeps an in-memory catalog of running instances Provides standard one-call access to server-side procedures Provides a single simplified API from client to server

The Service Interface Layer Client Server UI Procedure Business Entity Data-Access Object DATASET dsOrder DATASET dsOrder DATASET dsOrder RUN fetchOrder IN hdsOrder (. . . , OUTPUT DATASET dsOrder BY-REFERENCE) RUN FetchWhere IN hEntity (. . ., OUTPUT DATASET phFetchDataSet BY-REFERENCE) fetchWhere: FILL ATTACH Client Proxy Server Gateway Service Interface

(call to server-side gateway) Client-side SI Proxy Client proxy procedure User interface procedure proSIproxy.p PROC fetchWhere: RUN proSIgateway.p ON hAppServer (INPUT “Order”, INPUT “fetchWhere”…) … dsOrderWinAdv.w {dsOrder.i} {proSIproxyStart.i} … RUN fetchWhere IN ghProxySIproc (INPUT “Order”, INPUT ttContextDSOrder, OUTPUT DataSet dsOrder). (call to server-side gateway)

Server-side SI Procedures (call from client session) Server service procedure Server gateway procedure proSIserver.p DEFINE T-T ttEntity… FN startEntity: FN getEntityHandle: /* entity temp-table lookup */ FN getDAOHandle: proSIgateway.p hEntity = getEntityHandle in hSI. RUN fetchWhere in hEntity … (call to Business Entity API)

Gateway Procedure API Five standard parameters Logical entity name Logical operation name Context/parameter temp-table for passing any related values back and forth OUTPUT or INPUT-OUTPUT ProDataSet Depending on whether ProDataSet definition or values need to be passed in OUTPUT status for exception handling Useful default for many operations Use custom APIs and custom gateway procedures for special operations

Agenda Introducing the Service Interface Layer Managing ProDataSet Instances Context Management Creating a WebSpeed® User Interface Additional Topics and Futures Conclusions

Management of ProDataSet Instances Which object “owns” the ProDataSet instance on server and client? ProDataSets can be passed BY-REFERENCE to avoid copying The caller’s instance is always used, even on OUTPUT This will be extended in 10.1 to support a “pull” model where the called procedure’s instance is used

ProDataSet Instances on OUTPUT Client Server UI Procedure Business Entity Data-Access Object DATASET- HANDLE DATASET dsOrder DATASET dsOrder DATASET dsOrder BY-REF HANDLE BY-REF RUN fetchOrder IN hdsOrder (. . . , OUTPUT DATASET dsOrder BY-REFERENCE) RUN FetchWhere IN hEntity (. . ., OUTPUT DATASET phFetchDataSet BY-REFERENCE) fetchWhere: FILL ATTACH Client Proxy Procedure Server Gateway Procedure

Agenda Introducing the Service Interface Layer Managing ProDataSet instances Context Management Creating a WebSpeed® User Interface Additional Topics and Futures Conclusions

Context Management Basics Target environment is client to state-less or state-free AppServer Each interaction is independent Maintain context between related interactions

Passing Context between Client and Server Context/Parameter temp-table passes context back and forth Name & Value fields allow flexibility Context is maintained on the client Useful for small amounts of data Also for context used on the client And for context modified on the client

Context Between Client and Server Business Entity UI Procedure DATASET dsOrder DATASET dsOrder context/parameter temp-table RUN FetchWhere IN hEntity (. . ., OUTPUT DATASET phFetchDataSet BY-REFERENCE) RUN fetchOrder IN hdsOrder (. . . , OUTPUT DATASET dsOrder BY-REFERENCE) Server Gateway Procedure Client Proxy Procedure WhereString = “…” NextRowid = 63524

Context Maintained on the Server Hold context in a shared server-side data store Typically a database table Useful for context not to pass back and forth Session context such as language, authorization that does not change Requires a Context ID passed from the client GUID support in sample and in 10.1

Context Stored on the Server Client Business Entity UI Procedure DATASET dsOrder DATASET dsOrder context/parameter temp-table RUN FetchWhere IN hEntity (. . ., OUTPUT DATASET phFetchDataSet BY-REFERENCE) RUN fetchOrder IN hdsOrder (. . . , OUTPUT DATASET dsOrder BY-REFERENCE) Server Gateway Procedure Client Proxy Procedure ContextID = 95847 95847 English Auth …

ProDataSet and Temp-table Context Store retrieved data in a context table For WebSpeed or other clients with no ProDataSet support RAW fields and BLOBS for generic storage Store successive updates before commit Allows partial validation on the server Final update ProDataSet rebuilt from context

ProDataSet or Temp-table Data as Context Server Client Business Entity UI Procedure DATASET dsOrder DATASET dsOrder ContextID = 95847 RUN FetchWhere IN hEntity (. . ., OUTPUT DATASET phFetchDataSet BY-REFERENCE) RUN fetchOrder IN hdsOrder (. . . , OUTPUT DATASET dsOrder BY-REFERENCE) “OrderNum = 1” Server Gateway Procedure Client Proxy Procedure 95847 Order 1 Line 1 95847 Order 1 Line 1 95847 Order 1 Line 2

Agenda Introducing the Service Interface Layer Managing ProDataSet Instances Context Management Creating a WebSpeed® User Interface Additional Topics and Futures Conclusions

Agenda Introducing the Service Interface Layer Managing ProDataSet Instances Context Management Creating a WebSpeed® User Interface Additional Topics and Futures Conclusions

White Paper: Using an Unmanaged Data Store Uses an XML document in place of the database Alternative Data-Source procedure identifies the document Custom code populates the ProDataSet Remaining Business Entity code runs unmodified

White Paper: Simple .NET Interface to Business Entities Code generator creates a XSD file with a DataSet description This in turn creates a C# class file for the DataSet C# version of the client proxy runs the same gateway procedure on the AppServer C# DataSet class file used to build the UI

White Paper: Advanced Business Logic The role of database trigger procedures One Business Entity accessing another One Data Access Object accessing another When to allow direct database access

The Sample Implementation and Future Releases Significant new language extensions planned for 10.1 and beyond Elements of an OO4GL such as classes Auditing and other built-in core services Materials to be revised and extended to describe 10.1 best practices

Agenda Introducing the Service Interface Layer Managing ProDataSet Instances Context Management Creating a WebSpeed User Interface Additional Topics and Futures Conclusions

In Summary Think about and plan for services in your application Think about which objects control the data Think about context and other aspects of a stateless application server

Questions?

Thank you for your time!