adaptive database application modeling api final project report sourena nasiriamini cs 491 6/2/2005
Post on 15-Jan-2016
215 views
TRANSCRIPT
![Page 1: Adaptive Database Application Modeling API Final Project Report SOURENA NASIRIAMINI CS 491 6/2/2005](https://reader035.vdocuments.us/reader035/viewer/2022062804/56649d4c5503460f94a2a172/html5/thumbnails/1.jpg)
Adaptive Database Application Modeling API
Final Project Report
SOURENA NASIRIAMINICS 491
6/2/2005
![Page 2: Adaptive Database Application Modeling API Final Project Report SOURENA NASIRIAMINI CS 491 6/2/2005](https://reader035.vdocuments.us/reader035/viewer/2022062804/56649d4c5503460f94a2a172/html5/thumbnails/2.jpg)
OUTILINE
• Introduction– Motivation– Objectives
• Approach– Architecture– API Design– API Implementation
• Implementation– First Application (Demo)– Second Application (Demo)
• Conclusion and Future Work
![Page 3: Adaptive Database Application Modeling API Final Project Report SOURENA NASIRIAMINI CS 491 6/2/2005](https://reader035.vdocuments.us/reader035/viewer/2022062804/56649d4c5503460f94a2a172/html5/thumbnails/3.jpg)
MOTIVATION
• Looking at how applications were being designed and developed, many tasks are repeated for every application
• Such practices often result in applications that– Often do not contain reusable elements– Are hard to maintain and configure– Have static components that are hard to change
• Such concerns compelled me to think about applications that were– Fully Dynamic– Adaptable– Flexible
![Page 4: Adaptive Database Application Modeling API Final Project Report SOURENA NASIRIAMINI CS 491 6/2/2005](https://reader035.vdocuments.us/reader035/viewer/2022062804/56649d4c5503460f94a2a172/html5/thumbnails/4.jpg)
MOTIVATION CONT…
• So I could
– Reuse the work I had already done
– Save development time
– Better maintain current applications
– Easily customize/change applications
![Page 5: Adaptive Database Application Modeling API Final Project Report SOURENA NASIRIAMINI CS 491 6/2/2005](https://reader035.vdocuments.us/reader035/viewer/2022062804/56649d4c5503460f94a2a172/html5/thumbnails/5.jpg)
OUTILINE
• Introduction– Motivation– Objectives
• Approach– Architecture– API Design– API Implementation
• Implementation– First Application (Demo)– Second Application (Demo)
• Conclusion and Future Work
![Page 6: Adaptive Database Application Modeling API Final Project Report SOURENA NASIRIAMINI CS 491 6/2/2005](https://reader035.vdocuments.us/reader035/viewer/2022062804/56649d4c5503460f94a2a172/html5/thumbnails/6.jpg)
OBJECTIVES
• Design API:
– To help reuse components
– To take advantage of metadata
– Use Metadata to generate components dynamically
– Automatically populate components with appropriate data
![Page 7: Adaptive Database Application Modeling API Final Project Report SOURENA NASIRIAMINI CS 491 6/2/2005](https://reader035.vdocuments.us/reader035/viewer/2022062804/56649d4c5503460f94a2a172/html5/thumbnails/7.jpg)
OBJECTIVES
• Implementation based on API– E-Commerce Application
•The reference implementation to showcase the API functionality
•To show the benefits of using the API
– Class Registration Application•Showcase the reusability benefits•Time saved using Dynamic components •Benefits resulting from data
independence•Application adaptability
![Page 8: Adaptive Database Application Modeling API Final Project Report SOURENA NASIRIAMINI CS 491 6/2/2005](https://reader035.vdocuments.us/reader035/viewer/2022062804/56649d4c5503460f94a2a172/html5/thumbnails/8.jpg)
OUTILINE
• Introduction– Motivation– Objectives
• Approach– Architecture– API Design– API Implementation
• Implementation– First Application (Demo)– Second Application (Demo)
• Conclusion and Future Work
![Page 9: Adaptive Database Application Modeling API Final Project Report SOURENA NASIRIAMINI CS 491 6/2/2005](https://reader035.vdocuments.us/reader035/viewer/2022062804/56649d4c5503460f94a2a172/html5/thumbnails/9.jpg)
ARCHITECTURE
• 3 Tier Model
Domain Specific GUI Component
Final Presentation Component
Business and Process Objects
Database ContainingDomain Specific Data
BusinessTier
PresentationTier
Data Tier
![Page 10: Adaptive Database Application Modeling API Final Project Report SOURENA NASIRIAMINI CS 491 6/2/2005](https://reader035.vdocuments.us/reader035/viewer/2022062804/56649d4c5503460f94a2a172/html5/thumbnails/10.jpg)
ARCHITECTURE
• Problem:
– Focus on Data (Data Centered)
– Data •Raw•Domain Specific•Cannot be generalized in a useful way
•Does not contain information about its intended use
![Page 11: Adaptive Database Application Modeling API Final Project Report SOURENA NASIRIAMINI CS 491 6/2/2005](https://reader035.vdocuments.us/reader035/viewer/2022062804/56649d4c5503460f94a2a172/html5/thumbnails/11.jpg)
ARCHITECTURE
• Solution:– Extend the Architecture
– Change focus from data to metadata (model)
– Place model at the center of the architecture
– Use the Model Driven Architecture (MDA)•Allows for dynamic component
generation•Automatic Data Retrieval•Collaboration Benefits (OMG)
![Page 12: Adaptive Database Application Modeling API Final Project Report SOURENA NASIRIAMINI CS 491 6/2/2005](https://reader035.vdocuments.us/reader035/viewer/2022062804/56649d4c5503460f94a2a172/html5/thumbnails/12.jpg)
ARCHITECTURE
• 4 Tier Architecture
Metadata
Business and Process Objects
Domain Specific GUI Component
Final Presentation Component
Generic GUI Component
Data Tier
ModelTier
PresentationTier
BusinessTier
![Page 13: Adaptive Database Application Modeling API Final Project Report SOURENA NASIRIAMINI CS 491 6/2/2005](https://reader035.vdocuments.us/reader035/viewer/2022062804/56649d4c5503460f94a2a172/html5/thumbnails/13.jpg)
OUTILINE
• Introduction– Motivation– Objectives
• Approach– Architecture– API Design– API Implementation
• Implementation– First Application (Demo)– Second Application (Demo)
• Conclusion and Future Work
![Page 14: Adaptive Database Application Modeling API Final Project Report SOURENA NASIRIAMINI CS 491 6/2/2005](https://reader035.vdocuments.us/reader035/viewer/2022062804/56649d4c5503460f94a2a172/html5/thumbnails/14.jpg)
API DESIGN
• Breakdown of Tasks
Dynamic Interpreter
ADAM Designer
ERD of the business Model
Generic GUI Component
Domain Specific GUI Component
Final Presentation Component
Business and Process Objects
Domain Specific Data
ADAM Designer
ADAMAPI
ADAMAPI
ControllerCode
ViewImplementation
Specific
![Page 15: Adaptive Database Application Modeling API Final Project Report SOURENA NASIRIAMINI CS 491 6/2/2005](https://reader035.vdocuments.us/reader035/viewer/2022062804/56649d4c5503460f94a2a172/html5/thumbnails/15.jpg)
API DESIGN
• In Java 2 platform
– Classes and Interfaces allow the necessary abstractions to separate tasks that needs to be done.
– Intermediate or “Glue” methods pass collections to/from each tier or class implementing an interface (see Implementation)
![Page 16: Adaptive Database Application Modeling API Final Project Report SOURENA NASIRIAMINI CS 491 6/2/2005](https://reader035.vdocuments.us/reader035/viewer/2022062804/56649d4c5503460f94a2a172/html5/thumbnails/16.jpg)
API DESIGN
• Organization
Modeler Interface
DataBase
Get
Set
Send
Receive
ProcessLoad
Save
Mapper Interface
Viewer Interface
![Page 17: Adaptive Database Application Modeling API Final Project Report SOURENA NASIRIAMINI CS 491 6/2/2005](https://reader035.vdocuments.us/reader035/viewer/2022062804/56649d4c5503460f94a2a172/html5/thumbnails/17.jpg)
API DESIGN
• Organization– 2 Ways to use the API
1.Extend Each Tier (Any class thereof)
– Maximum control
2.Implement the appropriate interfaces:
– Minimum Complexity
![Page 18: Adaptive Database Application Modeling API Final Project Report SOURENA NASIRIAMINI CS 491 6/2/2005](https://reader035.vdocuments.us/reader035/viewer/2022062804/56649d4c5503460f94a2a172/html5/thumbnails/18.jpg)
OUTILINE
• Introduction– Motivation– Objectives
• Approach– Architecture– API Design– API Implementation
• Implementation– First Application (Demo)– Second Application (Demo)
• Conclusion and Future Work
![Page 19: Adaptive Database Application Modeling API Final Project Report SOURENA NASIRIAMINI CS 491 6/2/2005](https://reader035.vdocuments.us/reader035/viewer/2022062804/56649d4c5503460f94a2a172/html5/thumbnails/19.jpg)
API IMPLEMENTATION
• Progress so far:
Modeler
Business and Process Objects
Domain Specific GUI Component
Final Presentation Component
Generic GUI Component
Domain Specific Data
ADAMAPI
ControllerCode
ViewImplementation
Specific
ADAMAPI
![Page 20: Adaptive Database Application Modeling API Final Project Report SOURENA NASIRIAMINI CS 491 6/2/2005](https://reader035.vdocuments.us/reader035/viewer/2022062804/56649d4c5503460f94a2a172/html5/thumbnails/20.jpg)
API IMPLEMENTATION
• A more detailed view
GUI Manager(Viewer)(Factory)
Interpreter(Modeler)
(Database)
Business Manager(Mapper)
(Processor)
ADAM API
Load()
Send()
Receive()
Save()
Get()
Set()
![Page 21: Adaptive Database Application Modeling API Final Project Report SOURENA NASIRIAMINI CS 491 6/2/2005](https://reader035.vdocuments.us/reader035/viewer/2022062804/56649d4c5503460f94a2a172/html5/thumbnails/21.jpg)
API IMPLEMENTATION
• Metadata in Java
– In general, applications do not need the name of the columns associated with a ResultSet
– So JDBC designers did not include this in the core ResultSet functionality.
– But in order to develop dynamic data access components, access to this information – the metadata – is essential.
![Page 22: Adaptive Database Application Modeling API Final Project Report SOURENA NASIRIAMINI CS 491 6/2/2005](https://reader035.vdocuments.us/reader035/viewer/2022062804/56649d4c5503460f94a2a172/html5/thumbnails/22.jpg)
METADATA IN JAVA
• The use of ResultSetMetaData– A call to getMetaData() tells the application about
the structure and organization of the returned results (metadata).
• Examples: – The number of columns in a table. – The label to use for a column header.– The source table for a column.– The data type of a column.
![Page 23: Adaptive Database Application Modeling API Final Project Report SOURENA NASIRIAMINI CS 491 6/2/2005](https://reader035.vdocuments.us/reader035/viewer/2022062804/56649d4c5503460f94a2a172/html5/thumbnails/23.jpg)
API IMPLEMENTATION
Modeler
Collection (Generic)
Collection Type
Collection Name
Collection Size
Collection Type Instance
APIDatabase Application
Table Name
Column Type
Column Name
Column Size
Data
•Mapping Scheme
![Page 24: Adaptive Database Application Modeling API Final Project Report SOURENA NASIRIAMINI CS 491 6/2/2005](https://reader035.vdocuments.us/reader035/viewer/2022062804/56649d4c5503460f94a2a172/html5/thumbnails/24.jpg)
OUTILINE
• Introduction– Motivation– Objectives
• Approach– Architecture– API Design– API Implementation
• Implementation– First Application (Demo)– Second Application (Demo)
• Conclusion and Future Work
![Page 25: Adaptive Database Application Modeling API Final Project Report SOURENA NASIRIAMINI CS 491 6/2/2005](https://reader035.vdocuments.us/reader035/viewer/2022062804/56649d4c5503460f94a2a172/html5/thumbnails/25.jpg)
OUTILINE
• Introduction– Motivation– Objectives
• Approach– Architecture– API Design– API Implementation
• Implementation– First Application (Demo)– Second Application (Demo)
• Conclusion and Future Work
![Page 26: Adaptive Database Application Modeling API Final Project Report SOURENA NASIRIAMINI CS 491 6/2/2005](https://reader035.vdocuments.us/reader035/viewer/2022062804/56649d4c5503460f94a2a172/html5/thumbnails/26.jpg)
PROJECT TIMELINE (SUMMARY)
Week1
Week2
Week3
Week4
Week5
Week6
Week7
Week 8
Week9
Week10
First Application
Second Application
API Design and Implementation
Final Project Presentation
![Page 27: Adaptive Database Application Modeling API Final Project Report SOURENA NASIRIAMINI CS 491 6/2/2005](https://reader035.vdocuments.us/reader035/viewer/2022062804/56649d4c5503460f94a2a172/html5/thumbnails/27.jpg)
CONCLUSION
• Using the API
– Dynamic
– Reusable
– Flexible
• Helping to
– Save time
– Increase Quality
![Page 28: Adaptive Database Application Modeling API Final Project Report SOURENA NASIRIAMINI CS 491 6/2/2005](https://reader035.vdocuments.us/reader035/viewer/2022062804/56649d4c5503460f94a2a172/html5/thumbnails/28.jpg)
Questions and Answers
• Q/A
• Thank you!