Date post: | 26-Dec-2015 |
Category: |
Documents |
Upload: | flora-mitchell |
View: | 215 times |
Download: | 0 times |
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 300+ employees Flexibility as a strategic approach IT-systems should support:
rapid change diversified processes
IT-policy with strong development component
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
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
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
Rolodex: Categories of Patterns
Technical patterns: Synchronisation / consolidation of data History
Supporting patterns: Polymorphism
Functional patterns: data-flexibility User Managed Data Query XML
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
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…..
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
Comparison to Filter
Filter can be implemented fast
Drawbacks are: attached to grid based on single view restricted operator-support for AS/400
implementation
XML
User perspective Flexible presentations: layout Selective presentation
Developer perspective New schemata Schema-extensions
Practice: XML-based presentation combines with
configurable data support
Patterns: User Managed Data Application Demonstration
Enter relation data Specify data for relation type
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
Patterns: User Managed Data
Database Implementation
Characteristics
OwnerData
ListDataData
Characteristic_DataOwner_CharacteristicCharacteristic
Characteristics
Patterns: User Managed Data Interface Implementation, Data Entry
Characteristics Data ¦ Value
Data Entry, Format
Characteristics.DataEntry
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
Patterns: User Query
User Query Pattern ERD Combine queries (AND /OR) UI to build combinations Query by Platform
AS400 - file pointer ODBC - SQL
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
Common Functionality
View1 View7
Dispatcher
Patterns: Polymorphism
SuperType
SubType 1
DispatchersRunquery
ProtoType
SubType 2
Dispatch
DispatchDispatch
Runquery
RunqueryRunquery
Call RunQuery
Patterns: User Query ERD
Query_Owner
Answer Query
Compound Query
AND - OR
ElementaryQuery
Stack
QueryComposition
Relation
SuperType
SubType SubType
Patterns: User Query Implementation
Answer
CompoundQueryQueryCompositionStack
Query
Connection
RelationTypeCharacteristic
DistributionElementaryQuery
Call RunQuery
Patterns: XML/XSL
XML generation DOM for xml generation Scripting for DOM control Conform with Plex
conventions
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
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
Patterns: XML/XSL
XML Writer Implementation Inherit from abstract functions Replace View / Fetch functions
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>
Patterns: XML/XSL
XML for data exchange between platforms Data transfer 1 table = 1 file Keys => Attributes
Relatie.xml
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