Pattern Libraries: Theory Adrian Slade Principal Pattern Engineer

Slides:



Advertisements
Similar presentations
Organizing List and Documents with Site Columns and Content Types Gayan Peiris Principal Consultant
Advertisements

Chapter 3 – Web Design Tables & Page Layout
Chapter 10: Designing Databases
Microsoft Office SharePoint Portal Server 2007 Introduction to InfoPath Forms Services Daryl L. Rudolph.
ARCH-01: Introduction to the OpenEdge™ Reference Architecture Don Sorcinelli Applied Technology Group.
Chapters 14 & 15 Internet Databases. E-Commerce  Bringing new products, services, or ideas to market, supporting and enhancing business operations 
Introduction to Databases
Access 2007 Product Review. With its improved interface and interactive design capabilities that do not require deep database knowledge, Microsoft Office.
15 Chapter 15 Web Database Development Database Systems: Design, Implementation, and Management, Fifth Edition, Rob and Coronel.
File Systems and Databases
Chapter 4: Database Management. Databases Before the Use of Computers Data kept in books, ledgers, card files, folders, and file cabinets Long response.
Multiple Document Interface (MDI) application
Databases and Database Management Systems
Chapter 1: The Database Environment
Using Microsoft SharePoint to Develop Workflow and Business Process Automation Ted Perrotte National Practice Manager, Quilogy, Microsoft Office SharePoint.
Discover, Master, InfluenceSlide 1 SQL Server Compact Edition and the Entity Framework Rob Sanders Readify.
WSS 3.0 Architecture and Enhancements Ashvini Shahane Member – Synergetics Research Lab.
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
SSIS Over DTS Sagayaraj Putti (139460). 5 September What is DTS?  Data Transformation Services (DTS)  DTS is a set of objects and utilities that.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Week 1 Lecture MSCD 600 Database Architecture Samuel ConnSamuel Conn, Asst. Professor Suggestions for using the Lecture Slides.
SQL Server Integration Services (SSIS) Presented by Tarek Ghazali IT Technical Specialist Microsoft SQL Server (MVP) Microsoft Certified Technology Specialist.
Obsydian OLE Automation Ranjit Sahota Chief Architect Obsydian Development Ranjit Sahota Chief Architect Obsydian Development.
Appendices A - F A-F Exploring Microsoft Visual Basic 6.0 Copyright © 1999 Prentice-Hall, Inc. By Carlotta Eaton.
Microsoft Access 2003 Define some key Access terminology: Field – A single characteristic or attribute of a person, place, object, event, or idea. Record.
Copyright © 2006 Pilothouse Consulting Inc. All rights reserved. Workflow Development Overview Architecture Requirements Types of workflows Stages of workflow.
© 2007 by Prentice Hall 1 Introduction to databases.
Professor Michael J. Losacco CIS 1110 – Using Computers Database Management Chapter 9.
File Processing Concepts – Field – combination of 1 or more characters that is the smallest unit of data to be accessed – Record – group of related fields.
Database Essentials. Key Terms Big Data Describes a dataset that cannot be stored or processed using traditional database software. Examples: Google search.
COMMITMENT CONTROL IN ADVANTAGE PLEX for DB2/400 Yolanda Scholtz 18 November 2002 Session - 4E 15: :00 EDGE EMEA Conference
Chapter 18 Object Database Management Systems. McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved. Outline Motivation for object.
6.1 © 2010 by Prentice Hall 6 Chapter Foundations of Business Intelligence: Databases and Information Management.
Maintaining a Database Access Project 3. 2 What is Database Maintenance ?  Maintaining a database means modifying the data to keep it up-to-date. This.
Dimension Framework in AX 6 By, Nasheet Ahmed Siddiqui.
Agile SOA Agile EAI How do we achieve agility in Enterprise Integration?
What’s New in MAS 90 and MAS ?. Agenda Benefits of 4.0 New Look and Feel Security GL Enhancements Reporting Customizer.
Physical Database Design Purpose- translate the logical description of data into the technical specifications for storing and retrieving data Goal - create.
Copyright © 2013 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill/Irwin APPENDIX C DESIGNING DATABASES APPENDIX C DESIGNING DATABASES.
CIS 250 Advanced Computer Applications Database Management Systems.
Object storage and object interoperability
Pattern Libraries: Practice Adrian Slade Principal Pattern Engineer
Chapter 18 Object Database Management Systems. Outline Motivation for object database management Object-oriented principles Architectures for object database.
Web Site Development - Process of planning and creating a website.
Positioning Objects with CSS and Tables
Introduction to Databases Angela Clark University of South Alabama.
1 Obsydian Tips & Techniques Doctor Obsydian AKA : Adrian Slade Principal Pattern Engineer
1 10 Systems Analysis and Design in a Changing World, 2 nd Edition, Satzinger, Jackson, & Burd Chapter 10 Designing Databases.
Navigation Framework using CF Architecture for a Client-Server Application using the open standards of the Web presented by Kedar Desai Differential Technologies,
ING XBRL Proof of Concept July 19, ©2005 page 2. Utilizing XBRL  ING Objectives  Benefits  Goals  Proof of Concept Plan  Stat  USGAAP  Pain.
Ganga/Dirac Data Management meeting October 2003 Gennady Kuznetsov Production Manager Tools and Ganga (New Architecture)
DBS201: Data Modeling. Agenda Data Modeling Types of Models Entity Relationship Model.
Exploring Networked Data and Data Stores Lesson 3.
Memory Management memory hierarchy programs exhibit locality of reference - non-uniform reference patterns temporal locality - a program that references.
Chapter 1 1 DATABASE ENGINEERING INTRODUCTION. Chapter 1 2 DATABASE ENGINEERING EC-316 Credits4(3,1) Text Book: Modern Database Management, by Hoffer,
Agenda for Today  DATABASE Definition What is DBMS? Types Of Database Most Popular Primary Database  SQL Definition What is SQL Server? Versions Of SQL.
Java FX: Scene Builder.
Database Database is a large collection of related data that can be stored, generally describes activities of an organization. An organised collection.
Understand Windows Forms Applications and Console-based Applications
Following Initial Design Review
File Systems and Databases
Tutorial 6 Creating Dynamic Pages
Starting Design: Logical Architecture and UML Package Diagrams
Chapter 1: The Database Environment
The Database Environment
Designed for Obsydian® Logo™
Objects, Patterns, and Obsydian Keith Jaeger
Database management systems
Presentation transcript:

