280 likes | 558 Views
Meta Data Architectures. Meta Data Architectures. ?. WHAT WHEN HOW WHY. Meta Data Architectures. ?. WHAT.
E N D
Meta Data Architectures
Meta Data Architectures ? • WHAT • WHEN • HOW • WHY
Meta Data Architectures ? • WHAT Metadata architectures are adaptive program frameworks built using a new software design methodology. Metadata architectures enable the end-user to dynamically change the behavior of the program without changing its code [Lie96, Foo98]. [1] Lieberherr, K. J. Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns. PWS Publishing Company, 1996. [3]Foote, B., and J. W. Yoder. “Metadata and Active Object-Models.”Technical Report, WUSC-98-25, Department of Computer Science, Washington University, 1998.
Meta Data Architectures ? • WHAT Framework - A framework is a reusable design expressed as a set of abstract classes and the way their instances collaborate. It is a reusable design for all or part of a software system. Example GUI framework [1] Lieberherr, K. J. Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns. PWS Publishing Company, 1996. [3]Foote, B., and J. W. Yoder. “Metadata and Active Object-Models.”Technical Report, WUSC-98-25, Department of Computer Science, Washington University, 1998.
Meta Data Architectures ? • WHAT Metadata architectures are thus frameworks (reusable design of collaborating instances) that adapt at run time to new user requirements. They accomplish this with structures, constraints, rules, and other programming constructs. They are a different level of abstraction.
Meta Data Architectures ? • WHAT More difficult to build and understand. Less code than traditional programs. Relies heavily on dynamic programming language with reflective capabilities.
Meta Data Architectures MetaData Program Family of Programs
Meta Data Architectures MetaData Program - GUI Infinitely many XML class structures for different GUI screens Family of Views (screens)
Meta Data Architectures II. WHEN Analysis Design Implementation
Meta Data Architectures HOW • Traditional Analysis – identify customer domain entities. • Metadata Analysis – additionally we need to: • Identify those entity or entity characteristics which will require adaptation during the entities life cycle. • Define a KNOWLEDGE level for those entities that allows the easy adaptation of their values/procedures.
Meta Data Architectures HOW Simple Example: Traditionally, we encoded code table values in the code as constants. CityValues.add (Tallahassee) CityValues.add (Appalachacola) ……. Each time we added a code table value, NewCity, etc. we had to change the code and add another value. We learned to make a table contining these code values and allow the user to add code table values. Thus the code table became metadata to the program.
Meta Data Architectures HOW Code alues first attempt at building metadata architectures. Business rules another attempt. Example – insurance business rule: if home = brick reducePremium (.001) if fireDepartdistance < 1.0 reducePremium (0.0005) if homeZipCode in hurricaneSet (increasePremium (0.01) We can build a metadata class containing the reduction rates or values needed to implement the rules. (example type of construction – brick - .001, stucco - .0005, etc fireDepartmentdistance <=1 - .00005, >1<10 - .00002, etc homeZipcode hurricaneSet – 0.01, tornadoSet – 0.005
Meta Data Architectures HOW Yet another technique used in building metadata arch is using polymorphism to implement adaptive behavior code. We define the different behavior as subclasses, include the name of the class as the metadata. Then we make an instance of the needed class AT RUN TIME using a technique called “reflection”. Using the CLASS class, we use methods such as forName to implement the needed behavior
Meta Data Architectures HOW How does this work? Example: ONLY ONE GUI program is needed for all screens AND use metadata that allows us to execute 420 simple entry GUIs needed for a system. Example: We define ONLY ONE Servlet or ASP or .net Application for a typical CRUD applications using metadata to execute over 300 application programs. Example: We define ONLY ONE Case Based Reasoner and implement it with metadata as a reasoner in various domains such as packet sniffing, facial recognition with nodals, or medical diagnostics.
Meta Data Architectures HOW ScreenDemographic124 = Name + DOB
Meta Data Architectures HOW ScreenDemographic124 Entry Screen Classes
Meta Data Architectures HOW Classes Validator …. Discrete Alphabetic Range
Meta Data Architectures WHY $$$$$$$$$
Meta Data Architectures AOM – Adaptive Object Model Elements: Metadata Type of Objects (TO) Meta Types of Objects (TO2) ER Models Rule Objects Interpreters/Builders Editors,/ GUIs i.e. REFLECTIVE ARCHITETURE i.e. METADATA ARCHITECTURE
Meta Data Architectures Examples of Patterns used in MetaData Architectures: 1. Party 2. Accountability 3. Observation 4. Inventory 5. Accounting 6. Trading 7. Contracts 8. Facades
Analysis Patterns 1. Party Pattern Party Type Knowledge level Operational level 1 0..M 1 Party 1 Person Organization Post (appointments) John Doe FSU Dean Party Type ObjectRecord Min Max Table Student Person StudentRecord University Organization University UniversityT
Analysis Patterns 2. Accountability Pattern Accountability Type Knowledge level Operational level 1 0..M 1 Accountability 1 Person is Dean of a Campus Person works for a Department Accountability Related Types ObjectRecord Actions Time Period Manager of Person, department manages hires, fires begin end Person, campus manages hires,fires begin end Enrolls in Person, class enrollment add,drop semester Accepts in Person, campus accepts applies,… semester Person, department accepts applies,… semester
Analysis Patterns 3. Observation Pattern 1 0..M Phenomenon Type Phenomenon Knowledge level Operational level 1 1 0..M 0..M 1 Observation 1 Observation Type DataType Validator Min Max Table Label ErrorMessage Show size Showsize Integer Range 4 20 Show Size Range is from 0 to 15 Hair color Haircolor String Discrete HairTable Hair Color Color Must be …… Name Personname String Null Name
Meta Data Architectures Anything you can do I can do better meta………