FUNCTIONALITY PROVIDED BY SYSTEMS FOR SYNCHRONOUS CONFERENCINGCarl von Loesch, 1992, 94, 97, 2003 ABSTRACTIntroductory document to explain what synchronous conferencing is about, why new protocols are needed and what is expected of them. [I wrote this while I was working out the protocol details for the furthcoming protocol for synchronous conferencing PSYC]CONTENTS1. Introduction 1.1 Synchronous conferencing? Huh? 1.2 Problems when dealing with conferencing systems 1.2.1 Growth 1.2.2 Network failures 1.2.3 Sociological and security aspects 2. Functionality that conferencing protocols need to provide 2.1 Actual communication 2.1.1 User to user (one on one) 2.1.2 Group links 2.1.3 Broadcast channels 2.2 Automatic notification of arrival of friends 2.3 Directory services 2.3.1 Querying who's online from a certain area 2.3.2 Being "visible" within certain areas only 2.2.3 Contact boards (Meet new people) 2.4 Network level operations 2.4.1 Message tracing 2.4.2 Status information retrieval from network entities 2.4.3 Message rerouting 2.4.4 Automatic message rerouting 2.5 Other miscellaneous services 2.5.1 User directory services 2.5.2 Offline message storage systems 2.5.3 User-provided service robots 2.6 User interface requirements 3. Outlook 4. References 5. Author's address 1. INTRODUCTION ~~~~~~~~~~~~ 1.1 Synchronous conferencing? Huh?
One more good use of synchronous conferencing is the ability to set up a conference session across the world, which can't otherwise be done by telephone because of financial reasons. Research projects are already being coordinated through the networks with electronic mail and mailing lists, but most of them haven't discovered the advantages of synchronous conferencing, where electronic conferences can be held in real time, avoiding time loss with misunderstandings or unnecessary elaboration of topics when the synchronous dialogue clears up uncertainties quickly. Synchronous conferencing will also have a serious significance in the business world, not only in form of video conference, but also in form of plain text conferencing as it is the cheapest way to arrange a worldwide conference session, 24 hours every day. The internet protocol suite provides the good basis for this type of communication and the TCP/IP-based Internet Relay Chat system has established itself as the worldwide biggest international conferencing system, providing the best available structures for synchronous network conferencing. But it is reaching its limits and to free ourselves of its major weaknesses we need a totally new conferencing protocol. 1.2 Problems when dealing with conferencing systems 1.2.1 Growth
1.2.2 Network failures
Although many patches have been applied, IRC is still incapable of adapting dynamically to its network. The problem here-in is first of all with the fact that IRC transmits its complete database to each node, and secondarily with the fact that the IRC network has a tree structure. When a link breaks all state data from the other side's network becomes invaluable and is thrown away. Should the link be reestablished, it will have to retransmit the complete database which is itself a huge network load and easily leads to yet another crash of the link. If the site is lucky it has a choice of network paths, so another link is likely to be tried out next. Probably the likelihood of a network failure caused by the transmission of the database at network linkup causes the greatest load IRC produces for the Internet, certainly not the actual conversation people make. That's why it is clearly not a question of reducing the communication, but of improving the medium. [Update 1997: The IRC software and protocol have been improved to spool changes in state for a while until the network link is re-established.] 1.2.3 Sociological and security aspects
I will call the activity of people disturbing service "network vandalism" although the term is unfair, because it is not correct to judge a person superficially by its electronical actions. So I will consider it a technical aspect, a problem that simply comes with big networks. It just exists and needs to be taken care of. Conferencing protocols must provide the least possible platform for vandalism. IRC has seen vandalism both from administration and casual users, disrupting conversation on channels (conference group links), disrupting network links, attacking the protocol itself to achieve unpleasant results. IRC has been improved vastly in this field in the past years, but these problems persist. This is an aspect which must be carefully considered in the design of future protocols. [Update 2003: These problems had only just begun! IRC is still a hell of a battlefield today.] 2. Details on Provided Functionality ~~~~~~~ ~~ ~~~~~~~~ ~~~~~~~~~~~~~ 2.1 Actual synchronous communication 2.1.1 User to user (one on one)
As video conferencing is on the rise, a new protocol should not necessarily provide the means, but be the medium to handle conference control while the actual data is transferred by an other medium. This principle is already being used by IRC clients: They arrange for direct client-to-client communications and file transfers via IRC. 2.1.2 Group links
2.1.2.1 Lists
2.1.2.2 Channels
To keep this layer flexible it was Stephen van der Berg's suggestion to include an interpreted command language into the transfer agents for a flexible definition of channel characteristics. (He is however better known for procmail these days.) But the problem of agents being tampered with and therefore not acting as they should would remain, therefore I have developed the more secure concept of channel programs. They are implemented in one place, or maybe two, and have full control over the channel. They handle people's requests to join a group and inform group members who's in and who's not. This allows for a minimalistic conference control approach as taken by the PSYC. 2.1.2.3 Broadcasts
A slightly more evolved broadcast is one that can be limited in the area of distribution. But broadcasts can probably be completely replaced by proper multicasting, if that can be done with low overhead concerning routing. 2.2 Automatic notification of arrival of friends
2.3 Directory services
2.3.1 Querying who's online from a certain area
Looking who's on from my site is one of the most common operations. And sometimes you want to find out who's on from Rome or Paris or NYC. IRC provides this info by matching its huge database with a hostmask. A kind of "grep" in unix-speak. This is very quick, but we can't afford this type of databases anymore, so the new service must perform in a way that the request travels to the areas and the local servers return appropriate information. But since that would mean to broadcast in that area, it needs to be actually done in a hierarchical way, vaguely similar to the domain name service system. Depending on the narrowness of the request more people's data might match as they might have requested a limited area of distribution of their data. So this would be provided by a distributed directory service, which we now understand as a logically hierarchical system, not necessarily in the actual implementation. 2.3.2 Being "visible" within certain areas only
2.3.3 Contact boards (Meet new people)
2.3.4 Why have directory services?
[Update '94: Why have directory services on the SC level at all? Isn't it like re-inventing things we already have? If you manage to apply URLs to people and channels, then we already have a wonderful hyperlinked directory service called WWW. Also in E-Mails and in the News URLs can be advertised. So in that case the solution is to have places to register oneself to, where one can point an URL to. Then one can make a real nice directory service based on WWW, since the data now has become static. This is not the last word, but it solves a few problems.] [Update '97: PSYC doesn't provide a directory service.. it is not necessary for most situations. These days it's better to look for people using web search engines. LDAP or other directory services could be integrated into PSYC however, if necessary.] 2.4 Network level operations
2.4.1 Message tracing
2.4.2 Status information retrieval from network entities
The retrieval protocol should be independent in such a way that new options can easily be added. Not as with IRC where old servers would typically not forward unknown requests to newer servers, even if those do understand the requests. This reminds us of cleanely seperating the operation layers of SC service entities and setting up independent protocols for each different tasks independently. I'll get to that later. 2.4.3 Message rerouting
Internet misses such an ability. Should the standard route to a site break down there is nothing you can do, although if you could make a specific other site forward the message it would arrive to destination. [Actually such a feature called IP-Source-Routing exists, but it is generally disabled in network routers because of security concerns.] Beginners at IRC can be surprised how it is sometimes possible to communicate with remote people although the direct network connection to them is no longer available. This is because IRC messages travel through the IRC tree and not direct links. The message transport layer gives us a chance to implement routable messages as we can decide where to forward the messages to. This helps working around network failures and incorrect network configurations. The new routing ability should be available to the user for flexibility, just the way Bitnet offers it. 2.4.4 Automatic message rerouting
Currently, with IRC, this option is only given to IRC admins, and only at a very unflexible level, as the choice of "optimal routing" is merely the choice of one appropriate other IRC server to link up to. But in a more modern concept, this "optimal routing" can be specified in form of routing tables which can be provided by admins and can optionally be overridden by the user's own. They will indicate choice of routing on a target-by-target basis. 2.5 Other miscellaneous services
2.5.1 User directory services
IRC experience teaches us that this type of directory service should not again be implemented as a centralized server. Should just that part of the Internet, where the directory server resides, get isolated from the rest, the complete service disappears. This is unfortunately very often the case of IRC's NickServ. So the new implementation is likely to be on a per-site basis, where each site has its user directory service. [Update'97: Once your PSYC client has learned about a person it would very probably have the option of asking this person's PSYC server for additional information like homepage URL or email address.] [Update 2003: Elaborate PSYC servers have the ability to forward messages by SMTP to their owners' mailboxes whenever they are absent. Therefore people from the chat world can send them email without actually exposing any mail addresses.] 2.5.2 Offline message storage systems
2.5.3 User-provided service robots
Now hopefully the new protocol structure would reduce the overhead of robot communication, and the mere presence of the robot would be much less of a network load as it is with IRC now. 2.6 User interface requirements
Users want to be able to "react" automatically upon receipt of certain messages, being able to send automatic replies, to log the message, to ignore it or to have it displayed in a certain fashion in the appropriate window pertaining to that discussion. Some like graphic interfaces with menus and buttons while others want the command line editing and the commands at a keypress. File transfer {DCC}. Redirection of communication events to external programs. Output of system commands into the communication and much more. But the highest requirement is that these tools need to be totally configurable, both at compilation time and at runtime, and completely programmable by providing a programming language or being a host to a standard external language like Rexx. You can imagine it is not a trivial task to produce such a high-quality conferencing client software. 3. OUTLOOK ~~~~~~~
First of all we need a rudimentary transport layer, that lets us send a set of bytes from one spot to another. IRC uses TCP. One could as well build something UDP based. Then there are several multicast implementations around, not just Multicast IP itself. And if you want to route into BITnet, then you'll have to use IUCV! The best choice is to have an independent interface to the actual network layers, first of all, and let implementors or even users and administrators select the proper network protocols to use. I call this the transport layer [TL]. [In the PSYC'97 architecture this is given by basic MMP.] Next we have a layer wherein to implement the distribution of messages, message transport layer [MTL]. That is trivial with point-to- point messages but it gets complex with one-to-many (multicast) messages. These can be of the list, channel and broadcast types. I once had a thought of implementing an interpreted message command language, which wraps itself around the actual message and gives the agents commands on how to deliver it. The advantage is flexibility, but probably that much is not needed. [In the PSYC'97 architecture multicasting can be provided by external protocols which are negotiated via MMP.] The message itself has a certain structure which describes what type of message it is and how it should be treated, contents description layer [CDL]. Any message has this in common. [In the PSYC'97 architecture this is the PSYC message format.] Next thing is the layer where we define how one joins or leaves lists, especially when the lists are not public, the list management layer [LML]. Also on that layer, but not necessarily with the same protocol, the way those channel definition messages are passed from transfer agent to transfer agent [CML]. Also the radio-type broadcast channels might need some steering layer [BCL]. [In the PSYC'97 architecture these aren't layers - they are (or will be) standardized object interfaces to address those types of objects.] And now to the point-to-point protocols. We have a user to user layer which takes a similar role like IRC's CTCP, [UUL]. The contact board layer describes how to make queries, what the replies look like and how to announce oneself etc. [CBL]. The event notification layer lets you know when friends show up, but it might aswell give you hints about network stability problems or similar [ENL]. To get technical info out of transfer agents we will talk some language which could turn out practical to be identical to the language with which we talk to services of any kind [SL]. However features like tracing the network require special treatment, on the transfer agent command layer [TACL]. [PSYC'97: again these are interfaces.] So I seem to have 3 layers. The transmission layer, the message transfer layer with its command language and the various protocols put on top of that. Maybe this will influence the development of PSYC. [Update'97: Hee hee. Yeah it did.] 4. References ~~~~~~~~~~ {PSYC} http://psyc.pages.de: Homepage of the Protocol for SYnchronous Conferencing {CNC} RFC 1324: "A Discussion on Computer Network Conferencing" Darren Reed, May 92. {IRC} RFC 1459: "Internet Relay Chat Protocol" Jarkko Oikarinen, Darren Reed; May 93. {CTCP} "Client-To-Client Protocol", Klaus Zeuge (sojge@Minsk.DoCS.UU.SE); May 92. {DCC} "Direct Client Connection" (making use of CTCP), Troy Rollo (troy@plod.cbme.unsw.oz.au). 5. Author's Address ~~~~~~ ~ ~~~~~~~ Feel free to contribute suggestions and criticisms. lynX (AT) psyc (DOT) pages (PERIOD) de LynX 1994-12-02, 1997-03-10, 2003-07-17 |