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