34
Delivering flexible applications using data-management patterns Willem de Vries, Remia C.V. Simon Jasperse, Kiboko

Delivering flexible applications using data-management patterns

Embed Size (px)

DESCRIPTION

Delivering flexible applications using data-management patterns. Willem de Vries, Remia C.V. Simon Jasperse, Kiboko. Agenda. Remia, the company Remia and Plex Rolodex Remia Patterns Application Design Plex Observations ? time. Remia, The Company. 75+ years of food manufacturing - PowerPoint PPT Presentation

Citation preview

Page 1: Delivering flexible applications using data-management patterns

Delivering flexible applications using data-management patterns

Willem de Vries, Remia C.V.

Simon Jasperse, Kiboko

Page 2: Delivering flexible applications using data-management patterns

Agenda

Remia, the company Remia and Plex Rolodex Remia Patterns

Application Design Plex

Observations ? time

Page 3: Delivering flexible applications using data-management patterns

Remia, The Company

75+ years of food manufacturing 300+ employees Flexibility as a strategic approach IT-systems should support:

rapid change diversified processes

IT-policy with strong development component

Page 4: Delivering flexible applications using data-management patterns

Remia and Plex

Long term AS/400 - iSeries experience Using 2E since 1991 Plex since 1999 for:

quality through standards enforcement speed through reuse of functional

patterns

Pattern development: Framework-approach vs. Explicit experience

Page 5: Delivering flexible applications using data-management patterns

Rolodex: the application

Centralised customer-info repository Flexibility: structural perspective

different channels, different info

Flexibility: process perspective short “time to change” independent from IT department

Requirement: user perspective easy and comprehensive

Page 6: Delivering flexible applications using data-management patterns

Rolodex: The Project

Base Layer Separation of Logical and Physical Introduction of “ Replace “ - entity Separation of UI and DB models

First phase of application project Redesign of Base Layer Build of additional patterns in sync with

Application Development

Page 7: Delivering flexible applications using data-management patterns

Rolodex: Categories of Patterns

Technical patterns: Synchronisation / consolidation of data History

Supporting patterns: Polymorphism

Functional patterns: data-flexibility User Managed Data Query XML

Page 8: Delivering flexible applications using data-management patterns

User Managed Data

User perspective Definition of questions Conditional application of question-groups

Developer perspective Creation of answer-formats Application within “owner-context”

Practice Used within 4 different contexts

Page 9: Delivering flexible applications using data-management patterns

Comparison to _UserData

Goals are comparable

Difficult to adjust _UserData to Remia’s BasePattern

UI of _UserData too constrained Limited run-time flexibility in _UserData Didn’t like the licensing model…..

Page 10: Delivering flexible applications using data-management patterns

Query

User perspective Conceptual vs. Table/Column view Tree-wise presentation of compound

queries

Developer perspective Creation of answer-context Creation of support for elementary

concepts: Datatype + Operators

Technical: ODBC + AS/400 support

Page 11: Delivering flexible applications using data-management patterns

Comparison to Filter

Filter can be implemented fast

Drawbacks are: attached to grid based on single view restricted operator-support for AS/400

implementation

Page 12: Delivering flexible applications using data-management patterns

XML

User perspective Flexible presentations: layout Selective presentation

Developer perspective New schemata Schema-extensions

Practice: XML-based presentation combines with

configurable data support

Page 13: Delivering flexible applications using data-management patterns

Patterns: User Managed Data Application Demonstration

Enter relation data Specify data for relation type

Page 14: Delivering flexible applications using data-management patterns

Delivery ConditionsProduct Sales

Patterns: User Managed Data Design

ListData

Data(format)

Characteristic

DataOwner

Characteristic_Data

Owner_ Characteristic

Owner_Data

Relation

Weekend (Yes/No)Max Pallet Weight (num)

Use in kg/week (num)

Type of Product (list)

Competitor (list)

RelationType

Rel_RelType

RelType_Char

Page 15: Delivering flexible applications using data-management patterns

Patterns: User Managed Data

Database Implementation

Characteristics

OwnerData

ListDataData

Characteristic_DataOwner_CharacteristicCharacteristic

Characteristics

Page 16: Delivering flexible applications using data-management patterns

Patterns: User Managed Data Interface Implementation, Data Entry

Characteristics Data ¦ Value

Data Entry, Format

Characteristics.DataEntry

