MS Ink Server

What is this?

This is a server that runs on an installed copy of MS Windows XP Tablet Edition or Vista and provides handwriting recognition services over a network connection.

Please note: I do not use Vista.  Some users have reported this works, but you must verify that your own version of Vista provides handwriting recognition support.

Windows includes a copy of the Internet Information Server web host software, although it is not installed by default. After installing IIS (other web servers may be used), this software can be installed to run on the server and provide the recognition service. Only XP Tablet Edition and Vista have the recognizer files needed for handwriting recognition (this software will do nothing on other editions of Windows).

The service provides an XML-RPC connection over the network. Clients may connect directly or use the companion MS Ink Client shared library on GNU/Linux or Unix systems to provide a system-level handwriting recogntion service.

How do I install it?

The zip archive containing the files includes an .rtf file with instructions and some relevant screen captures. Here are the text notes without the screen captures:

All of these steps are carried out on MS Windows XP Tablet Edition.

1) Install the Tablet PC SDK 1.5.

2) Install Internet Information Services (IIS).

Control Panel - Add or Remove Programs - Add/Remove Windows Components
Check Internet Information Services (IIS) - Next. Complete the install.
A successful install will create this folder: c:\Inetpub\wwwroot

3) Install .NET 2 framework after installing IIS.

4) In the created c:\Inetpub\wwwroot\ folder, create a folder to hold the MS Ink Service.

e.g.: c:\Inetpub\wwwroot\MSInkServer

5) Expand the MSInkService.zip archive into the folder created to hold the MS Ink Service. The files will look like this:

+---MSInkServer
|    web.config
|
\---bin

CookComputing.XmlRpcV2.dll
CookComputing.XMLRpcV2.license.txt
MSInkService.dll
MSInkService.license.txt
MSInkService.pdb

6) Create the IIS server

Open Control Panel - Administrative Tools - Internet Information Services

Expand the tree in the left pane. You will see the name of your computer as '<SomeName> (local computer)'

Within that is a folder named 'Web Sites', and within that a folder named 'Default Web Site'

Highlight 'Default Web Site', and either from the 'Action' menu or the context menu, select New - Virtual Directory

In the Virtual Directory Creation Wizard, provide a name for the Alias - this name will form part of the URL - say 'TabletPC' or 'TabletXP'.

Press the Next button

Use the Browse button to navigate to the folder you created in Step 4 above and select that.

Press the Next button

For permissions, the defaults of 'Read' and 'Run scripts' should be adequate.

Press Next and Finish.

7) Open a path through the Windows Firewall

Open the Windows Security Center

At the bottom of the window, select the link to 'Manage security settings' for 'Windows Firewall'.

In the 'Windows Firewall' dialog, select the tab for 'Exceptions'.

Add a port. Open port 80 (http protocol).

I also change the scope to allow this on 'my network (subnet) only', so it only is available to my home network.

Press Ok several times to complete the changes.

Substituting any name changes you made, navigate to this URL:

http://localhost/TabletPC/MSInkService.rem

You should see a page listing the services.

Substitute the network name or IP address of the machine in place of 'localhost' to access the service from another machine. For example, I access the service on my network at this URL:

http://192.168.41.128/TabletPC/MSInkService.rem

Some technical notes

The format for the input handwriting strokes looks like this:

Mx,yLx,yLx,y...Mx,yLx,y...

...where x & y are screen coordinates. The actual size and scale only matters in that there be enough detail to distinguish the shape - mouse coordinate level is adequate, and the high resolution from a Wacom tablet will work as well.

'M' means 'Move to' and signifies a pen-down action. This begins a stroke.

'L' means 'Line to' and signifies a continuation of a stroke.

The SHIP project (also hosted on SourceForge) has Java code to use this, and the companion MS Ink Client shared library provided by this project has C code using this.