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

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

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

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

Amir Bishara and Dorin DanialSupervisors:

Roiy ZysmanDr. Ilana David

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

Goals Background and Motivation Development stages Design

Layers classes Backup modules Console Application

Testing We Learned Accomplishments Improvements

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

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.

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

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.

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

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.

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

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.

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

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

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

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.

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

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

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

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

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

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

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

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.

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

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.

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

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

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

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.

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

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

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

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

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

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

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

Jobs:Automatic update.Trash can.

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

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.

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

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

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

Can be done automatically using testing projectsNot suitable with void-returning functions

Was done manually

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

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

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

All project requirements were met Two service types were developed Project book and user manual were

written

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

Change database tables to support more users

Better, more service specific, back up classes using service API.

Better GUI.