Pattern Libraries: Theory Adrian Slade Principal Pattern Engineer

©1998 Synon Corporation 2Agenda What is a Pattern? What is a Pattern? Why Patterns now? Why Patterns now? Library structure Library structure Naming & Coding conventions Naming & Coding conventions Using the Patterns Using the Patterns OBASE integration & future OBASE integration & future Questions Questions Quick demo Quick demo

©1998 Synon Corporation 3 What’s a Pattern? Describes a solution to a problem within a context Describes a solution to a problem within a context Obsydian stores and codifies reusable patterns Obsydian stores and codifies reusable patterns Class libraries are now Pattern Libraries Class libraries are now Pattern Libraries Analysis Patterns by Fowler. Pub: Addison-Wesley. ISBN Pattern Oriented Software Architecture by Buschmann, Meunier, Rohnert, Sommerland & Stall. Pub: Wiley. ISBN

©1998 Synon Corporation 4 Example 1 Function to load a grid

©1998 Synon Corporation 5 Example 2 Simple Business Contact

©1998 Synon Corporation 6 What’s New? Collections Points Collections Points Enable merge of code Enable merge of code Multiple Function Inheritance Multiple Function Inheritance Code comes from several sources Code comes from several sources Will be enabled in Obsydian V3.5 Will be enabled in Obsydian V3.5

©1998 Synon Corporation 7 Multiple Function Inheritance Function CFunction BFunction A Function A (part 1) Function A (part 2) Function B Function C (part 1) Function C (part 2) Function A (part 3) Local code is a Multiple is a triples Code merges

©1998 Synon Corporation 8 What’s New? Collections Points Collections Points Enable merge of code Enable merge of code Multiple Function Inheritance Multiple Function Inheritance Code comes from several sources Code comes from several sources Will be enabled in Obsydian V3.5 Will be enabled in Obsydian V3.5 ActiveX enabled on Panels ActiveX enabled on Panels Allows better runtime control of the panel Allows better runtime control of the panel

