Download - P2P for Collaborative Communities
Project supervisor: prof. Andrzej Duda [email protected]: Tomasz Bartyński [email protected] Eliasz [email protected]
P2P for Collaborative Communities
14 june 2007 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
2
Agenda (1)
Project goalsRequirements for our systemState-of-the-art in file sharing and VOIP
protocols and programsBittorrent+Azureus and
SIP+jabber+SipCommunicator as starting points for our project
14 june 2007 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
3
Agenda (2)
Our concept of the systemFuture workWork doneReferences
14 june 2007 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
4
Project goals
Support E-Learning by providing user with means to:Share Learning Objects in a P2P
environmentDescribe and search LOsCreate communities interested in one
specific domainCommunicate within the community
14 june 2007 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
5
Requirements (1)
Use standard, reliable protocols and technologies
Portability (Windows/Linux/Mac Os)Open sourceRemain compatible with standard
clients
14 june 2007 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
6
Requirements (2)
Privacy and security (ability to work in Virtual Private Network established by Hamachi)
No spyware/addwareLegal issuesSpeed 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
7
P2P File Sharing
Nodes (peers) are equal and act both as a client and a server
Networks are established ad hocP2P networks compared to client-server
modelEnable better resource utilizationProvide higher reliabilityReduce the cost of bandwidth and hardware
14 june 2007 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
8
State of the art in FS protocols
Most popular protocolsBittorentE-DonkeyFastTrackMany others (please refer to project
documentation)
14 june 2007 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
9
Bittorent protocol
- .torrent (includes meta data about content and tracker address)
•Enables distribution of large amounts of data
•Reduces hardware, hosting and bandwidth expenses
•Eliminates single point of failure
14 june 2007 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
10
State of the art in FS programmes
Bittorent E-Donkey FastTrack
Azureus E-Donkey 2000
Kazaa
Bittorent E-Mule Kazaa Lite
BitCommet A-Mule giFT
File sharing programs
14 june 2007 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
11
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
12
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
13
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
14
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
15
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
16
- XMPP (1)
An open, XML-based protocol for near-real-time, 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
17
- 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
18
State of the art in messengers
Name Licence Protocol EncryptionBitWise 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
Zoiper Freeware + commercial
SIP, RTP, STUN, IAX, IAX2
* This compilation contains only solutions fulfilling our previously mentioned requirements
14 june 2007 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
19
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
20
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
21
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
22
SIP-Communicator: design
14 june 2007 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
23
Our concept of the system (1)
Integrate Azureus with SIP-Communicator
14 june 2007 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
24
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
25
Possible solutions (1)
1. Modify peer id
2. Include tracker jabber and SIP addresses in .torrent metafile
3. Modify HTTP request to include communication addresses
4. Modify peers handshake
5. 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
26
Possible solutions (2)
Peer ID20-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
27
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 fileRemains compatible with standard client
(additional entry in dictionary will be omitted)
14 june 2007 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
28
Possible solutions (4)
Modify http requestRequest are processed by external trackers,
embedded trackers and peersDifficult to implementRequires modifications in various parts of
Azureus
14 june 2007 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
29
Possible solutions (5)
Modify peers handshakeThe 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><peer_id> and can not be changed
14 june 2007 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
30
Possible solutions (6)
Obtain communication IDs from communicator and send it to all peers downloading specific Learning ObjectXEP-0093 or XEP-0144Our implementation of contacts exchange
14 june 2007 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
31
Prototype implementation
Integration of Azureus and SIP-Communicator
14 june 2007 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
32
Enhancements
Include version information in peer idConsider various policies of distributing
contactsCompose SIP-Communicator into
Azureus view
14 june 2007 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
33
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
34
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
35
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
36
Future work (1)
Use ontologies to describe and search Learning Objects
Create a classification of scientific domains, Learning Objects, authors etc.
Starting pointOWL (Web Ontology Language) is a good
candidate to be usedProtégéRacer reasoning engine
14 june 2007 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
37
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
38
Work done
State of the art in FS and VOIPAzureus and SIP-Communicator
investigationImplementationResearch and ideas for enriching project
with ontologies
14 june 2007 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
39
References
Azureus home page http://azureus.sourceforge.net/
Bittorrent http://en.wikipedia.org/wiki/BitTorrent SIP-Communicator
http://www.sip-communicator.org/ SIP
http://en.wikipedia.org/wiki/Session_Initiation_Protocol
Jabber http://www.jabber.org/ Please refer to project documentation for more
materials
14 june 2007 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
40
• Thank you for you attention
•Questions?