Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
TECHNICAL NOTE
December 2000
Technical Note: Overview of the Chat Subsystem, Rel. 4.1
December 2000
This technical note contains valuable confidential and proprietary information of America Online, Inc. No part of this
technical note may be transmitted or distributed, or copied, photocopied, scanned, reproduced, translated,
microfilmed, or otherwise duplicated on any medium without written consent of America Online. If written consent is
given, the same confidential, proprietary, and copyright notices must be affixed to any permitted copies as were
affixed to the original.
Use of the software programs described herein and this technical note is subject to applicable license agreements and
nondisclosure agreements. Unless specifically otherwise agreed in writing, all rights, title, and interest to this
software and documentation remain with America Online.
Information in this technical note has been carefully checked and is believed to be accurate. However, this
information is subject to change without notice, and America Online assumes no responsibility for any inaccuracies
that may be contained in this technical note. In no event will America Online be liable for direct, indirect, special,
incidental, or consequential damages resulting from any defect or omission in this technical note, even if advised of
the possibility of such damages.
In the interest of continued product development, America Online reserves the right to make improvements to this
technical note and the products it describes at any time, without notice or obligation.
The trademarks, logos, and service marks ("Marks") displayed in this document are the property of America Online
or other third parties. You are not permitted to use the Marks without the prior written consent of America Online or
such third party which may own the Marks. "America Online," "AOL," and the AOL triangle logo are registered
trademarks of America Online, Inc.
Published by
America Online, Inc.
44900 Prentice Drive
Dulles, Virginia 20166
Phone: (703) 265-2100
Fax: (703) 265-2907
Printed in the United States of America
Table of Contents
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Types of Rooms.......................................................................................... 3
Who Should Use This Technical Note ....................................................... 5
More Information ....................................................................................... 5
Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Components and Processes......................................................................... 6
Naming Conventions ................................................................................ 11
Initialization.............................................................................................. 12
Optional Room Characteristics................................................................. 14
Chat Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Operational Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
The AOL back-end infrastructure can run AIM chat since the subsystem
supports multiple logins. In other words, a screen name can be logged on
through AOL and AIM at the same time, but a given screen name can be in
a room only once, since screen name is used as a key in the clients.
• Overview on page 3
• Design on page 5
Overview
A chat room is a real-time area of the online service where members can
hold conversations by typing text and seeing text sent by other members.
Types of Rooms
The chat subsystem supports the following types of rooms:
• Classic chat rooms include both People Connection chat rooms (rooms
found by clicking the People Connection button or through keyword:
chat) and conference rooms that allow members to chat in a setting of
up to 47 people. People Connection rooms consist of sanctioned
(public) rooms, member rooms, and private rooms.
More Information
The characteristics of the different chat rooms are configured through the
chat_config tool. The tool populates information to chat provider
complexes that feed room information to the servers in all pods. For
information about the chat_config tool, see the Using the chat_config Tool
technical note.
Design
The chat subsystem consists of a multileveled series of servers that
integrates OSCAR and AOL clients.
Modem
Modem
Public Data Network Public Data Network
SNAC
FLAP
TCP/IP
Client Computer OSCAR Client
comm
OSCAR
BOS Grog
TIH BERP queue Authorizer ball
domain
chat
Nav Chat
WERP pod-n Grog
pod-b ball ball
pod-a
chat_list chat_sw
PCL
dracula
mail_send
chat_ chat_name
namesrv lob
whiscer
chat_config
search
chat_prov_ chat_prov_ chat_prov_
classic aud ecr
search_
chat_rrb gatherer
Chat ball (Chat server) A type of OSCAR Bucky ball server that provide
a gateway between the OSCAR client and the
AOL chat subsystem. In this case, the contents of
a bucket are not individual users, but Chat rooms.
Grog (Generic Routing A server that is located in both the OSCAR queue
OSCAR Gateway) domain and the AOL queue domain so as to
facilitate communication between the BOSS in
the OSCAR queue domain, and the Nav and Chat
balls in the AOL queue domain.
WERP (Web End Gateway for AOLTV that provides Web access to
Routing Processor) exisiting AOL services such as Quotes and
Nameman. From the AOLTV client perspective,
WERP functions as Web server. From the host
infrastructure perspective, WERP manages web
services by communicating with the resources
such as the TurboWeb subsystem, the data station,
script processors, the System Update server, and
the Security server.
Naming Conventions
The chat subsystem in production follows the following conventions for
specific queue name instances.
The pods are named by letters, and the chat list and chat switch servers they
host are tagged to their respective pods. For example, the chat list server on
pod a is named chat_list-a while the chat switch server on pod c is named
chat_sw-c.
The chat name and chat fan servers are named from x01 to xNN, where x is
the first letter of the site of the server and N is an integer from 0 to n. For
example, chat_namesrv-r01 designates the 01 server located in Reston and
chat_fan-d15 designates the 15 server in Dulles.
The chat name lobby servers are named from.1 to .NN, where N is an
integer from 0 to n. For example, chat_namelob.1 or chat_namelob.3.
The chat prov servers are named from x01 to xNN, where x is the first
letter of the site of the server and N is an integer from 0 to n. For example,
chat_prov_aud-d01 designates the 01 server located in Dulles.
Initialization
During the initialization of any chat provider server (chat_prov) except for
auditoriums, the chat provider server supplies predefined room information
to the chat switch servers (chat_sw) and the chat list servers (chat_list). See
Auditoriums on page 23 for information about the way the auditorium
providers function during initialization. The chat provider server also
provides information to the chat_namesrv.
Figure 2 describes the general case for the role of a chat provider complex
during initialization:
chat
pod-n
pod-b
pod-a
chat_sw
chat_list
1 2
1 chat_namelob
chat_namesrv
3 3 4
chat_prov
Legend chat_fan
Server
chat provider
Host system complex
Communication
n
event
When the member goes to keyword: chat or clicks the People Connection
button and then clicks the Find a Chat button, the Find a Chat screen
appears. This screen provides the following search and locate button
features to help members find a specific chat or see who is chatting in the
room selected:
• List Sanctioned and Member Chat Rooms—a list of all sanctioned and
member chat rooms and replicable conference rooms.
Figure 3 shows the sequence of events that occurs when a member initiates
a find a chat room request:
1,7
chat
3
5 4
pod-n
pod-b
pod-a
4 chat_sw
chat_list
Legend
Server
Host system
Communication
n
event
The sequence of events for a member to find a chat room is described in the
numbered steps as follows:
1. The member initiates a find request, and the member’s client computer
sends one of the list-room tokens to the tih process running in the
comm subsystem.
2. tih sends the token to the berp for routing to the chat subsystem.
5. chat_list puts up the appropriate room list form, fills it in with the room
entries in the category, and routes it to the berp.
Only the entries that are viewable by this member (determined by view
rule) are shown. The appropriate room list form and appropriate
artwork are determined.
1,5,6,9
comm
2,6a
tih berp
5,6
chat
3,6a 5,6,9
pod-n
pod-a pod-b
10 chat_sw
chat_list
chat_name
chat_namesrv
lob
9
7 10
chat_prov
8
Legend
Server
chat_fan
Host system
chat provider
Communication
n complex
event
1. The member initiates a room entry request and the member’s client
computer sends a room entry request through a token (or URL) to the
tih process running in the comm subsystem.
2. tih sends the token or URL to the berp for routing to the chat
subsystem.
Note: The following steps are performed only if the room is full and is
replicable. These steps consist of asking whether the member wants to
enter a replicated room and handling the response. These steps are skipped
if the room entry is of a type that implicitly indicates acceptance of
replication, such as entry through the generic enter-lobby token or entry
into an auditorium (see Auditoriums on page 23). If the user requests entry
Once the yes/no box sends the message to chat_sw, entry is deferred.
In either case, the server either finds a room with space available or
creates a new room.
8. chat_prov opens the room on a chat_fan (if not already open) and puts
the member into the room.
9. chat_fan initializes the room in the chat tool on the client through
chat_sw.
10. If the room is new and listable, chat_prov sends a message to all
podded chat_ list servers, adding the room to the list.
When the room is an ECR, the following variations occur to the event flow
described in Entering a Chat Room on page 18:
1. The chat provider complex sends the appropriate room form to the
client. It appends atoms to the end of the stream, to cause a token to be
sent when the stream is completed.
Classic chat room entry is indicated by a classic chat room entry token or
URL. chat_sw derives the fully-qualified name using the compatibility
categories information from classic chat provider.
chat_sw blocks a member from being in more than one classic chat room at
a time. If the member is already in a room and tries to enter another one, he
or she is removed from the first room.
Classic chat forms reside on chat_fan, not classic chat provider servers. A
stream-complete token is not generated.
The chat window close action, inserted by chat provider server, sends a
token including fully-qualified room name and room exit notification to
chat_namesrv and the chat provider server.
For some chat providers, the room creation procedure may involve having
the member fill in a chat provider unique form (for example, when entering
a private room), to supply chat provider unique information.
After startup chat_rrb builds its in-memory block list and exception list
from the robust room blocking database. After the lists are completely
loaded, chat_rrb periodically checks for database updates and reflects those
updates in memory. chat_rrb receives "room is blocked?" requests from
chat_prov_classic. The requests contain just a room name.
chat_rrb then looks in its block list to see if the room name is blocked
(member, private, or both) for any country codes, and makes a temporary
list of those country codes along with the private and member attributes. It
then looks in the exception list to see if the room name matches any
exceptions. If the name is excepted for private rooms for a particular
country code in the temporary list, the private attribute is cleared for that
country code. If the name is excepted for member rooms for a particular
country code in the temporary list, the member attribute is cleared for that
country code. If the country code ends up having neither the member or
private attributes set, it is removed from the temporary list.
Auditoriums
An auditorium consists of a collection of rooms in an assigned category,
each one representing an auditorium row. The auditorium chat provider
must send optional room characteristics for its rooms. See Optional Room
Characteristics on page 14 for more information.
When people are put on stage the auditorium provider server provides
particular instances of room information to the chat switch servers
(chat_sw). The auditorium provider server also provides information to the
chat_namesrv.
Initialization
Figure 5 describes the general case for the role of an auditorium provider
complex during initialization:
1,5,6,9
comm
2,6a
tih berp
5,6
chat
3,6a 5,6,9
pod-n
pod-a pod-b
10 chat_sw
chat_list
chat_name
chat_namesrv
lob
9
7 10
chat_prov
8
Legend
Server
chat_fan
Host system
chat provider
Communication
n complex
event
The role of the chat provider complex for auditoriums during initialization
is described in the numbered steps as follows:
Auditorium Entry
SNAC
FLAP
TCP/IP
Public Data Network
Modem
3
1 OSCAR Client
4
OSCAR 6
BOS Grog
queue Authorizer ball
domain
2
AOL
Nav Chat
queue Grog
ball ball
domain
5 Legend
Server
Host system
Bucky balls
n Commun. event
5. Nav balls connect to Chat balls to find out what room to connect to.
See Authorized OSCAR Client Entry and Participation on page 28 for the
event flow in the chat subsystem.
OSCAR client
8
1,3 2,6
9
16
Nav
BOS Chat
ball 13
ball ball
7,10,11,14
17
15
4,5
chat_namesrv chat_name
lob
12
18
chat_prov
12
Legend
Server
chat_fan
Host system
Bucky ball
chat provider
n Commun. event
complex
Note: The AOL chat system does not allow clients to set room
characteristics, or to open a room without entering it. The integrated
AOL-OSCAR chat system responds to the snac_chat_nav_create_room
message by returning the configured characteristics for the room that
the client is attempting to create. The room is not actually created until
someone tries to enter it.
11. Chat ball sends the room category and type to Nav ball.
Note: Nav ball uses standard AOL chat system procedure for
determining which chat_namesrv handles the specified room. It then
sends a QMI message to that chat_namesrv, requesting a pre-
reservation. If the specified room is heavily-used (see Optional Room
Characteristics on page 14), then the Nav ball forwards the message to
the lobby name server generic name. chat_namesrv reserves a slot for
the user in the specified room, or in a replicated instance if necessary. It
then sends a QMI message response back to the Nav ball. The response
includes the name of the room in which a slot was reserved.
15. Chat ball sends a BAT message to the BOS domain, with function ID
boss_prereservation_response_func_id.
Now the BOS has the fully-resolved room name, including any
replication (instance number). So it can continue with the reservation
process, which is targeted at the Chat ball that handles that exact room
name.
16. Chat ball sees that the client made a connection to it and sends Nav ball
as chat_is_msg_oscar_client_online message.
Any messages send OSCAR clients go to Chat ball and are then
forwarded to chat_fan which coordinates all clients, both traditional
and OSCAR. Any chat messages sent to chat_fan are sent out to both
OSCAR clients through Chat ball as well as traditional clients.
On AOLTV Clients
AOLTV clients obtain lists of chat categories and rooms within a category
in a different way than described above. The AOLTV client gets chat
listings through the WERP and PCL AOLTV infrastructure shown in
Figure 1 on page 6. The PCL interpreter (script processor) gets the lists
from the chat_lists and formats them as HTML web pages. The web pages
are sent through the WERP to the AOLTV client.
Chat Verification
Chat verification lets AOL members easily report Terms of Service
violations to the Community Action Team (CAT). CAT is a highly trained
group responsible for enforcing AOL's content and conduct standards. CAT
can issue written warnings and, should the violation(s) be serious enough,
terminate an account.
For each chat room, chat_fan keeps a list of as many chat messages as will
fit into the buffer allocated for the room.
When a member clicks on the Notify AOL button on a chat form, a notify
form is displayed which gives the member a chance to submit a report on
offensive or inappropriate text received through chat. The Notify form
displays a snapshot of chat text (buffered up to 64K bytes, configurable) of
the chat room when the member clicks the Notify button, a list of member
screen names who have been stored in the buffered text, and a field for
reporter’s comments. If the member clicks on the Send button on the
Notify form, the reporter, the person is reported, the chat room information
and the buffered chat text are sent to chat verify Sybase through SOMLDB
servers.
Each report is called a rat report. The rat report has an associated ratter, the
member submitting the rat report. With chat, each rat report also has a
single rattee, the person being ratted on.
1,5,6
2,7 comm
tih 5 berp
chat
5
3,8 pod-n
pod-a
chat_sw
4,9 5
chat_fan
10
adb_switcher
Legend
Database
11
Server
1. The member clicks Notify AOL button and the member’s client
computer sends a Notify AOL request through a TOKEN_AE to the tih
process running in the comm subsystem.
2. tih sends the token to the berp for routing to the chat subsystem.
Note: A timer is set (configurable) when the Notify AOL form is sent.
If the member does not Send or Cancel the form within a configurable
amount of time, chat_fan pops up another form to the client asking if
the member wishes to continue or cancel. If the member fails to answer
this form within the specified amount of time, then another Notify AOL
form is sent to the member and the timer is reset.
6. When the member enters the violator’s screenname and clicks Send or
Cancel, the client computer sends a TOKEN_AD to the tih process
running in the comm subsystem.
7. tih sends the token to the berp for routing to the chat subsystem.
10. chat_fan takes different actions depending on which button the member
clicked.
11. ADB_switcher sends the data to a Sybase table known as the rat report
and populates the following fields:
ReportId
Processed
ReportType
DateEntered
RatTime
RatterSn
RatterIsComLeader
RatterParentCtrl
RatterMajorVer
RatterBHardware
RatterOSFmlyVer
RatterMoCo
RatterSType
RatterMinorVer
RatterBid
RatterBrandiID
RatterCharSet
RatterComm
RatteeSn
RatterMajorVer
RatterBHardware
RatterOSFmlyVer
RatteeSType
RatteeMoCo
RatteeMinorVer
RatteeBid
RatteeBrandiID
ChatRoomName
KidOnlyRoom
RoomPartnerID
RoomChannelID
RoomCategoryID
RoomCategoryName
RatChatMsg
Operational Information
This section describes the following types of operational information:
• Error Recovery on page 35
• Periodic Status Updates on page 36
• Recovery from Server Crash or Restart on page 37
• Chat Statistics (chat_stats) on page 38
Error Recovery
This section describes the following types of error recovery:
• Lost unplugs
• Inter-server requests
Lost Unplugs
The chat_sw servers periodically bounce a strobe message off the terminal
handler for every member in a room. Repeated lack of response indicates
that the member is no longer logged on, even though no unplug was
received. chat_sw sends to the other servers a notification that the member
is no longer in the room(s).
back to the first. If the response is not received within the timeout interval,
the requestor removes the member from the room and forwards a
notification to the member’s chat_sw. The chat_sw in turn relays it down.
Restart Notification
The following restart notifications are for cleaning up rooms that are
destroyed due to server restart:
The servers that are listed as receiving restart notifications send periodic
server ID messages to the servers that send the notifications. A server ID
response that differs from the last-received server ID response indicates
that the server has restarted.
Member Counts
The chat provider servers periodically send updates to the chat_list servers,
indicating how many members are in each room.
Who’s in Room
As with log files, chat_logger detects a file system full error, and other
errors, and changes its internal state. Then it will log an error every 5 min
(configurable), and will not write the log until this situation is cleared.
Enter Room 1
Exit Room 2
Close Room 3
operation start_time The time stamp for the start of an operation
operation end_time The time stamp for the end of an operation
member account The master account number; enables count of
number unique accounts
member subaccount Enables count of screennames
number
event name Identifies the name of the auditorium
event start time Identifies the time that the auditorium was
created.
event end time Identifies the time that the auditorium was closed.
Fan N Sync
Configuration Information
A C
adb_switcher category
description, 7 name and descripti o n45,
auditorium order, 45
commands from chat input line, 25 view rule, 45
description, 3 chat
entry, 25 _config, 8
functions, 23 _fan, 8
initialization, 24 statistics, 47
authorizer verification, 31
description, 7 _list, 8
generic server, 45
B
_logger, 8
ball
statistics, 47
BOS, 7
tcl commands, 48
bucky, 7
_namelob, 8
chat, 7
_namesrv, 8
Nav, 10
_nav_request_prereservation_func_id, 29
BERP
_prov_aud, 8
description, 7
_prov_classic, 8
BOS
_prov_ecr, 9
ball, 7
_rrb, 9
bucky
_sm_cat_list.tcl, 43
ball, 7
_sm_initial_room.tcl, 43
buttons
_sw, 9
Find a Chat, 15
_system.tcl file
List More, 15
entering room, 20
List Sanctioned and Member Chat
_system_bid_category_order, 43
Rooms, 15
ball
People Connection, 15
description, 7
Search All Member Chats, 15
server list, 45
Who’s Chatting, 15
F N
FEP (frontend processor) naming
conventions, 11 SM_subs, 43
nav queue name
ball generic, 44
description, 10 chat provider ID, 44
server list, 45 physical
networks, public data, 11 chat_fan servers, 44
notify AOL non-podded servers, 44
verification, 31
R
O rat report
operational description, 31
error recovery ,35 fields, 33
inter-server requests, 35 recovery/restart
lost unplugs, 35 member counts, 38
periodic status updates, 36 notification, 37
chat switch to room name, 36 server crash, 37
room name to chat provider , 36 server ID ,38
recovery from server crash/restart, 37 Who’s in Room, 38
OSCAR robust room blocking (rrb)
client configuration, 45
authorization, 26 functions, 22
entry and participation, 28 server description, 9
description, 10 room
auditorium, 3
P
capacity, 14
PCL
conference, 4
description, 10
description, 3
People Connection
enhanced conference room (ECR), 4
button, 4
entering, 17
finding, 15
exiting, 18, 32
room, 4
finding by name ,15
physical
heavily used ,14
queue name
maximum name length, 14
podded servers, 44
People Connection, 4
plus group
plus group, 14
description, 14
replicatible, 14
Public Data Network/modem, 11
S
Q
search
q_context
_ gatherer verification, 33
description, 11 _AE
all member chats ,15 chat notify, 32
gatherer server token
configuration, 45 room entry, 9
server
ID U
restarts, 38 unplugs
lobby name ,44 lost, 35
switch, 44 user
service replication, 14
_request, 29 usher
Service Mapping (SM_subs) description, 9
chat_sm_cat_list.tcl, 43 V
chat_sm_initial_room.tcl, 43 verification
description, 43 description, 31
SNAC Verification Sybase
description, 11 description, 11
SOML
SM_subs, 43 W
suffix WERP
use, 14 description, 11
Sybase whiscer
rat report, 31 description, 11
verification, 11 Who’s Chatting
description, 15
T Who’s in Room
TOKEN description, 38
_AD