DEV-16: Leveraging the Power of Advanced GUI
Power is nothing without control
Erwin in ‘t Veld CCSTony Vertenten IntrisEric Debeij ProgressRoland de Pijper Progress
© 2008 Progress Software Corporation2 DEV-16: Leveraging the Power of Advanced GUI
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
© 2008 Progress Software Corporation3 DEV-16: Leveraging the Power of Advanced GUI
Agenda
Introduction CCS Intris Background: Architecture
Power is nothing without control
© 2008 Progress Software Corporation4 DEV-16: Leveraging the Power of Advanced GUI
Introduction
CCS and Intris both in transformation process Quite a different approach The need for a fancy UI in common And … the architecture and tools
© 2008 Progress Software Corporation5 DEV-16: Leveraging the Power of Advanced GUI
Architecture = OERA
OpenEdge® Reference Architecture
© 2008 Progress Software Corporation6 DEV-16: Leveraging the Power of Advanced GUI
Tool = iMo
iMo: based on best practices (Software Engineering Process) • Design in UML
• Generate skeletons
• Base Classes User interface based on MVC
Model View Controller Advanced GUI: only View has changed
© 2008 Progress Software Corporation7 DEV-16: Leveraging the Power of Advanced GUI
Agenda
Introduction CCS Intris Background: Architecture
Power is nothing without control
© 2008 Progress Software Corporation8 DEV-16: Leveraging the Power of Advanced GUI
CCS
CCS application
Reason for change
Migration Challenge
© 2008 Progress Software Corporation9 DEV-16: Leveraging the Power of Advanced GUI
CCS application
Financial application for insurance companies• CRM• Policy’s• Claims• Etc.
Rich functionality• 32000 function points
Origin 1992• Based on Progress® V8 / V9• Fat client
© 2008 Progress Software Corporation10 DEV-16: Leveraging the Power of Advanced GUI
CCS
CCS application
Reason for change
Migration Challenge
© 2008 Progress Software Corporation11 DEV-16: Leveraging the Power of Advanced GUI
Reason for change
Business• Flexible UI
• Workflow
• Individual user settings
• Microsoft standard Integration
• Service based integration with 3rd party app’s
© 2008 Progress Software Corporation12 DEV-16: Leveraging the Power of Advanced GUI
CCS
CCS application
Reason for change
Migration Challenge
© 2008 Progress Software Corporation13 DEV-16: Leveraging the Power of Advanced GUI
Migration challenge
3 year period
• Migrate all the existing functionality
• N-tier architecture
• Thin client .Net™ GUI
Develop new modules
© 2008 Progress Software Corporation14 DEV-16: Leveraging the Power of Advanced GUI
Migration challenge
Focus on the business layer Introducing a business model as a gateway
between interfaces and datamodel Migration per module
• First completed module CRM
• 5 months Works seemless with the existing (non
transformed) modules
© 2008 Progress Software Corporation15 DEV-16: Leveraging the Power of Advanced GUI
Migration challenge
Use of IMO• Modeling before building
• Generate skeleton
• Add business rules
• Re-generate models (roundtrip engeneering)
© 2008 Progress Software Corporation16 DEV-16: Leveraging the Power of Advanced GUI
Migration challenge
IMO benefits• Enhances migration speed
– A strong framework for developpers to work with
– Reusable components
• OpenEdge Reference Architecture proof
• Support for UML base development
• Keep your technical documentation in sync with the actual code
© 2008 Progress Software Corporation17 DEV-16: Leveraging the Power of Advanced GUI
Application screenshots
© 2008 Progress Software Corporation18 DEV-16: Leveraging the Power of Advanced GUI
Agenda
Introduction CCS Intris Background: Architecture
Power is nothing without control
© 2008 Progress Software Corporation19 DEV-16: Leveraging the Power of Advanced GUI
Intris
Who is Intris Why .Net UI? Intris Case
© 2008 Progress Software Corporation20 DEV-16: Leveraging the Power of Advanced GUI
1994 2008
Pu
t L
og
ic I
n Y
ou
r L
og
isti
csIntris Group
Offices: BE (HQ), NL +50 employees 250+ Customers, >4500 users Supply Chain Management Software
© 2008 Progress Software Corporation21 DEV-16: Leveraging the Power of Advanced GUI
Intris
Who is Intris Why .Net UI? Intris Case
© 2008 Progress Software Corporation22 DEV-16: Leveraging the Power of Advanced GUI
Why .Net UI?
Commercial Services provider (SOBA) Development
© 2008 Progress Software Corporation23 DEV-16: Leveraging the Power of Advanced GUI
Commercial
Looks do matter Windows is the default GUI client UI is compared to Microsoft Office Frequently changes
© 2008 Progress Software Corporation24 DEV-16: Leveraging the Power of Advanced GUI
Why .Net UI?
Commercial Services provider (SOBA) Development
© 2008 Progress Software Corporation25 DEV-16: Leveraging the Power of Advanced GUI© Intris NV – 2007
Challenges in Logistics
Transparent part of the supply chain Business Process integration KPI SLA Connectivity Integrity Changing business requirements Quality of Service ...
© 2008 Progress Software Corporation26 DEV-16: Leveraging the Power of Advanced GUI
Pu
t L
og
ic I
n Y
ou
r L
og
isti
cs
© Intris NV - 2007
Value Chain definition
Value Chain = A network of highly structured organizational processes and partners to create, produce, and deliver a product or service satisfying customer and market demands.
Companies are producing a constantly changing mix of increasingly complex products, while global competition demands ever shorter cycle times and shorter product life cycles. Market conditions and requirements change every day. This results in frequent new product introductions and constant adjustment of the value proposition of all products in the portfolio.
Value Chain responsiveness becomes a primary differentiator.
© 2008 Progress Software Corporation27 DEV-16: Leveraging the Power of Advanced GUI
An incoming WHS processAn incoming WHS process
Pu
t L
og
ic I
n Y
ou
r L
og
isti
cs
© Intris NV - 2006
ad Inslag
Leverancier/Rederij Klant Dossierbeheer Magazijn Transport Koerier Boekhouding
Instructies (aankoop) Create Dossier
Shipping Instructions Update dossier
Planning Magazijn(verschepingslijst)
Planning transport
Afschrijvgegevens
Wegvervoer TransportOpdrachtTransport opdracht(spoor of lichter)
Aankomstbericht
Inslag
Cheque
Douane
Chequeopdracht
Afhalen Laatvolgen
Bellen Rederij
Start
Stockrapport
ActivityFinal
Facturatie
Aankoopvalidatie
Boeken verkoop
Boeken Aankoop
Registreer ontvangst
in SAP
YesNo
© 2008 Progress Software Corporation28 DEV-16: Leveraging the Power of Advanced GUI
Pu
t L
og
ic I
n Y
ou
r L
og
isti
cs
© Intris NV - 2007
Challenges in a nutshell
Integration: Business process consists of several internal and external sub processes or services
The user experience has to be as if he is working with 1 application. The different business process must be presented in a consistent manner
© 2008 Progress Software Corporation32 DEV-16: Leveraging the Power of Advanced GUI
Pu
t L
og
ic I
n Y
ou
r L
og
isti
cs
© Intris NV - 2007
What does it mean ?
Application is part of the business process of our customers
Evolve from software application to software solutions :• Software components
– Intris– Progress Software– Others
• Consultancy• Support
© 2008 Progress Software Corporation33 DEV-16: Leveraging the Power of Advanced GUI
Why .Net UI?
Commercial Services provider (SOBA) Development
© 2008 Progress Software Corporation34 DEV-16: Leveraging the Power of Advanced GUI
Development
Use of .Net possibilities Use of commercial UI
components More possibilities and
properties means more complex
© 2008 Progress Software Corporation35 DEV-16: Leveraging the Power of Advanced GUI
Intris
Who is Intris Why .Net UI? Intris Case
© 2008 Progress Software Corporation36 DEV-16: Leveraging the Power of Advanced GUI
Intris case
Application Transformation iMo WorkFlow Management (WfM)
© 2008 Progress Software Corporation37 DEV-16: Leveraging the Power of Advanced GUI
Application transformation
© 2008 Progress Software Corporation38 DEV-16: Leveraging the Power of Advanced GUI
Requirements
Use Cases
Domain model
Use case realization
act Register Order
ActivityInitial
select principal
create empty order
check if principal valid
enter order data
select SLA
create tasks
Assign resources (UC 15)
create attachments
save order
ActivityFinal
prinipal selected
principal valid
SLA not selected
send alert
discard order
[true]
[false]
[true]
[false]
[true]
[false]
class Domain Objects
Task
Order SLA
End-user
Validation_Rule
Principal
CCTaskOwner
Serv ice
Resource
consistsconsists
executed according to
defines
guards
agreed withissues
interested inresponsible
Used in
derived from
executes
sd Register Order
Server::beOrder
Actor1
(from Client)
Server::bePrincipal Server::beSLA Server::beService Server::beTask
alt Principal is blocked
loop for each SLA get SLA specific information
[SLA are generic or from the current principal]
loop For each SLA get all serv ice
[Services are from the current SLA]
loop For each serv ice generate tasks
opt The user can add new tasks for the sav ed order
saveData()
Register Order(dsOrder) :LOGICAL
ValidatePrincipal(PrincipalID)
CheckPrincipalInformation (PrincipalID) :LOGICAL
Principal is Block
GetSLADetail(dsSla)
fetchData(phDataset,phContext)
GetServiceGenerateTask(auxdsService,piOrderNumber)
fetchData(phDataset,phContext)
GenerateTask(auxdsService,piOrderNumber)
storeData(phDataset,phContext)
Store complete successfully
storeData(phDataset,phContext)
class Manage Order
Presentation BusinessLogic DataAccess Persistence
ctdetailwin
Client::ctOrderDetail
ctsearchwin
Client::ctOrderSearch
model
Client::mdOrder
vwdetailwin
Client::vwOrderDetail
«property»- WindowTitle: CHARACTER = Order
vwframe
«instance»Client::vwOrderFrame1
«fil l in»- OrderID: INTEGER- Description: CHARACTER
«date»- OrderDate: DATE
«lookup»- OrderStatus: CHARACTER- PrincipalID: INTEGER
vwsearchwin
Client::vwOrderSearch
vwpage
«instance»Client::vwOrderTab1
- Label: CHARACTER = Detail- Page: INTEGER = 1
BusinessEntity
Server::beOrder
+ Register Order(DATASET) : LOGICAL+ ValidatePrincipal(INTEGER) : void+ GetSLADetail(DATASET) : void+ GetServiceGenerateTask(DATASET, INTEGER) : void+ GenerateTask(DATASET, INTEGER) : void
DATASET
Server::dsOrder
TEMP-TABLE
Server::ttOrder
«column»*PK OrderID: INTEGER(8) Description: CHARACTER(64) OrderDate: DATE OrderStatus: CHARACTER(8) FK PrincipalID: INTEGER(8) PrincipalName: CHARACTER(32)
«FK»+ FK_PrincipalID(INTEGER)
«PK»+ PK_Order(INTEGER)
«unique»+ UQ_Order_OrderID(INTEGER)
DataAccess
Server::daOrder
WFM Model::Order
«column»*PK OrderID: INTEGER(8) Description: CHARACTER(64) OrderDate: DATE OrderStatus: CHARACTER(8) FK PrincipalID: INTEGER(8) PrincipalName: CHARACTER(32)
«FK»+ FK_PrincipalID(INTEGER)
«PK»+ PK_Order(INTEGER)
«unique»+ UQ_Order_OrderID(INTEGER)
The window will hold all the order in the system. The user can filter orders using the search windowby: Principal or by OderStatus.Using the detail window user can fil l a description, or can change the status.For the moment the status can be: -NotRegister -Register -Cancel
ctsearchwin
Client::ctCodeSearch
ctsearchwin
Client::ctPrincipalSearch
vwlookup
Client::SlaFieldLookup
+ CreateLookup() : void+ AddFilter(CHARACTER, CHARACTER, CHARACTER) : void
OrderStatus
«call»
DataSource
dataAccess
viewer
DetailWindow
PrincipalID
«call»
viewer
businessEntity
«proxy»
«instantiate»
modelmodel
uc Manage Tasks
UC01 Define taskUC02 Ov erv iew tasks UC07 Define Serv ice
UC08 Ov erv iew Serv ice
Task Owner
(from Actors)
Account Mgr
(from Actors)
UC16 Manage attachment
«include»
«include»
«include» «include»
Pu
t L
og
ic I
n Y
ou
r L
og
isti
cs
© Intris NV - 2007
iMO Pilot
© 2008 Progress Software Corporation39 DEV-16: Leveraging the Power of Advanced GUI
iMo benefits
Services Components Classes Design Standard Intris UI Hide complexity
© 2008 Progress Software Corporation40 DEV-16: Leveraging the Power of Advanced GUI
© 2008 Progress Software Corporation41 DEV-16: Leveraging the Power of Advanced GUI
Agenda
Introduction CCS Intris Background: Architecture
Power is nothing without control
© 2008 Progress Software Corporation42 DEV-16: Leveraging the Power of Advanced GUI
Imo View
Current view of iMo is based on codejock-ocx User interface pattern used is:
MVC - Model View Control Generic behavior of Model View and Control
is in iMo base classes
© 2008 Progress Software Corporation43 DEV-16: Leveraging the Power of Advanced GUI
Progress inheritance model
© 2008 Progress Software Corporation44 DEV-16: Leveraging the Power of Advanced GUI
Implementation: Desktopclass Desktop
Form
Imo.Windows.Forms::Form
Imo.Windows.Desktop::Desktop
Infragistics.Win.UltraWinExplorerBar::.UltraExplorerBar
Infragistics.Win.UltraWinDock::WindowDockingArea
UltraGrid
«instance»Imo.Windows.Desktop::
ErrorGrid
© 2008 Progress Software Corporation45 DEV-16: Leveraging the Power of Advanced GUI
Desktop objects
Desktop = the VIEW part of MVC Only knows about the Form and the
Infragistics controls A model supplies the data (e.g. menu) A controller starts the model and view Same mechanism goes for all types of forms
(e.g. search window, detail window)
© 2008 Progress Software Corporation46 DEV-16: Leveraging the Power of Advanced GUI
Advantages
Don’t interfere with the communication between .Net controls!
Subclass or replace a form, no need to change the model or controller.
Already moved from ocx’s to .Net without need to change the model and controller code. In the future: Rich Web UI, Ajax, ….
© 2008 Progress Software Corporation47 DEV-16: Leveraging the Power of Advanced GUI
Demo, CCS current desktop
© 2008 Progress Software Corporation48 DEV-16: Leveraging the Power of Advanced GUI
Demo, CCS current search window
© 2008 Progress Software Corporation49 DEV-16: Leveraging the Power of Advanced GUI
Demo, Intris desktop with WorkListHandler
© 2008 Progress Software Corporation50 DEV-16: Leveraging the Power of Advanced GUI
In Summary
What are your business requirements?
iMo / OERA really makes future development simpler
Architect your user interface with MVC (MVP)
Are you ready for the .Net user interface?
© 2008 Progress Software Corporation51 DEV-16: Leveraging the Power of Advanced GUI
For More Information, go to…
Relevant exchange sessions• DEV-6 Introduction to the OpenEdge Advanced GUI
• DEV-29 A Deep Dive into Developing with the Advanced GUI
• DEV-36 Composite MVP – Building Blocks in Presentation Layer
iMo• http://www.my-imo.com/
• Expo – iMo stand
© 2008 Progress Software Corporation52 DEV-16: Leveraging the Power of Advanced GUI
Questions?
© 2008 Progress Software Corporation53 DEV-16: Leveraging the Power of Advanced GUI
Thank You
© 2008 Progress Software Corporation54 DEV-16: Leveraging the Power of Advanced GUI