470 likes | 653 Views
The Real-Time Conferencing Applications. Classification Network News (NNTP) P2P Collaborative applications Instant Messaging Real-Time Collaboration Netiquette. P2P Collaborative Applications. For remote real-time human collaboration
E N D
The Real-Time Conferencing Applications Classification Network News (NNTP) P2P Collaborative applications Instant Messaging Real-Time Collaboration Netiquette
P2P Collaborative Applications • For remote real-time human collaboration • Instant messaging, virtual meetings, shared whiteboards, teleconferencing, tele-presence • E.g., talk, IRC, ICQ, AOL Messenger, Yahoo! Messenger, Jabber, MS Netmeeting, NCSA Habanero, Games
Classification of Textual Conferencing • According to the relative timing: • Asynchronous or • Synchronous • According to the number of participants • One to One • One to Many • Many to Many
Network News, Newsgroups • Network News Transfer Protocol (NNTP) • Predecessor: UUCP • Components: • News Transfer Agency (NTA) • News Server • News Reader Client Software • E.g.: Pine, trn, tin, Pnews, Netscape Navigator, etc.
NNTP Operation • To acquire recent articles, an NNTP client must first establish a TCP connection with port 119 on one of its newsfeeds • After the connection has been established, the client and server communicate using a sequence of commands and responses • These commands & responses are used to ensure that the client gets all the articles it needs, but no duplicates
Names of Some Newsgroups in the Field of Informatics and Their Descriptions
Real-Time User Communication • Chat in written form (textual conferencing) • Internet Relay Chat (IRC) • ICQ • Instant Messaging • Internet based telephoning
Synchronous choices • Talk, n-talk, y-talk • ICQ • IRC, Netmeeting • See http://www.irchelp.org/irchelp/altircfaq.html • Web-based synchronous tools, “chats” • Stand alone, CGI-based, and Java-based • See http://www.2meta.com/chats/info/ • White-boards
Instant Message Technologies ICQ Jabber (http://www.jabber.org/) MSN (Microsoft Messenger) Yahoo! Messenger GMAIL-based Messenger
ICQ: Instant Messaging 1. Members (user B and user C) register their details at the ICQ web site 2. User A searches ICQ for User B 3. Server informs User A of the user B’s location 4. User A connects to User C interacts and exchanges files • Released in November 1996 • Allows users to be notified when their friends come online • Users can send messages to their friends (instant messaging) • Also allows users to exchange files www.icq.com Main ServerUser List: User A User B
Mirabilis Jalapa Short history of ICQ • The company Mirabilis was founded in 1996 • their field of focus was to be peer-to-peer communication through the Internet • In the same year they launched ICQ as their first product • It was an instant messenger for use on the Internet • A lot of others were to come, but ICQ was the first one to enter the market • Its main features included: • The ability to show the user when his friends are online (connect to the ICQ-server) • Invoke online real-time peer-to-peer communication in different ways (message, games etc) • An address-database for the users friends and ICQ-contacts • In 1998 Mirabilis was bought by AOL, a company that earlier had realesed an instant messenger themselves • ICQ had although proved to be more successful than the AOL instant messenger, and the existence of ICQ was not immediately threatened
ICQ today • Ever since the first version released in 1996 ICQ has focused on the P2P (peer-to-peer) communication. The communication possibilities have although expanded, and includes in the latest beta-version ICQ2000b among other functions the following: • Instant messaging system • Realtime chat-function • Phone via the Internet (PC-PC, PC-phone & phone-phone) • SMS service • Direct filetransfer possibilites between two users • ICQ is available for many different operating systems today, including a Java-version and also a version for the Palm OS. • Main competitors include AIM, MSN Messenger and the Yahoo! Messenger
Visit Sharons Homepage, or Send her a sms ICQ – Also a Community Splitting of the Contact list according to their current ICQ-status • User status: • Sharon has sent you a message • Daniel has birthday • MOM has left an „away message” • Z-home is „not available” Shortcut bar ICQ status I am currently online -connected to the ICQ network
The User Menu Here you can choose between all the different possibilities to contact The user, or change the current settings for this particular user
The technical facts • To communicate with the server, ICQ uses UDP. In the Client-Client case both UDP and TCP are used. Inside the UDP packets, the messages themselves are created according to the so called ICQ-protocol. • If you are interested in the details, try the following links: The ICQ Protocol Site (English, French, German, Russian and Spanish): http://www.d.kth.se/~d95-mih/icq/ The ICQ Hacking Page (English): http://www.algonet.se/~henisak/icq/ • For general information, visit http://www.icq.com/
P2P Collaborative Applications • Magi • Groove • Jabber
Collaboration • Tap into knowledge • Leverage expertise at the edges of organization • Each additional member increases the network’s value • Outsourcing • Collaborative Development Manager
Groove • Groove is a collaborative P2P system (http://www.groove.net) • It is mainly targeted to Internet and intranet users, although it can also be used on mobile devices, such as PDAs, mobile phones, and tablets • It is intended to enable communication, content sharing, and tools for joint activities
Internet Relay Chat (IRC) • Definition of IRC • textbased teleconferencing system using TCP/IP • multi-user, multi-channel system • offers the possibility to “talk” to other users around the world in realtime
History of IRC • Summer 1988: Jarrko Oikarinen wrote the first IRC client and server at the University of Oulu/Finland • Middle of 1989: 40 servers worldwide - release of ircII • July 1990: avergage of 12 users on 38 servers • August 1990: birth of EFnet • October 1992: start of Undernet • May 1993: Request for Comments (RFC) 1459 presented to the public • July 1994: birth of Dalnet • July 1996: split of the EFnet: the European servers formed the IRCnet • January 1998: start of a initiative (IETF-IRCUP) to create a new RFC and to set up a new standard for all IRC-networks. The project was cancelled.
Basic IRC Commands • Basic Commands (selected)
IRC Channels • Real-time chat - text-based conferencing • There is an IRC channel dedicated to the World Wide Web • This channel is named: www • IRC channels allow Internet users around the world to discuss topics in real-time
Architecture of IRC • An IRC network is defined by a group of servers connected to each other • A single server forms the simplest IRC network • The only configuration allowed for IRC servers is that of spanning tree where each server acts as a central node for the rest of the network it sees • The IRC protocol provides no mean for two clients to directly communicate • All communication between clients is relayed by the server(s)
IRC Protocol Services • The next services are offered by the IRC Protocol • The combination of these services allow real-time conferencing: • Client Locator • Message Relaying • Channel Hosting and Management
Client Locator • To be able to exchange messages, two clients must be able to locate each other • Upon connecting to a server, a client registers using a label which is then used by other servers and clients to know where the client is located • Servers are responsible for keeping track of all the labels being used
Message Relaying • The IRC protocol provides no mean for two clients to directly communicate • All communication between clients is relayed by the server(s)
Channel Hosting and Management • A channel is a named group of one or more users which will all receive messages addressed to that channel • A channel is characterized by its name and current members, it also has a set of properties which can be manipulated by (some of) its members • Channels provide a mean for a message to be sent to several clients • Servers host channels, providing the necessary message multiplexing • Server are also responsible for managing channels by keeping track of the channel members
IRC Concepts • In the following it is described how different classes of messages are delivered: • One-to-one communication • One-to-many • One-to-all
One-To-One Communication • Communication on a one-to-one basis is usually performed by clients, since most server-server traffic is not a result of servers talking only to each other • To provide a means for clients to talk to each other, it is required that all servers be able to send a message in exactly one direction along the spanning tree in order to reach any client. • Thus the path of a message being delivered is the shortest path between any two points on the spanning tree
Examples of One-to-One Communication • Example 1: A message between clients C1 and C2 is only seen by server S1, which sends it straight to C1 and C2, respectively • Example 2: A message between clients C1 and C3 is seen by servers S1, S2, S3 & S4 • No other clients or servers are allowed see the message • Example 3: A message between clients C2 and C7 is seen by servers S1, S2, S3 & S6, only
One-To-Many Communication • The main goal of IRC is to provide a forum which allows easy and efficient conferencing (one to many conversations) • IRC offers several means to achieve this, each serving its own purpose • To a channel • To a host/server mask • To a list
To a channel • In IRC the channel has a role equivalent to that of the multicast group • Their existence is dynamic • Actual conversation carried out on a channel must only be sent to servers which are supporting users on a given channel • Moreover, the message shall only be sent once to every local link as each server is responsible to fan the original message to ensure that it will reach all the recipients
Examples of One-to-Many Communication • Example 2: Two clients in a channel => All messages traverse a path as if they were private messages between the two clients outside a channel • Example 3: C1, C2 & C3 in a channel => All messages to the channel are sent to all clients and only those servers which must be traversed by the message if it were a private message to a single client • If C1 sends a message, it goes back to C2 and then via S2, S3 & S4 to C3 • Example 1: Any channel with C1 in it => Messages to the channel go to the S1 and then nowhere else
To a host/server mask • To provide with some mechanism to send messages to a large body of related users, host and server mask messages are available • These messages are sent to users whose host or server information math that of the mask • The messages are only sent to locations where users are, in a fashion similar to that channels
To a list • The least efficient style of one-to-many conversation is through clients talking to a ‘list’ of targets (client, channel, mask) • How this done is almost self explanatory: • the client gives a list of destinations to which the message is to be delivered and • the server breaks it up and dispatches a separate copy of the message to each given destination • This is not as efficient as using a channel since the destination list may be broken up and the dispatch sent without checking to make sure duplicates aren’t sent down each path
One-To-All Communication • The one-to-all type of message is better described as a broadcast message, sent to all clients or servers or both • On a large network of users and servers, a single message can result in a lot of traffic being sent over the network in an effort to reach all of the desired destinations • For some class of messages, there is no option but to broadcast it to all servers so that the state information held by each server is consistent between servers • Its types: • Client-to-client • Client-to-server • Server-to-server
Client-to-Client • There is no class of message which, from a single message, results in a message being sent to every other client Client-to-Server • Most of the commands which result in a change of state information (such as channel membership, channel mode, user status, etc.) must be sent to all servers by default • This distribution shall not be changed by the client
Server-to-Server • While most messages between servers are distributed to all ‘other’ servers, this is only required for any message that affects a user, channel or server • Since these are the basic items found in IRC, nearly all messages originating from a server are broadcast to all other connected servers
Architecture Related Problems of IRC (1) • Scalability • This protocol does not scale sufficiently well when used in a large arena • The main problem comes from the requirement that all servers know about all other servers, clients and channels and that information regarding them be updated as soon as it changes • Reliability • As the only network configuration allowed for IRC servers is that of a spanning tree, each link between two servers is an obvious and quite serious point of failure
Architecture Related Problems of IRC (2) • Network Congestion • Due to the spanning tree architecture the IRC protocol is extremely vulnerable to network congestions • This problem is endemic (local), and should be solved for the next generation: • if congestion and high traffic volume cause a link between two servers to fail, not only this failure generates more network traffic, but the reconnection (eventually elsewhere) of two servers also generates more traffic • In an attempt to minimize the impact of these problems, it is strongly recommended that servers do not automatically try to reconnect too fast, in order to aggravating this situation
Architecture Related Problems of IRC (3) • Privacy • Besides not scaling well, the fact that servers need to know all information about other entities, the issue of privacy is also a concern • This is in particular true for channels, as the related information is quite a lot more revealing than whether a user is online or not • Security considerations • Asides from the privacy concerns, security is irrelevant
Software Implementations & References • Software implementations • ftp://ftp.irc.org/irc/server • ftp://ftp.funet.fi/pub/unix/irc • ftp://coombs.anu.edu.au/pub/irc • References • www.irchelp.org/irchelp/ • www.newircusers.com • www.contactor.se/~dast/irc/history.html
Rule 1: Remember the Human Rule 2: Adhere to the same standards of behavior online that you follow in real life Rule 3: Know where you are in cyberspace Rule 4: Respect other people's time and bandwidth Rule 5: Make yourself look good online Rule 6: Share expert knowledge Rule 7: Help keep flame wars under control Rule 8: Respect other people's privacy Rule 9: Don't abuse your power Rule 10: Be forgiving of other people's mistakes Netiquette issues Media richness (paucity), self presentation, flaming and social control issues