CPS616 Collaboratory Technology CPS600 Module on Computer Collaboration March 4,1995 Roman Markowski NPAC 111 College Place Syracuse NY 13244-4100 Abstract of CPS600 Collaboration Module This module describes desktop collaboration with a comparison of some of the existing tools including Communique! (Insoft) and the toolkit DVE (Digital Video Everywhere) InPerson (SGI) Proshare (Intel) Eclipse (CLI -- standalone system) MBONE -- Internet standard We also discuss standards (there are dozens of incompatible systems) and compression needs of this application Desktop collaboration vs face-to-face meeting Nowadays business is conducted on a long-distance basis Telephone, fax and e-mail do not give a face-to-face contact NY - San Francisco roundtrip travel -- $1500 Intel ProShare setup -- $6000 Collaborative environment Each work situation has its own set of tools and social conventions. Collaborative environment must be adaptable for use in each of these situations Staff meetings, project meetings Engineering teams, formal presentations Medical consultations, military briefings Requirements for Collaborative Environments Create customized collaborative environment (user interface) with the appropriate access and membership polices Add collaborative features to specialized applications Incorporate distributed multimedia functions Exploit the latest state-of-the-art audio, video and network technologies Develop products to run over cross-platform and multiple network technologies Enable open collaborative applications (sharing documents, images) Set of separate modules (audio, video, whiteboard,...) Common collaborative tools Real-time video and audio capture, display and synchronization Audio and video compression and decompression Video and audio network data stream management Tools Provided to User in Typical System Audio Conferencing Tool Text Tool with direct Input and File Manager selection Shared Write Board for text-only conferencing (cf. forum on Internet) Shared White Board allows text and Images to be written by anyone in common area Graphics Tool allows Image exchange Video to Image capture and sharing Shared video including video of site participants File exchange tool Shared Application Tool -- One application sends output to multiple sites Audio Tool Functionality Audio Conferencing allows everyone in the conference to talk to each other Hardware requirements: Microphone, speaker or headphones Control Panel Functionality Sending/playback volume Control; mute button Local Monitor volume Audio Compression (PCM, ADPCM, G.711, G721 etc.) Sampling (8,16,32,44.1,48 Khz) Output Device (Speakers, Headphones) Audio/Video Synchronization Echo Cancellation -- The placement and sensitivity of the microphone can cause audio from the speaker to be picked up and rebroadcast back to the conference Silence sensor -- defines a minimum audio level Text Tool Functionality Allows one to incorporate and distribute notes and text to the conference members Received notes can be saved on disk Text can be dragged / gotten from File Manager or typed directly Shared Write Board Tool for text-only conferencing. Allows one to carry on a text based conversation with all participants using just the keyboard The entire transcript can be saved and scrolled etc. Messages which appear in the public window can be sent anonymously or can identify the author Graphics Tool Requirements Allow one to capture and send still images to other conference participants The incoming graphics can be saved, windowed, deleted. Useful for displaying charts, graphs and images Snapshot from a given screen can be sent to other members of collaboratory Previously stored images can be loaded and sent via Graphics Tool Shared White Board Functionality A virtual drawing board shared by all members of the conference Allow users to simultaneously markup and edit a virtual whiteboard Whiteboard is automatically shared with the other participants The contents (entire or selected region) of the Whiteboard can be saved, printed and "cleaned". Functionality A pointer(mouse) can be seen by all participants as one member moves over screen Drawing: Freestyle lines, Straight lines, rectangles, ellipses, squares and circles with various fill options as in say Aldus Freehand. Move and copy selected objects Eraser Color and line width choice Color and font of text can be chosen Graphics files can be loaded from disk or dragged/dropped from File Manager QuickPic utility allows snapping of images from the whiteboard and other parts of screen Video to Image Tool Functionality Used to access video and create images from any source including analog or digital camera and VCR. Requires a video capture board (we use for TV Tool and Video to Image Tool (under Communique!) the Parallax board on SUN for video capture and JPEG compression) Image size should be controllable A single frame should be selectable from video and treated by Whiteboard or Graphics tools TV Tool Functionality Video can be sent from any source (including camcorder monitoring participants at one site) to other conference participants Requires video camera and/or VCR and video capture board Control Panel Select who will receive video Start and Stop Video Transmission Control frame rate (typically 15 frames per second) Set compression method (motion JPEG, MPEG, CellB etc.) Compression ratio (quality) control Video Image size control Brightness, color, contrast control Bandwidth monitor for sharing between conferencing capabilities File Exchange Tool Functionality Allow one to send files to selected conference participants Allow one to receive files from the other participants Files can be saved or deleted Share Application Tool Functionality Allow conference members to share an application window and application acts as though it is running locally All members can simultaneously participate in editing a CAD drawing or making changes to a spreadsheet No limitation of significance in shared application type Sharing applications that do not open their own window (e.g. C Compiler) requires a terminal application (xterm) Collaboratory technology evaluation and benchmarking Evaluation and benchmarking of basic functionality http://kopernik.npac.syr.edu:1200/collaboration/collab.html Desktop videoconferencing -- addon functionality to existing computers which are either PC's or workstations Link from Internet or internal computer network or ISDN telephone link (commercial standalone systems use this or 2 56kbaud conventional lines upto T1(1.5 Megabit) or higher performance dedicated phone links Chosen for indepth evaluation Communique Desktop Multimedia Videoconferencing (InSoft) -- Multiplatform InPerson collaboratory package (SGI) -- Workstation ProShare Video System (Intel Co.) -- PC Installation of selected products in cooperation with Rome Laboratory CLI, VTEL (Pierce-Phelps) - commercial, expensive standalone solutions List of collaboratory software -- UNIX and Internet UNIX platform Communique Desktop Multimedia Videoconferencing (InSoft)[Sun, HP, IBM RS, DEC Alpha AXP, 486/Pentium] Paradise Software Video Conferencing (Paradise Software, Inc.) [Sun] ShowMe (Sun Microsystem) InPerson collaboratory package (SGI) [SGI] Picture Window (BBN) [Sun] MBONE software IMM Image Multicaster Client IVS Multihost audio/videoconferencing tool MMCC Multimedia Conference Control NV videoconferencing tool NEVOT,VAT audioconferencing tool LBL-WB whiteboard tool SD Session Director List of collaboratory software IBM PC and Macintosh IBM PC platform Live PCS 100 (Picture Tel Co.) ProShare Video System (Intel Co.) InVision (InVision Systems Co.) Person in Person (IBM) MacIntosh CU-SeeMe videoconferencing tool (Cornell University) ShareView 3000 (ShareVision Technology, Inc.) NPAC HPCC/ATM/VOD Laboratory January 1995 ISDN - Integrated Services Digital Network Universal Digital standard which has been around for a long time but is only just being deployed broadly At NPAC installed by NYNEX where we have client(PC's) and server (bridge to ATM network) capability carry 3 media streams:data, voice, video N-ISDN - Narrowband ISDN circuit switching orientation (Frame Relay) uses 64 Kbps channels as basic unit of switching Basic Rate Access (BRI) 2B+D = 144 Kbps B -Bearer Channel (64 Kbps) D - Delta (signal) channel (16 Kbps) Primary Rate Access (PRI) /max value/ 23B+D=1.544 Mbps (T1)/ 30B+D=2.048 Mbps (E1) B-ISDN - Broadband ISDN packet switching orientation (Cell Relay) designed to provide integrated services over Gigabit-speed network ProShare/ IBM PC, MS Windows 3.1 supports ISDN as does InPerson / SGI Indy, IRIX 5.3 NYNET - Upstate Corridor Fall 1994 Video Compression -- I MPEG - Motion Picture Experts Group; lossy algorithm; standard for compression synchronized audio and video; full screen, 30 fps playback at 352x240 resolution H.261 - similar but not compatible with MPEG; videocodec for audiovisual services at px64 Kbps (p=1..30); describes videosource coder, video multiplex coder and the transmission coder; video for ISDN CellB - lossy algorithm, intra-frame compression; very efficient to decode in software; motion sensitive compression scheme (compresses across frames); SunVideo Board Video Compression -- II Indeo - Intel lossy compression; Currently15 fps, 320x240; Indeo 4.0 full-screen 30fps on 90MHz Pentium InSoft DVE 1- intraframe algorithm; InSoft's proprietary; very efficient to decode quickly in software; VideoPix or RasterOP cards Motion JPEG - higher quality than CellB; lossy algorithm; we can control balance between compression and quality; very complex - difficult and time consuming to decode in software; Parallax Card Other: HDCC, H.221, H.242, QuickTime, Cinepak, TrueMotion-S Compression Hardware AT NPAC we have Cosmo SGI and Parallax SUN cards Cosmo card - JPEG compression (SGI Indy -Galileo) Parallax card (Sbus, VME, PC-AT boards, c-Cube technology) - JPEG compression (Sun IPX - Kepler, Hubble) See frequently asked questions: ftp://rtfm.mit.edu/pub/usenet/news.answers/ compression-faq Audio Compression PCM - Pulse Code Modulation ADPCM - Adaptive Differential PCM G.711 - PCM for voice frequencies; 64 Kbps, 8KHz PCM audio encoding G.721 - 32 Kbps, ADPCM audio encoding G.722 - 7 KHz audio encoding with 64 Kbps Other: a-law, G.725 Videoconferencing Standards Today's videoconferencing systems are proprietary, requiring identical technology at each end of conference Around 30 products and half as many protocols Videoconferencing solutions are tied to one platform, special hardware or special network protocols Some multivendor standards exist T.120 - cross platform file and data exchange F.700 - videotelephony and Videoconference standards (CCITT,93) G.700 - CCITT,92 H.231 - covers Multipoint Control Units H.233 - specifies the data encryption methodologies H.241 - Signalling for conferencing H.261 - compression component of H.320 H.320 - dominant standard developed by ITU-T; teleconferencing audio and video protocols H.KEY, T.120, CIF, QCIF Open DVE - Digital Video Everywhere (Insoft, Inc.) Open architecture API and Toolkit - programming interface to create distributed multimedia and collaborative applications Open DVE API (LibraryAPI) - ability to write a single application without concern to the underlying workstation or network technology Open DVE Toolkit - common set of plug-ins: audio toolkit, video toolkit, TV toolkit, whiteboard, writeboard, share application tool Conference Engine and plug-ins (clients) Creation of modified and new collaborative applications Communique! ver 3.2.1 InSoft ($9495) Sun IPX, Parallax XVideo SBus 24 SVC, SunOS 4.1.3, OpenWindows 3.0, SBA200 Sun ws (SunOS 4.1.3 or Solaris 2.3; OpenWindows 3.0 and Mitif 1.1) IBM RS/6000, HP 9000/700, DEC Alpha (AIX, HPUX, DEC OSF) PC and SGI scheduled for 1995 (MS Windows, IRIX) Digital Video Everywhere (DVE) - open system platform TCP/IP over ATM, ethernet, FDDI, FR, ISDN, SMDS, Switched 56 Functionality virtual conference room audio tool (echo cancellation, audio/video synchronization) text tool, shared write tool graphics tool, shared whiteboard TV tool, Video tool (JPEG, MPEG, CellB, Indeo) file exchange tool SHARE application tool multipoint (up to 9 participants) Communique! (2) NPAC Performance tests December 1994 Shared whiteboard and Graphics tool image.ras (305KB): ATM - 25sec; Eth - 23sec Video tool full window (640x480): ATM - 25sec; Eth - 15sec 1/4 window (320x240): ATM - 8 sec; Eth - 6 sec TV tool full window: ATM - 10.1 fps; Eth - 10.8 fps 1/4 window: ATM - 15.0 fps; Eth - 15.9 fps Audio - better over ATM (sampling rate 8KHz) SHARE : can launch only one application; no form of access control Note SHARE allows one to launch X applications (xv,xterm,Mosaic ...) and share your version with other conference participants who for instance see the same Mosaic spawned hyperlinks. Note Communique! currently runs better on Ethernet than ATM! Communique! (3) Message Packet Size MTU: ethernet=1500; FDDI=4532; ATM=9188 is conventional (use netstat -i) MTU cannot be redefined in Communique! which is hard wired in optimization to Ethernet. InPerson allows one to change value of MTU tcp_sendspace/ udp_sendspace/ tcp_recvspace/ udp_recvspace are UNIX kernel parameters which define TCP/IP actions. The buffer sizes (16K for sendspace) is too low for ATM and when increased to 60K one sees a performance boost of a factor of two for ATM. Communique! (4) Audio compression PCM, ADPCM, G.711, G.722, a-law Video compression depends on the type of video capture board motion JPEG (Parallax), CellB (SunVideo board), DVE1 (VideoPix card) new version (Communique! 4.0) also supports: Indeo, H.261 New version will support H.320 InPerson ver 1.0 SGI ($495) SGI Indy/Indigo; IRIX 5.2, GIA 100 Multicast routing and tunneling for multiway conferences License required Ethernet, ATM; ISDN (InPerson 2.0) Functionality audio (def 16KHz, max 48 KHz, echo cancellation, Intel DVI compression, consumes 64Kbps, supports H.320 ) video (default 15fps, max 20fps, 160x120, 208x156, 320x240, HDCC compression) shared whiteboard (multipage) file exchange (shelf) - based on the file icon dragging/dropping no SHARE applications multipoint (up to 6) customization (control panels) primary interface problems InPerson ver 2.0 SGI (beta release) requires IRIX 5.3 ISDN/PPP, T1, LAN, HighSpeed LAN InPerson Phonebook (server) Mail message when InPerson is not running Whiteboard 3D models can be imported and shared Images transmitted using RLE compression Video compression HDCC, H.261, uncompressed (in software) Audio compression G.728 + echo cancellation (Acceleration board required) ProShare ver 1.8 Intel ($2499) NPAC implementation on Compaq Deskpro XL 566 (Pentium 66MHz, 16 MB RAM, 529 megabytes HDD, video resolution 800x600, EISA bus, CD ROM), MS Windows 3.1 Transport ISDN 2B+D or LAN Functionality dial list audio (external speakers, mute, microphone and earphone in headset) video (resize, snapshot, camera control, zoom in/out) 10-15 fps, icon, 160x120, 320x240 shared application shared notebook (multiple pages) Only point-to-point Control panels (general, audio, video, dial list) Eclipse Videoconferencing System -- I Compression Labs, Inc. California Video input/output: main camera, document camera, monitor, VCR compression CTX (CLI Proprietary), QCIF (CCITT standard) resolution: 256x240 (CTX), 176x144 (QCIF) picture-in-picture (PIP) movable, 1/9th screen Audio echo cancellation full duplex compression: G.711 (56kbps), G.728 (16kbps) input: main microphone, aux microphone, VCR output: monitor, VCR Eclipse Videoconferencing System -- II multipoint compatibility: H.320, H.231 transmission network interface: RS-449, V.35, dual DSU (switched 56) or ISDN BRI data rate: 56, 64, 112, 128 kbps standards: framing H.221, call setup H.242 MBONE - Multicast BackBONE Virtual network - uses a network of special (up and coming) routers that support multicast One-to-many and many-to-many network delivery services for applications such as videoconferencing and audio where several hosts need to communicate simultaneously Teleconferencing can be done in the world of Internet (variable packet delivery delays, bandwidth limited) IP multicast addressing (RFC 1112), IP Class D, 224.0.0.0-239.255.255.255 Sun - multicast (modified kernel), SGI mrouted, dedicated routers Audio -frequent dropouts Video - 1-4 fps over Internet MBONE (2) Topology: star and mesh - islands linked by virtual point-to-point tunnels Tunneling - encapsulating the multicast packets inside regular IP packets -- allows multi-casting (multiple addresses for same packet with broadcast as an example where ALL get message). Most routers do not support multicasting and so must hide special multicast packet in conventional packet where insides are exposed by the special routers Multicasting can dramatically reduce network use if use well as if N recipients, only need 1 not N packets on trunk lines. TTL - time-to-live - field in a packet , decremented each time the packet passes through a router (prevent network links saturation) Protocols: IGMP (Internet Group Management Protocol), DVMRP (Distance Vector Multicast Routing Protocol), RTP (Real Time Protocol over TCP/IP) A new site announces itself to the MBONE mail list, and the nearest providers decide who can establish the most logical connection path Compression: JPEG, H.261, Wavelet-based encoding, PCM (audio) MBONE (3) Application tools (Sun, SGI, HP, DEC) SD - Session Directory - session availability is dynamically announced NV - Net Video (Xerox Palo Alto) WB - Whiteboard (Lawrence Berkeley Lab) VAT - Visual Audio Tool (Lawrence Berkeley Lab) IMM - Image Multicaster Client NEVOT - Network Voice Terminal MMCC - Multimedia Conference Control Program Bandwidth capacities lower than T1 are generally unsuitable for MBONE video All Public Domain! MBONE References(4) ftp://venera.isi.edu/mbone/faq.txt ftp://parcftp.xerox.com/pub/ net-research/mbone-map-big.ps http://www.research.att.com/ mbone-faq.html http://www.eit.com/techinfo/ mbone/mbone.html Introduction to Collaborative MOO Environments MOO's stand for Object Oriented MUD's where MUD stands for Multi-User Dungeons or if one is trying to be high class Multi-User Dimensions These are "virtual-reality" or more precisely "virtual-community" systems The goal is to set up a computer environment which resembles more or less faithfully the real world. MOO's and MUD's involve people, places and things MOO's are a modern object oriented implementation of the older MUD's and are developed at XEROX PARC in Palo Alto These notes are from Lonnie Turbee (lmturbee@mailbox.syr.edu) A Formal Definition of Collaborative MOO Environments A MOO "...is a network-accessible, multi-user, programmable, interactive system well-suited to the construction of text-based adventure games, conferencing systems, and other collaborative software. Its most common use, however, is as a multi-participant, low-bandwidth virtual reality..." - excerpted from the _LambdaMOO Programmer's Manual_, version 1.7.6, written by Pavel Curtis. MOO's are like Dungeons and Dragons or Computer role playing games such as Zork series Rather perversely, they use a fundamental spatial model but are entirely (but elegantly) text based Many -- such as Argonne -- are researching addition of visual material with animation of people and environment. This would become the model where client videogames dial central servers which create a fully realistic 3D world in which tanks, F16's and explorers of videogame interact with each other MOO's stress the acquistion of knowledge and not the destruction of other players Characteristics of a MOO MOOs are composed of three types of elements: People, places, and things. Because one of the goals of a MOO is to resemble (within the limitations of the medium) reality, MOOs have many of the things that one would see in everyday life: cars and houses, people and refrigerators, pets and so forth. The people who inhabit MOOs attempt to add as much detail to the MOO as possible. This means adding details as simple as making a character able to smile or as complex as establishing a democratic system by which the MOO is governed (such as the one that exists at LambdaMOO). FTP from parcftp.xerox.com as pub/MOO/contrib/TinyMUD will compare MUD's and MOO's Use of a MOO To try out a MOO, do (march 27 1995) telnet io.syr.edu 1234 (ASKEric MOO) telnet arthur.rutgers.edu 8888 (English as a Second Language MOO) Type connect guest to join MOO (temporarily) Then you type in the name you want to use. It will ask you to verify this (type yes) and give yourself a description. To find out who is currently logged on and where they are, type @who To talk to anyone in a place different from where you are, type page (such as: page Colega Hi! May I join you? ) Interacting in a MOO To join anyone currently logged into the MOO, type @join (such as: @join Colega) Once you are with someone in a room, you can talk to them using just one quotation mark at the beginning of your sentence: " (such as: "Hi! How are you? ) To show actions and emotions, type the colon (:) followed by a sentence with no subject in the third person singular. So if Lonnie types :smiles and waves to everybody. Everyone in the room will see Colega smiles and waves to everybody. To access help files, just type help and follow instructions To leave, type @quit A MOO Seesion Starts LIke This *** Connected *** Reception Area This is a large, open and airy room that is modern and appealing. An information booth can be seen off to one side, and a number of people are walking about silently from place to place. You seem to have found yourself in a learning and conference center, and this is the reception area. The room narrows into a hallway to the south, and just over the hallway exit is a large clock that hangs beneath a large metallic sign reading: Welcome to AskEricMOO. The clock on the wall reads: 4:21pm. Nobody is sitting at their desks. MOO Commands from request: help manipulation Objects usually have verbs defined on them that allow players to manipulate and use them in various ways. Standard ones are: get -- pick an object up and place it in your inventory drop -- remove an object from your inventory and place it in the room put -- take an object from your inventory and place it in a container give -- hand an object to some other player look -- see what an object looks like You can see what objects you're carrying with the 'inventory' command; see 'help inventory' for details. Some specialized objects will have other commands. The programmer of the object will usually provide some way for you to find out what the commands are. One way that works for most objects is the 'examine' command; see 'help examine' for details. The following specialized objects have help entries you should consult: notes -- objects that allow text to be written on them and read later letters-- notes that a recipient can burn after reading containers -- objects that may contain other objects The Spatial Metaphor Mosaic naturally implements hyperlinked multimedia material as in digital library However MOO and indeed flight simulators and many role playing and adventure games are based around two or better three dimensional rendered graphics Terrain Rendering is technology needed to convert 3D world into video stream Suggest such Geographical Information System approach to spatially labelled data but Mosaic for "library" information Use GIS/3D rendering to cruise around world -- "land at" Airport and there open Mosaic window for listing of plane schedules This becomes obvious digital Yellow Page implementation Comments on Multi-User Simulations Current Computer games are largely single-user and have reasonable graphics MOO is Multi-User but no graphics SIMNET and its successor DSI(Distributed Simulation Internet) is an example where large scale multi-user simulation is linked to real hardware and real people making decisions One has both real and simulated war vehicles Implemented as a world-wide simulation This requires complex event driven simulations which are some of hardest parallel applications SIMNET worked as components interacted very loosely and so one could broadcast envbironment changes to individual simulation computers This will become the commercial multi-user games where for instance all F16 game owners dial a central site and fight it out in the same simulated 3D world