ASCNT 2010 CDAC NOIDA
C-56/1 & B-30 Sector 62 -Noida
National Online Examination System: An Architectural Perspective
Pradeep Kumar , Pankaj Nirwan , P Govind Raj
ASCNT 2010 CDAC NOIDA
Background
• NASSCOM Recommendation to the Government of India• DIT realizing the initiative through C-DAC• Objective: Design and Develop a robust, fault tolerant,
secure, and scalable and an adaptive system through which examinations can be delivered on an “on demand” basis in selected examination centers spread across the country.
• Implementation Phases– Phase 1: Software for conducting exams at National Levels to
be rolled out.– Phase 2: Collaborative environment for collecting Questions
into the question bank.
ASCNT 2010 CDAC NOIDA
Why not use Standard LMS ?
• Designed to deliver content and manage the teaching learning process.
• Not designed to handle large system loads• Computer Adaptive Testing is not
incorporated.
ASCNT 2010 CDAC NOIDA
Functional Requirements
Result Generation
Exam Conduction
Manage Questions
Matrix/Vector Creation Question Pool Management Module
Admit Card Generation
Registration
Demographic Details Photographs Booking of Exam Slot Payment through Gateway/DD
ASCNT 2010 CDAC NOIDA
Non Functional Requirements
• No Vendor Lock in.• Scale Out Vs Scale Up.• Ease of Extendibility• High System Throughput• High Availability• Security/Privacy• Key Escrow Mechanisms
ASCNT 2010 CDAC NOIDA
High Level Architecture
• Blaze DS
• Blaze DS
• Remoting Tier
• Flash Player
• Flash Player
• Browser/AIR• Browser/AIR
• UI on Flex
• UI on Flex
• Presentation Tier
• Business Tier
• ORM Hibernate
• ORM Hibernate • D
B• D
B
• Spring Core
• Context
• AOP
• Transaction
• JDBC
• Security • ORM
• ORM
Tier
• Data Tier
• Persistence
• Logging
• Tomcat on Tuned JVM
ASCNT 2010 CDAC NOIDA
High Level Architecture
Blaze DSBlaze DS
Remoting Tier
Flash PlayerFlash Player
Browser/AIRBrowser/AIR
UI on FlexUI on Flex
Presentation Tier
Business Tier
ORM Hibernate
ORM Hibernate DBDB
Spring Core
Context
AOP
Transaction
JDBC
Security ORM
ORM Tier
Data Tier
Persistence
Logging
Tomcat on Tuned JVM
AS3 VO Java
ASCNT 2010 CDAC NOIDA
High Level Architecture
Blaze DSBlaze DS
Remoting Tier
Flash PlayerFlash Player
Browser/AIRBrowser/AIR
UI on FlexUI on Flex
Presentation Tier
Business Tier
ORM Hibernate
ORM Hibernate DBDB
Spring Core
Context
AOP
Transaction
JDBC
Security ORM
ORM Tier
Data Tier
Persistence
Logging
Tomcat on Tuned JVM
AS3 VO
ASCNT 2010 CDAC NOIDA
High Level Architecture
Blaze DSBlaze DS
Remoting Tier
Flash PlayerFlash Player
Browser/AIRBrowser/AIR
UI on FlexUI on Flex
Presentation Tier
Business Tier
ORM Hibernate
ORM Hibernate DBDB
Spring Core
Context
AOP
Transaction
JDBC
Security ORM
ORM Tier
Data Tier
Persistence
Logging
Tomcat on Tuned JVM
AS3 VO Java VO
ASCNT 2010 CDAC NOIDA
High Level Architecture
Blaze DSBlaze DS
Remoting Tier
Flash PlayerFlash Player
Browser/AIRBrowser/AIR
UI on FlexUI on Flex
Presentation Tier
Business Tier
ORM Hibernate
ORM Hibernate DBDB
Spring Core
Context
AOP
Transaction
JDBC
Security ORM
ORM Tier
Data Tier
Persistence
Logging
Tomcat on Tuned JVM
AMF
ASCNT 2010 CDAC NOIDA
Business Tier: Spring
• Aspect Orientation Design– Declarative Transaction Management– Security
• Lightweight– Use POJO’s to manage transactions ,
persistence , communication , job scheduling , batch processing etc.
• Productive– Easy to learn.– Jolt’s productivity Award 2006
ASCNT 2010 CDAC NOIDA
Security Subsystem
Application Logic
Security Subsystem
LDAP Biometric Authentication
Database Storing Credentials
ASCNT 2010 CDAC NOIDA
Security Subsystem Architecture
• Request
• Login Credentials
• Login Credentials are put in Flex User Interface.
• BlazeDS Channel
Authentication
• The BlazeDS Channel Authentication would be done using Spring Security by contacting a User Repository.
• FilterInvocationInterceptor
• URIInterceptor
• MethodSecurityInterceptor
• TransactionProxy
• Spring Security Interceptors
ASCNT 2010 CDAC NOIDA
Role Based Access Control
• Access Decision through AcessDecisionManagers– Affirmative Based Access decision Manager– Role Voter
• Grant access of the resource to the user that has the same role as required by the resource
ASCNT 2010 CDAC NOIDA
DEPLOYMENT ARCHITECTURE
ASCNT 2010 CDAC NOIDA
Horizontal Clustered Environment
LB
LB
Active Passive Clustered Load Balancer based on Apache mod_proxy , mod_proxy _balancer
ASCNT 2010 CDAC NOIDA
Horizontal Clustered Environment
LB
LB
Tomcat Application ServerLoad Balancing: ByByte / ByRequest
Tomcat 1
Tomcat 1
ASCNT 2010 CDAC NOIDA
Horizontal Clustered Environment
LB
LB
Design Deviates from conventional HA Solution
Tomcat 1
Tomcat 1
MYSQL
ASCNT 2010 CDAC NOIDA
Horizontal Clustered Environment in NOES
LB
LB
Tomcat 1
Tomcat 1
MYSQL
TERRA
COTA
MYSQL
ASCNT 2010 CDAC NOIDA
Transparent Clustering
ASCNT 2010 CDAC NOIDA
Transparent Clustering
HA is available as a service of JVM
ASCNT 2010 CDAC NOIDA
KEY DESIGN PRINCIPLES
ASCNT 2010 CDAC NOIDA
Typical Exam Session Performance
ASCNT 2010 CDAC NOIDA
Typical Exam Session Performance
No DB I/O during Exam
ASCNT 2010 CDAC NOIDA
Typical Exam Session Performance
Hibernate2nd Level
Cache
ASCNT 2010 CDAC NOIDA
Typical Exam Session Performance
Async. Commit
ASCNT 2010 CDAC NOIDA
ISSUES FACED DURING IMPLEMENTATION
ASCNT 2010 CDAC NOIDA
Integrating Flex and Spring
• Integration Flex and Spring– Not intuitive– BlazeDS Extensions were designed– Later , later 2009 community support
• Transaction– MySQL Storage Engines– Transaction Management for Non DB
operations– Use of Self Reference instead of this pointer
ASCNT 2010 CDAC NOIDA
Conclusion and Future Work• Exams Conducted
– C-DAC PG Examinations– C-DAC Recruitment Exams
• Across the country in 10 C-DAC Centers for 10 days
– 300 successful runs of Exam Conduction– DOEACC ‘CCC’ Examination at 4 Regional DOEACC
Centers.
• Initial Stress Testing 5,000 users using 2 Tomcat Servers– Trying to scale further
• Efforts in integration with Eucalyptus and federate across different C-DAC/DOEACC Data centres in the country.
• Using Query Optimization with Hibernate on the Fly.
ASCNT 2010 CDAC NOIDA
THANK YOU
ASCNT 2010 CDAC NOIDA
Aspect Orientated Design
Module 1 Module 1 Module n
ASCNT 2010 CDAC NOIDA
Aspect Orientated Design
Module 1 Module 2 Module n
Security
Logging
ASCNT 2010 CDAC NOIDA
Aspect Orientated Design
Module 1(core Concerns)
Module 2 (Core concerns)
Module n (Core Concerns)
Security (Cross Cutting Concerns)
Logging(Cross Cutting Concerns)
ASCNT 2010 CDAC NOIDA
OOD to Model Cross Cutting Concerns
Module 1: Functional Req. Module 2: Functional Req.
Cross Cutting Concern
Cross Cutting Concern
ASCNT 2010 CDAC NOIDA
OOD to Model Cross Cutting Concerns
Module 1: Functional Req. Module 2: Functional Req.
Cross Cutting Concern
Cross Cutting Concern
•Code Scattering•Code Tangling
ASCNT 2010 CDAC NOIDA
AOD to Model Cross Cutting Concerns
Module 1: Functional Req. Module 2: Functional Req.
Cross Cutting Concern
Aspect
WeavedWeaved
ASCNT 2010 CDAC NOIDA
Aspect Orientation at Business Tier
• Logging• Transaction Management
– Declarative Transactions– Annotations (@Transactional
PROPOGATION_LEVEL)
• Access Control Mechanism– Annotations based RBAC at method
invocation level.