Page 17: Delivering flexible applications using data-management patterns

Patterns: User Query Create and run query

Type A users in Java land, attending Edge 2002

Page 18: Delivering flexible applications using data-management patterns

Patterns: User Query Query example

Type A users in Java land, attending EMEA Type A AND Java AND attending EMEA

uery

Query Table Field(s) Format Condition TypeType A Rel_RelType TypeCode Char One (exist) SimpleJava land Rel_Group Group -

GroupTypeChar - Char

One (exist) Simple

Attending EMEA

Rel_Char_Data Caristic Data Value

Char-Num-Char

Any Session Plex Or Gen or Bizz

Complex

Page 19: Delivering flexible applications using data-management patterns

Patterns: User Query

User Query Pattern ERD Combine queries (AND /OR) UI to build combinations Query by Platform

AS400 - file pointer ODBC - SQL

Page 20: Delivering flexible applications using data-management patterns

Patterns: User Query Polymorphism Pattern

Super - Subtype Subtype

owned by supertype (query) shared functionality (run query) distinct functionality (query view / fields)

Query Table Field(s) Format Condition TypeType A Rel_RelType TypeCode Char One (exist) SimpleJava land Rel_Group Group -

GroupTypeChar - Char

One (exist) Simple

Using CA products

Rel_Char_Data Caristic Data Value

Char-Num-Char

Any of Ca Products, Plex OR Gen Or …

Complex

Page 21: Delivering flexible applications using data-management patterns

Common Functionality

View1 View7

Dispatcher

Patterns: Polymorphism

SuperType

SubType 1

DispatchersRunquery

ProtoType

SubType 2

Dispatch

DispatchDispatch

Runquery

RunqueryRunquery

Call RunQuery

Page 22: Delivering flexible applications using data-management patterns

Patterns: User Query ERD

Query_Owner

Answer Query

Compound Query

AND - OR

ElementaryQuery

Stack

QueryComposition

Relation

SuperType

SubType SubType

Page 23: Delivering flexible applications using data-management patterns

Patterns: User Query Implementation

Answer

CompoundQueryQueryCompositionStack

Query

Connection

RelationTypeCharacteristic

DistributionElementaryQuery

Call RunQuery

Page 24: Delivering flexible applications using data-management patterns

Patterns: XML/XSL Application Demo

Page 25: Delivering flexible applications using data-management patterns

Patterns: XML/XSL

XML generation DOM for xml generation Scripting for DOM control Conform with Plex

conventions

Page 26: Delivering flexible applications using data-management patterns

Patterns: XML/XSL XML Writer

Abstract functions Write xml data from block/single fetch XML generation options

Keys in node Attributes Field Names for nodes Impl Names for nodes

Page 27: Delivering flexible applications using data-management patterns

Patterns: XML/XSL XML Writer Tree structure through object scoping

Function name => Node Name Meta calls and parm mapping Field names for field tags MijnAgenda.xmlXML Generator function

Page 28: Delivering flexible applications using data-management patterns

Patterns: XML/XSL

XML Writer Implementation Inherit from abstract functions Replace View / Fetch functions

Page 29: Delivering flexible applications using data-management patterns

Patterns: XML/XSL

Display XML - XSL, ActiveX

Page 30: Delivering flexible applications using data-management patterns

Patterns: XML/XSL Display XML - Runtime script generation

to combine XML and XSL

<html><body><script language=VBScript>set xml = CreateObject("Microsoft.XMLDOM")xml.async = falsexml.load("klnkaart.xml")set xsl = CreateObject("Microsoft.XMLDOM")xsl.async = falsexsl.load("Basis.xsl")document.write(xml.transformNode(xsl))</script></body></html>

Page 31: Delivering flexible applications using data-management patterns

Patterns: XML/XSL

XML for data exchange between platforms Data transfer 1 table = 1 file Keys => Attributes

Relatie.xml

Page 32: Delivering flexible applications using data-management patterns

Patterns: XML/XSL

XML for data exchange Process Data Communication Files

DownloadInfo.xml

Page 33: Delivering flexible applications using data-management patterns

Observations

Flexibility and patterns Balancing between developer and user Weighing reusability and initial investment

Application Building Poor impact analysis Huge number of objects

Practical results Fast implementation when needed Small team delivers

Page 34: Delivering flexible applications using data-management patterns

Discussion

Questions

[email protected]

[email protected]

www.kiboko.nl