You are on page 1of 32

Virtual Classroom

Integrated Learning environment over internet


Anshu Veda Prajakta Kalekar Shruti Mahambre

The Client


This project has been sponsored by Intel IIT B point of contact Prof. Umesh Bellur

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 Managing user accounts, course registration approval Login,Create / Modify course details, set Quizzes, assign grades Login, Register / Unregister for courses, take quizzes, view lectures in offline mode Open-Source and Freeware Support over Internet and Intranet

 

Admin


Instructor


Student


Non-Functional Requirements
 

Technology Decisions
Client

Client

Integrated Environment

Communication Protocol

Internet

Cross firewall Intranet and Internet support Server

Server

Transaction Persistence Security Caching

Thin v/s Thick Client


Feature Web Browser Vs Java Client Thin Client
Different Browsers may require different plug-ins to support features such as Video streaming.  Look and feel varies from browser to browser.


Thick Client
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


Swing Client

Specs
 

Client- Swing Servlet ContainerTomcat3.2 DB ServerPostgres8.0

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. As compared with J2EE server

Light


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 Avoid unnecessary stores Done using dirty flags, but it requires more coding and is error-prone JDBC sql queries have to be code. CMP CMP engine handles this

Coding

Lesser Coding

Architecture Diagram (The chosen approach)


Session bean SessionBean

EntityBean

SessionBean

EntityBean
Database

SessionBean client SessionBean

EntityBean

EntityBean

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 colocated 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 datarelated 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</localhome> <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</methodparam> </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 Faade, 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 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

After Midsem
      

Thank you !!!!

You might also like