©1998 Synon Corporation 9 What’s New? Collections Points Collections Points Enable merge of code Enable merge of code Multiple Function Inheritance Multiple Function Inheritance Code comes from several sources Code comes from several sources Will be enabled in Obsydian V3.5 Will be enabled in Obsydian V3.5 ActiveX enabled on Panels ActiveX enabled on Panels Allows better runtime control of the panel Allows better runtime control of the panel Extract All Extract All No sub models required. All libraries at once. No sub models required. All libraries at once.

©1998 Synon Corporation 10Structure Library content is more discrete Library content is more discrete Easier to find objects Easier to find objects Models are smaller Models are smaller Smaller pieces Smaller pieces Easier to replace parts of a composite pattern Easier to replace parts of a composite pattern Not all Synon originated Not all Synon originated

©1998 Synon Corporation 11Layers Horizontal Applications Inventory, A/R, A/P, GL... Vertical Applications Retail banking, Insurance … Business Support Workflow, Security, Archiving, Transaction Processing Foundations Data maintenance, different GUI styles... AdLibs Storage, Validate Active, UIStyle...

©1998 Synon Corporation 12 Structure Diagram OBJECTS ACTIVEUIBASICSTORAGEVALIDATE UISTYLE FIELDS A model’s libraries are on the line below it FOUNDATION Technology Libraries WINAPI AS400ODBC3DATE...

©1998 Synon Corporation 13OBJECTS The current library but modified The current library but modified Function shell as top of inheritance tree Function shell as top of inheritance tree Provides message services Provides message services UI function shell UI function shell Defines the common Events Handler Defines the common Events Handler Some more ‘*’ fields Some more ‘*’ fields

©1998 Synon Corporation 14FIELDS Common field definitions Common field definitions Reduces field redundancy and name clashes Reduces field redundancy and name clashes Exceptions : ‘*’ fields Exceptions : ‘*’ fields

©1998 Synon Corporation 15STORAGE An entity with views - Update & Fetch An entity with views - Update & Fetch Update view scopes 4 functions Update view scopes 4 functions Insert, Update & Delete rowInsert, Update & Delete row CheckedUpdate - image compareCheckedUpdate - image compare Fetch view scopes 4 functions Fetch view scopes 4 functions CheckRowCheckRow FetchRow  Get one instanceFetchRow  Get one instance BlockFetch  Get sequentialBlockFetch  Get sequential ProcessGroup  Process some instancesProcessGroup  Process some instances Type specific entities Type specific entities RelationalTableRelationalTable …

©1998 Synon Corporation 16VALIDATE Meta functions for validation Meta functions for validation

©1998 Synon Corporation 17ACTIVE Wrapper functions to handle common ActiveX controls Wrapper functions to handle common ActiveX controls Calendar Calendar Treeview/Listview Treeview/Listview Progress bar Progress bar File Open/Save File Open/Save … Scripts and code included to make them work Scripts and code included to make them work Most from Microsoft Most from Microsoft Part of Windows O/S Part of Windows O/S

©1998 Synon Corporation 18UIBASIC Granular unscoped functions Granular unscoped functions Functions with panel elements Functions with panel elements Display, Update, Grid Display, Update, Grid Combined in some useful ways Combined in some useful ways Update with New Update with New Some code to handle control states Some code to handle control states protect keys, protect keys, protect virtuals, protect virtuals, …

©1998 Synon Corporation 19UISTYLE Replacement for ‘Standard functions’, plus Replacement for ‘Standard functions’, plus More complex combinations of UIBASIC functions More complex combinations of UIBASIC functions Dual grids Dual grids Grid with editing region Grid with editing region … Includes validation Includes validation

©1998 Synon Corporation 20FOUNDATION Several useful Entities Several useful Entities EditDetail  Grid maintained entity EditDetail  Grid maintained entity EditDialog  User maintained entity EditDialog  User maintained entity SurrogateKeyed  Enumerated entity SurrogateKeyed  Enumerated entity SurrogateAlternate - New SurrogateAlternate - New ReferredTo  Referenced entity ReferredTo  Referenced entity Association  Two parent child (3 flavors) Association  Two parent child (3 flavors) … Provides a starter set for new developers Provides a starter set for new developers ‘How-To Guide’ for pattern developers ‘How-To Guide’ for pattern developers

