Virtual Classroom Ppt
-
Upload
manan-bajpai -
Category
Documents
-
view
174 -
download
7
description
Transcript of Virtual Classroom Ppt
Virtual Classroom
Integrated Learning environment over internet
Anshu Veda
Prajakta Kalekar
Shruti Mahambre
Problem Definition
This project aims at putting together an
integrated e-Learning environment for a
university student.
This will also be used by distance education
programs offered by institutes, in order to enable
students to avail of the academic facilities from
any computer connected to the internet.
Basic terminology
RMI (Remote Method Invocation) Server application creates remote objects, makes references to them available and allows clients
to invoke methods on these remote objects.
RMI tunneling over HTTP Combines the benefits of HTTP tunneling and RMI over internet
EJB
Session Beans (verb) Model business processes. They represent actions Entity Beans (noun) Model Business data – They are data object, java objects that cache database
information
EJB Container House enterprise beans and make them available for clients to invoke remotely Provide an environment in which enterprise beans can run “Invisible middlemen”
EJB Architecture
Basic Terminology
CMP – Container Managed Persistence
EJB container takes care of making sure the entity bean object stays around.
BMP – Bean Managed Persistence
You as the bean programmer can take over the responsibility of managing the "persistence" of the data -- of where the data stays when the server is not running or when the bean is not in memory.
Requirement Specs
The system will be having 3 roles: Instructor Student Admin
Admin Managing user accounts, course registration approval
Instructor Login,Create / Modify course details, set Quizzes, assign
grades
Student Login, Register / Unregister for courses, take
quizzes, view lectures in offline mode
Non-Functional Requirements Open-Source and Freeware Support over Internet and Intranet
Technology Decisions
Client
Internet
Server
Client
•Integrated Environment
Communication Protocol
•Cross firewall
•Intranet and Internet support
Server
•Transaction
•Persistence
•Security
•Caching
Thin v/s Thick Client
Feature Thin Client Thick Client
Web Browser
Vs
Java Client
Different Browsers
may require different plug-ins to support features such as Video streaming.
Look and feel varies from browser to browser.
Gives integrated look
and feel. The client executable, installable from web, can bundle all prerequisites.
Java Swing client gives same look and feel across all the platforms (as compared to web browser).
Speed Slow. Everything must wait for the server to process and transmit the next screen of information.
Fast. Can instantly scroll since the client can cache and process data locally.
Initial Architecture Diagram
Specs Client- Swing Servlet Container-
Tomcat3.2 DB Server-
Postgres8.0
Swing Client
Servlet
Request Processor
DB Manager Database
Pros and Cons
Pros Simple
Simple and Intuitive. Uses HTTP over the internet and simple JDBC to communicate with the database server.
Light
As compared with J2EE server
Cons Plain Http protocol – No type safety
No caching Support No Transaction Management Support. Absence of Distributed Objects.
WebServices ???
RMI offers an order of magnitude better
performance than other alternatives, being at least 8.5 times faster than Web Services
HTTP-to-servlet is more than 4 times slower than web services.
Reference: “Java RMI, RMI Tunneling and Web Services Comparison and Performance Analysis” - Matjaz B. Juric, Bostjan Kezmah, Marjan Hericko, Ivan Rozman, Ivan Vezocnik
Why EJBs?
Container inherently provides features such as
Security
Transaction Management
Persistence
Distributed Object Support that goes well with RMI.
CMP vs BMP
BMP CMP
Avoid unnecessary stores
Done using dirty flags, but it requires more coding and is error-prone
CMP engine handles this
Coding JDBC sql queries have to be code.
Lesser Coding
Architecture Diagram
(The chosen approach)
Session bean
Database
SessionBean
SessionBean
SessionBean
SessionBean EntityBean
EntityBean
EntityBean
EntityBean
client
Session Facade
Performance
An Entity bean is equivalent to a row in the database. If the Entity beans were to be accessed directly, a network call would result for each row access.
On the other hand, a Session bean is equivalent to a stored procedure. Accessing a session bean that is co-located with an entity bean emulates accessing a row through a stored procedure.
Session Facade
Reusability
The session bean layer is powerful because it externalizes all business logic from the entity beans. This means the entity beans contain data and data-related logic only.
This promotes high re-use of entity beans.
Data abstraction layer
The session bean layer is a facade. The particular way the session bean persists (via JDBC directly or via entity beans) is an implementation detail of the session bean. The decision about whether to use JDBC or entity beans can be deferred until a later date.
E-R Diagram
Object Model
Collaboration Diagram - Login
Collaboration Diagram - Registration
Sequence Diagram - Registration
Collaboration Diagram – Set Quiz
Class Diagram
Class Diagram (old & new)
Lessons learnt / Challenges faced
1. Familiarity with J2EE
Studying EJB Architecture (session bean, entity bean concepts)
BMP vs CMP
Concept of CMR
Configuring JBoss 4.0
Configuring Postgres 8.0 on JBoss
Serial – Primary Key
Writing Deployment Descriptors
Challenge
Trying to synchronize the Intel deadlines with the syslab deadlines throughout this course
Deployment Descriptor <entity> <ejb-name>course</ejb-name> <local-home>vclassroom.course.ejb.CourseLocalHome</local-
home> <local>vclassroom.course.ejb.CourseLocal</local> <ejb-class>vclassroom.course.ejb.CourseBean</ejb-class> <persistence-type>Container</persistence-type> <reentrant>False</reentrant> <cmp-version>2.x</cmp-version> <abstract-schema-name>course</abstract-schema-name> <prim-key-class>java.lang.Integer</prim-key-class> <primkey-field>courseId</primkey-field> <cmp-field> <field-name>courseId</field-name> </cmp-field>
Deployment Descriptor
<query> <query-method> <method-name>ejbSelectprerequisites</method-name> <method-params> <method-param>java.lang.Integer</method-
param> </method-params> </query-method> <ejb-ql><![CDATA[SELECT OBJECT(p) FROM course as c,
IN(c.prereqCourses) p WHERE c.courseId = ?1]]> </ejb-ql> </query> </entity>
Technologies / Tools / Methodologies
Learnt
J2EE Architecture Enterprise Java Beans
JBoss 4.0
Postgres 8.0
EJB-QL
Swing (work in progress)
Patterns – Session Façade, Recursive Meta pattern, Chain of responsibility
The Timeline
Before MidSem Overview of the system requirements from Intel Requirement Specification Document – prepared and presented to
Intel Architecture + Design Documentation Prototype : Demo – with the old architecture – Login,
Registration, Quiz Deliverable – Client + Server implementation of modules
After Midsem Change in architecture – Protocol + Server Side Learning Curve for new technology – EJBs, J2EE architecture Technology survey - Exploring options like JDO, Web Services Configurations – JBoss 4.0, Postgres 8.0 Design of new architecture – Presentation to Intel Detailed Design specification documentation Deliverable – Server Side coding + documentation – Login,
Registration, Quiz
Thank you !!!!