Abstract:
A novel information sharing apparatus that comprises an information sharing system, connects multiple sites via a network shares each other&#39;s handwriting and screens, and eases handwriting sender&#39;s psychological burden. In the information sharing system, a handwriting sender generates stroke after a user inputs coordinates, display the stroke in unsteady state, and sends coordinate information to a handwriting receiver. The handwriting receiver generates stroke based on the coordinate information sent from the handwriting sender, displays the stroke, and returns response information for displaying succeeded to the handwriting sender. After receiving the response information from the handwriting receiver, the handwriting sender changes the displayed stroke from unsteady state to steady state.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
       [0001]    This patent application is based on and claims priority pursuant to 35 U.S.C. §119 to Japanese Patent Application No. 2012-093764, filed on Apr. 17, 2012 in the Japan Patent Office, the entire disclosure of which is hereby incorporated by reference herein. 
       BACKGROUND 
       [0002]    1. Technical Field 
         [0003]    The present invention relates to an information sharing apparatus and an information sharing system that facilitate connecting with each other at multiple sites via a network and sharing handwriting and a screen with each other. 
         [0004]    2. Background Art 
         [0005]    Electronic information board apparatuses that include a large-sized flat panel display (approximately 40-60 inches) such as LCD and plasma display or use a projector equipped with a touch panel are now commercially available. These apparatuses can display a large-scale version of the screen of a connected PC and are widely used at presentations and meetings, etc., at companies, administrative agencies, educational institutions, and the like. 
         [0006]    Usually, this kind of electronic information board apparatus operates the PC that displays the screen by touching the displayed screen using a touch panel function instead of operating a mouse, thereby facilitating operating the PC via the touch panel as a PC operating function via the touch panel. Furthermore, electronic whiteboard application software that runs on the connected PC is also provided along with these apparatuses. The electronic information board apparatus provides a screen that acts as a whiteboard in combination with the application software, and functions such as writing by hand on the screen via the touch panel and superimposing handwriting on the screen of the PC that runs the application are provided as a handwriting function via the touch panel. 
         [0007]    Alternatively, an information sharing apparatus that facilitates teleconferences connecting these electronic information board apparatuses at multiple sites via a network such as internet and intranet, talking over the phone, and sharing each other&#39;s handwriting and screens is provided. With this kind of information sharing apparatus, participants in the teleconference can share lots of information with each other, which contributes to wrapping up the conclusion effectively by reviewing the content of the shared screens and reusing them at the end of the teleconference. 
         [0008]    However, in this kind of information sharing apparatus that includes the teleconferencing function, there is delay of at least a network transmission time At between displaying handwriting at the handwriting sender and at the handwriting receiver. Therefore, if the handwriting sender starts displaying at t 0 , the handwriting receiver starts displaying at t 0 +Δt, so there is a problem that the handwriting sender cannot know when the handwriting receiver starts displaying. Especially since the handwriting sender cannot see the receiver&#39;s reaction such as a nod over the telephone, the handwriting sender feels anxious about displaying the handwriting at the handwriting receiver&#39;s side, and that prevents participants from participating in the teleconference interactively. 
         [0009]    For example, a technology of flashing handwriting at the receiver&#39;s side in order to promote interactive usage of handwriting at teleconferences has been proposed (e.g., JP-H06-284240-A.) Also, a technology of displaying symbols that indicate to the handwriting receiver that the handwriting sender is writing something by hand has been proposed (e.g., JP-2011-151613-A.) However, these technologies cannot solve the problem that the handwriting sender cannot know whether or not the handwriting is displayed at the handwriting receiver&#39;s side. 
       SUMMARY 
       [0010]    The present invention provides a novel information sharing apparatus that connects multiple sites via a network shares each other&#39;s handwriting and screens, and eases handwriting sender&#39;s psychological burden. 
         [0011]    More specifically, the present invention provides an information sharing apparatus that includes a coordinate detector that accepts inputting coordinates and detects coordinate information, a drawing generator that generates a drawing image in accordance with the coordinate information detected by the coordinate detector, a displaying unit that displays the drawing image generated by the drawing generator, a communication unit that sends the coordinate information to another information sharing apparatus and receives response information that indicates success in displaying from the other information sharing apparatus, and a control unit that has the displaying unit display the drawing image generated by the drawing generator in unsteady state and changes the displaying state from unsteady state to steady state in accordance with the response information from the other information sharing apparatus. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0012]    A more complete appreciation of the disclosure and many of the attendant advantages thereof will be readily obtained as the same becomes better understood by reference to the following detailed description when considered in conjunction with the accompanying drawings. 
           [0013]      FIG. 1  is a diagram illustrating a configuration of an information sharing apparatus as an embodiment 
           [0014]      FIG. 2  is a diagram illustrating a hardware configuration and a functional configuration of the information sharing apparatus. 
           [0015]      FIG. 3  is a diagram illustrating an example of communications data format. 
           [0016]      FIG. 4  is a diagram illustrating an information sharing system. 
           [0017]      FIG. 5  is a diagram illustrating a configuration of a first embodiment of the present invention. 
           [0018]      FIG. 6  is a flowchart illustrating a process as the first embodiment. 
           [0019]      FIGS. 7A and 7B  are diagrams illustrating an example of displaying stroke. 
           [0020]      FIG. 8  is a diagram illustrating a system configuration as a second embodiment of the present invention. 
           [0021]      FIGS. 9A and 9B  are flowcharts illustrating a process executed by the configuration shown in  FIG. 8 . 
           [0022]      FIGS. 10A and 10B  are flowcharts illustrating a process as a third embodiment of the present invention. 
       
    
    
     DETAILED DESCRIPTION 
       [0023]    In describing preferred embodiments illustrated in the drawings, specific terminology is employed for the sake of clarity. However, the disclosure of this patent specification is not intended to be limited to the specific terminology so selected, and it is to be understood that each specific element includes all technical equivalents that have the same function, operate in a similar manner, and achieve a similar result. 
         [0024]    Embodiments of the present invention will be described in detail below with reference to the drawings. 
         [0025]      FIG. 1  is a diagram illustrating a configuration of an information sharing apparatus. In  FIG. 1 , the information sharing apparatus  100  is connected to PCs  130   a  and  130   b  via a cable  124  and a cable  126 . Also, the information sharing apparatus  100  is connected to another information sharing apparatus via a network such as internet and intranet (not shown in  FIG. 1 ). 
         [0026]    The information sharing apparatus  100  can display images from he PCs  130   a  and  130   b  and drawing images generated by touching a drawing device  140  with a touch panel displaying unit  112 . Also, the information sharing apparatus  100  can send the drawing images to another information sharing apparatus via the network. Furthermore, the information sharing apparatus  100  generates an event by touching the displaying unit  112  and sends this event as an input event from input devices such as a mouse and a keyboard to the PCs  130   a  and  130   b.    
         [0027]    The PCs  130   a  and  130   b  are information processing apparatuses that provide images to be displayed. The PCs  130   a  and  1306  include an interface to output an image signal that provides the information sharing apparatus  100  with an image signal that forms the display image of the PCs  130   a  and  130   b  at a predefined rate (e.g., 30 fps). 
         [0028]    The PCs  130   a  and  130   b  include a Video Graphic Array (VGA) output connector (not shown in figures) as an interface and can send a VGA signal to the information sharing apparatus  100  via the cable  124  such as a VGA cable in this embodiment. In another embodiment, the PCs  130   a  and  1306  can also send a display signal using wireless communications compliant with various wireless communications protocols. 
         [0029]    Also, the PCs  130   a  and  130   b  can acquire images on the displaying unit  112  displayed by the information sharing apparatus  100 . The PCs  130   a  and  130   b  include a USB port (not shown in figures) and acquire display images stored in the information sharing apparatus  100  connected via the USB cable  126  using general-purpose drives such as USB Mass Storage Class. 
         [0030]    Although laptop PCs are used as the PCs  130   a  and  130   b  in  FIG. 1 , information processing apparatuses such as a desktop PC, a tablet PC, a PDA, a digital video camera, and a digital camera that can provide image frames can be used in other embodiments. Also, although two PCs  130   a  and  130   b  are adopted in  FIG. 1 , 1 PC or more than 3 PCs can be adopted in other embodiments. 
         [0031]      FIG. 2  is a diagram illustrating a hardware configuration and a functional configuration of the information sharing apparatus. The information sharing apparatus  100  includes an image input interface  232  and an image output interface  234  and is connected to the PC  130   a  and  130   b  via those interfaces. Also, the information sharing apparatus  100  is connected to another information sharing apparatus  400  via a network  300  such as internet and intranet. 
         [0032]    The image input interface  232  receives an image signal that forms a display image of the PCs  130   a  and  130   b.  A Digital Visual Interface (DVI) connector can be adopted as the image input interface  232  in this embodiment. The image input interface  232  receives a VGA signal via the cable  124  such as a VGA cable from the PCs  130   a  and  130   b  and provides an image acquisition unit  206  included in the image sharing apparatus  100  with the VGA signal. Also, a VGA connector, a High-Definition Multimedia Interface (HDMI) connector, and a Displayport connector can be adopted in other embodiments. Furthermore, the image input interface  232  can receive an image signal from the PC  130   a  and  1306  using wireless communication compliant with wireless communication protocols such as Bluetooth and WiFi in other embodiments. The image output interface  234  outputs display images of the information sharing apparatus  100  to external devices such as the PCs  130   a  and  130   b.  A USB socket can be adopted as the image output interface  234 . 
         [0033]    The information sharing apparatus  100  includes a processor  200  as a control unit, a ROM  202 , a RAM  204 , an image acquisition unit  206 , a coordinate detector  224 , a touch detector  226 , a displaying unit  112 , and a communication unit  250  etc. It should be noted that the coordinate detector  224  and the touch detector  226  are integrated into the displaying unit  112  in practice. 
         [0034]    The processor  200  is an arithmetic processing unit such as a CPU or a MPU, runs necessary OS, and executes programs written in necessary programming language under the management of the OS. The ROM  202  is a non-volatile memory that stores programs such as BIOS. 
         [0035]    The RAM  204  is a storage device such as a DRAM and a SRAM and provides memory area for the processor  200  to execute programs, memory area to store data in the calculating process from the processor  200 , and memory area to store data necessary for the processor  200  to execute processing. 
         [0036]    The processor  200  reads programs from a hard disk drive (not shown in figures) that stores software programs and various data and executes it after loading it into the RAM  204 . Programs loaded into the RAM  204  and executed include program modules, an event processing unit  210 , an application image generator  212 , a layout management unit  214 , a drawing generator  216 , a composing unit  218 , a display control unit  220 , a snapshot generator  222 , and a repository management unit  228 . In other words, the processor  200  implements these functions by executing programs loaded in the RAM  204 . 
         [0037]    The image acquisition unit  206  acquires an image signal from the PCs  130   a  and  130   b.  After receiving an image signal from the PCs  130   a  and  130   b  via the image input interface  232 , the image acquisition unit  206  derives image information such as frame resolution and frame frequency of an image frame as display images of the PCs  130   a  and  130   b  formed by the image signal by analyzing the image signal and sends the image information to the application image generator  212 . Also, the image acquisition unit  206  forms an image frame as display images of the PCs  130   a  and  130   b  using the image signal and overwrites the image frame to the video RAM  208  that can store image data temporarily. Although the image acquisition unit  206  includes the video RAM  208  in this embodiment, the video RAM  208  can be set up separately, and the RAM  204  can be used as the video RAM  208  in other embodiments. 
         [0038]    The application image generator  212  generates various display windows to be displayed on the displaying unit  112 . The display windows include a display window that displays an image frame as display images of the PCs  130   a  and  130   b,  a display window that displays a generated drawing image, a display window that displays buttons and menus to configure various settings of the information sharing apparatus  100 , and display windows of a file viewer and a Web browser etc. The application image generator  212  draws these display windows on the appropriate image layer. 
         [0039]    The layout management unit  214  draws a display image of the PCs  130   a  and  130   b  in display window generated by the application image generator  212 . In cooperation with the application image generator  212 , the layout management unit  214  acquires the image frame stored in the video RAM  208  from the image acquisition unit  206 , adjusts the size of the image frame to fit in the display window generated by the application image generator  212 , and draws the image frame on the appropriate image layer. 
         [0040]    The touch detector  226  detects that an object such as the drawing device  140  touches. A coordinates inputting/detecting apparatus that uses infrared blockage is adopted as the touch detector  226  in this embodiment. In this coordinates inputting/detecting apparatus, two emitting/receiving units placed at both ends of the lower part of the displaying unit  112  emit a plurality of infrared light rays parallel to the displaying unit  112  and receives light reflected on the same optical path by reflecting components placed at the surroundings of the displaying unit  112 . The touch detector  226  notifies the coordinate detector  224  of identifying information of infrared emitted by the two emitting/receiving units and reflected by the object, and the coordinate detector  224  specifies the coordinate position where the object touches. 
         [0041]    In other embodiments, a touch panel that specifies touched location by measuring changes in electric capacitance, a touch panel that specifies touched location by measuring changes in voltage of two pairs of opposing resistive films, and a touch panel that specifies touched location by measuring electromagnetic induction generated when the object touches the displaying unit can be adopted as the touch detector  226 . 
         [0042]    The coordinate detector  224  calculates coordinate position where the object touches the displaying unit  112  and issues various events. In this embodiment, the coordinate detector  224  calculates coordinate position where the object touches using identifying information of the blocked infrared issued by the touch detector  226 . The coordinate detector  224  issues various events to the event processing unit  210  along with the coordinate position where the object touches. 
         [0043]    The events that the coordinate detector  224  issues include an event that notifies that an object touches or approaches (TOUCH), an event that notifies that the contact point moved after the object touched or the approach point moved after the object approached (MOVE), and an event that notifies the object departs from the displaying unit  112  (RELEASE). These events include coordinates position information as coordinates of the contact position or the approach position. 
         [0044]    The drawing device  140  is a device for drawing by touching on the displaying unit  112  in the information sharing apparatus  100 . The drawing device  140  is formed of a pen including a detector that detects approach of an object at its apical end. If the detector touches an object, a touch signal that notifies of touching is sent to the coordinate detector  224  along with the identifying information of the drawing device. 
         [0045]    Also, the drawing device  140  includes a mode selecting switch that selects information sharing apparatus operating mode or PC operating mode on its side or back, etc. In the information sharing apparatus operating mode, a user can draw any shape or character, etc., on the displaying unit  112  in the information sharing apparatus  100  and select menus or objects such as buttons displayed on the displaying unit  112 . In the PC operating mode, a user can select menus or objects such as buttons displayed on the displaying unit  112 . 
         [0046]    For example, if a user touches the drawing device  140  to the information sharing apparatus  100  after holding down the mode selecting switch, the drawing device  140  sends a mode type signal that indicates the PC operating mode along with a touch signal and its identifying information. If a user touches the drawing device  140  to the information sharing apparatus  100  without holding down the mode selecting switch, the drawing device  140  sends a mode type signal that indicates the information sharing apparatus operating mode along with a touch signal and its identifying information. 
         [0047]    The coordinate detector  224  calculates coordinate position where the object touches after receiving identifying information of infrared from the touch detector  226  and issues various events after receiving a touch signal from the drawing device  140 . Concurrently, the coordinate detector  224  notifies the event processing unit  210  of information that indicates mode type (referred to as “mode type information” hereinafter) along with the issued event. 
         [0048]    Various signals are sent using short-range wireless communication such as Bluetooth in one embodiment. Various signals can be sent using wireless communication that uses ultrasonic wave or infrared in other embodiments. 
         [0049]    The event processing unit  210  processes events that the coordinate detector  224  issues. The event processing unit  210  acquires coordinates of a starting point S after receiving a pen-down event (TOUCH) from the coordinate detector  224 . Subsequently, the event processing unit  210  keeps acquiring intermediate coordinates I 0  and I 1  etc. at predefined rate (e.g. 100 Hz) until it receives a pen-up event (RELEASE). After receiving the pen-up event (RELEASE), the event processing unit  210  acquires coordinates of an ending point E and stores the acquired sequence of coordinates (S, I 0 , I 1 , . . . , E) in the repository management unit  228  as stroke data. This stroke data includes acquired time (time in UTC), for each coordinates, writing pressure (in Newtons), and tilt of the pen (in degrees). 
         [0050]    The event processing unit  210  sends a mouse event to the PCs  130   a  or  1306 . Also, if the information sharing apparatus operating mode is specified, event processing unit  210  notifies other functional units in the information sharing apparatus  100  of a drawing command event and a selection notifying event after receiving the pen-up event (RELEASE) after receiving the pen-down event (TOUCH). 
         [0051]    The mouse event is the same type of event issued by the input device such as mouse of the PCs  130   a  and  130   b  and issued to the PCs  130   a  and  1306  in response to touch of the drawing device  140  in case the PC operation mode is specified. The event processing unit  210  converts coordinate position information included in the event issued by the coordinate detector  224  into coordinate position information in accordance with the size of screen of the PCs  130   a  and  1306  and sends it to the PCs  130   a  and  130   b  along with the mouse event. The PCs  130   a  and  130   b  process the mouse event in the same manner as events issued by input devices such as a mouse. 
         [0052]    The drawing command event commands the information sharing apparatus  100  to draw. The drawing command event is issued in response that the drawing device  140  touches the displaying unit  112  if the information sharing apparatus operating mode is specified. 
         [0053]    The selection notifying event indicates that various objects such as buttons and menu bar that comprising the screen displayed on the displaying unit  112  were selected. The selection notifying event is issued in response to the drawing device  140  touching the displaying unit  112  if the information sharing apparatus operating mode is specified. The event processing unit  210  issues the selection notifying event if the coordinate position information included in the event that the coordinate detector  224  detects is within the coordinate area of the object. 
         [0054]    Identifying information is allocated for the drawing command event and the selection notifying event in this embodiment, and the functional unit that starts operating after receiving those events as a trigger in the information sharing apparatus  100  executes various processes with reference to the identifying information. Also, identifying information of the selected object is included in the selection notifying event, and the functional unit that starts operating after receiving the selection notifying event as a trigger in the information sharing apparatus  100  executes various processes with reference to the identifying information of the object. 
         [0055]    The drawing generator  216  generates a drawing image drawn with the drawing device  140 . The drawing generator  216  generates an image layer on which the color of the coordinate position indicated by the coordinate position information is changed to a specific color in accordance with the drawing event from the repository management unit  228 . The drawing generator  216  stores the coordinate position as drawing information in a storage area for drawing information in the RAM  204 . 
         [0056]    The composing unit  218  composes various images. The composing unit  218  composes an image layer on which the application image generator  212  draws an image (referred to as “application image layer” hereinafter), an image layer on which the layout management unit  214  draws an image displayed by the PCs  130   a  and  130   b  (referred to as “image capture layer” hereinafter), and an image layer on which the drawing generator  216  draws an image (referred to as “handwriting layer” hereinafter). 
         [0057]    The display control unit  220  controls the displaying unit  112 . The display control unit  220  displays the composite image generated by the composing unit  218  on the displaying unit  112 . The composing unit  218  displays the composite image on the displaying unit  112  by calling the display control unit  220  in this embodiment. In another embodiment, the composing unit  218  and the display control unit  220  can composite image layers and display them on the displaying unit  112  at the same rate as the refresh rate of image frames included in the image information. 
         [0058]    The snapshot generator  222  generates a snapshot image composing a display image of the PCs  130   a  and  130   b  and a drawing image that the drawing generator  216  generates. After receiving the selection notifying event that indicates a snapshot button that commands to acquire a snapshot displayed on the displaying unit  112  is selected, the snapshot generator  222  combines the image capture layer and the handwriting layer and generates a snapshot image. After generating the snapshot image, the snapshot generator  222  has the repository management unit  228  store the snapshot image in the storage device  230 . An example of the storage device is a hard disk drive (HDD). 
         [0059]    The repository management unit  228  controls the storage device  230  where the snapshot image is stored. As described above, the repository management unit  228  stores the snapshot image in the storage device  230  in response to the command from the snapshot generator  222 . Also, the repository management unit  228  acquires the snapshot image from the storage device  230  and sends it to the PCs  130   a  and  130   b  in response to the command from the PCs  130   a  and  130   b.  Also, the repository management unit  228  acquires stroke data from the event processing unit  216  and sends it to the other information sharing apparatus  400  connected to the network via the communication unit  250 . 
         [0060]    The communication unit  250  sends/receives data such as coordinate position information, snapshot image, and response information to/from the other information sharing apparatus  400  connected to the network  300 . In the case of receiving data, the received data is sent to the event processing unit  210  as an event. 
         [0061]      FIG. 3  is a diagram illustrating an example of communications data format that the communication unit  250  exchanges. In  FIG. 3 , “To” includes destination address, “From” includes generating origin address, and “Via” includes transferring origin address. “Message-ID” such as IP address, URI (RFC2396), URL (RFC1738), and XMPP address (RFC6122) identifies messages. “References” refers to Message-ID. “Method” includes one of ADD, ACK, and NACK. ADD indicates addition of stroke (drawing), and ACK and NACK indicate responses to ADD. “Content-Type” indicates attributes of stroke data, and values such as application/inkml+xml or application/octet-stream are set to Content-Type. “Content-Length” indicates the size of Body in octet. If Content-Length is 0, that indicates that no data is included in Body. Body can be not only text data such as XML and JSON but also binary data. 
         [0062]      FIG. 4  is a diagram illustrating the information sharing system  100  connected to the other information sharing apparatus  400  via the network  300  such as intranet and intranet. Usually, an information sharing system is constructed by connecting two or more information sharing apparatuses to such a network. 
         [0063]    In  FIG. 4 , the information sharing apparatus  100  is a handwriting sender, and the information sharing apparatus  400  is a handwriting receiver. If a user handwrites something on the information sharing apparatus  100 , the handwriting is displayed on the displaying unit  122  in the information sharing apparatus  100 , and the handwriting is displayed on the displaying unit  112  in the information sharing apparatus  400 . Since the information sharing apparatus  100  is connected to the information sharing apparatus  400  via the network  300 , there is a time delay between displaying the handwriting at the information sharing apparatus  100  and at the information sharing apparatus  400 . This time delay is not constant but varies depending on the state of the network. Therefore, the user of the information sharing apparatus  100  cannot know with certainty when the handwriting is displayed and whether or not the handwriting is displayed at the information sharing apparatus  400 . In that case, interactive usage of handwriting is hampered at teleconference etc. 
         [0064]    To solve this problem, in the present invention, if a user handwrites something on the information sharing apparatus as the sender, the handwriting is displayed in unsteady state such as gray colored or dotted lines etc. on the sender information sharing apparatus. Subsequently, after confirming that the handwriting is displayed on the information sharing apparatus as the receiver, the handwriting on the sender information sharing apparatus is changed to steady state. 
       First Embodiment 
       [0065]      FIG. 5  is a diagram illustrating a configuration in a first embodiment. It should be noted that only the configuration related to the present invention is illustrated schematically in  FIG. 5 . 
         [0066]    In  FIG. 5 , the information sharing system  100  is connected to the other information sharing apparatus  400  via the network  300  such as internet and intranet. As shown in  FIG. 4 , the information sharing apparatus  100  is the handwriting sender, and the information sharing apparatus  400  is the handwriting receiver. Regarding both the information sharing apparatus  100  and  400 , the same symbols are assigned to the same components as in  FIG. 2 , and their descriptions are omitted. 
         [0067]    The information sharing apparatus  400  as the handwriting receiver includes a response information generator  231 . After generating strokes as a drawing image based on stroke data as coordinate information sent from the handwriting sender information sharing apparatus  100  by the drawing generator  216  and displaying the stroke on the displaying unit  112 , the response information generator  231  generates response information (ACK) that indicates displaying succeeded and sends it to the handwriting sender information sharing apparatus  100  via the communication unit  250 . As described later in detail, after receiving the response information from the handwriting receiver information sharing apparatus  400 , the handwriting sender information sharing apparatus  100  changes the stroke displayed on the displaying unit  112  from unsteady state to steady state. 
         [0068]    It should be noted that the information sharing apparatus  100  also includes the response information generator  231  since the information sharing apparatus  100  can also be the handwriting receiver. 
         [0069]      FIG. 6  is a flowchart illustrating a process in the first embodiment.  FIG. 6(   a ) is a flowchart illustrating the process in the handwriting sender information sharing apparatus  100 , and  FIG. 6(   b ) is a flowchart illustrating the process in the handwriting receiver information sharing apparatus  400 . Hereinafter, the information sharing apparatus  100  is referred to as the handwriting sender, and the information sharing apparatus  400  is referred to as the handwriting receiver. 
         [0070]    Firstly, the handwriting sender  100  initializes a communication failure counter and a display failure counter by setting to them 0 in S 1001 . The communication failure counter counts the number of times that the handwriting receiver  400  cannot receive stroke data, and it is used to resend the stroke data to the handwriting receiver  400  if the count value does not exceed a predefined value (referred to as “the upper limit for the number of times to try sending”). The display failure counter counts the number of times to exceed the upper limit for the number of times to try sending, and it is used to stop sending stroke data to the handwriting receiver  400  if the display failure counter value exceeds predefined value (referred to as “the upper limit for the number of times to try displaying”. For example, a predefined area in the RAM  204  is used for the communication failure counter and display failure counter (software counter). Also, the values of the upper limit for the number of times to try sending and the upper limit for the number of times to try displaying are set in the RAM  204 . 
         [0071]    After initializing the communication failure counter and the display failure counter, the handwriting sender  100  waits for detecting coordinate information in S 1002 . After detecting the coordinate information, strokes as a drawing image is generated in S 1003 , and the strokes are displayed in unsteady state in S 1004 . It should be noted that the unsteady state can be displayed in a color whose transmittance is high (e.g., transmittance is 50%), a fluorescent color of the original color, a specified color such as gray, a half-width line of steady state, or a dotted line. 
         [0072]    After displaying the stroke in unsteady state, the handwriting sender  100  checks whether or not the display failure counter value exceeds the upper limit for the number of times to try displaying in S 1005 . For example, the upper limit for the number of times to try displaying may be set to three. If the display failure counter value exceeds the upper limit for the number of times to try displaying, the handwriting sender  100  displays “displaying failed” on the displaying unit  112  in S 1006 . For example, this message is displayed in a lower corner of the screen. Subsequently, the handwriting sender  100  changes the stroke displayed on the displaying unit  112  from unsteady state to steady state in S 1016 , and the process returns to S 1002 . That is, if the message “displaying failed” is displayed, the user recognizes that the handwriting sender  100  does not send the stroke data to the handwriting receiver  400  since the handwriting receiver  400  does not receive the stroke data even if the handwriting sender  100  tried to send the data multiple times. In this case, of course, the stroke is not displayed at the handwriting receiver  400 . 
         [0073]    If the display failure counter value does not exceeds the upper limit for the number of times to try displaying (NO in S 1005 ), the handwriting sender  100  sends the stroke data (coordinate information) to the handwriting receiver  400  in S 1007 . Subsequently, the handwriting sender  100  starts a timer in S 1008  and check whether or not it receives response information of displaying succeeded (ACK) from the handwriting receiver  400  before the time-out in S 1009  and S 1010 . For example, time-out can be set to three seconds. Of course, it is not limited to three seconds. 
         [0074]    If ACK is received from the handwriting receiver  400  before the time-out (YES in S 1009 ), the handwriting sender  100  resets the timer in S 1011 . Subsequently, the handwriting sender  100  changes the stroke displayed on the displaying unit  112  from unsteady state to steady state in S 1016 , and the process returns to S 1002 . Consequently, the user recognizes that the stroke is also displayed (drawn) at the handwriting receiver  400 . 
         [0075]    Alternatively, if the timer runs out before ACK is received from the handwriting receiver  400  (YES in S 1010 ), the handwriting sender  100  increments the communication failure counter by one in S 1012  and checks whether or not the communication failure counter value exceeds the upper limit for the number of times to try sending in S 1013 . For example, the upper limit for the number of times to try sending can be set to 10. 
         [0076]    If the communication failure counter value does not exceed the upper limit for the number of times to try sending, the process returns to S 1007 , and the stroke data is resent to the handwriting receiver  400 . Subsequently, if ACK is received from the handwriting receiver  400  before the communication failure counter value exceeds the upper limit for the number of times to try sending, the handwriting sender  100  changes the stroke displayed on the displaying unit  112  from unsteady state to steady state. Consequently, situation in which stroke data cannot be sent to the handwriting receiver  400  due to temporary failure in a network, etc,. can be prevented. 
         [0077]    Alternatively, if the communication failure counter value exceeds the upper limit o the number of times to try sending (YES in S 1013 ), the handwriting sender  100  displays “displaying failed” in the lower corner etc. of the displaying unit  112  in S 1014 . Subsequently, the handwriting sender  100  increments the communication failure counter by one in S 1015  and changes the stroke displayed on the displaying unit  112  from unsteady state to steady state in S 1016 , and the process returns to S 1002 . In this case, the user recognizes that the stroke data has not been sent to the handwriting receiver  400  yet due to some sort of failure in a network. 
         [0078]    It should be noted that the handwriting sender  100  can keep the stroke display in unsteady state if it displays “displaying failed” or “communication failed” because of exceeding the upper limit for the number of times to try sending or the upper limit for the number of times to try displaying. 
         [0079]    After receiving the stroke data (coordinate information) from the handwriting sender  100  in S 1021 , the handwriting receiver  400  generates stroke in S 1022  and displays the stroke on the displaying unit  112  in steady state in S 1023 . Subsequently, the handwriting receiver  400  generates response information for displaying succeeded (ACK) in S 1024  and sends it to the handwriting sender  400  in S 1025 . 
         [0080]      FIGS. 7A and 7B  are diagrams illustrating an example of displaying stroke changing from unsteady state to steady state at the handwriting sender. It should be noted that solid lines indicate steady state and dotted lines indicate unsteady state in this description.  FIG. 7A  illustrates a case in which the user draws stroke  2  after confirming that display of stroke  1  changes into steady state. In this case, the stroke  2  is displayed in unsteady state (dotted line). After the stroke  2  is sent to the handwriting receiver and the handwriting receiver starts drawing, ACK is returned from the handwriting receiver.  FIG. 7B  illustrates this case. That is, the display of the stroke  2  changes from unsteady state (dotted line) to steady state (solid line). Consequently, the user can be sure that the handwriting receiver displays the stroke  2 . 
       Second embodiment 
       [0081]    In this embodiment, the information sharing system is constructed connecting a server apparatus in addition to the information sharing apparatus to a network. The handwriting sender information sharing apparatus sends stroke data to the server apparatus. The server apparatus sends the stroke data sent from the handwriting sender to the handwriting receiver information sharing apparatus. After receiving response information from the handwriting receiver information sharing apparatus, the server apparatus sends the response information to the handwriting sender information sharing apparatus. After checking the response information from the server apparatus, the handwriting sender information sharing apparatus changes the stroke display from unsteady state to steady state. This embodiment is suitable if there are more than two handwriting receiver information sharing apparatuses. 
         [0082]      FIG. 8  is a diagram illustrating a configuration in the second embodiment. It should be noted that only the configuration related to the present invention is illustrated in  FIG. 8 . 
         [0083]    In  FIG. 8 , the information sharing apparatuses  100 ,  400 - 1 , and  400 - 2 , and the server apparatus  500  are connected with each other via the network  300  such as internet and intranet. The information sharing apparatus  100  is the handwriting sender, and the information sharing apparatuses  400 - 1  and  400 - 2  are the handwriting receivers. 
         [0084]    It should be noted that two or more information sharing apparatuses as the handwriting receivers can be used even though only two information sharing apparatuses are shown in  FIG. 8 . Generally, this embodiment is effective for more information sharing apparatuses. 
         [0085]    Configurations of the information sharing apparatus  100  as the handwriting sender and the information sharing apparatuses  400 - 1  and  400 - 2  as the handwriting receivers are the same as shown in  FIG. 5 . However, a communications partner of the communication unit  250  in the information sharing apparatus  100  as the handwriting sender and the communication unit  250  in the information sharing apparatuses  400 - 1  and  400 - 2  as the handwriting receivers is the server apparatus  500 . 
         [0086]    The server apparatus  500  includes a storage unit  501 , a response information generator  502 , and a communication unit  503 . The storage unit  501  stores stroke data (coordinate information) received from the information sharing apparatus  100  as the handwriting sender. The response information generator  502  generates a first response information (referred to as ACK( 1 ) hereinafter) after receiving the stroke data from the information sharing apparatus  100  as the handwriting sender, generates a second response information (referred to as ACK( 2 ) hereinafter) after receiving response information (ACK) from the information sharing apparatuses  400 - 1  and  400 - 2  as the handwriting receivers, and generates negative response information (NACK) as a third response information if response information is not received from the information sharing apparatuses  400 - 1  and  400 - 2  as the handwriting receivers. The communication unit  503  exchanges data such as stroke data, ACK( 1 ), ACK( 2 ), and NACK with the information sharing apparatus  100  as the handwriting sender and data such as stroke data and ACK with the information sharing apparatuses  400 - 1  and  400 - 2  as the handwriting receivers. 
         [0087]      FIGS. 9A and 9B  are flowcharts illustrating processing executed by the second embodiment.  FIG. 9A  is a flowchart illustrating a process in the information sharing apparatus  100  as the handwriting sender. FIG.  9 B(b) is a flowchart illustrating a process in the server apparatus  500 . FIG.  9 B(c) is a flowchart illustrating a process in the information sharing apparatuses  400 - 1  and  400 - 2  as the handwriting receivers. Hereinafter, the information sharing apparatus  100  is referred to as the handwriting sender, and the information sharing apparatuses  400 - 1  and  400 - 2  are referred to as the handwriting receivers. 
         [0088]    First, an operation in the handwriting sender  100  will be described below. The handwriting sender  100  initializes a communication failure counter to zeros in S 2001 . The communication failure counter counts the number of times that the server apparatus  500  does not receive stroke data and is used to resend the stroke data to the server apparatus  500  in case the count value does not exceed a predefined value (the upper limit for the number of times to try sending). It should be noted that a failure displaying counter is not used in this embodiment. 
         [0089]    After initializing the communication failure counter, the handwriting sender  100  waits for detecting coordinate information in S 2002 . After detecting the coordinate information, the handwriting sender  100  generates stroke (drawing image) in S 2003  and displays the stroke in unsteady state in S 2004 . Also, the handwriting sender  100  sends the stroke data (coordinate information) to the server apparatus  500  in S 2005 . 
         [0090]    After sending the stroke data to the server apparatus  500 , the handwriting sender  100  starts a timer in S 2006  and checks whether or not ACK( 1 ) is received as response information from the server apparatus  500  before the time-out in S 2007  and S 2008 . 
         [0091]    In case of receiving ACK( 1 ) from the server apparatus  500  before the time-out (YES in S 2007 ), the handwriting sender  100  resets the timer in S 2009 . Subsequently, the handwriting sender  100  waits for next response information from the server apparatus  500  in S 2010  and S 2011 . 
         [0092]    In case of receiving ACK( 2 ) from the server apparatus  500  (YES in S 2010 ), the handwriting sender  100  changes the stroke displayed on the displaying unit  112  from unsteady state to steady state in S 2016 , and the process returns to S 2002 . In this case, the user recognizes that the sever apparatus  500  received the stroke data, and the stroke is displayed (written) in the handwriting receivers  400 - 1  and  400 - 2 . 
         [0093]    In case of receiving NACK from the server apparatus  500  (YES in S 2011 ), the handwriting sender  100  displays “displaying failed” in the lower corner, etc. of the displaying unit  112  in S 2012 . Subsequently, the handwriting sender  100  changes the stroke displayed on the displaying unit  112  from unsteady state to steady state in S 2016 , and the process returns to S 2002 . In this case, the user recognizes that the handwriting receivers  400 - 1  and  400 - 2  do not return ACK to the server apparatus  500  even though the server apparatus  500  sends the stroke data to the handwriting receivers  400 - 1  and  400 - 2  several times after the server apparatus  500  received the stroke data. 
         [0094]    Alternatively, if the timer runs out before ACK( 1 ) is received from the server apparatus  500  (YES in S 2008 ), the handwriting sender  100  increments the communication failure counter by one in S 2013  and checks whether or not the communication failure counter value exceeds the upper limit for the number of times to try sending in S 2014 . 
         [0095]    If the communication failure counter value does not exceed the upper limit for the number of times to try sending (NO in S 2014 ), the process returns to S 2005 , and the handwriting sender  100  resends the stroke data to the server apparatus  500 . 
         [0096]    After repeating the process from S 2005  to S 2008 , S 2013 , and S 2014 , in case of exceeding the upper limit for the number of times to try sending (YES in S 2014 ), the handwriting sender  100  displays “communication failed” in the lower corner of the displaying unit  112  in S 2015  and changes the stroke displayed on the displaying unit  112  from unsteady state to steady state in S 2016 . Subsequently, the process returns to S 2002 . In this case, the user recognizes that the stroke data has not been sent to the server apparatus  500  in the first place (that means no stoke data is written in the handwriting receivers  400 - 1  and  400 - 2  obviously) due to some errors in the network etc. 
         [0097]    Alternatively, after repeating the process from S 2005  to S 2008 , S 2013 , and S 2014 , in case of receiving ACK( 1 ) from the server apparatus  500  before exceeding the upper limit for the number of times to try sending (YES in S 2007 ), the process proceeds to S 2009 . Since the subsequent operation is the same as the case that ACK( 1 ) is returned from the server apparatus  500  after sending the first stroke data as described above, its description is omitted. 
         [0098]    It should be noted that the handwriting sender  100  can keep the displayed stroke in unsteady state after displaying “displaying failed” or “communication failed” message also in this embodiment. 
         [0099]    Next, an operation in the server apparatus  500  will be described below. 
         [0100]    The server apparatus  500  initializes a communication failure counter to zero in S 2021 . The communication failure counter in the server apparatus  500  counts the number of times that the handwriting receivers  400 - 1  and  400 - 2  do not receive stroke data and is used to resend the stroke data to the handwriting receivers  400 - 1  and  400 - 2  in case the count value does not exceed a predefined value (the upper limit for the number of times to try sending). 
         [0101]    After initializing the communication failure counter, the server apparatus  500  waits for receiving stroke data (coordinate information) from the handwriting sender  100  in S 2022 . After receiving the stroke data, the server apparatus  500  stores the stroke data in predefined memory in S 2023  and returns ACK( 1 ) as response information to the handwriting sender  100  in S 2024 . Subsequently, the server apparatus  500  sends the stroke data to the handwriting receivers  400 - 1  and  400 - 2  in S 2025 . This can be done by simultaneous transmissive communication for example. 
         [0102]    After sending the stroke data to the handwriting receivers  400 - 1  and  400 - 2 , the server apparatus  500  starts a timer in S 2026  and checks whether or not response information for displaying succeeded (ACK) is received from the handwriting receivers  400 - 1  and  400 - 2  before the time-out in S 2027  and S 2028 . 
         [0103]    In case of receiving ACK from the handwriting receivers  400 - 1  and  400 - 2  before the time-out (YES in S 2027 ), the server apparatus  500  resets the timer in S 2029 . Subsequently, the server apparatus sends ACK( 2 ) to the handwriting sender  100  in S 2030 , and the process returns to S 2022 . 
         [0104]    Alternatively, if the timer runs out before ACK is received from the handwriting receivers  400 - 1  and  400 - 2  (YES in S 2028 ), the server apparatus  500  increments the communication failure counter by one in S 2031  and checks whether or not the communication failure counter value exceeds the upper limit for the number of times to try sending in S 2032 . 
         [0105]    If the communication failure counter value does not exceed the upper limit for the number of times to try sending (NO in S 2032 ), the process returns to S 2025 , and the server apparatus  500  resends the stroke data to the handwriting receivers  400 - 1  and  400 - 2 . In this case, if the server apparatus  500  has received ACK from either the handwriting receiver  400 - 1  or  400 - 2 , the server apparatus  500  resends the stroke data to the handwriting receiver from which ACK is not received. If there are multiple handwriting receivers and ACK is not received from more than two handwriting receivers, the stroke data can be resend to all of the handwriting receivers in simultaneous transmissive communication. 
         [0106]    After repeating the process from S 2025  to S 2028 , S 2031 , and S 2032 , in case of receiving ACK from the handwriting receivers  400 - 1  and  400 - 2  before exceeding the upper limit for the number of times to try sending (YES in S 2027 ), the server apparatus  500  resets the timer in S 2029  and returns ACK( 2 ) to the handwriting sender  100  in S 2030 . Subsequently, the process returns to S 2022 . Consequently, it is possible to cope with temporary failures in the network between the server apparatus  500  and the handwriting receivers  400 - 1  and  400 - 2  etc. 
         [0107]    Alternatively, after repeating the process from S 2025  to S 2028 , S 2031 , and S 2032 , in case of exceeding the upper limit for the number of times to try sending (YES in S 2031 ), the server apparatus  500  returns NACK to the handwriting sender  100  in S 2033 , and the process returns to S 2022 . 
         [0108]    Although the server apparatus  500  returns ACK( 2 ) to the handwriting sender in case of receiving ACK from all of the handwriting receivers in the above description, the server apparatus can return ACK( 2 ) to the handwriting sender in case of receiving ACK from fewer than all of the handwriting receivers, e.g., over half of the handwriting receivers. That is, not all the handwriting receivers always return ACK to the server apparatus  500  if there are information sharing apparatuses at multiple sites. In this case, user-friendliness can be improved assuming it is OK to draw strokes in at least the majority of handwriting receivers. 
         [0109]    Next, an operation in the handwriting receivers  400 - 1  and  400 - 2  will be described below. 
         [0110]    Basically, the operation in the handwriting receivers  400 - 1  and  400 - 2  is the same as the case in the first embodiment described above except that the communications partner is the server apparatus  500 . That is, after receiving stroke data (coordinate information) from the server apparatus  500  in S 2041 , the handwriting receivers  400 - 1  and  400 - 2  generate stroke (drawing image) in S 2042  and displays the stroke on the displaying unit  112  in steady state in S 2043 . Subsequently, the handwriting receivers  400 - 1  and  400 - 2  generate response information for displaying succeeded (ACK) in S 2044  and send it to the server apparatus  500  in S 2045 . 
       Third Embodiment 
       [0111]    The overall configuration of this embodiment is the same as the second embodiment. In this embodiment, as in the second embodiment, the information sharing apparatus as the handwriting sender sends stroke data to the server apparatus, and the server apparatus stores the stroke data sent from the information sharing apparatus as the handwriting sender and sends the stroke data to the information sharing apparatus as the handwriting receiver. However, in this embodiment, the server apparatus returns ACK as response information to the information sharing apparatus as the handwriting sender after receiving stroke data from the information sharing apparatus as the handwriting sender without waiting for ACK for displaying succeeded sent from the information sharing apparatus as the handwriting receiver. After receiving ACK from the server apparatus, the information sharing apparatus as the handwriting sender changes the display of the stroke from unsteady state to steady state. This embodiment is effective in case quick operation is desired. 
         [0112]      FIGS. 10A and 10B  are flowcharts illustrating a process in the third embodiment. It should be noted that the overall system configuration is the same as shown in  FIG. 8 .  FIG. 10A  is a flowchart illustrating a process in the information sharing apparatus  100  as the handwriting sender. FIG.  10 B(b) is a flowchart illustrating a process in the server apparatus  500 . FIG.  10 B(c) is a flowchart illustrating a process in the information sharing apparatuses  400 - 1  and  400 - 2  as the handwriting receivers. Hereinafter, the information sharing apparatus  100  is referred to as the handwriting sender, and the information sharing apparatuses  400 - 1  and  400 - 2  are referred to as the handwriting receivers. 
         [0113]    First, an operation in the handwriting sender  100  will be described below. The handwriting sender  100  initializes a communication failure counter to zeros in S 3001 . The communication failure counter counts the number of times that the server apparatus  500  does not receive stroke data and is used to resend the stroke data to the server apparatus  500  in case the count value does not exceed a predefined value (the upper limit for the number of times to try sending). 
         [0114]    After initializing the communication failure counter, the handwriting sender  100  waits for detecting coordinate information in S 3002 . After detecting the coordinate information, the handwriting sender  100  generates stroke (drawing image) in S 3003  and displays the stroke in unsteady state in S 3004 . Also, the handwriting sender  100  sends the stroke data (coordinate information) to the server apparatus  500  in S 3005 . 
         [0115]    After sending the stroke data to the server apparatus  500 , the handwriting sender  100  starts a timer in S 3006  and checks whether or not ACK is received as response information from the server apparatus  500  before the time-out in S 3007  and S 3008 . 
         [0116]    In case of receiving ACK from the server apparatus  500  before the time-out (YES in S 3007 ), the handwriting sender  100  resets the timer in S 3009 . Subsequently, the handwriting sender  100  changes the stroke display from unsteady state to steady state in S 3013 , and the process returns to S 3002 . 
         [0117]    Alternatively, if the timer runs out before ACK is received from the server apparatus  500  (YES in S 3008 ), the handwriting sender  100  increments the communication failure counter by one in S 3010  and checks whether or not the communication failure counter value exceeds the upper limit for the number of times to try sending in S 3011 . 
         [0118]    If the communication failure counter value does not exceed the upper limit for the number of times to try sending (NO in S 3011 ), the process returns to S 3005 , and the stroke data is resent to the server apparatus  500 . 
         [0119]    After repeating the process from S 3005  to S 3008 , S 3010 , and S 3011 , in case of exceeding the upper limit for the number of times to try sending (YES in S 3011 ), the handwriting sender  100  displays “communication failed” in the lower corner etc. of the displaying unit  112  in S 3012  and changes the stroke displayed on the displaying unit  112  from unsteady state to steady state in S 3013 . Subsequently, the process returns to S 3002 . 
         [0120]    Alternatively, after repeating the process from S 3005  to S 3008 , S 3010 , and S 3011 , in case of receiving ACK from the server apparatus  500  before exceeding the upper limit for the number of times to try sending (YES in S 3007 ), the process proceeds to S 3009 . In this case, after resetting the timer, the handwriting sender  100  changes the stroke display from unsteady state to steady state, and the process returns to S 3002  as described above. 
         [0121]    It should be noted that the handwriting sender  100  can keep the displayed stroke in unsteady state after displaying “communication failed” in this embodiment too. 
         [0122]    Next, an operation in the server apparatus  500  will be described below. The server apparatus  500  initializes a communication failure counter to zeros in S 3021 . The communication failure counter in the server apparatus  500  counts the number of times that the handwriting receivers  400 - 1  and  400 - 2  do not receive stroke data and is used to resend the stroke data to the handwriting receivers  400 - 1  and  400 - 2  in case the count value does not exceed a predefined value (the upper limit for the number of times to try sending). 
         [0123]    After initializing the communication failure counter, the server apparatus  500  waits for receiving stroke data (coordinate information) from the handwriting sender  100  in S 3022 . After receiving the stroke data, the server apparatus  500  stores the stroke data in predefined memory in S 3023  and returns ACK as response information to the handwriting sender  100  in S 3024 . Subsequently, the server apparatus  500  sends the stroke data to the handwriting receivers  400 - 1  and  400 - 2  in S 2025 . This can be done by simultaneous transmissive communication for example. 
         [0124]    After sending the stroke data to the handwriting receivers  400 - 1  and  400 - 2 , the server apparatus  500  starts a timer in S 3026  and checks whether or not response information for displaying succeeded (ACK) is received from the handwriting receivers  400 - 1  and  400 - 2  before the time-out in S 3027  and S 3028 . 
         [0125]    In case of receiving ACK from the handwriting receivers  400 - 1  and  400 - 2  before the time-out (YES in S 3027 ), the server apparatus  500  resets the timer in S 3029 , and the process returns to S 3022 . That is, the server apparatus  500  does not send ACK( 2 ) to the handwriting sender  100 . 
         [0126]    Alternatively, if the timer runs out before ACK is received from the handwriting receivers  400 - 1  and  400 - 2  (YES in S 3028 ), the server apparatus  500  increments the communication failure counter by one in S 3030  and checks whether or not the communication failure counter value exceeds the upper limit for the number of times to try sending in S 3031 . 
         [0127]    If the communication failure counter value does not exceed the upper limit for the number of times to try sending (NO in S 3031 ), the process returns to S 3025 , and the server apparatus  500  resends the stroke data to the handwriting receivers  400 - 1  and  400 - 2 . In this case, if the server apparatus  500  has received ACK from either the handwriting receiver  400 - 1  or  400 - 2 , the server apparatus  500  can resend the stroke data either to both of the handwriting receivers or only to the handwriting receiver from which ACK is not received. 
         [0128]    After repeating the process from S 3025  to S 3028 , S 3030 , and S 3031 , in case of receiving ACK from the handwriting receivers  400 - 1  and  400 - 2  before exceeding the upper limit for the number of times to try sending (YES in S 3027 ), the server apparatus  500  resets the timer in S 2029 , and the process returns to S 3022 . 
         [0129]    Alternatively, after repeating the process from S 3025  to S 3028 , S 3030 , and S 3031 , in case of exceeding the upper limit for the number of times to try sending (YES in S 3031 ), the process returns to S 3022 . That is, the server apparatus  500  does not return NACK to the handwriting sender  100 . 
         [0130]    Since the operation in the handwriting receivers  400 - 1  and  400 - 2  are the same as in the second embodiment, those descriptions are omitted. 
         [0131]    Although the handwriting sender cannot check whether or not the handwriting receiver actually displayed the stroke in this embodiment, the quickness of operations can be improved. It should be noted that it is possible to improve the success rate of displaying strokes at the handwriting receiver side by resending stroke data to the handwriting receiver by the server apparatus if the handwriting receiver does not receive the stroke data. 
         [0132]    Numerous additional modifications and variations are possible in light of the above teachings. It is therefore to be understood that, within the scope of the appended claims, the disclosure of this patent specification may be practiced otherwise than as specifically described herein. 
         [0133]    As can be appreciated by those skilled in the computer arts, this invention may be implemented as convenient using a conventional general-purpose digital computer programmed according to the teachings of the present specification. Appropriate software coding can readily be prepared by skilled programmers based on the teachings of the present disclosure, as will be apparent to those skilled in the software arts. The present invention may also be implemented by the preparation of application-specific integrated circuits or by interconnecting an appropriate network of conventional component circuits, as will be readily apparent to those skilled in the relevant art.