Presentation about the academic project submitted as part of the "Distributed Systems" course at Politecnico di Milano (Academic Year 2007-08): a Jini-based "Virtual Beamer"
2. Assignment description
• Implement a “virtual beamer” to share a
presentation over a LAN/WiFi local network
– Requirements:
• Functional
– The lecturer creates a session and selects the files (HTML and/or PDF)
– Students and lecturer’s slides are constantly synchronized
– The lecturer can see the list of students
– The lecturer can relinquish control to any student willing to ask
questions about any different part of the presentation, and then take it
back
– Students can join and part the presentation at any moment
• Non-Functional
– The designed system should take as much load as possible off the
lecturer’s workstation
– No hard-coded network addresses
Paolo Somaglia and Rocco Giovanni Versaci Academic year 2007-2008 1
3. Hypotheses
• Each Jini instance is reliable
• Every process is reliable
• All communication channels are reliable
• No malicious users will participate in the
lecture
• The lecturer prefers not to be interrupted for
managing join/part requests manually
Paolo Somaglia and Rocco Giovanni Versaci Academic year 2007-2008 2
4. Supported file formats
• Both of the proposed file formats are
supported:
– PDF files
– HTM, HTML files (“complete pages”)
– JPG files
Paolo Somaglia and Rocco Giovanni Versaci Academic year 2007-2008 3
5. Jini service used in the project
• JavaSpace
– For sharing the files that constitute the presentation
• Jeri, Naming Service, Discovery Service,
Leasing Service
– For publishing, looking up and downloading service
proxies
• Event Service
– For synchronizing the presentation among the
various peers
Paolo Somaglia and Rocco Giovanni Versaci Academic year 2007-2008 4
6. Class diagram of the “logic layer”
Paolo Somaglia and Rocco Giovanni Versaci Academic year 2007-2008 5
7. Class diagram of the “view layer”
Paolo Somaglia and Rocco Giovanni Versaci Academic year 2007-2008 6
13. The slides
• A presentation comprises several files to be
transmitted to the clients (students)
• Every file is to be written in each student’s
Javaspace: therefore, it is represented by an
EntryFile class (which extends Entry class)
• Each EntryFile contains a sequence number
and the total number of files to be sent
• The receiver collects the files in order, up to
the “maximumSequenceNumber-th” one.
Paolo Somaglia and Rocco Giovanni Versaci Academic year 2007-2008 12
14. Starting the client (student)
Paolo Somaglia and Rocco Giovanni Versaci Academic year 2007-2008 13
15. Starting the client (student) (cont’d)
Paolo Somaglia and Rocco Giovanni Versaci Academic year 2007-2008 14
16. Further notes
• Every command issued by the lecturer is
executed locally and then transmitted to each
student’s listener
• Once the lecturer has released the control to a
student, his interface freezes and that of the
newly appointed “leader” is activated.
– At that point, every time the student issues a
command, it is first sent to the lecturer and then
propagated to all the other students.
Paolo Somaglia and Rocco Giovanni Versaci Academic year 2007-2008 15
17. The end
Thanks for watching!
Paolo Somaglia and Rocco Giovanni Versaci Academic year 2007-2008 16