400 likes | 778 Views
P2P for Collaborative Communities . Project supervisor: prof. Andrzej Duda Andrzej.Duda@imag.fr Authors: Tomasz Bartyński tomasz.bartynski@imag.fr Wojciech Eliasz wojciech.eliasz@imag.fr. Agenda (1). Project goals Requirements for our system
E N D
P2P for Collaborative Communities Project supervisor: prof. Andrzej Duda Andrzej.Duda@imag.fr Authors: Tomasz Bartyński tomasz.bartynski@imag.fr Wojciech Eliasz wojciech.eliasz@imag.fr
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 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
Agenda (2) • Our concept of the system • Future work • Work done • References Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
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 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
Requirements (1) • Use standard, reliable protocols and technologies • Portability (Windows/Linux/Mac Os) • Open source • Remain compatible with standard clients Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
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) Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
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 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
State of the art in FS protocols • Most popular protocols • Bittorent • E-Donkey • FastTrack • Many others (please refer to project documentation) Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
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) Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
State of the art in FS programmes File sharing programs Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
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 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
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 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
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:eliasz@agh.edu.pl • 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 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
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 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
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 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
- 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 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
- 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 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
State of the art in messengers * This compilation contains onlysolutions fulfilling our previously mentioned requirements Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
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 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
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 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
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 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
SIP-Communicator: design Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
Integrate Azureus with SIP-Communicator Our concept of the system (1) Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
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 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
Possible solutions (1) • 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 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
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 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
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) Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
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 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
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><peer_id> and can not be changed Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
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 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
Prototype implementation • Integration of Azureus and SIP-Communicator Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
Enhancements • Include version information in peer id • Consider various policies of distributing contacts • Compose SIP-Communicator into Azureus view Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
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 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
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) Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
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 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
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 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
Future work (2) • Ontology provide domain taxonomy • Authors and LO can be described with properties and relationships Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
Work done • State of the art in FS and VOIP • Azureus and SIP-Communicator investigation • Implementation • Research and ideas for enriching project with ontologies Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
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 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG
Thank you for you attention • Questions? Tomasz Bartynski Wojciech Eliasz p2p-voip LIG