- 1. Virtual ClassroomIntegrated Learning environment over
internet Anshu Veda Prajakta Kalekar Shruti Mahambre
2. The Client
- This project has been sponsored byIntel
3. Problem Definition
- This project aims at putting together anintegratede-Learning
environment for a university student.
- This will also be used bydistance educationprograms offered by
institutes, in order to enable students to avail of the academic
facilities from any computer connected to theinternet .
4. 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.
- Combines the benefits of HTTP tunneling and RMI over
internet
-
- Model business processes.They represent actions
-
- Model Business data They are data object, javaobjects that
cache database information
-
- House enterprise beans and make them available for clients to
invoke remotely
-
- Provide an environment in which enterprise beans can run
5. EJB Architecture 6. 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.
7. Requirement Specs
- The system will be having 3 roles:
-
- 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
- Non-Functional Requirements
-
- Support over Internet andIntranet
8. Technology Decisions ClientInternet Server
- Intranet and Internet support
9. Thin v/s Thick Client Speed Web Browser VsJava Client Feature
Fast. Can instantly scroll since the client can cache and process
data locally. Slow. Everything must wait for the server to process
and transmit the next screen of information.
- Givesintegrated look and feel. The client executable,
installable from web, can bundle all prerequisites.
- Java Swing client givessame look and feel across all the
platforms (as compared to web browser).
- Different Browsers may require different plug-ins to support
features such as Video streaming.
- Look and feel varies from browser to browser.
Thick Client Thin Client 10. Initial Architecture Diagram
-
- Servlet Container- Tomcat3.2
Swing Client Servlet Request Processor DB Manager Database 11.
Pros and Cons
-
-
- Simple and Intuitive. Uses HTTP over the internet and simple
JDBC to communicate with the database server.
-
-
- As compared with J2EE server
-
- Plain Http protocol Notype safety
-
- No Transaction Management Support.
-
- Absence of DistributedObjects .
12. WebServices ???
- RMI offers an order of magnitude better
- performance than other alternatives, being at least8.5 times
fasterthan Web Services
- HTTP-to-servlet is more than4 times slowerthan 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
13. Why EJBs?
- Container inherently provides features such as
-
- Distributed Object Support that goes well with RMI.
14. CMP vs BMP Lesser Coding JDBC sql queries have to be code.
CodingCMP engine handles this Done using dirty flags, but it
requires more coding and is error-proneAvoid unnecessary stores CMP
BMP 15. Architecture Diagram(The chosen approach) Database
SessionBean SessionBean SessionBean SessionBean EntityBean
EntityBean EntityBean EntityBean client Session bean 16. Session
Facade
-
- An Entity bean is equivalent to a row in the database. If the
Entity beans were to be accessed directly, anetwork callwould
result for each row access.
-
- On the other hand, a Session bean is equivalent to astored
procedure . Accessing a session bean that is co-located with an
entity bean emulates accessing a row through a stored
procedure.
17. Session Facade
-
- The session bean layer is powerful because itexternalizes all
business logicfrom the entity beans. This means the entity beans
contain data and data-related logic only.
-
- This promoteshigh re-useof entity beans.
-
- The session bean layer is afacade . 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.
18. E-R Diagram 19. Object Model 20. Collaboration Diagram -
Login 21. Collaboration Diagram - Registration 22. Sequence Diagram
- Registration 23. Collaboration Diagram Set Quiz 24. Class Diagram
25. Class Diagram (old & new) 26. Lessons learnt / Challenges
faced
-
- Studying EJB Architecture (session bean, entity bean
concepts)
-
- Configuring Postgres 8.0 on JBoss
-
- Writing Deployment Descriptors
27. Challenge
- Trying to synchronize the Intel deadlines with the syslab
deadlines throughout this course
28. Deployment Descriptor
- vclassroom.course.ejb.CourseLocalHome
- vclassroom.course.ejb.CourseLocal
- vclassroom.course.ejb.CourseBean
29. Deployment Descriptor
- SELECT OBJECT(p) FROM course as c, IN(c.prereqCourses) p
30. Technologies / Tools / Methodologies Learnt
- Patterns Session Faade, Recursive Meta pattern, Chain of
responsibility
31. The Timeline
-
- Overview of the system requirements from Intel
-
- Requirement Specification Document prepared and presented to
Intel
-
- Architecture + DesignDocumentation
-
- Prototype : Demo with the old architecture Login, Registration,
Quiz
-
- Deliverable Client + Server implementation of modules
-
- Change in architecture Protocol + Server Side
-
- Learning Curvefor 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 specificationdocumentation
-
- Deliverable Server Side coding+documentation Login,
Registration, Quiz
32. Thank you !!!!