©1998 Synon Corporation 21 Technology Libraries AS400 AS400 AS/400 specific functionality AS/400 specific functionality No entities No entities DATE DATE Same as the current OBDATE Same as the current OBDATE ODBC3 ODBC3 ODBC version 3 compliant API’s ODBC version 3 compliant API’s Rewritten and much smaller Rewritten and much smaller WINAPI WINAPI Windows API’s for 32 bit applications Windows API’s for 32 bit applications Combination of the current OBWIN, OBNT and OBMAPI Combination of the current OBWIN, OBNT and OBMAPI

©1998 Synon Corporation 22 Naming Conventions Most names have no spaces Most names have no spaces EditDetail EditDetail Name clashes avoided Name clashes avoided Exception - STORAGE/RelationalTable.Physical table Exception - STORAGE/RelationalTable.Physical table Panel regions and local variables Panel regions and local variables

©1998 Synon Corporation 23 Panel & Local Variables

©1998 Synon Corporation 24 Naming Conventions Most names have no spaces Most names have no spaces EditDetail EditDetail Name clashes avoided Name clashes avoided Exception - STORAGE/Physical Table Exception - STORAGE/Physical Table Panel regions and Local variables Panel regions and Local variables ActiveX Scripts ActiveX Scripts

©1998 Synon Corporation 25 ActiveX Scripts

©1998 Synon Corporation 26 Coding Conventions Most code added in subroutines or collection points Most code added in subroutines or collection points Most subroutines have a start and end edit point Most subroutines have a start and end edit point Code is also conditioned on a meta field Code is also conditioned on a meta field

©1998 Synon Corporation 27 Subroutines & Collection Points

©1998 Synon Corporation 28 Coding Conventions Most code added in subroutines or collection points Most code added in subroutines or collection points Most subroutines have a start and end edit point Most subroutines have a start and end edit point Code is also conditioned on a meta field Code is also conditioned on a meta field Local fields added to function specific variables Local fields added to function specific variables

©1998 Synon Corporation 29 Local variables

©1998 Synon Corporation 30 ActiveX Scripts Scoped to function Scoped to function Allows local modification Allows local modification All in VB Script All in VB Script Provide support for the control’s events Provide support for the control’s events

©1998 Synon Corporation 31 VB Script

©1998 Synon Corporation 32 How do I use all this? Build larger functions from smaller parts in (almost) any combination Build larger functions from smaller parts in (almost) any combination Add in parts later as required Add in parts later as required Add an is a to your function Add an is a to your function Set values and call subroutines to use the inherited code Set values and call subroutines to use the inherited code Can all be described in the documentation - compiled HTML Can all be described in the documentation - compiled HTML

©1998 Synon Corporation 33 Compiled HTML Pattern Library Help File

©1998 Synon Corporation 34 OBASE integration Entities can be a mixture of inheritance Entities can be a mixture of inheritance Application can be a mixture of old and new Application can be a mixture of old and new Integration across function partition Integration across function partition Old functions cannot inherit from new ones Old functions cannot inherit from new ones OBASE…Patterns An Application OBJECTS

©1998 Synon Corporation 35 OBASE futures OBASE key element of a 5250 solution OBASE key element of a 5250 solution Will keep up-to-date with the product Will keep up-to-date with the product Will support any new generators Will support any new generators No major enhancements or new entities No major enhancements or new entities

©1998 Synon Corporation 36 Questions?

©1998 Synon Corporation 37 Model statistics 10 entities - 10 tables, 26 views, 53 fields, 1024 triples 10 entities - 10 tables, 26 views, 53 fields, 1024 triples 116 implemented functions, 25 with panels 116 implemented functions, 25 with panels 11 functions have AD changes lines of code 11 functions have AD changes lines of code 21 panels with design changes 21 panels with design changes Local model mb, group model 634kb Local model mb, group model 634kb Generates 220,000 lines of code in 2min 20sec Generates 220,000 lines of code in 2min 20sec 6.93mb source in 500 files 6.93mb source in 500 files Takes 11min to compile for release Takes 11min to compile for release 3.17mb application in 155 files 3.17mb application in 155 files Average DLL size is 22kb, largest is 69kb Average DLL size is 22kb, largest is 69kb

©1998 Synon Corporation 38 Patterns in Action

Pattern Libraries: Theory Adrian Slade Principal Pattern Engineer