Amir Bishara and Dorin Danial Supervisors: Roiy Zysman Dr. Ilana David.

Post on 05-Jan-2016

224 views 2 download

Tags:

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

Email

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.