Sie sind auf Seite 1von 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
 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
Client •Integrated Environment

Communication Protocol

Internet •Cross firewall


•Intranet and Internet support

Server
•Transaction
Server
•Persistence
•Security
•Caching
Thin v/s Thick Client
Feature Thin Client Thick Client

Web  Different Browsers  Gives integrated look


Browser may require different and feel. The client
plug-ins to support executable, installable
Vs features such as Video from web, can bundle all
Java streaming. prerequisites.
 Look and feel varies  Java Swing client gives
Client
from browser to same look and feel across
browser. all the platforms (as
compared to web
browser).
Speed Slow. Everything must Fast. Can instantly scroll
wait for the server to since the client can cache
process and transmit and process data locally.
the next screen of
information.
Initial Architecture Diagram

Swing Client
Specs
 Client- Swing

 Servlet Container-
Tomcat3.2
Servlet
 DB Server-
Postgres8.0

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 Done using dirty CMP engine


unnecessary flags, but it handles this
stores requires more
coding and is
error-prone
Coding JDBC sql queries Lesser Coding
have to be code.
Architecture Diagram
(The chosen approach)

SessionBean
Session bean
EntityBean

SessionBean
EntityBean
Database
SessionBean
EntityBean
client

SessionBean 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 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

 Tryingto 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 !!!!

Das könnte Ihnen auch gefallen