Top Banner
Project supervisor: prof. Andrzej Duda [email protected] Authors: Tomasz Bartyński [email protected] Wojciech Eliasz [email protected] P2P for Collaborative Communities
40

P2P for Collaborative Communities

Jan 11, 2016

Download

Documents

P2P for Collaborative Communities. Project supervisor: prof. Andrzej [email protected] Authors: Tomasz Bartyń[email protected] Wojciech [email protected]. Agenda (1). Project goals Requirements for our system - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: P2P for Collaborative Communities

Project supervisor: prof. Andrzej Duda [email protected]: Tomasz Bartyński [email protected] Eliasz [email protected]

P2P for Collaborative Communities

Page 2: 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

Page 3: P2P for Collaborative Communities

14 june 2007 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG

3

Agenda (2)

Our concept of the systemFuture workWork doneReferences

Page 4: P2P for Collaborative Communities

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

Page 5: P2P for Collaborative Communities

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

Page 6: P2P for Collaborative Communities

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)

Page 7: P2P for Collaborative Communities

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

Page 8: P2P for Collaborative Communities

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)

Page 9: P2P for Collaborative Communities

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

Page 10: P2P for Collaborative Communities

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

Page 11: P2P for Collaborative Communities

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

Page 12: P2P for Collaborative Communities

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

Page 13: P2P for Collaborative Communities

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

Page 14: P2P for Collaborative Communities

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

Page 15: P2P for Collaborative Communities

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

Page 16: P2P for Collaborative Communities

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

Page 17: P2P for Collaborative Communities

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

Page 18: P2P for Collaborative Communities

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

Page 19: P2P for Collaborative Communities

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

Page 20: P2P for Collaborative Communities

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

Page 21: P2P for Collaborative Communities

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

Page 22: P2P for Collaborative Communities

14 june 2007 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG

22

SIP-Communicator: design

Page 23: P2P for Collaborative Communities

14 june 2007 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG

23

Our concept of the system (1)

Integrate Azureus with SIP-Communicator

Page 24: P2P for Collaborative Communities

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

Page 25: P2P for Collaborative Communities

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

Page 26: P2P for Collaborative Communities

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

Page 27: P2P for Collaborative Communities

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)

Page 28: P2P for Collaborative Communities

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

Page 29: P2P for Collaborative Communities

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

Page 30: P2P for Collaborative Communities

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

Page 31: P2P for Collaborative Communities

14 june 2007 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG

31

Prototype implementation

Integration of Azureus and SIP-Communicator

Page 32: P2P for Collaborative Communities

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

Page 33: P2P for Collaborative Communities

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

Page 34: P2P for Collaborative Communities

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)

Page 35: P2P for Collaborative Communities

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

Page 36: P2P for Collaborative Communities

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

Page 37: P2P for Collaborative Communities

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

Page 38: P2P for Collaborative Communities

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

Page 39: P2P for Collaborative Communities

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

Page 40: P2P for Collaborative Communities

14 june 2007 Tomasz Bartynski Wojciech Eliasz p2p-voip LIG

40

• Thank you for you attention

•Questions?