Transcript Document
P2P for Collaborative
Communities
Project supervisor:
prof. Andrzej Duda
Authors:
Tomasz Bartyński
Wojciech Eliasz
[email protected]
[email protected]
[email protected]
Agenda (1)
Project goals
Requirements for our system
State-of-the-art in file sharing and VOIP
protocols and programs
Bittorrent+Azureus and
SIP+jabber+SipCommunicator as
starting points for our project
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
2
Agenda (2)
Our concept of the system
Future work
Work done
References
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
3
Project goals
Support E-Learning by providing user
with means to:
Share Learning Objects in a P2P
environment
Describe and search LOs
Create communities interested in one
specific domain
Communicate within the community
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
4
Requirements (1)
Use standard, reliable protocols and
technologies
Portability (Windows/Linux/Mac Os)
Open source
Remain compatible with standard
clients
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
5
Requirements (2)
Privacy and security (ability to work
in Virtual Private Network
established by Hamachi)
No spyware/addware
Legal issues
Speed of file transfers is not crucial
(size of Learning Objects files are
expected to be relatively small)
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
6
P2P File Sharing
Nodes (peers) are equal and act both as
a client and a server
Networks are established ad hoc
P2P networks compared to client-server
model
Enable better resource utilization
Provide higher reliability
Reduce the cost of bandwidth and hardware
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
7
State of the art in FS protocols
Most popular protocols
Bittorent
E-Donkey
FastTrack
Many others (please refer to project
documentation)
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
8
Bittorent protocol
•Enables distribution
of large amounts of
data
•Reduces hardware,
hosting and bandwidth
expenses
•Eliminates single
point of failure
- .torrent (includes meta data about content and tracker address)
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
9
State of the art in FS
programmes
File sharing programs
Bittorent
E-Donkey
FastTrack
Azureus
Kazaa
Bittorent
E-Donkey
2000
E-Mule
BitCommet
A-Mule
giFT
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
Kazaa Lite
10
Azureus
Implemented in Java and published under GNU
General Public License
Cross-platform
One of the most popular Bittorent client
Can be easily extended by adding plugins
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
11
SIP (1)
Application-layer control (signaling) protocol for
creating,
modifying, and terminating sessions with one or more
participants.
These sessions include Internet telephone calls,
multimedia distribution, and multimedia conferences.
Signaling protocol just like H.225, H.245 and RTSP
Open standard designed by IETF and described in
several RFCs
SIP doesn’t work alone, Session Description Protocol
is used to describe session information and
RTP/RTCP protocols are used for media transfer
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
12
SIP (2)
Messages are delivered in plain text with
syntax similar to HTTP and SMTP
Sip user identifier is similar to e-mail address
e.g. sip:[email protected]
Phone number format is also possible e.g.
sip:+48126178350
SIP is able to localize users, verify users
presence, check users terminal parameters,
creation of sessions and modification of
sessions
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
13
SIP architecture
UA – User Agent – represents end user
Redirect Server – maps addresses to other addresses, redirects clients to
different locations
Proxy - intermediate element redirects requests, can modify SIP messages
Registar Server – stores register messages from clients , maps sip identifiers to
physical addresses
Location Server – used to find current location of user, used by redirect servers
and proxies
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
14
P2P-SIP
P2P approach
reduces need for
centralized servers
Approach suitable
for small
organizations
without internet
connection
SIPpeer acts as a SIP
User Agent, proxy
and registar server
Information is
shared between
peers using
Distributed Hash
Table
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
15
- XMPP (1)
An open, XML-based
protocol for near-realtime, extensible instant
messaging (IM) and
presence information
Based on open
standards, developed by
IETF
Users have identifiers
similar to mail addresses
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
16
- XMMP (2)
IETF defined set of
extensions - XEPs (XMPP
Extension Protocol) to
standard funcionality
Jingle – p2p signaling
protocol for multimedia
interactions designed by
Google and XMPP Standards
Foundation
libjingle used by GoogleTalk
has been released to public
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
17
State of the art in messengers
Name
Licence
BitWise IM
Proprietary freeware
/ Closed commercial
Propertiary protocol
Blowfish
Gizmo
Proprietary freeware
SIP, XMPP, Jabber
SRTP
Google Talk
Proprietary freeware
(libjingle is Free
software
XMPP, Jabber
Lotus Sametime
Closed commercial
SIP, SIMPLE, H.323
OpenH323
MPL free software
H.323
SIP Communicator
LGPL free software
SIP/SIMPLE, Jabber
Freeware +
commercial
SIP, RTP, STUN,
IAX, IAX2
Zoiper
Protocol
Encryption
* This compilation contains only solutions fulfilling our previously mentioned requirements
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
18
SIP-Communicator
SIP Communicator is an open source
(LGPL) Audio/Video software phone
and instant messenger. Among SIP
Communicator is completely Open
Source / Free Software, and is freely
available under the terms of the GNU
Lesser General Public License.
The SIP Communicator was originally
created by Emil Ivov who was at the
time a student at the Louis Pasteur
University in Strasbourg, France
Google Summer of Code 2007
participants are developing new
features of SIP-Communicator
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
19
SIP-Communicator: features
Audio and Video calls with SIP
Instant Messaging with Jabber, ICQ/AIM,
Yahoo! Msngr and MSN
IPv6 support for SIP and Jabber
Support for multiple accounts and meta
contacts
Basic NAT & Firewall Traversal with STUN
Modularity, extensibility and flexibility with
OSGi
Platform specific installers for Windows,
Debian, Fedora and Mac OS X
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
20
SIP-Communicator: used
technologies
Apache Felix - an OSGI implementation by Apache
growl - A Mac OS X notification daemon.
jain-sip - SIP protocol stack
java-jml - An implementation of the MSN protocol
dnsjava - An implementation of DNS for Java
jspeex - A java implementation of the speex audio
codec.
jYMSG - YMSG Java API - Yahoo Instant Messenger
Support for Java.
smack - An open source jabber stack for Java by Jive
Software.
stun4j - An implementation of the STUN
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
21
SIP-Communicator: design
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
22
Our concept of the system (1)
Integrate Azureus with SIP-Communicator
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
23
Our concept of the system (2)
LOs are distributed in P2P network with Azureus
Azureus provides information about peers sharing
learning object
SIP and Jabber communication is performed using
Sip-communicator
Special protocol is implemented to provide sip and
jabber contacts distribution between peers
Contacts are stored in Sip-Communicator
Connection between Azureus and Sip-Communicator
is managed by special facade implemented as OSGi
bundle
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
24
Possible solutions (1)
1.
2.
3.
4.
5.
Modify peer id
Include tracker jabber and SIP addresses in
.torrent metafile
Modify HTTP request to include
communication addresses
Modify peers handshake
Obtain communication IDs from
communicator and send it to all peers
downloading specific Learning Object
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
25
Possible solutions (2)
Peer ID
20-byte string
Azureus uses:'-', two characters for client
id, four ascii digits for version number, '-',
followed by random numbers
Nor Jabber ID nor SIP address can included
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
26
Possible solutions (3)
Include communication addresses in
metafile
Implemented as an additional property
While publishing new content addresses of
the publisher are added to .torrent file
Remains compatible with standard client
(additional entry in dictionary will be
omitted)
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
27
Possible solutions (4)
Modify http request
Request are processed by external trackers,
embedded trackers and peers
Difficult to implement
Requires modifications in various parts of
Azureus
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
28
Possible solutions (5)
Modify peers handshake
The handshake is a required message and
must be the first message transmitted by
the client.
Handshake has a fixed size and syntax:
<pstrlen><pstr><reserved><info_hash><pe
er_id> and can not be changed
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
29
Possible solutions (6)
Obtain communication IDs from
communicator and send it to all peers
downloading specific Learning Object
XEP-0093 or XEP-0144
Our implementation of contacts exchange
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
30
Prototype implementation
Integration of Azureus and SIP-Communicator
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
31
Enhancements
Include version information in peer id
Consider various policies of distributing
contacts
Compose SIP-Communicator into
Azureus view
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
32
Difficulties encountered
Azureus code being underdevelopment
Version 3.0 uses core of version 2.5
Version 2.5 tries to create GUI of version 3.0
Version 3.0 was not released for Linux platform
SIP-Communicator combined with Azureus
constitutes a project with over 3,400 source
files
Technical documentation of Azureus code is
not published
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
33
Difficulties encountered (2)
Azureus has many authors who use
different programming practices
SIP-Communicator is build upon OSGI
framework and Azureus not
Programs use different GUI libraries
(Swing and SWT)
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
34
Difficulties encountered (3)
Sip-Communicator is still in alpha version, and has a
lot of bugs
OSGi has sophisticated class loader system which
makes maintenance of bundles relationships time
consuming and error prone
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
35
Future work (1)
Use ontologies to describe and search
Learning Objects
Create a classification of scientific
domains, Learning Objects, authors etc.
Starting point
OWL (Web Ontology Language) is a good
candidate to be used
Protégé
Racer reasoning engine
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
36
Future work (2)
•Ontology
provide
domain
taxonomy
•Authors and
LO can be
described with
properties and
relationships
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
37
Work done
State of the art in FS and VOIP
Azureus and SIP-Communicator
investigation
Implementation
Research and ideas for enriching project
with ontologies
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
38
References
Azureus home page
http://azureus.sourceforge.net/
Bittorrent http://en.wikipedia.org/wiki/BitTorrent
SIP-Communicator http://www.sipcommunicator.org/
SIP
http://en.wikipedia.org/wiki/Session_Initiation_Prot
ocol
Jabber http://www.jabber.org/
Please refer to project documentation for more
materials
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
39
• Thank you for you attention
•Questions?
14 june 2007
Tomasz Bartynski Wojciech Eliasz
p2p-voip LIG
40