2002 Exchange PROGRESS WORLDWIDE Session C10: Modernizing Your Applications John Sadd, Engineering Fellow the Progress Company.

Slides:



Advertisements
Similar presentations
ICS 434 Advanced Database Systems
Advertisements

DEV-13: You've Got a Problem, Here’s How to Find It
Scale Up Access to your 4GL Application using Web Services
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
Fast Track to ColdFusion 9. Getting Started with ColdFusion Understanding Dynamic Web Pages ColdFusion Benchmark Introducing the ColdFusion Language Introducing.
© 2005, Cornell University. Rapid Application Development using the Kuali Architecture (Struts, Spring and OJB) A Case Study Bryan Hutchinson
Interpret Application Specifications
Chapter 9: The Client/Server Database Environment
John Sadd Progress Fellow and OpenEdge Evangelist
Distributed Systems: Client/Server Computing
1 © Prentice Hall, 2002 The Client/Server Database Environment.
Lecture The Client/Server Database Environment
Performance testing of Progress Appservers and a plug-in for Jmeter
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
Web Programming Language Dr. Ken Cosh Week 1 (Introduction)
The Client/Server Database Environment
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
Deploying Dynamics Applications Thomas Hansen – Director, appSolutions a|s
Enterprise Object Framework. What is EOF? Enterprise Objects Framework is a set of tools and resources that help you create applications that work with.
Database System Concepts and Architecture Lecture # 3 22 June 2012 National University of Computer and Emerging Sciences.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
1 The Problem Do you have: A legacy ABL system with millions of Lines of ABL Code? Years and years of modifications to your ABL code? System documentation.
DONE-10: Adminserver Survival Tips Brian Bowman Product Manager, Data Management Group.
Database Design for DNN Developers Sebastian Leupold.
Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee.
MBA 664 Database Management Systems Dave Salisbury ( )
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.
Data Warehousing Seminar Chapter 5. Data Warehouse Design Methodology Data Warehousing Lab. HyeYoung Cho.
ARCH-1: It’s a Tall World After All Taking Application Architecture Seriously John Sadd Progress Fellow and OpenEdge Evangelist Mike Ormerod Technical.
Oracle Application Express (Oracle APEX), formerly called HTML DB, is a Free rapid web application development tool for the Oracle database.
Enticy GROUP THE A Framework for Web and WinForms (Client-Server) Applications “Enterprise Software Architecture”
Framework Universal & Infinite Software Solution.
COLD FUSION Deepak Sethi. What is it…. Cold fusion is a complete web application server mainly used for developing e-business applications. It allows.
INT-11: It’s Monday Morning, Do You Know Where Your Service Has Been? Service Management with Sonic ™ and Actional Marv Stone Progress Software.
ARCH-03: Implementing the OpenEdge™ Reference Architecture – Part 1 John Sadd Progress Fellow and OpenEdge Evangelist.
Object-Oriented Programming and the Progress ABL Tomáš Kučera Principal Solution Engineer / EMEA Power Team.
White Star Software Exchange 2005 – DEV-15 DEV-15 All Dynamic Applications John Campbell White Star Software.
CS480 Computer Science Seminar Introduction to Microsoft Solutions Framework (MSF)
DEV-5: Introduction to WebSpeed ® Stephen Ferguson Sr. Training Program Manager.
© 2007 by Prentice Hall 1 Introduction to databases.
Universal Data Access and OLE DB. Customer Requirements for Data Access Technologies High-Performance access to data Reliability Vendor Commitment Broad.
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.
1.file. 2.database. 3.entity. 4.record. 5.attribute. When working with a database, a group of related fields comprises a(n)…
DEV-01 What’s New in Progress Dynamics ® Anthony Swindells Progress Fellow.
5 - 1 Copyright © 2006, The McGraw-Hill Companies, Inc. All rights reserved.
Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.
Designing Applications for Performance Appropriate I/O for Specific Task Minimize all Initiation and Termination Design Everything to be “Interactive”
ICS 321 Fall 2010 SQL in a Server Environment (i) Asst. Prof. Lipyeow Lim Information & Computer Science Department University of Hawaii at Manoa 11/1/20101Lipyeow.
ARCH-07: Implementing the OpenEdge™ Reference Architecture – Part 2
ARCH-11: Building your Presentation with Classes John Sadd Fellow and OpenEdge Evangelist Sasha Kraljevic Principal TSE.
A7: Architecting Your Application in OpenEdge ® 10 Mike Ormerod Applied Architect.
MOVE-15: Leveraging Business Entities, Data Access Objects and ProDataSets with a Progress Dynamics® or ADM2 GUI Peter Judge Principal Software Engineer.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
CS 440 Database Management Systems Stored procedures & OR mapping 1.
Submitted by: Moran Mishan. Instructed by: Osnat (Ossi) Mokryn, Dr.
© 2009 Pearson Education, Inc. Publishing as Prentice Hall 1 Lecture 9: The Client/Server Database Environment Modern Database Management 9 th Edition.
The Holmes Platform and Applications
Building Enterprise Applications Using Visual Studio®
Chapter 9: The Client/Server Database Environment
The Client/Server Database Environment
Database Management:.
The Client/Server Database Environment
The Client/Server Database Environment
Chapter 9: The Client/Server Database Environment
Ch > 28.4.
Lecture 1: Multi-tier Architecture Overview
Introduction of Week 11 Return assignment 9-1 Collect assignment 10-1
Developing and testing enterprise Java applications
Presentation transcript:

