The Theon Book

Tim Colles

Revision History
June 2016TC

Dedication

Copyright © 2016, Tim Colles.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the appendix entitled "GNU Free Documentation License".

Table of Contents

Preface
1. Blurb
I. Overview
1. Components of Theon
2. Models
3. Streams
4. Desktops
5. Overall Architecture
II. Model
6. Introduction
7. Representation
7.1. Model Library Home
7.2. Search Path
7.3. Live Profile
7.4. Creating
7.5. Version Control
8. Schema Representation
8.1. XML-Schema Tree of XSD Files - Directory Structure
8.2. XSDDB Structure
9. Transforms
9.1. DDL
9.2. DDLDoc
9.3. UI
9.4. UIDoc
9.5. Coupler
9.6. CouplerDoc
9.7. Model
10. Architecture
11. Workflow
12. Walkthrough
12.1. Getting World
12.2. Initialisation
12.3. Import
12.4. Export
12.5. Derive
12.6. Finally
12.7. Reload
12.8. Adding Pagila
13. Usage
13.1. Version Control Awareness
13.2. Starting from Scratch
13.3. Making Changes
13.4. Changing an Upstream Model
13.5. Changing the XSDDB
13.6. Managing Multiple Models
13.7. Doing Transforms
13.8. Conflict Resolution
14. Editing XSDDB Content using TheonUI
14.1. Model Desktop
14.2. Dictionary Desktop
14.3. Reflection Desktop
14.4. Usage
15. Schema Factory
15.1. Updating Entities and Entity Bodies
16. Testing Changes
16.1. Testing Changes to TheonUI
16.2. Testing Changes to TheonCoupler
III. TheonCoupler
17. Introduction
18. Loading the Stream Source Table
19. Configurations
20. Coupling the Stream Source Table
20.1. Mechanism
20.2. Striping
20.3. Local Override
20.4. Key Lookup
20.5. Parameters
20.6. Literals
20.7. Purge
20.8. Metadata
21. Stream and Couple Definition
22. Running Streams and Couples
23. Making Changes
IV. TheonUI
24. Architecture
V. Release Management
25. Introduction
VI. Installing/Configuring
26. Installation
VII. Recipes
27. Introduction
28. XSDDB Bootstrap Testing
29. Adding a Field to a Desktop Panel
30. Upgrading a ModelLibrary
31. Updating a ModelLibrary
32. Importing an Existing Database and Building a Desktop
33. Creating a new ModelLibrary from scratch
34. Adding a new TheonCoupler Feed
35. Theon’ifying the "World"
36. Adding a new feed and couple
VIII. Ancillary Notes
37. Introduction
38. Install/Import/Default Database/Schema, Extensions and Role Handling
IX. Theon Database (XSDDB) Technical Reference
Preface
39. Sequence
39.1. akmap_id_seq
39.2. attribute_id_seq
39.3. bond_id_seq
39.4. camap_id_seq
39.5. capability_id_seq
39.6. cdmap_id_seq
39.7. cemap_id_seq
39.8. cluster_id_seq
39.9. connector_id_seq
39.10. couple_id_seq
39.11. desktop_id_seq
39.12. domain_id_seq
39.13. eamap_id_seq
39.14. eemap_id_seq
39.15. entity_id_seq
39.16. event_id_seq
39.17. field_id_seq
39.18. key_id_seq
39.19. link_id_seq
39.20. lock_id_seq
39.21. model_id_seq
39.22. pair_id_seq
39.23. panel_id_seq
39.24. presenter_id_seq
39.25. profile_id_seq
39.26. rakmap_id_seq
39.27. relationship_id_seq
39.28. role_id_seq
39.29. sequence_id_seq
39.30. stream_id_seq
39.31. template_id_seq
40. Table
40.1. akmap
40.2. attribute
40.3. bond
40.4. camap
40.5. capability
40.6. cdmap
40.7. cemap
40.8. cluster
40.9. connector
40.10. couple
40.11. desktop
40.12. domain
40.13. eamap
40.14. eemap
40.15. entity
40.16. event
40.17. field
40.18. forge_attribute_feed
40.19. forge_eemap_feed
40.20. forge_entity_feed
40.21. forge_event_feed
40.22. key
40.23. link
40.24. lock
40.25. model
40.26. pair
40.27. panel
40.28. presenter
40.29. profile
40.30. rakmap
40.31. relationship
40.32. role
40.33. sequence
40.34. stream
40.35. template
41. Type
41.1. pgcat_akmap_type
41.2. pgcat_attribute_type
41.3. pgcat_camap_type
41.4. pgcat_capability_type
41.5. pgcat_domain_type
41.6. pgcat_eamap_type
41.7. pgcat_eemap_type
41.8. pgcat_entity_type
41.9. pgcat_event_type
41.10. pgcat_key_type
41.11. pgcat_model_type
41.12. pgcat_rakmap_type
41.13. pgcat_relationship_type
41.14. pgcat_role_type
42. View
42.1. coupler_attribute_feed
42.2. coupler_entity_feed
42.3. derived_entity_feed
42.4. ui_panel_connector
42.5. xsd_cluster
42.6. xsd_desktop
42.7. xsd_entity
42.8. xsd_model
42.9. xsd_panel
42.10. xsd_profile
42.11. xsd_role
42.12. xsd_schema
42.13. xsd_stream
43. Function
44. TheonCoupler Function
44.1. _th_coupler_attribute_couple
44.2. _th_coupler_entity_couple
44.3. _th_derived_entity_couple
44.4. _th_forge_attribute_couple
44.5. _th_forge_eemap_couple
44.6. _th_forge_entity_couple
44.7. _th_forge_event_couple
44.8. _th_pgcat_akmap_couple
44.9. _th_pgcat_attribute_couple
44.10. _th_pgcat_camap_couple
44.11. _th_pgcat_capability_couple
44.12. _th_pgcat_domain_couple
44.13. _th_pgcat_eamap_couple
44.14. _th_pgcat_eemap_couple
44.15. _th_pgcat_entity_couple
44.16. _th_pgcat_event_couple
44.17. _th_pgcat_key_couple
44.18. _th_pgcat_model_couple
44.19. _th_pgcat_rakmap_couple
44.20. _th_pgcat_relationship_couple
44.21. _th_pgcat_role_couple
45. Eventfunction
45.1. coupler_stream_push
45.2. derived_stream_push
46. TheonCoupler Eventfunction
46.1. _th_coupler_akmap_check
46.2. _th_coupler_attribute_check
46.3. _th_coupler_camap_check
46.4. _th_coupler_capability_check
46.5. _th_coupler_domain_check
46.6. _th_coupler_eamap_check
46.7. _th_coupler_eemap_check
46.8. _th_coupler_entity_check
46.9. _th_coupler_event_check
46.10. _th_coupler_key_check
46.11. _th_coupler_model_check
46.12. _th_coupler_rakmap_check
46.13. _th_coupler_relationship_check
46.14. _th_coupler_role_check
47. Tablefunction
47.1. pgcat_akmap_feed
47.2. pgcat_attribute_feed
47.3. pgcat_camap_feed
47.4. pgcat_capability_feed
47.5. pgcat_domain_feed
47.6. pgcat_eamap_feed
47.7. pgcat_eemap_feed
47.8. pgcat_entity_feed
47.9. pgcat_event_feed
47.10. pgcat_key_feed
47.11. pgcat_model_feed
47.12. pgcat_rakmap_feed
47.13. pgcat_relationship_feed
47.14. pgcat_role_feed
48. Clusters
48.1. Dictionary
48.2. Reflection
49. Roles
50. Streams
50.1. coupler
50.2. derived
50.3. forge
50.4. pgcat
X. Theon Database UI Desktop Technical Reference
Preface
51. Desktops
51.1. Clustering
51.2. Dictionary
51.3. Permission
51.4. Reflection
51.5. Streaming
52. Panels
52.1. Attribute
52.2. Bond
52.3. Choose Model
52.4. Choose Model
52.5. Choose Model
52.6. Choose Model
52.7. Cluster & Desktops
52.8. Cluster & Entities
52.9. Constraint
52.10. Couple
52.11. Desktop
52.12. Entity
52.13. Event
52.14. Key
52.15. Model
52.16. Panel
52.17. Relationship
52.18. Requires
52.19. Role
52.20. Stream
A. GNU Free Documentation License
B. Theon Model Toolkit
C. Supported PostgreSQL DDL Syntax
Index

