incubator-bluesky-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Samuel Kevin <lovesumm...@gmail.com>
Subject design mentality of RealClass、PPClass
Date Mon, 02 Nov 2009 09:06:39 GMT
hi, all:
    Since the most complicated work to the release has been finished, at
least, almostly. So now i want to look back to the design mentality of *
RealClass*, *PPClass*, and meanwhile some assumption of *WebPPClass*.
    *RealClass* is one sub-system of *BlueSky *project, which started from
2005 and ended in 2007, oriented to narrow the education gap between city
and rural eara especially in west part of *China*.It is a typical C/S
structured system. It's not that complicated but it implements 3 basic
functions:

   1. *a live teaching scene*: teacher and students are seperated in
   different places and different networks, but they could connect with each
   other through internet.
   2. *1-to-1 live conmmunication*. Student could communicate with teacher
   after he becomes a focus student and then he could ask/answer questions to
   teacher just like they are in the same classroom.
   3. *Teacher record multimedia courseware*.  Teacher could use record his
   teaching scene as mulitimedia courseware which could be used in VOD played
   online or download by students.

    There are four components: *TServer*、*DTU*(data transmit unit)、*Teacher
*client、 *Student *client in *RealClass*. TServer handles all the tcp
communication of other three components, and *DTU  *transfers the
audio/video/text/screen data from *Teacher *to *Student*, also,
*DTU*transfers audio/data. The system is completed in 2006 and in the
next year
it is demo applied in 12 schools, laterly 5 more schools joined in. Over
50000+ students、2000 students were benifit from the project.
    As a C/S structured software, *RealClass* has some deficits especially
in demployments. It might need extra machine to setting up *DTU* to stablize
the whole system. In actually application, it adds up to cost of
demployment. Thus our lab started to make the next version of *RealClass*- *
PPClass* which based on Application Layer Multicast and P2P tech. We
finished the original system of *PPClass* in windows platform in last year.
*    *The current version of *PPClass * accomplishes the basic functions of
*RealClass*, it  implements a live teaching scene like *RealClass*, but it
is now lack of interactive functions.  In *PPClass* system, we only have *
Server* and *Student Client*t. All the student client join in a class are
formed as a multicast tree. * PPClass Server *only handles tcp communication
of *Student Client*t and maintain the muticast tree formed by the students.
Since there is no *DTU* in *PPClass* , the *student client* could now act as
a *DTU* itself and forward audio/video data to his childrens. We define the
number of a student client could  forward to as out *degree*, if a *student
client* owns a better bandwidth, it could send data to more children, which
means its out *degree* is bigger. Some citical tech problem like data
transmission in two *Student Client* under different *NAT* are also solved
in this version of *PPClass*. After the release of *RealClass*, we could
start the transfering *PPClass* from windows to Linux.
    I presume some potential tech solution, we can have discussion about
that.
*Interface*: *QT* 4.0 (LGPLed)
*Audio/video* de/encode:  *FFmpeg* (LGPL) or *Theora*& *Vorbis*( BSD-like)
*UDP Data transmission*: *JRTP* lib (free)
*Tcp communication*: *socket programming* (we could also use some mature
asynchronous socket lib)
    And the following functions would be add:

   - live communication between students and teacher. If possible, between
   students;
   - text communication would be implemented;
   - multi class room would be added(current version of *PPClass* only
   support 1 classroom);


regards,
Kevin
-- 
Bowen Ma a.k.a Samuel Kevin @ Bluesky Dev Team    XJTU
Shaanxi Province Key Lab. of Satellite and Terrestrial Network Tech
http://incubator.apache.org/bluesky/

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message