2002 Exchange PROGRESS WORLDWIDE Session C10: Modernizing Your Applications John Sadd, Engineering Fellow the Progress Company

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE Goals for this session n Think about… –changes in the Progress ® language and tools –the requirements of today’s application market –the state of your database and application –techniques for taking advantage of today’s Progress language and tools

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE Agenda What’s a “modern” application? Database design Separating UI from Logic Factoring out common code Migrating existing applications How Progress Dynamics™ supports these goals

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE First, what’s a “Traditional” Progress application? n Character-based –Looks the same on any platform –Or GUI client-server n Host-based or client-server –Always a direct database connection n Built with the 4GL and Progress DB –Limited DataServers, no external interfaces n Static data references in the 4GL –Tables and fields resolved at compile time –Include files or preprocessors for “reuse”

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE So what are the “Modern” application requirements? n Graphical interface –Windows and/or Web UI n Distributed application –Remote clients –More extensive security requirements n More databases and interfaces –DataServers –Integration with reporting and other tools n Dynamic 4GL table and field references n Variety of languages, design tools, connectivity

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE How has Progress evolved to meet these requirements? Progress RDBMS -Personal -Workgroup -Enterprise DataServer Oracle WebClient WebSpeed Browser Client WebSpeed Transaction Server AppServer GUI Client Open Clients Load Balancer Dynamics Framework Character Client SQLServer ODBC MANAGERS: Connection Session Profile Security Localization Name Server ESQL/C SQL-92 PDA Wireless Application Business Components: Smart Business Obj Smart B2B Object Dynamic SDO 4GL Sonic SQL 4GL DataServer Progress 4GL ADM Sonic MQ Adapter Legacy Applications Custom or Packaged Applications Progress or Non-Progress Applications Webspeed Messenger AppServer Internet Adapter APIs TCP/IP HTTP/S HTTP HTTPS XML, ProxyGen or Sonic MQ Repository Database Sonic MQ Server EJB Server Any Client Any Business Any Data Source Any Application Non-English Support Progress Non-Progress

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE What are the central problems for new applications? n The world is more complex n Existing older Progress apps may not be adapted to new requirements –Too monolithic, inflexible –Assume client availability of DB –Don’t allow for changes to User Interface

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE Agenda What’s a “modern” application? Database design Separating UI from Logic Factoring out common code Migrating existing applications How Progress Dynamics™ supports these goals

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE Special Progress database and schema characteristics n Arrays n Validation logic defined in the schema n “Database” trigger procedures n Special data-related language constructs –Complex nested logic for data retrieval –CAN-FIND –FIND NEXT with different indexes –SHARE-LOCK and EXCLUSIVE-LOCK

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE Arrays vs. joins -- Issues n SQL Access n Open client n Indexing n Client display SalesRepRepNameQuota[1] Quota[2] Quota[3] Quota[4] SalesRepRepNameQuota SalesRep Month joined table array

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE Validation Logic -- Issues n Compiled into UI n Requires local DB n No external access ON LEAVE… IF CAN-FIND… Client GUI SessionAppServer Session ?

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE Trigger Procedures -- Issues n Execute on client in C/S (expensive) n No UI on Server for MESSAGEs n Often hold real Business Logic ASSIGN … Client GUI SessionAppServer Session IF THEN MESSAGE… Trigger ON WRITE…

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE Complex navigation logic -- Issues n Doesn’t map to queries n Poor SQL access n Hard in distributed apps FOR EACH … WHERE … : IF codefld = ‘A’ THEN FIND … WHERE … ELSE IF codefld = ‘B’ THEN… DO I = 1 to 12: IF arrayfld[I] = … THEN … END. SQL? SDOs? queries? distributed?

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE Record Locking -- Issues n SHARE-LOCK and SQL n No locks across AppServer boundary DO TRANSACTION: FIND … EXCLUSIVE-LOCK. END. Client GUI SessionAppServer Session !

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE Tradeoffs in database design and application migration n Some Progress “traditions” need to be sacrificed or rethought n How bad is your existing database design? n How much existing business logic can you realistically reuse? n Balance DB schema changes against resulting changes to “salvaged” code n Consider third-party DB access as well as your direct application needs n There’s no single right answer

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE Agenda What’s a “modern” application? Database design Separating UI from Logic Factoring out common code Migrating existing applications How Progress Dynamics™ supports these goals

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE Basic principles of a modern distributed application n Assume NO client database access n Plan to reuse business logic n Anticipate customization n Your “client” and “server” will be different sessions n Allow for non-Progress clients

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE No client database access means… n No CAN-FIND n Less immediate feedback n Minimize client B.L. n Minimize AppServer hits CAN-FIND … Client GUI SessionAppServer Session DB lookup…

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE Reusing Business Logic means… n Encapsulate B.L. n Break logic down n Separate out complex B.L. n Make no assumptions n Avoid prompts / UI in B.L. RUN PricingProc In AShandle Client GUI SessionAppServer Session Order Maint. Pricing policy Submit order APIAPI APIAPI APIAPI

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE Planning for customization means… n Allow for translation n Define levels of customization n Associate security with UI n Define customization hooks n Store customization data Label: Menu/text translation Data translation Security User preferences Customization data Customization manager

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE Client and server in different sessions means… n No shared variables n Clean interface n No hierarchy n Use a property API Client proc1 Client GUI SessionAppServer Session Get property Pricing policy Submit order APIAPI APIAPI APIAPI Client proc2 Main proc

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE Allowing for non-Progress clients means… n Provide alternatives to Progress API n Consider XML n Design your API to allow for this Client SessionAppServer Session Order Maint. Pricing policy Submit order APIAPI APIAPI APIAPI XML

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE How bad is my old code? n Monolithic “spaghetti” code is the bane of any migration plan n BUT, things may not be as bad as you think: –Much of that old code may be repetitious –Patterns provide clues for cleanup –Much “business logic” in the UI is just routine client support –A standard framework can replace huge amounts of old client-side code

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE Agenda What’s a “modern” application? Database design Separating UI from Logic Factoring out common code Migrating existing applications How Progress Dynamics™ supports these goals

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE “Traditional” Progress constructs for code reuse n Include files with parameters n Preprocessor values n Code generators n These were all great, BUT the result is: –Proliferation of source procedures –Proliferation of compiled code –Maintenance headaches –Migration problems –More code to deploy and keep track of

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE Dynamic 4GL features can help n Dynamic widgets n Dynamic buffers, queries, and temp-tables n Dynamic function call syntax n Dynamic CALL syntax (in 9.1D) n Use these newer constructs to: –Write a single procedure for an operation on any table or query –Build single procedures for comments, auditing, and other common requirements –Minimize both source procedures and r-code

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE “Modern” Progress procedures n Not top-down n Use persistent procedures as libraries n Use super procedures for inheritance n Eliminate redundant procedures n Store the “parameters” for them Persistent procedure library Super Procedure “class” Application code Procedure parameters RUN IN… Inherit Parameterize

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE Agenda What’s a “modern” application? Database design Separating UI from Logic Factoring out common code Migrating existing applications How Progress Dynamics™ supports these goals

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE So how do I get from here to there? n Make essential changes to your database –But don’t do a whole redesign if you have logic to salvage n Devise ways to “wrap” B.L. and reports n Be realistic about rethinking your UI –Your old frames and procedure flow just may not make sense in GUI or on the Web n Balance choices between redesign and salvage –There’s no single right answer

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE When is a rewrite not really a rewrite? n …When you eliminate a lot of redundant code n …When you let a standard framework take care of a lot of the “modernizing” for you n …When you wrap your business logic and reports to be callable in new ways n You may wind up with a very different- looking set of procedures, BUT the essence of your application can be preserved –AND it will be more maintainable, flexible, Future-Proof™

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE Agenda What’s a “modern” application? Database design Separating UI from Logic Factoring out common code Migrating existing applications How Progress Dynamics™ supports these goals

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE You don’t have to use Progress Dynamics, but… n Progress Dynamics provides an architecture for distributed applications n UI generation is provided n Old code is replaced by standard behavior –Navigation, Updates, Lookups, etc. n Manager utilities provide standard support –Security, user maintenance, localization, connection management, etc.

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE To summarize… n Assess honestly which parts of your DB and application can be salvaged –and which will really benefit from redesign n Be realistic about time frames and goals –You won’t rework a major app in a few months, with or without Dynamics –Balance a step-wise progression against the benefits of a complete redesign n Take advantage of advances in language and tools n Consider the big picture – it’s more than just Progress

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE Goals met? n Think about… –changes in the Progress language and tools –the requirements of today’s application market –the state of your database and application –techniques for taking advantage of today’s Progress language and tools

© 2002, Progress Software Corporation Exchange 2002, Chicago, IL, USA Exchange PROGRESS WORLDWIDE Questions