Virtual ClassroomIntegrated Learningenvironment 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”
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 ClientFeature Thin Client Thick ClientWeb Different Browsers Gives integrated lookBrowser may require different and feel. The client plug-ins to support executable, installableVs features such as Video from web, can bundle allJava streaming. prerequisites. Look and feel varies Java Swing client givesClient 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.
Pros and ConsPros Simple Simple and Intuitive. Uses HTTP over the internet and simple JDBC to communicate with the database server. Light As compared with J2EE serverCons 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 DistributedObject Support that goes well with RMI.
CMP vs BMP BMP CMPAvoid Done using dirty CMP engineunnecessary flags, but it handles thisstores requires more coding and is error-proneCoding JDBC sql queries Lesser Coding have to be code.
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.
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