Amir Bishara and Dorin Danial Supervisors: Roiy Zysman Dr. Ilana David.
-
Upload
bennett-reed -
Category
Documents
-
view
224 -
download
2
Transcript of Amir Bishara and Dorin Danial Supervisors: Roiy Zysman Dr. Ilana David.
Amir Bishara and Dorin DanialSupervisors:
Roiy ZysmanDr. Ilana David
Goals Background and Motivation Development stages Design
Layers classes Backup modules Console Application
Testing We Learned Accomplishments Improvements
Web2.0 services are widely used to store data.
The services may experience downtimes, accounts may be hacked or data is simply deleted. This creates a need for backup.
1. Defining project goals.2. Defining the system requirements.3. Writing use cases.4. Defining classes and class diagrams.5. Drawing UML diagrams.6. Implementing the system.7. Testing.
To create a simple, automatic, multi-service backup web application.
Design the system with the ability to add more services in the future without changing it.
Registering new users. Email confirmation. Password encryption.
Login user to the system. Forgotten password:
Send email. Secret question and answer.
Updating user’s information. Password confirmation.
Support admin user Deleting users. User search. Change users details. Showing statistics. Adding a new service.
Backing up different services: RSS, username-password based.
Displaying the backed up and trashed data. Automatic update. Stop automatic update. Allow manual update. Automatic database maintenance
Trash can. Deletion of unconfirmed users
Manage user’s allowed disk quota. Adding support for additional service types as plug-in.
Separation to layers formsModularity
The ability to change an implementation of a layer without effecting the other layers
Easier maintainability reuse
Better control of the systemSeparate responsibilities
Interface is needed to implement the plug-in mechanism
DatabaseTables with relationships that save all the
data. Data Access Layer
Is used to transfer data between the BL layer and the Database.
Business Logic LayerPerforms all the logic operations of the
system. Graphical User Interface
Is used for user – system communication.
DataUpdate_ID
User_ID
Service_ID
URL_ID
Title
Date
DataQuota
RemainingDays
Description
Link
RawData
LastUpdate
ServiceTypesService_ID
ServiceName
ServiceType
NeedPass
URLURL_ID
Service_ID
User_ID
URL
URLQuota
URL_UserName
URL_Password
RemainingDays
URLName
UsersUser_ID
UserName
Password
FirstName
LastName
SecretQuestion
SecretAnswer
Birthday
Country
Company
Job
UsedQuota
RemainingQuota
IsAdmin
IsVerified
VerificationString
EmailChange
Users Contains users and their personal details
ServiceTypes Supported services and their types
URL Backed up accounts and URLs Related to
Users through user_id ServiceTypes through service_id
DATA The backed up data Related to
Users through user_id ServiceTypes through service_id URL through url_id
Automatically generated by sqlmetal as partial classes Use special syntax
Interface function to BLL were written in a different file
Table relations are mapped to class relations using the XML mapping file (also generated by sqlmetal)
Access to database using Database class only
Connection class used for easier connection and code reuse
UserRepresents a user in the system. Implements all user-related functions. Is the connection to the Users class in the
DAL. Admin
Implements admin-related functions. Database_BL
Is the connection to the URL, DATA, ServiceTypes classes in the DAL.
Could also be implemented in three separate classes.
Aspx pages contain .NET components (buttons, textfields, etc.) which activate an event.
The events call methods from the code-behind files.
All code is run on the server, returning only HTML code to the user’s browser.
Are separated from the BLL to enable adding support for additional services without changing the system.
Backup interface Between the system and 3rd party developers
Backup classes Each class does a backup for a specific service
type. Developed independently of the system.
BackUpManager Handles the backups and updates
Calls the backup classes Retrieves data from the database (using BLL) Performs trash can actions
ServiceInfoAccount details needed for the 3rd party developrs.
UpdateFunctions for the 3rd party developers to save the information and additional data needed for the system
UpdateInfo3rd party developrers fill this informatin
BackUpClassImplemented (inherited) by the 3rd party developers.
UpdateInfo The information that the backup class saves in the system
Update Contains the additional necessary information to store the update in the
Data table (user_id, service_id, url_id) Service functions to the backup class
SaveUpdate – stores update in the database GetLastUpdate – returns last update of the account MakeLastFalse – changes lastupdate field in the table
ServiceInfo Contains the information needed by the backup class (URL, Username,
Password) Also containes Update class Is sent to the backup class in the constructor
Backup class Abstract Does the backup Two methods
CheckDetails – check if account details are correct GetDataFromService – backs up the data
Connect to the remote service for backup
Are placed and loaded from a pre-defined folder
RSSBacks up RSS servicesRelies of RSS format for backup
GmailBacks up Gmail email accountConnects using POP3 protocol and SSL
Loads and calls the backup classes
Only class that handles backup and backed up information
Retrieves and deletes updates from the database
Is used by the console application for the updates
Jobs:Automatic update.Trash can.
Is scheduled to run in a desired frequency.
In each iterationActions are preformed on a constant
number of users.Services updates are made.Deletes users that haven’t been confirmed
within a week.Deletes services and data that have been in
trash can for a week. Log files are created. It goes over the user list of the database
in a cyclic way.
3rd party developersDownload BackUpInterface.dll Implement classCreate .dll for the classDownload website page templateChange template according to needSend dll and webpage files
webSave adminPlace backup dll file in dll folderPlace webpage file in webpage folderLogin to website and add new service type
Can be done automatically using testing projectsNot suitable with void-returning functions
Was done manually
Designing and developing a large software systemObject Oriented ProgrammingWeb application and the layers separation
Working withthe .NET framework and Visual Studio
C# LINQ
Relational databasesXML
All project requirements were met Two service types were developed Project book and user manual were
written
Change database tables to support more users
Better, more service specific, back up classes using service API.
Better GUI.