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