Online Examination Using Farming Based System Ajay Anand(d0267003) Kapil More(d0267007) Sri...
-
Upload
madison-griffith -
Category
Documents
-
view
215 -
download
0
Transcript of Online Examination Using Farming Based System Ajay Anand(d0267003) Kapil More(d0267007) Sri...
Online Examination Using Farming Based System
Ajay Anand(d0267003)
Kapil More(d0267007)
Sri Ram(d0267027)
Yogesh Patrikar(d0267022)
Online Examination Using Farming Based System
Load BalancingCorba Architecture Platform IndependentN-tier ArchitectureAnalysis and DesignDatabase ConnectivityGUI and Web Server
Load Balancing
The core idea of this project is Load Balancing.Load Balancing is done by the SchedulerScheduler Receives the request from the client
and on the basis of priority/time requirement,loads on the servers ,forwards the requests to the appropriate server.
There are lots of servers behind the Scheduler to handle the requests.
Common Object Request Broker
Common Object Request Broker Architecture is a standard architecture for distributed object systems.
It allows distributed heterogeneous collection of objects to interoperate by providing a set of standard interfaces.
Platform Independent
This project is Platform Independent.Client and Server can reside anywhere in
the word on any platform.Client makes call without knowing where
the server is .Handle Transparency.
N-tiers Architecture
Scheduler
N-tiers Architecture
It is an N-Tiers Architecture.The Sequence is:
Client-Web Server-Scheduler-Cluster Server-Database-……….
Architecture…
APP1
APP2
APP3
APP4
SchedulerTomcatWeb ClientMySQL
Detail Architecture…
APS1
APS2
APS3
APS4
SchedulerTomcatWeb ClientMySQL
NS 1000
NS 2000Registration,
Authentication,………….
Registration1, Registration2, Registration3,…………….
Proxy Design Pattern
Scheduler Mechanism….
function_impl {
give(info);
waitforlock();
getlock();
…..
client code follows……
Scheduler
Function call
Server ID
Analysis and Design
UML(Unified Modeling Language)– Standard for describing designs– Visual: a set of diagrams
Use Case DiagramsSequence DiagramsCollaboration DiagramsIDL
Use Case
Registration
(from User)
Taking Exam
(from User)
View Result
(from User)
Student
(f rom Exam)
Paper Registration
(from Admin)
Statistical Report
(from Admin)
Logout
(from Exam)
Login
(from Exam)
HR Admin
(f rom Exam)
User Validation
(from Exam)
<<include>>
User Validation
(from Scheduller)
Configuration
(from Admin)
System Admin
(f rom Scheduller)
Reporting
(from Scheduller)
Login
(from Scheduller)
Logout
(from Scheduller)
System User
(f rom Scheduller)
<<include>>
Sequence Diagram:SystemAdmin-Config
: System Admin CI : Config Interface CC : Config Controller CE : Configuration CDB : ConfigDB
Request for configuring parameter
Config Param and Values
Update configuration
Set Config
Collaboration Diagram:SystemAdmin-Config
: System Admin CI : Config Interface CC : Config Controller
CE : Configuration
CDB : ConfigDB
1: Request for configuring parameter
8:
2: Config Param and Values
7:
3: Update configuration
6:
4: Set Config
5:
Sequence Diagram:Student-Examination
: Student EU : Examination UI EC : Examination Controller : Schedulling E : Examination EDB : ExamDB
Request for taking an exam
Request for a question
Get previous question list
Forward request to server
Forward the request to Exam controller
Get Question
Collaboration Diagram:Student-Examination
: Student EU : Examination UI
: Schedulling
E : Examination
EC : Examination Controller
3: Get previous question list
EDB : ExamDB
1: Request for taking an exam
10:
2: Request for a question
9:
4: Forward request to server
5: Forward the request to Exam controller
8:
6: Get Question
7:
Sequence Diagram:Student-ViewResult
: Student VR : View Result UI VC : View Result Controller : Schedulling : Examination ESDB : ExamStatisticDB
Show result
View result request for user
Collaboration Diagram:Student-ViewResult
: Registration
: Registration Controller
: Registration Form
: Student
: Schedulling
: (Student)
4: Get shortest job5: Get least loaded server
7: Set Student Data8:
3: Please schedule the request
10:
2: Registration Request
11:
1: Personal Info
12:
6: Request for registration
9:
Sequence Diagram:HRAdmin-Login
: HR Admin : Login Form : Login Controller : Authenitaction Proxy : Authentication : Schedulling
Name and Passwd
Request for Login
Asking the proxy for req.
Forward the request to server
Ask for validationForward request to server
Get shortest job
Get least loaded server
Collaboration Diagram:HRAdmin-Login
: HR Admin : Login Form : Login Controller
: Authenitaction Proxy
: Authentication
: Schedulling
5: Get shortest job6: Get least loaded server
1: Name and Passwd
14:
2: Request for Login
13:
3: Asking the proxy for req.
12:
8: Forward request to server
9:
4: Forward the request to server11:
7: Ask for validation
10:
Sequence Diagram:Student-Login
: Student LF : Login Form LC : Login Controller : Schedulling AP : Authenitaction Proxy AE : Authentication
Name and PasswdRequest for login
Asking proxy to serve
Forwarding req. to server
Asking proxy for validating
Forwarding the request to server
Shortest Job
Least Loaded Server
Collaboration Diagram:Student-Login
: Student LF : Login Form LC : Login Controller
: Schedulling
AP : Authenitaction Proxy
AE : Authentication 5: Shortest Job6: Least Loaded Server
1: Name and Passwd
14:
2: Request for login
13:
3: Asking proxy to serve
12:
4: Forwarding req. to server11:
7: Asking proxy for validating
10: 8: Forwarding the request to server
9:
Sequence Diagram:HRAdmin-PaperCreation
: HR Admin UP : Upload Paper UI PC : Paper Controller : Schedulling PP : Paper Proxy QP : Ques Paper
Create PaperUpload paper file request
Asking to handle the requestForward the request
Pls. collect the paper and store
Forward the request
Get shortest job
Get least loaded server
Collaboration Diagram :HRAdmin-PaperCreation
: HR Admin UP : Upload Paper UI PC : Paper Controller
: Schedulling
PP : Paper Proxy
QP : Ques Paper
5: Get shortest job6: Get least loaded server
1: Create Paper
14:
2: Upload paper file request
13:
3: Asking to handle the request
12:
4: Forward the request
11:
7: Pls. collect the paper and store
10:
8: Forward the request
9:
Sequence Diagram:Student-Registration
: Registration : Registration Controller : Registration Form : Student : Schedulling : (Student)
Personal InfoRegistration Request Please schedule the request
Get shortest job
Get least loaded server
Request for registration Set Student Data
Collaboration Diagram:Student-Registration
: Student VR : View Result UI VC : View Result Controller
: Schedulling
ESDB : ExamStatisticDB
: Examination
1: Show result
7:
2: View result request for user
6:
3:
4:
5:
Sequence Diagram:HRAdmin-Report
: HR Admin SR : Exam statistics Report RC : Report Controller : Schedulling RP : Report Proxy SR : Statistics Report
Show reportGet report for particular exam
Ask for the reportForward the request
Give me the report
Forward the request
Get shortest job
Get least loaded server
Collaboration Diagram:HRAdmin-Report
: HR Admin SR : Exam statistics Report RC : Report Controller
: Schedulling
RP : Report Proxy
SR : Statistics Report
5: Get shortest job6: Get least loaded server
1: Show report
14:
2: Get report for particular exam
13:
3: Ask for the report
12:
4: Forward the request
11:
7: Give me the report
10:
8: Forward the request
9:
Sequence Diagram :SystemAdmin-User-Report
: System Admin RU : Report Request UI RP : ReportProxy RP : ReportRC : ReportController
Request for report (say load on each server)
Request for particular reportAsk the report proxy to process req
Forward the request
Collaboration Diagram :SystemAdmin-User-Report
: System Admin RU : Report Request UI RP : ReportProxy
RP : Report
RC : ReportController
1: Request for report (say load on each server)
8:
2: Request for particular report
7:
4: Forward the request5:
3: Ask the report proxy to process req
6:
: System Admin : Login Form : Login Controller : Authenitaction Proxy : Authentication
Name and PasswdRequest for login
Asking the auth proxy of schduller for req.
Forward the request to auth server of schduller
Sequence Diagram :SystemAdmin-Login
Collaboration Diagram :SystemAdmin-Login
: System Admin : Login Form : Login Controller : Authenitaction Proxy
: Authentication
1: Name and Passwd
8:
2: Request for login
7:
3: Asking the auth proxy of schduller for req.
6:
4: Forward the request to auth server of schduller5:
Sequence Diagram:SystemUser-Login
: System User : Login Form : Login Controller : Authenitaction Proxy : Authentication
Name and PasswdRequest for login
Asking the auth proxy of schduller for req
Forward the req for login to auth server of schduller
Collaboration Diagram:SystemUser-Login
: System User : Login Form : Login Controller : Authenitaction Proxy
: Authentication
1: Name and Passwd
8:
2: Request for login
7:
3: Asking the auth proxy of schduller for req
6:
4: Forward the req for login to auth server of schduller5:
IDL File
//IDL file for corba based client-server online testing application
module Farming_based_system{
interface Question{ attribute unsigned short current_question_paper ;
typedef sequence <string> question_paper ; //list of questions that are in one paper
typedef sequence<unsigned long> question_no_array; //list of questions previously answered by the candidate
exception QNFException {string reason;
};
exception ONSException {string reason;
};
exception CFException {string reason;
};
//get a question from the curren question paper such that it is not previously asked to the candidatevoid get_unique_question(in question_no_array prev_questions_nos , out string question)
raises (QNFException);
IDL Continued….
//verify the answer given by candiate.
void check_ans(in unsigned long question_no,in unsigned long ans_option, out boolean is_correct)
raises (ONSException);
//add to new question paper to the database
void add_question_set(in question_paper question_update)
raises (CFException);
//change the question paper for coming exam
void change_current_question_set(in unsigned long ques_set_no)
raises (CFException);
};
IDL Continued…
interface Authentication
{
struct Login_detail
{
string user_name;
string password;
};
exception InvalidLoginLException {
};
void validate_user(in Login_detail details , out boolean validated)
raises (InvalidLoginException);
};
IDL Continued…
interface Registration{
struct Regist_details{
string name;string password;string address;string sex;unsigned long phone_no;string email_id;
};
exception IDException {string reason;
};
//register user for testvoid register(in Regist_details details)
raises (IDException);
};
IDL Continued….
//get marks of particular student
void get_student_mark(in string stud_ID,out unsigned long marks)
raises (reportException);
//get marks of all students
void get_marks_report( stud_IDs student_ID,out marks student_marks)
raises (reportException);
};
};
IDL Continued…
interface report_manager{
struct pass_stud_report{
unsigned long total_registered_stu; unsigned long total_appeared_stu; unsigned long total_passed_stu;
};struct fail_stud_report{
unsigned long total_registered_stu;unsigned long total_appeared_stu;unsigned long total_failed_stu;
};typedef sequence<string> stud_IDs;//list of student idstypedef sequence <unsigned long >marks;//list of marks
exception reportException {string reason;
};
void get_pass_report(out pass_stud_report passed_stud)raises (reportException);
void get_fail_report(out fail_stud_report failed_stud) raises (reportException);
Database Connectivity
JDBCMysql
Database
Database : onlineexam
Tables :
+---------------------------+
| Tables_in_onlineexam |
+---------------------------+
| examresult |
| examstats |
| questionset |
| user |
+---------------------------+
Schema
examresult :
+---------+---------------+-------+-----+----------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+---------------+-------+------+---------+-------+
| emailid | varchar(100) | YES | | NULL | |
| marks | int(11) | YES | | NULL | |
| status | char(1) | YES | | NULL | |
+---------+--------------+------+-----+---------+---------+
Schema…
examstats:
+--------------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+---------+------+-----+---------+-------+
| month | int(11) | YES | | NULL | |
| year | int(11) | YES | | NULL | |
| t_registered | int(11) | YES | | NULL | |
| t_appeared | int(11) | YES | | NULL | |
| t_passed | int(11) | YES | | NULL | |
| t_failed | int(11) | YES | | NULL | |
+--------------+---------+------+-----+---------+-------+
Schema…
questionset :
+-------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| question_no | int(11) | | PRI | 0 | |
| question | varchar(255) | YES | | NULL | |
| opt1 | varchar(100) | YES | | NULL | |
| opt2 | varchar(100) | YES | | NULL | |
| opt3 | varchar(100) | YES | | NULL | |
| opt4 | varchar(100) | YES | | NULL | |
| ans | int(11) | YES | | NULL | |
| section | varchar(25) | YES | | NULL | |
+-------------+--------------+------+-----+---------+-------+
Schema…
user :
+----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| emailid | varchar(100) | | PRI | | |
| name | varchar(50) | YES | | NULL | |
| password | varchar(10) | YES | | NULL | |
| address | varchar(200) | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
| phoneno | varchar(10) | YES | | NULL | |
| dob | date | YES | | NULL | |
+----------+--------------+------+-----+---------+-------+
GUI and Web Server
HTMLJSPServletsWeb Server -Tomcat(linux)
Beginning of the end
Thank you……….