Delivering flexible applications using datamanagement patterns Willem de
Delivering flexible applications using data-management patterns Willem de Vries, Remia C. V. Simon Jasperse, Kiboko
Agenda w Remia, the company w Remia and Plex w Rolodex w Remia Patterns n n n Application Design Plex w Observations w ? time
Remia, The Company w 75+ years of food manufacturing w 300+ employees w Flexibility as a strategic approach w IT-systems should support: n n rapid change diversified processes w IT-policy with strong development component
Remia and Plex w Long term AS/400 - i. Series experience w Using 2 E since 1991 w Plex since 1999 for: n n quality through standards enforcement speed through reuse of functional patterns w Pattern development: n n Framework-approach vs. Explicit experience
Rolodex: the application w Centralised customer-info repository w Flexibility: structural perspective n different channels, different info w Flexibility: process perspective n n short “time to change” independent from IT department w Requirement: user perspective n easy and comprehensive
Rolodex: The Project w Base Layer n n n Separation of Logical and Physical Introduction of “ Replace “ - entity Separation of UI and DB models w First phase of application project w Redesign of Base Layer w Build of additional patterns in sync with Application Development
Rolodex: Categories of Patterns w Technical patterns: n n Synchronisation / consolidation of data History w Supporting patterns: n Polymorphism w Functional patterns: data-flexibility n n n User Managed Data Query XML
User Managed Data w User perspective n n Definition of questions Conditional application of question-groups w Developer perspective n n Creation of answer-formats Application within “owner-context” w Practice n Used within 4 different contexts
Comparison to _User. Data w Goals are comparable w Difficult to adjust _User. Data to Remia’s Base. Pattern w UI of _User. Data too constrained w Limited run-time flexibility in _User. Data w Didn’t like the licensing model…. .
Query w User perspective n n Conceptual vs. Table/Column view Tree-wise presentation of compound queries w Developer perspective n n Creation of answer-context Creation of support for elementary concepts: Datatype + Operators w Technical: ODBC + AS/400 support
Comparison to Filter w Filter can be implemented fast w Drawbacks are: n n n attached to grid based on single view restricted operator-support for AS/400 implementation
XML w User perspective n n Flexible presentations: layout Selective presentation w Developer perspective n n New schemata Schema-extensions w Practice: n XML-based presentation combines with configurable data support
Patterns: User Managed Data w Application Demonstration n n Enter relation data Specify data for relation type
Patterns: User Managed Data w Design Relation Data. Owner_ Characteristic Rel_ Rel. Type Characteristic Relation Type Rel. Type _Char Delivery Product Conditions Sales Characteristic _Data Owner_ Data (format) List. Data Use in kg/week (num) Weekend (Yes/No) Type of Product (list) Max Pallet Weight (num) Competitor (list)
Patterns: User Managed Data w Database Implementation Characteristics Characteristic Owner_Characteristic_Data Owner. Data List. Data
Patterns: User Managed Data w Interface Implementation, Data Entry Characteristics. Data. Entry Characteristics Data ¦ Value Data Entry, Format
Patterns: User Query w Create and run query n Type A users in Java land, attending Edge 2002
Patterns: User Query w Query example n Type A users in Java land, attending EMEA l Type A AND Java AND attending EMEA
Patterns: User Query w User Query Pattern n n ERD Combine queries (AND /OR) UI to build combinations Query by Platform l l AS 400 - file pointer ODBC - SQL
Patterns: User Query w Polymorphism Pattern n n Super - Subtype l l l owned by supertype (query) shared functionality (run query) distinct functionality (query view / fields)
Patterns: Polymorphism Call Run. Query Super Type Dispatchers Runquery Proto Type Dispatch Runquery Common Functionality Sub Type 1 Sub Type 2 Dispatch Runquery View 1 Dispatch Runquery View 7
Patterns: User Query w ERD Query_ Relation Owner Answer Stack Query Super. Type Compound Query Sub. Type AND - OR Query Composition Elementary Sub. Type Query
Patterns: User Query w Implementation Call Run. Query Answer Elementary. Query Distribution Relation. Type Characteristic Connection Compound. Query. Composition Stack Query
Patterns: XML/XSL w Application Demo
Patterns: XML/XSL w XML generation n DOM for xml generation Scripting for DOM control Conform with Plex conventions
Patterns: XML/XSL w XML Writer n n n Abstract functions Write xml data from block/single fetch XML generation options l l l Keys in node Attributes Field Names for nodes Impl Names for nodes
Patterns: XML/XSL w XML Writer Tree structure through object scoping XML Generator function w Function name => Node Name w Meta calls and parm mapping w Field names for field tags Mijn. Agenda. xml
Patterns: XML/XSL w XML Writer Implementation n n Inherit from abstract functions Replace View / Fetch functions
Patterns: XML/XSL w Display XML - XSL, Active. X
Patterns: XML/XSL w Display XML - Runtime script generation to combine XML and XSL <html> <body> <script language=VBScript> set xml = Create. Object("Microsoft. XMLDOM") xml. async = false xml. load("klnkaart. xml") set xsl = Create. Object("Microsoft. XMLDOM") xsl. async = false xsl. load("Basis. xsl") document. write(xml. transform. Node(xsl)) </script> </body> </html>
Patterns: XML/XSL Relatie. xml w XML for data exchange between platforms n n n Data transfer 1 table = 1 file Keys => Attributes
Patterns: XML/XSL w XML for data exchange n Process Data Communication Files Download. Info. xml
Observations w Flexibility and patterns n n Balancing between developer and user Weighing reusability and initial investment w Application Building n n Poor impact analysis Huge number of objects w Practical results n n Fast implementation when needed Small team delivers
Discussion Questions de. Vries@remia. nl simon@kiboko. nl www. kiboko. nl
- Slides: 34