Download presentation
Presentation is loading. Please wait.
Published byGertrude Garrison Modified over 9 years ago
1
Andrew S. Budarevsky Adaptive Application Data Management Overview
2
Goals of creation The abstract representation of business objects and business logic Changes to the application flow by changing the application’s meta data instead of making changes to the application’s program code Reusability of functional components
3
MetaObject MetaObjectEntry is used to introduce MetaObject within repository. It provides knowledge of attributes and data stream semantics. MetaObject is an interface implemented by data holder object. ISemanticHandler is interface used to describe data stream of certain kind
4
MetaObject Management MetaObject is not type. Data retrieval procedures always can check handling data for consistency by means of MetaObjectEntry use. This option could not require particular coding for each type of handling data. Absence of object inheritance makes model more comprehensive and simple to be used in each particular case. Instead of inheritance it supposes to be a network-like structure where each entity node may have one or more associates semantically linked. MetaObjectEntries are manageable and can change while application running.
5
MetaObject Repository MetaObjectRepository provides to the application services to handle data streams. Application requests data in context of available meta objects or store live data onto storages. Application may assign a transaction for outgoing data streams.
6
Streaming Streaming is very important part of this concept helping with data management. Actually, streaming is used to link application meta model with real data inside or outside of the application. The certain use of model is a choice of developer and there should not be any constraints imposed on data management. Herein each Meta Object could consist of one or many content types or content semantics. In fact, Meta Object provides meta structure of handling data. Repository is responsible for stream management in context of selected MetaObject. Each MetaObjectEntry contains own collection of content semantics which is manageable. The content in context of one Meta Object may depend upon content of another Meta Object. This relation is semantic association of two entities. These entities might be completely different naturally. For instance, reading file follows the file search. In context of data streaming reading file is a process that provides stream of file pieces like line or word and this process is connected to the file search process. Both processes imply stream.
7
Content handlers Content handlers are bricks of application functionality Reusable Have predictable behavior Could be dynamically deployed and reconfigured Could be dynamically chained (filter mode)
8
Content semantics example (part1) Quote Attributes: quote, date Context: financial object Content: quotes on period Map attr:quote on: quonew Handler kindOf:system/db/DataSource semantics: online quote server Param: period select quonew from quotes where QUO_DAT=’${period}’ Content: store quote locally Handler: kindOf: system/db/DataSource semantics: quote local cache Insert into QUOTES (${quote}, ${date}) DataSource Attributes: URL, username, password Context: system/db Content: online quote server Handler kindOf:/ semantics:self … registering appropriate content callback Content: quote local cache Handler kindOf:/ semantics:self … registering appropriate content callback There are two business objects: Quote and DataSource. Quote is semantically linked to DataSource because DataSource provides connection details that are necessary to configure handler querying database where real data is held. In meantime the application depends on attributes of Quote and doesn’t care where the data is resided physically. The storing of the quotes is planned on another database.
9
Content semantics example (part2) Quote Attributes: quote, date Context: financial object Content: quotes on period Map attr:quote on: quonew Handler kindOf:system/db/DataSource semantics: online quote server Param: period select quonew from quotes where QUO_DAT=’${period}’ Content: store quote locally Handler: kindOf: system/db/DataSource semantics: quote local cache Insert into QUOTES (${quote}, ${date}) DataSource Attributes: URL, username, password Context: system/db Content: online quote server Handler kindOf:/ semantics:self … registering appropriate content callback Content: quote local cache Handler kindOf:/ semantics:self … registering appropriate content callback Providing by content handler data could have different metadata however it is foreseen a mapping mechanism to cast providing data. There is no mapping for Quote content store quote locally because content handler refers MetaObject attributes directly. Content handlers may expect some extra parameters that don’t exist as attributes of this content handler owner. At the example parameter period
10
Representative pattern Representative This is optional but very useful mechanism to separate business logic from being depended upon AADM API. Representatives implement logic of data retrieval and data persistence and hide all details from business logic level
11
Writing object representative
12
Using repository and objects
13
Object Factoring AADM supports automatic object instantiation. ObjectFactory takes JavaBean class as a parameter and fills in values of properties corresponding to MetaObject attributes.
14
Object Persistence AADM provides basic support for persisting objects onto data storages. It extracts values of JavaBeans from JavaBean object and uses given semantic to save the data.
15
Conclusion System following this concept acquire high level of adaptation and scalability. The concept introduces very advanced features to build high efficient and easy maintainable applications.
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.