|
ApplicationArchitecture
The application architecture documentation describes the layers, the functions, artifacts, etc.
D-Model-View-Controller (DMVC)The architectural model of MyBikeRides is an instance of the MVC architecture, with an additional layer called Data. the D of our DMVC will provide fundations for the persistence of data using an Object-relational mapper (ORM) framework such as Hibernate, JDO, JPA. Therefore, it's concern is to separate the data later from the business logic in a transparent way. The implementation of this architecture was first commited at revision r73. Data LayerThe data model will depend on the technical decisions presented at the DataPersistence documentation. No matter which type of database will be chosen, the persistence framework must support both SQL and XML for its operations:
Different the techniques are used to map objects to relational databases. However, our strategy will be taken on the following way:
Architectural decisions in how the data must be persisted will influence in the decision of which Database System we should go with. Storying the entire XML provided by the Garmin user seems to be reasonable only if the Database System is smart enough to provide capabilities of retrieval in both XML or SQL, since we could either use tools and interfaces for both "worlds". TODO: NORMALIZED VIEW OF THE DATA AND ITS OBJECT-RELATIONAL MAPPING MODEL. Model LayerThe model will be composed by the entities extracted from the Requirements documentation, and can be defined as possible:
Web UserIt is an abstract user with a username, password and email information. BikerAs the name explains, it contains the name, address, zip code, etc about the biker. Chris defined a BaseUser... That should be refectored in here... Or we could use his naming convention. CLASS DIAGRAM AND STRUCTURE STILL NEED TO BE DESIGNED.
In the case of the Routes/Rides classes/entities, the GaminDataBinding explains how the 1-to-1 transformation of the XML schema classes to JAVA classes. In this way, these classes are going to be resused during the Data Binding and DataTransformation phases. TrainingCenterDatabaseTypeThe main class from a Gamin's GPS artifact is the TrainingCenterDatabaseType class and it is AGGREGATED by Folders, ActivityList, WorkoutList, CourseList and AbstractSource. (The any extension element in XML schema is used to allow XML Schame class extensibility).
The only sets of classes of our interests are Folders and Activities.
ActivityListTypeIt is the only one type used in this aggregation level, which includes the complete list of the tracks, laps, etc.
ActivityTypeEach activity type on the ActivityListType has its own list of attributes regarding the complete activity. It is aggregated by a list of ActivityLaps.
ActivityLapTypeIt contains information about each lap in a given activity. The complete information about the avarages of heart beat rate or speeds are part of this class as its attributes.
TrackTypeEach activity lap is aggregated by a list of TrackTypes.
TrackPointTypeThe track type contains a list of Track Points which gives information in a specific time such as position, distance so far, etc.
ViewSince the view is the Web, the application will make use of JSP's. http://code.google.com/p/csc667-termproject/source/browse/trunk/mybikerides/webcontent/pages MORE TO BE DEFINED ControllerThe controller will be used Servlets that will make calls to the Facades/internal controllers from the model application. It is implemented in Struts 1.3 and it is basically a set of Servlets that better maps the HTML forms into JAVA. More to be discused at http://code.google.com/p/csc667-termproject/source/browse/trunk/mybikerides/webcontent/WEB-INF/struts-config.xml?r=73
The Action Servlets are created at the client.web controllers: http://code.google.com/p/csc667-termproject/source/browse/trunk/mybikerides/webcontent/WEB-INF/src/logic/edu/sfsu/cs/mybikerides/client/web/controller See the "View" section above for the references to the JSP pages. More references about struts at the following list:
- http://www.systemmobile.com/?p=200 - http://www.laliluna.de/struts-message-resources-tutorial.html
- http://www.roseindia.net/struts/strutsfileupload.shtml |
Sign in to add a comment