List of Figures

5.1. Theon Architecture (Private Installation)
5.2. Theon Architecture (Service Installation)
5.3. Theon Architecture (Services Combinations)
5.4. Theon Architecture (Production Environment)
8.1. XSDDB Architecture
10.1. Theon Architecture
11.1. Theon Architecture Flow
13.1. Theon Workflow
13.2. Theon Changes Workflow
17.1. Fan
19.1. Single Stream (Basic Configuration)
19.2. Dual Stream (Composite Configuration)
19.3. Dual Stream with Local Data (Composite Configuration)
19.4. Local Data Only (Composite Configuration)
19.5. Single Stream with Local Data and Feedback Loop (Composite Configuration)
19.6. Embedded Dual Stream with Local Functional Data and Feedback Loop (Composite Configuration)
20.1. Synchronisation Mechanism
20.2. Vertical Striping (Commoned)
20.3. Vertical Striping (Independent)
20.4. Horizontal Striping
20.5. Horizontal Striping (Distinct Handles)
20.6. Horizontal Striping (Common Handles)
20.7. Dynamic Stream Tag
20.8. Stream Handover
20.9. Update Override
20.10. Insert Override
20.11. Delete Override
20.12. Paramaterized Couple Call

List of Tables

B.1. Actions Summary
B.2. Attach Action: Syntax and Usage
B.3. Create Action: Syntax and Usage
B.4. Delete Action: Syntax and Usage
B.5. Derive Action: Syntax and Usage
B.6. Destroy Action: Syntax and Usage
B.7. Display Action: Syntax and Usage
B.8. Export Action: Syntax and Usage
B.9. Gather Action: Syntax and Usage
B.10. Import Action: Syntax and Usage
B.11. Install Action: Syntax and Usage
B.12. Launch Action: Syntax and Usage
B.13. Package Action: Syntax and Usage
B.14. Release Action: Syntax and Usage
B.15. Reload Action: Syntax and Usage
B.16. Server Action: Syntax and Usage
B.17. Stream Action: Syntax and Usage
B.18. Upgrade Action: Syntax and Usage