Progress DynamicsTM 2.0 PreviewProgress DynamicsTM 2.0 Preview
Anthony Swindells, Lead ArchitectJohn Sadd, Engineering Fellow and OpenEdge Evangelist
© 2002, Progress Software Corporation2
IntroductionIntroduction
This session is a merge of a number of sessions delivered at Exchange 2002 – with most of the marketing stuff removed!
As V2 is now in Beta (2), this presentation has been updated somewhat to be closer to what V2 really delivers.
© 2002, Progress Software Corporation3
IntroductionIntroduction
This session is a merge of a number of sessions delivered at Exchange 2002 – with most of the marketing stuff removed!
As V2 is now in Beta (2), this presentation has been updated somewhat to be closer to what V2 really delivers.– But as it is not released, you still cannot
believe anything we say…
© 2002, Progress Software Corporation4
AgendaAgenda
Briefly, what is Progress Dynamics™? V2 High Level Goals Tools Enhancements Dynamics WEB Behind the Scenes Deployment and Upgrades When will V2 be Available A Peek into the Future
© 2002, Progress Software Corporation5
D I S C L A I M E R
Products Under DevelopmentProducts Under Development
This talk includes information about potential future products and/or product enhancements.
What we are going to say reflects our current thinking, but some information contained herein is preliminary and subject to change. Any future products we ultimately deliver may be materially different from what is described here.
In other words - you can’t believe everything we’re going to say.
© 2002, Progress Software Corporation6
OpenEdgeOpenEdge™™ Application Environment Application Environment
for Rapidly Developing and Deploying for Rapidly Developing and Deploying Dynamic n-Tier Business ApplicationsDynamic n-Tier Business Applications
What is Progress Dynamics™?What is Progress Dynamics™?
© 2002, Progress Software Corporation7
Progress Dynamics™ Includes…Progress Dynamics™ Includes…
Application Framework Repository Database Standard Components Tools
© 2002, Progress Software Corporation8
Why Progress Dynamics™?Why Progress Dynamics™?
Prescriptive ApproachRepository-based
More of solutionis pre-deliveredDesigned to be easily modified
Smaller client footprint
GUI and DHTML from 1 definition
© 2002, Progress Software Corporation9
Dynamics Development TeamDynamics Development Team
QuebecCanada
Jo’burgSouth Africa
AucklandNew
Zealand
HjørringDenmark
New HampshireUSA
ArizonaUSA
CaliforniaUSA
MassachusettsUSA
© 2002, Progress Software Corporation10
Progress Dynamics Success StoriesProgress Dynamics Success Stories
Four partners already deploying Dynamics-based applications – Seven - Ten More deploying in 2002
– 40 customers through Empowerment Early Adopter Program
© 2002, Progress Software Corporation11
Nov. FCSNov. FCS
What Customers are Saying …Keystone SystemsWhat Customers are Saying …Keystone Systems
KLAS application offers accessibility to handicapped
75% of primary module developed during Empowerment Center
Deploying Mid- November
“The fact that we've been able to complete over 70 percent of our application work in only four weeks as a result of our Empowerment Center experience, puts us far ahead of the curve."
James BurtsProject Manager, Keystone Systems
© 2002, Progress Software Corporation12
“…Progress Dynamics…cut development times by 40-50% compared with using conventional technologies."
Frank Mainzer CTO, DataSwiss Solutions AG
What Customers are Saying …DataSwiss Solutions AGWhat Customers are Saying …DataSwiss Solutions AG
Released!Released!
SwissCare HIS system for long-term care and rehabilitation
Used Dynamics to deploy global product available in German, English, French and Spanish
Application went from 400MB to 40MB
© 2002, Progress Software Corporation13
Q4 BetaQ4 Beta
“Progress Dynamics was one of the key motivating factors behind our choice of the OpenEdge platform. … it became clear that Dynamics would provide the fastest time-to-market of all our application development options."
Kevin Linardic, Senior Consultant Carrier Logistics, Inc.
What Customers are Saying …Carrier LogisticsWhat Customers are Saying …Carrier Logistics
FACTS2000 freight management application Moved from V7 character to Dynamics Beta scheduled for Q4
© 2002, Progress Software Corporation14
BGNBGN
Bookstore application, inventory of returned books for reselling, some backoffice for central BGN office
Used Dynamics re-write character application to improve user interface and improve application flow
Progress Software GPS project
Released!Released!
© 2002, Progress Software Corporation17
What Customers are Saying …What Customers are Saying …
“Our development team is working so fast they are being held up by the analysts…”
“Can you please make it look a bit harder – we have customers listening who we want to justify the bill too!”
© 2002, Progress Software Corporation18
AgendaAgenda
Briefly, what is Progress Dynamics™? V2 High Level Goals Tools Enhancements Dynamics WEB Behind the Scenes Deployment and Upgrades When will V2 be Available A Peek into the Future
© 2002, Progress Software Corporation19
V2 High Level GoalsV2 High Level Goals
Dynamic Web Browser UI Visual Building of Dynamic Objects Enhanced Tools Enhanced Performance DataServer Support Improved Internationalization Reduced Client Footprint Upgrade and Migration
© 2002, Progress Software Corporation20
AgendaAgenda
Briefly, what is Progress Dynamics™? V2 High Level Goals Tools Enhancements Dynamics WEB Behind the Scenes Deployment and Upgrades When will V2 be Available A Peek into the Future
© 2002, Progress Software Corporation21
Visual Building of Dynamic ObjectsVisual Building of Dynamic Objects
Appbuilder Support for:– Dynamic Viewers
– Dynamic Browsers
– Dynamic SDO’s Migration of Static to Dynamic Objects
(manual and batch) Avoids manual edits in ROM Tool !
© 2002, Progress Software Corporation22
New Dynamic Property SheetNew Dynamic Property Sheet
Reads Attributes (Properties) from Repository
Supports Dynamic UI Events Supports Design-Time Customization Integrated into Tools:
– Appbuilder– Container Builder– Menu / Toolbar Designer
Minimizes use of ROM Tool !
© 2002, Progress Software Corporation23
New Container BuilderNew Container Builder
New utility combines V1.1 functionality in Container Builder and Layout Builder– Visual interface to building containers
– Flexible way to add, delete, replace pages, objects and links
– Supports Result Codes for Customization
© 2002, Progress Software Corporation24
Misc. Tools EnhancementsMisc. Tools Enhancements
Appbuilder Open Object Enhancements – Filtering– Properties (F4)– MRU List
Support for Object Deletions Enhanced Wizards – path flexibility ROM Tool has a “Where Used” node New Help Authoring Tool (show) New Object Generator UI New Object Type Maintenance – supports class
hierarchy Session Types now support inheritance
© 2002, Progress Software Corporation25
Tools – UI Consistency ImprovementsTools – UI Consistency Improvements
Set of guidelines has been established Many changes have been made
– Field widths– Sizing problems– Tab Orders– Use of Appropriate Controls– Spelling and Grammar– Fixes in about 60 places
More work will be done in later releases
© 2002, Progress Software Corporation27
AgendaAgenda
Briefly, what is Progress Dynamics™? V2 High Level Goals Tools Enhancements Dynamics WEB Behind the Scenes Deployment and Upgrades When will V2 be Available A Peek into the Future
© 2002, Progress Software Corporation28
AppServer
ICFDB
Appl DB
AppServer Session
Config/Conn. Mgr.
Profile Manager
Localization Mgr.
Security Manager
Repository Manager
Session Manager
Thin Client
Config/Conn. Mgr.
Profile Manager
Localization Mgr.
Security Manager
Repository Manager
Session Manager Stateless
Dynamics Run-time ArchitectureDynamics Run-time Architecture
WebSpeed Agent
Config/Conn. Mgr.
Profile Manager
Security Manager
Repository Manager
Session ManagerW
eb U
I M
ana
ger
Req
ues
t M
ana
ger
Localization Mgr.
DHTML Client
Stateless
© 2002, Progress Software Corporation29
What is Progress Dynamics™ Web?What is Progress Dynamics™ Web?
Toolset for creating and deploying fully featured, fully functional, stateless enterprise applications in a web browser
Dynamically generated web pages from unified abstract repository data
Complete object toolkit including browse, viewer, tab folder, tool bar, menu, tree view
Rich, interactive UI; linked objects, field state, validation, lookup, find/filter
Managers for processing web requests, rendering web UI
© 2002, Progress Software Corporation30
What is Dynamics Web (contd)?What is Dynamics Web (contd)?
Low network chat, high performance client-to-server communication
Separation of UI, business logic and data Reuse Progress Dynamics toolset,
managers Reuse existing business logic, repository
data, dynamic SmartObjects, custom logic procedures
Flexible, extensible, customizable
© 2002, Progress Software Corporation31
DHTML: Core TechnologiesDHTML: Core Technologies
DHTML/JavaScript– Internet Explorer 5.5+– HTML DOM– No Java, ActiveX plug-ins required
Cascading Style Sheets (CSS 2)– Visualization customizable at several levels
CSS files at screen level Style tags at any level
HTML Components (HTC)– JavaScript objects similar to ADM2– Expose events, methods
Static HTML, images
© 2002, Progress Software Corporation33
Where to Get More InformationWhere to Get More Information
Functional Specification documents athttp://icf.possenet.org/issues/show_bug.cgi?id=xxxx– Web Overview (4395)
– DHTML Engine (4396)
– UI Manager (4397)
– Request Manager (4398)
– Web Development (5761)
© 2002, Progress Software Corporation35
AgendaAgenda
Briefly, what is Progress Dynamics™? V2 High Level Goals Tools Enhancements Dynamics WEB Behind the Scenes Deployment and Upgrades When will V2 be Available A Peek into the Future
© 2002, Progress Software Corporation36
Design-Time CustomizationDesign-Time Customization
Allow customization of object attributes, pages, links, contained object instances, etc.
Functionality added to Appbuilder, new Dynamic Property Sheets and Container Builder
ROM Tool supports customization result codes
© 2002, Progress Software Corporation37
Customization TypesCustomization Types
Customization Types– e.g. UI, User, Category, Login Company,
Language, etc.
– Specifies API to retrieve type of data
– Session supports specified customization types – set property in session at startup
– Multiple types may apply
– Can define own types for anything
© 2002, Progress Software Corporation38
Customization ResultsCustomization Results
Customization Results must be for a specific customization type
Specify valid values for the result, e.g. – for UI type customizations, results could
be GUI, CHR, DHTML, HTML, PDA, etc.– For User type customizations, results
could be user names or maybe job functions
– For language customizations, results could be French, English, German, etc.
© 2002, Progress Software Corporation39
Object CustomizationsObject Customizations
Optionally joined customization result to object table
Modified unique key on object table to include customization result
Object with result code of blank is default Only store changes for objects with a result code
specified Always start with default object and apply
customizations on top Many customizations may apply for a session –
results accumulated
Dynamic Data ObjectDynamic Data Object
(SDO)
© 2002, Progress Software Corporation41
Dynamic Data ObjectDynamic Data Object
No Recompilations Reduced Footprint One procedure with no code
– Move all methods in data.i to super procedures
Transparent (Not just a query object)
© 2002, Progress Software Corporation42
What is the Dynamic Data Object? What is the Dynamic Data Object?
1 physical file, adm2/dynsdo.w Run separately to render each instance A running instance is a rendering of
– Repository attributes– Inherited logic from data, query and other
classes – Business Logic hooks from the Custom
Logical Procedure Runs on both server and client
© 2002, Progress Software Corporation43
The Role of the Logic Procedure The Role of the Logic Procedure
The Logic Procedure still needs to be static to be able to express business logic
The data object include is still generated to be included in the Logic Procedure
Column properties are stored in the generated include or inherited from Data Dictionary
Used by the Dynamic SDO at runtime
Open Data ObjectOpen Data Object
APIs
© 2002, Progress Software Corporation45
Open Data Object - GoalsOpen Data Object - Goals
Improve the data objects ability to operate as the data source for stateless calls from WebSpeed.
Make the data object accessible from 4GL anywhere
Eliminate the need to write special SDO adapters to manage data requests from non Progress clients
Require no knowledge of the internal data object temp-tables
© 2002, Progress Software Corporation46
What’s the Purpose of the Open API? What’s the Purpose of the Open API?
Create,Update,Delete & Read Reuse of business logic Manage batches of data for stateless
requests Last, but not least, simplify these
tasks
© 2002, Progress Software Corporation47
Performance ImprovementsPerformance Improvements
Object Inheritance– Significantly reduces repository size
– New Repository APIs ! Reduction in AppServer Hits
– Begun with 9.1D core improvements
– Utilization of Dynamic Call functionality
– Continued ADM2 enhancements
– Improved Manager Caching
© 2002, Progress Software Corporation48
Repository RestructureRepository Restructure
CLASS
OBJECT
INSTANCE
Class Attributes
Custom ObjectAttributes
Custom InstanceAttributes
Change
Change
Change
© 2002, Progress Software Corporation49
ADM Classes and PropertiesADM Classes and Properties
The Repository has been extended to support ADM classes and properties
The support includes inheritance of attributes AND values
ADM instances do not use the *prop.i table definition, but retrieves the property temp-table from the Repository Manager
The Repository also stores values for native 4GL widget attributes on Viewers
© 2002, Progress Software Corporation50
Class HierarchyClass HierarchyBase
Appserver
BusinessObject
Query
Data
Container
Visual
DataVisual
Browser Viewer
Filter
Panel
Toolbar
Action
Messaging
MsgHandler
Producer Consumer
XML
B2B
Field
DynLookup DynCombo
Select
DynSDO SBO
DynObjc DynMenucDynFold SmartDialog SmartFrameSmartWindow
SDO
StaticDiag
StaticSO
StaticFrame StaticCont StaticFoldStaticObjc StaticMenc
DynView
StaticSDV
DynBrow
StaticSDB
SmartBrowser SmartViewer
SmartQuery
SmartToolbarDynSDF
SmartFolder
TVController
DynTree
SmartContainer
Router
StaticSDF
© 2002, Progress Software Corporation51
What About Dataservers?What About Dataservers?
DataServer Support for– Oracle
– Microsoft SQL Server Application Databases only
© 2002, Progress Software Corporation52
Globalization EnhancementsGlobalization Enhancements
Double-byte enabled– Supports UTF-8 standards
Menu Item Translation support (show)– New “source language”– Menu items are not assumed to be in
English Date/Number Formats Synch with
Appserver Store Attributes in Native Data Type
© 2002, Progress Software Corporation53
What about Roundtable?What about Roundtable?
Roundtable TSMS is for Software Configuration Management (SCM)
Support Roundtable 9.1C Enhanced Roundtable Integration – without RVDB Integrated DCU APIs into Roundtable Partner Deployment Packages Impact Analysis of Changes
http://www.roundtable-tsms.com/
© 2002, Progress Software Corporation54
What about ERwin?What about ERwin?
Now only support ERwin 4.1
http://support.ca.com/erwin_supp.html Major benefits
– Quality Database Design
– Documentation / Reports
– Off-line Schema Changes
– Automated Code Added Relationship Support
© 2002, Progress Software Corporation55
RelationshipsRelationships
is joined using
ryc_relationship
relationship_obj
relationship_reference (AK1.1)relationship_description (IE1.1)parent_entity (FK) (IE2.1)child_entity (FK) (IE3.1)primary_relationship (IE4.1)identifying_relationshipnulls_allowedcardinalityupdate_parent_allowedparent_delete_actionparent_insert_actionparent_update_actionparent_verb_phrasechild_delete_actionchild_insert_actionchild_update_actionchild_verb_phrasemodel_external_reference (AK2.1)
ryc_relationship_field
relationship_field_obj
relationship_obj (FK) (AK1.1)join_sequence (AK1.2)parent_table_name (IE1.1)parent_field_name (IE2.1)use_parent_constant_valueparent_constant_valuechild_table_name (IE3.1)child_field_name (IE4.1)use_child_constant_valuechild_constant_value
ryc_ri_default
ri_default_obj
relationship_type (AK1.1)action_type (AK1.2,IE1.1)default_rule
© 2002, Progress Software Corporation56
AgendaAgenda
Briefly, what is Progress Dynamics™? V2 High Level Goals Tools Enhancements Dynamics WEB Behind the Scenes Deployment and Upgrades When will V2 be Available A Peek into the Future
© 2002, Progress Software Corporation57
What’s Coming For Deployment?What’s Coming For Deployment?
Repository Support for Object Locations– Client, Server, WEB
Enhanced Deployment Configuration Utility (DCU) for Migration
Deployment of Deletions Reuse of deleted keys Identification of Modified
Files for Deployment
© 2002, Progress Software Corporation58
V1.1A SP3 to V2 UpgradeV1.1A SP3 to V2 Upgrade
Fully supported DCU (Dynamics Configuration Utility) will
upgrade current repository to new schema Upgrade functionality is tested as new software is
developed Other DCU Enhancements
– Hooks at more stages (before & after deltas, at login, before & after ADOs
– Used by Progress, but can also be used by customers for deployment
© 2002, Progress Software Corporation59
Bug Fixes, General EnhancementsBug Fixes, General Enhancements
We have closed over 2000 Issues since Dynamics SP3!
Additional on-line Help More documentation
© 2002, Progress Software Corporation60
AgendaAgenda
Briefly, what is Progress Dynamics™? V2 High Level Goals Tools Enhancements Dynamics WEB Behind the Scenes Deployment and Upgrades When will V2 be Available A Peek into the Future
© 2002, Progress Software Corporation61
When’s It Coming?When’s It Coming?
Some ADM2 in 9.1D POSSE – Now (WIP) Beta 2 – Available FCS – Nov 2002
© 2002, Progress Software Corporation62
AgendaAgenda
Briefly, what is Progress Dynamics™? V2 High Level Goals Tools Enhancements Dynamics WEB Behind the Scenes Deployment and Upgrades When will V2 be Available A Peek into the Future
A Peek into the Future…A Peek into the Future…
NOTE: This may be pure fiction!
© 2002, Progress Software Corporation64
What about the next release - V2.1?What about the next release - V2.1?
Expect to target 2.1? for around April / May 2003 (approx. 6 months after V2 ships)
Focus on:– Enhanced Performance– Bug Fixing and Minor Enhancements– HTML UI Functionality– UI Enhancements (Outlook Style, etc.)– Enhanced Object Generation (Containers, SBOs)– Framework Support for Printing– Role / Group Based Security– Standard Client Logic APIs
© 2002, Progress Software Corporation65
What’s Planned for V3What’s Planned for V3
Focus on:– Dynamics for SOA
Web Services Integration Business Rules in Repository Events / Flows
– New UI Rendering Engines (.NET, XML, etc)– Reporting– End-User / Run-time Customization– Enhanced / New ADE– Performance and Bug Fixing
© 2002, Progress Software Corporation66
SummarySummary
Great stuff now Better stuff to come Progress is committed YOU can help via POSSE
– www.possenet.org
© 2002, Progress Software Corporation67
Where to get more InformationWhere to get more Information
Beta Specs / POSSE Issuezilla – query on milestone
– CP30_001_V2Beta Code pulled for Dynamics V2 Beta– P30_002_Open Targeted for next major release of
Dynamics (V2 - FCS)– P30_003_V2.1 Targeted for shortly after next major
release (e.g. V2.1)– P30_004_V3 Targeted for next but one major release of
Dynamics (e.g. V3)
© 2002, Progress Software Corporation68
Some Debug AidsSome Debug Aids
To enable debug options, add this into your icfconfig.xml– <_debug_tools_on>YES</_debug_tools_on>– <_profiler_run>YES</_profiler_run>
CTRL-ALT-SHIFT-C to display a repository cache viewer CTRL-ALT-SHIFT-Q to get the query used for a dyn combo, when
focus is on the combo CTRL-ALT-SHIFT-S to show session property temp-tables CTRL-ALT-SHIFT-HOME to get all the links for a container To get the query used for a dynamic lookup, double-click on the
frame of the lookup, between the browse and the fill-in showing the records to retrieve.
In the filter window, double-clicking on the window itself will show information about the SDO's query. The easiest place to do this is to click on the space between the right edge of the folder window and the edge of the frame.
© 2002, Progress Software Corporation69
Questions