Vanilla List Mailing List Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [VANILLA-LIST:3019] technical question



Hi Jay,

I'm familiar with the IP patent process and wish you luck on your motion.

May I ask what your motivation is?  Does your client have a product that
may be infringing on the patent?

I skimmed over the patent summary and claims, and it seems preposterous that
the patent was granted in the first place.  A specific implementations of
their system already exists in Netrek, but the idea itself predates Netrek
by many years.  I do believe that this patent should be overturned because
it impacts just about every messaging system on the Internet.

In the simplest form, the claims describe a mailing list that support digest
messages.  The body of the patent describes real-time examples (e.g. Internet
computer games), but the claims are broader.  Therefore, the mailing list
analogy should help in invalidating the patient, particularly claims #2-6.

In a mailing list, a group consists of list subscribers.  A group message
is an email intended for the list subscribers.  The plurality of host
computers consists of mail reader clients and/or the sendmail servers
accepting messages for list subscribers.  Unicast wide area network is
SMTP over TCP/IP.  Group messaging server is the mailing list manager
and sendmail server that sends out group messages.  An aggregated message
is a digest message consisting of list email collected over a period of
time.

Since you asked for specific relevance to Netrek, I will list and address
the claims from the patent.

Claim #1:

"1. A method for providing group messages to a plurality of host computers
    connected over a unicast wide area communication network, comprising the
    steps of:"

Netrek uses a client-server architecture where multiple clients can connect
to arbitrary servers.  These clients and servers may run on a single host,
but they are typically distributed over a wide area network where each client
and server resides on its own host.  Netrek uses a unicast protocol
(the Netrek client-server packets) over a unicast network protocol (TCP/IP
and UDP/IP) to communicate between each client and each server.

"* providing a group messaging server coupled to said network, said server
   communicating with said plurality of host computers using said unicast
   network and maintaining a list of message groups, each message group
   containing at least one host computer;"

The Netrek server is synonymous to the group messaging server.  It is
"coupled" to said network, and it communicates with each Netrek client
using unicast.  It maintains a list of all connected clients that are
running on the different host computers.

"* sending, by a plurality of host computers belonging to a first message
   group, messages to said server via said unicast network, said messages
   containing a payload portion and a portion for identifying said first
   message group;"

Each Netrek client communicates only with the server.  It sends and receives
messages that are only relevant to that specific client and the server.
If a sent message is intended for a different client, the server routes
that message directly to the recipient client.  Each message contains
the data (payload) and identifier for both the sender and recipient both
implicitly and explicitly.

"* aggregating, by said server in a time interval determined in accordance
   with a predefined criterion, said payload portions of said messages to
   create an aggregated payload;"
"* forming an aggregated message using said aggregated payload; and"

For Netrek, a message is synonymous to a Netrek client/server packet.
A aggregated message is synymous to the TCP or UDP packet that contains
a fraction, one, or multiple Netrek client/server packets.  The Netrek
server queues up multiple client/server packets, groups those packets
together, then sends them out at regular intervals (usually 10 times/second).

"* transmitting, by said server via said unicast network, said aggregated
   message to a recipient host computer belonging to said first message group."
"* transmitting, by said server via said unicast network, said aggregated
   message to a recipient host computer belonging to said first message group."

This is the Netrek client <-> server and client1 -> server -> client2
communication.

Claim #2 

"2. The method of claim 1 wherein said time interval is a fixed period of
    time."

The Netrek server supports variable intervals, but it is usually fixed at 5
or 10 updates per second.

Claim #3

"3. The method of claim 1 wherein said time interval corresponds to a time
    for said server to receive at least one message from each host computer
    belonging to said first message group."

This doesn't happen in Netrek, because the time interval is changeable
but fixed.  The client may change the time interval, however, so perhaps
that fact could be used to refute this claim.

Claim #4

"4. The method of claim 1 further comprising the step of creating, by one of
    said plurality of host computers, said first message group by sending a
    first control message to said server via said unicast network. 

This would be the Netrek connection and login process where the first client
logs in to the Netrek server so that the server can create its initial
message group list.

Claim #5

"5. The method of claim 4 further comprising the step of joining, by some of
    said plurality of host computers, said first message group by sending
    control messages via said unicast network to said server specifying said
    first message group."

This would be the Netrek connection and login process where the additional
clients (after the first) logs in to the Netrek server so that the server
can add the client to its message group list.

Claim #6

"6. The method of claim 1 wherein said network is Internet and said server
    communicates with said plurality of host computers using a session layer
    protocol."

Netrek is played on the Internet, and the session layer protocol can be
interpreted as either the Netrek client/server protocol or a secondary
tunneling protocol (trekhopd, port forwarding, etc).  It's important
to note that the Netrek does not require the Internet...in fact, its
origins date back to the pre-Internet era.

> My basic question is: does Netrek do all of this stuff and how can I prove
> it?  More specifically, how can I prove it did this stuff before 1995?
> (Source code, design documents, user documents, etc.)
> Is there an archive of such things anywhere?

There is a multitude of source code archived at
	ftp://ftp.netrek.org/pub/netrek/

There are plenty of documentation (many of which may not be relevant) that
are linked off of www.netrek.org.

In particular, you should read the History of Netrek, through Jan 1 1994.
	http://www.ecst.csuchico.edu/~netrek/history/History.html

The source and and various documents have references or copyright statements
dating back to the 1980's.  There are complete source packages that date
to the early 90's, probably even before.  The calvin server has timestamps
from July 1993.

If you require further assistence, please don't hesitate to contact us on
this list.

Cheers,
Dave Ahn

-- 
Dave Ahn <ahn@vec.wfubmc.edu>        |  "When you were born, you cried and the
                                     |  world rejoiced.  Try to live your life
Virtual Endoscopy Center             |  so that when you die, you will rejoice
Wake Forest Univ. School of Medicine |  and the world will cry."  -1/2 jj^2