MOVE-1: Progress Dynamics® on Steroids Anthony D Swindells Engineering Fellow.
-
Upload
garey-thornton -
Category
Documents
-
view
223 -
download
2
Transcript of MOVE-1: Progress Dynamics® on Steroids Anthony D Swindells Engineering Fellow.
© 2006 Progress Software Corporation2MOVE-1 Progress Dynamics on Steroids
Agenda
Dynamics Roadmap Overview Dynamics as a Trusted Authentication
Domain Integrating OpenEdge Auditing OpenEdge Reference Architecture
Compliant Logic Achieving a Competitive UI
This presentation includes annotations with additional complementary information
© 2006 Progress Software Corporation3MOVE-1 Progress Dynamics on Steroids
D I S C L A I M E R
Under Development
This talk includes information about potential future products and/or product enhancements.
What I am going to say reflects our current thinking, but the information contained herein is preliminary and subject to change. Any future products we ultimately deliver may be materially different from what is described here.
D I S C L A I M E R
© 2006 Progress Software Corporation4MOVE-1 Progress Dynamics on Steroids
Progress Dynamics Today – a fresh look
Integral part of OpenEdge® Studio Development Environment
“In the box” Framework for rapid development of Stateless n-tier rich client GUI applications• Leverages ADM2 and ABL
Defined approach to UI development using Repository• Optional use of UI definitions at runtime
Managers to provide common infrastructure• Security, Context, Localization, Personalization, etc.
Productivity Tools for development and deployment
In a single slide!
© 2006 Progress Software Corporation5MOVE-1 Progress Dynamics on Steroids
Progress Dynamics Product Status
Fully supported, evolving and shipping as a part of OpenEdge Studio• Latest active version is 10.1A01• Upgrade path from 2.1B01 or 10.0B03 (via 10.1A)
Primary focus on stability and performance New features and functionality provided to Dynamics
by core OpenEdge platform capabilities Optional tools / framework support for new platform
capabilities where relevant• ProDataSet• XP manifest
Dynamics is alive and well!
© 2006 Progress Software Corporation6MOVE-1 Progress Dynamics on Steroids
Progress Dynamics Roadmap
Latest maintenance releases for previous versions• 10.0B04• 2.1B02• No current plans for additional service packs
Planned next major release 10.1B• Bug fixes• Dataview completeness (dynamic treeview, caching)• Deployment automation• int64 data-type support• Browse view-as support• Browse column sort indicator support• Support in OpenEdge Architect?
Functionality specific to Dynamics
© 2006 Progress Software Corporation7MOVE-1 Progress Dynamics on Steroids
Progress Dynamics Roadmap
A natural evolution
OpenEdge Core Platform
Dynamics Framework
ApplicationLogic
OpenEdge Core Platform
Framework
ApplicationLogic
OpenEdge Core Platform
Dynamics Framework
ApplicationLogic
OpenEdge Core Platform
Framework
ApplicationLogic
© 2006 Progress Software Corporation8MOVE-1 Progress Dynamics on Steroids
Moving Forward with Progress Dynamics
Excellent starting point for 10.1A feature adoption
Ho
st B
ased
CH
UI
C/S
GU
I (n
o A
DM
)
C/S
GU
I (A
DM
)
n-T
ier
GU
I (n
o A
DM
)
n-T
ier
GU
I (A
DM
)
Dyn
amic
s
Starting Point
Re
lativ
e E
ffort
More
Less Ho
st B
ased
CH
UI
C/S
GU
I (n
o A
DM
)
C/S
GU
I (A
DM
)
n-T
ier
GU
I (n
o A
DM
)
n-T
ier
GU
I (A
DM
)
Dyn
amic
s
Starting Point
Re
lativ
e E
ffort
Ho
st B
ased
CH
UI
C/S
GU
I (n
o A
DM
)
C/S
GU
I (A
DM
)
n-T
ier
GU
I (n
o A
DM
)
n-T
ier
GU
I (A
DM
)
Dyn
amic
s
Starting Point
Re
lativ
e E
ffort
More
Less
© 2006 Progress Software Corporation9MOVE-1 Progress Dynamics on Steroids
Moving forward with Progress Dynamics
Take advantage of core platform capabilities• Enhanced security
• Secure and non-repudiable audit trails
• OERA compliant logic through DataViews and ProDataSets
• Modern XP look and feel
• Object Orientated Language Extensions
• OpenEdge Architect
Steroid Prescription: OpenEdge 10.1A
Upgrade to the latest release of 10.1A01
© 2006 Progress Software Corporation10MOVE-1 Progress Dynamics on Steroids
Agenda
Dynamics Roadmap Overview Dynamics as a Trusted Authentication
Domain Integrating OpenEdge Auditing OpenEdge Reference Architecture
Compliant Logic Achieving a Competitive UI
© 2006 Progress Software Corporation11MOVE-1 Progress Dynamics on Steroids
Dynamics as a Trusted Authentication Domain
Register Dynamics as a “Trusted Authentication System”
Automate maintenance of default “Dynamics Application Domain”
Assert Dynamics user as identity for OpenEdge Auditing and DB Security• Leverage existing Context Manager
Support re-authentication functionality Ensure clean session shutdown
The Goals
© 2006 Progress Software Corporation12MOVE-1 Progress Dynamics on Steroids
Adopting New 10.1A Security Core Services
CLIENT-PRINCIPAL handle (ghCP)• ghCP:SEAL (your-domain-password)• rawVar = ghCP:EXPORT-PRINCIPAL ()• ghCP:IMPORT-PRINCIPAL (rawVar)• ghCP:LOGOUT ()
Trusted Domain Registry Runtime Permission Checking Option
SECURITY-POLICY:• REGISTER-DOMAIN• LOCK-REGISTRATION• SET-CLIENT (ghCP)
Co
mm
on
Infrastru
cture
© 2006 Progress Software Corporation13MOVE-1 Progress Dynamics on Steroids
Dynamics as a Trusted Authentication Domain
Upgrade ICFDB to 10.1A Add Type II Storage Areas for Auditing
• prostrct add ICFDB addaudit.st
Enable Auditing
Preparation
d "Audit_Data":20,32;512 . f 40960
d "Audit_Data":20,32;512 .
d "Audit_Index":21,1;64 . f 5120
d "Audit_Index":21,1;64 .
proutil ICFDB -C enableauditing area “Audit_Data” indexarea “Audit_Index” [deactivateidx]
© 2006 Progress Software Corporation14MOVE-1 Progress Dynamics on Steroids
Dynamics as a Trusted Authentication Domain
Preparation
© 2006 Progress Software Corporation15MOVE-1 Progress Dynamics on Steroids
Client
ProcessesContext
Data
Application Server
Login Credentials Create CLIENT-PRINCIPAL
EXPORT
Session-id
Session-idRetrieve
CLIENT-PRINCIPAL IMPORTReset User identity
Logout requestSession-id
Retrieve CLIENT-PRINCIPAL
hCp:LOGOUT
IMPORT
Application ServerShutdown
Purge
Asserting the Trusted User Identity (who)
Re-establishing identity
ContextSub-system
© 2006 Progress Software Corporation16MOVE-1 Progress Dynamics on Steroids
Customize Dynamics Framework to adopt new Security Core Services
PROCEDURE establishSession• For Appserver roundtrips via as_activate.p
FUNCTION setPropertyList (currentuserlogin)• At session startup and user re-logon
Intercept session activity that changes the user identity
Modify Session Manager af/app/afsesmngrp.i
RUN assertUserIdentity in Security Manager (see next slide)
© 2006 Progress Software Corporation17MOVE-1 Progress Dynamics on Steroids
Customize Dynamics Framework to adopt new Security Core Services
1. Define global variables for trusted domain and register via new setupTrustedDomain
2. Setup global handle for CLIENT-PRINCIPAL
3. Subscribe to session shutdown to cleanly logout user via new ICFCFM_StartSessionShutdown and new logoutUserIdentity (proxy af/app/afseclogoutp.p)
4. Add new PROCEDURE assertUserIdentity called when user changes
5. Add new FUNCTION getClientPrincipal to expose object
Manage CLIENT-PRINCIPAL in Security Manager
Modify Security Manager af/app/afsecmngrp.i
© 2006 Progress Software Corporation18MOVE-1 Progress Dynamics on Steroids
Dynamics Field Security
Setup DB field CAN-* permissions using Data Administration• Use Dynamics user id’s
Always checked• Non-Dynamics
Access
Use Combined
approach for
maximum security
and flexibility
Enhance Security with DB Runtime Permission Checking
© 2006 Progress Software Corporation19MOVE-1 Progress Dynamics on Steroids
Agenda
Dynamics Roadmap Overview Dynamics as a Trusted Authentication
Domain Integrating OpenEdge Auditing OpenEdge Reference Architecture
Compliant Logic Achieving a Competitive UI
© 2006 Progress Software Corporation20MOVE-1 Progress Dynamics on Steroids
Existing Dynamics Auditing4G
L C
lien
t
EntityMaintenance
Application Code
ICFDB
SchemaTriggers
gst_audit
af/app/afauditlgp.p
Entity SDOAP
I
gsc_entity_mnemonic
Ses
sion
Man
ager
(cu
rren
t u
ser,
etc
.)
Gen
eric
Au
dit
Dat
a Q
uer
y T
ools
AuditReport
© 2006 Progress Software Corporation21MOVE-1 Progress Dynamics on Steroids
To Auditing in OpenEdge 10.1AA
BL
Clie
nt
Database Tools and Utilities
Open Tools
Audit Policy Tools (APMT)
Application Code
SQ
L C
lien
t
Application Code
Audit Data A
pp
lica
tio
n
Dat
a
Policy Data
App DB
Audit Data
Archive DB
Audit EventSubsystem
Dat
abas
e
Inte
rnal
Ap
pli
cati
on
Sec
uri
ty S
ub
syst
emAudit Data Subsystem
Audit Policy SubsystemA
PI
ArchiveDaemon A
rch
ivin
g S
ub
syst
em
Rep
ort
ing
Su
bsy
stem
AuditReport
OfflineAuditData
© 2006 Progress Software Corporation22MOVE-1 Progress Dynamics on Steroids
Customize Dynamics Framework to adopt new Auditing Core Service
Leverage new OpenEdge Auditing• Satisfy Regulatory Compliance
• Guarantee non-repudiation
• Improve security
• Improve performance
• Improve scalability
• Leverage application auditing for framework events (in addition to DB events)
The Goals
Retain existing Dynamics Auditing as an option
© 2006 Progress Software Corporation23MOVE-1 Progress Dynamics on Steroids
Customize Dynamics Framework to adopt new Auditing Core Service
Upgraded ICDFB to 10.1AEnabled OpenEdge AuditingSetup new Security OptionsRegistered Dynamics as a Trusted
Authentication SystemModified framework code to assert Dynamics
user as trusted identity to use for Auditing
We are part of the way there already…
© 2006 Progress Software Corporation24MOVE-1 Progress Dynamics on Steroids
Customize Dynamics Framework to adopt new Auditing Core Service
Define Audit Permissions
© 2006 Progress Software Corporation25MOVE-1 Progress Dynamics on Steroids
Customize Dynamics Framework to adopt new Auditing Core Service
Leverage shipped Audit Policy Maintenance Tool auditing/_apmt.p• Run from outside of Dynamics application due
to ADM2 customizations• Beware audit permissions – run via new
auditing/setclient.w to do a SET-CLIENT• Alternatively use APMT public API…
Load shipped policies auditing/policies.xml Define custom Dynamics events and policies Deploy custom Dynamics audit policies
Administer Audit Policies
© 2006 Progress Software Corporation26MOVE-1 Progress Dynamics on Steroids
Disable Existing Dynamics Auditing and Check Key Fields
Audit Enabled Flag
Ensure key fields match audit policy
© 2006 Progress Software Corporation27MOVE-1 Progress Dynamics on Steroids
Imported Shipped Audit Policies / Define Dynamics Audit Policies
Import shipped policies
auditing/setclient.w
Import sample Dynamics policies
© 2006 Progress Software Corporation28MOVE-1 Progress Dynamics on Steroids
Add New Product & Module for Auditing Objects
© 2006 Progress Software Corporation29MOVE-1 Progress Dynamics on Steroids
Register New Auditing Manager in Repository
auditing/audmngrclntp.p and auditing/audmngrservp.p
Client
Version
Server
Version
© 2006 Progress Software Corporation30MOVE-1 Progress Dynamics on Steroids
Add New Auditing Manager Type to All Sessions
© 2006 Progress Software Corporation31MOVE-1 Progress Dynamics on Steroids
Modify Session Startup
Modify ICFCFM_InitializedServices to create the AUDIT-DB alias for ICFDB• Used to prefix any _aud* table references in
code
• Used to compile sample Audit Data Access Object
Modify Startup Procedure dynamics/icfstart.p
© 2006 Progress Software Corporation32MOVE-1 Progress Dynamics on Steroids
Add Application Audit Events
checkUser in af/app/afsecmngrp.i
launchProcedure in af/app/afsesmngrp.i
launchContainer in af/app/afsesmngrp.i
© 2006 Progress Software Corporation34MOVE-1 Progress Dynamics on Steroids
Ensure Audit Toolbar Button is always Enabled
Delete the AuditEnabled
check
© 2006 Progress Software Corporation35MOVE-1 Progress Dynamics on Steroids
Modify all CAN-FINDs on gst_audit to use APIs in new Audit Manager• checkAuditDataExists• checkAuditDataForTable
PROCEDURE cacheEntityMapping• Called from cacheEntity
• PROXY af\app\afgencchentmapp.i
• PROXY af\app\afgencchentmapp.p
Modify General Manager Audit Data Checks
Fix Audit Filter Tick Checking
Modify General Manager af/app/afgenmngrp.i
PROCEDURE getRecordUserProp• Called from src/adm2/entityfields.i used in
adm2/query.p for transferDBRow and transferRowsFromDB
© 2006 Progress Software Corporation36MOVE-1 Progress Dynamics on Steroids
Replace Audit Data Query Window
Integrate new Dynamics Query Window for Auditing dynauditquery
1.Register new object into repository
2.Add to transaction menu ICFAF-Tran Modify adm2/datavis.p PROCEDURE toolbar
• WHEN 'Audit':U THEN runs launchcontainer for gstadobjcw
– change to launch dynauditquery
© 2006 Progress Software Corporation37MOVE-1 Progress Dynamics on Steroids
Add Audit Data Query Window to Menu
© 2006 Progress Software Corporation38MOVE-1 Progress Dynamics on Steroids
Add Audit Application Events &Optionally Migrate existing Audit Data
Optionally• Set / clear audit context at appropriate points• Insert application events as required, e.g.
– launchContainer in Session Manager
– launchProcedure in SessionManager– sessionShutdown in Config Manager– Etc.
Optionally write migration for old audit data• See sample auditing/migrateaudit.p
© 2006 Progress Software Corporation39MOVE-1 Progress Dynamics on Steroids
Let’s see all this in Action
© 2006 Progress Software Corporation40MOVE-1 Progress Dynamics on Steroids
Agenda
Dynamics Roadmap Overview Dynamics as a Trusted Authentication
Domain Integrating OpenEdge Auditing OpenEdge Reference Architecture
Compliant Logic Achieving a Competitive UI
© 2006 Progress Software Corporation41MOVE-1 Progress Dynamics on Steroids
Monolithic data provider
ADM2 & OpenEdge Reference Architecture
SmartDataObject
• Presentation logic
• Business logic
• Data access logic
PresentationPresentation
Business ServicesBusiness Services
Data AccessData Access
Data SourcesData Sources
Co
mm
on
Infrastru
cture
Co
mm
on
Infrastru
cture
Enterprise ServicesEnterprise ServicesADM2 UI Sm
art D
ata
Ob
ject
© 2006 Progress Software Corporation42MOVE-1 Progress Dynamics on Steroids
Service Interface
Introducing the new DataView
Service Interface
Data container
Dataset
Temp-table
Temp-tableSmartWindow
VisualObjects
DataView
SmartWindow Service Adapter
Business Entities Business Tasks Business Workflow
ADM Dataset Object
© 2006 Progress Software Corporation43MOVE-1 Progress Dynamics on Steroids
OERA compliant logic with a Dynamics GUI
1. Implement Service Adapter adm2/serviceadapter.p• retrieveData • submitData
2. Develop Business Entities and Data Access Objects• Use OpenEdge Architect T4BL• Optionally migrate existing logic from SDOs
3. Build viewers and browsers4. Build Window
• Add Dynamic DataView object (in place of SDO)– Specify BusinessEntity property– Specify DataTable property
• Add visual objects and create links as usual
The Steps
© 2006 Progress Software Corporation44MOVE-1 Progress Dynamics on Steroids
New OERA Compliant Audit Query Window
Provided sample service adapter / client proxy implementation• adm2/serviceadapter.p
Provided sample server gateway• auditing/proSIgateway.p
Provided Audit Data DataSet (plus supporting temp-table includes)• auditing/ds_aud-audit-data.i
Provided Business Entity (BE) and Data Access Object (DAO) to query audit data• auditing/beauditdata.p• auditing/da_aud-audit-data2.p
Uses sample CLASS to manipulate query in DAO• ADMClass\DSQueryString.cls
Dynamic Object: DynAuditQuery
© 2006 Progress Software Corporation46MOVE-1 Progress Dynamics on Steroids
Agenda
Dynamics Roadmap Overview Dynamics as a Trusted Authentication
Domain Integrating OpenEdge Auditing OpenEdge Reference Architecture
Compliant Logic Achieving a Competitive UI
© 2006 Progress Software Corporation47MOVE-1 Progress Dynamics on Steroids
Use Case: Achieving a competitive UI
Use XP manifest Review colors / icons Use left-align labels Implement MDI ActiveX container / menu Replace dynamic objects with ActiveX’s e.g. new grid
control• Codejock ActiveX Controls
See PSDN for more details• http://www.psdn.com/library/entry.jspa?externalID
=1244&categoryID=77
The Steps
© 2006 Progress Software Corporation48MOVE-1 Progress Dynamics on Steroids
Use Case: Achieving a competitive UI
© 2006 Progress Software Corporation49MOVE-1 Progress Dynamics on Steroids
Connecting OERA compliant logic with a Competitive Dynamics GUI
© 2006 Progress Software Corporation50MOVE-1 Progress Dynamics on Steroids
In Summary
Dynamics is still alive and well• Existing users well positioned to adopt new
10.x functionality• No requirement to do anything
Upgrade to the latest release 10.1A01• Achieve a competitive UI• Move to OERA compliant logic• Leverage secure non-repudiable audit trails• Leverage new security capabilities• Leverage OpenEdge Architect• Leverage OO extensions to ABL
OpenEdge 10.1A provides the Steroids!
© 2006 Progress Software Corporation51MOVE-1 Progress Dynamics on Steroids
Relevant Exchange Sessions
DB-4: Who does What and When regarding Auditing?
DEV-4: Extending Progress Dynamics DEV-17: Effective Design and Deployment of OpenEdge
Audit Policies
MOVE-5: Improving the look and feel of your Application MOVE-9: Audit enable your application the easy way MOVE-14: Migrating Your Authentication System to
OpenEdge 10.1A and Beyond MOVE-15: Leveraging Business Entities, Data Access
Objects and ProDataSets with a Progress Dynamics or ADM2 GUI
Where to get more detail
Bonus Slides for Reference Only
Not part of actual presentation – included to help explain how to use sample code referenced in the presentation
© 2006 Progress Software Corporation56MOVE-1 Progress Dynamics on Steroids
Notes about Demo Code
Code is sample only and is incomplete• shortcuts taken for simplicity (but commented)
Does not cater fully for internationalization, e.g. assumes American format in some places
Sample serviceadapter.p is massively simplified and only caters for AuditData Business Entity
There is no support for batching implemented Code assumes Dynamics 10.1A01 Customizations are made in actual Dynamics and
ADM2 source rather than in custom supers for simplicity – issues for future upgrades
Code makes use of 10.1A01 core functionality, e.g. OOABL.
© 2006 Progress Software Corporation57MOVE-1 Progress Dynamics on Steroids
Using the Demo Code
Unzip contents of auditdemo.zip into your working directory• Be sure to keep folder names
Need to add additional PROPATH entries• dynui\src• dynui\src\adm2• dynui\src\dynamics
Audit enable ICFDB and any application databases as explained in slides
Load audit policies as explained in slides Load sample ADO’s using dataset import – see next
slide Regenerate your icfconfig.xml to include the new
Audit Manager in all Dynamics sessions
© 2006 Progress Software Corporation58MOVE-1 Progress Dynamics on Steroids
Using the Demo CodeImporting the sample ADO files
© 2006 Progress Software Corporation59MOVE-1 Progress Dynamics on Steroids
REFERENCE: Other ADM2 Customizations
Fix limitation preventing containers with dataviews being run from non dataview containers
Fix will be part of a future service pack / release of ADM2
Modified Container Super adm2/containr.p
FUNCTION getRequestHandle
© 2006 Progress Software Corporation60MOVE-1 Progress Dynamics on Steroids
REFERENCE: Other ADM2 Customizations
Get Dynamics / ADM2 windows to dock into the Appbuilder perspective when launched from inside OpenEdge Architect• NB: Also need to bootstrap Dynamics session
when open a project in OpenEdge Architect– For now can be done by manually running
icfstart.p from the Appbuilder perspective OR– Adding RUN icfstart.p to _idestartup.p and
ensure it is in your project PROPATH
Modified Container Super adm2/containr.p
FUNCTION initializeVisualContainer
© 2006 Progress Software Corporation61MOVE-1 Progress Dynamics on Steroids
REFERENCE: Other ADM2 Customizations
To support passing application data from contained objects through to business entity using application context• Need to link objects from the dataview with a link type
of appcontext
• Add internal procedure to object called getApplicationContext that outputs a single character string
• Delimit context values in string with CHR(7) and CHR(8), e.g.
name + CHR(7) + value + CHR(8) …
Modified DataView Super adm2/dataview.p
FUNCTION obtainContextForServer