[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [interesting-people Home]
Subject: IBM awarded patent on finite state machines! [ You got to be kidding!!!! -- rest of long message ava
Date: Wed, 29 Jun 1994 13:29:57 -0400
From: Wendell Craig Baker <wbaker@splat.baker.com>
Subject: The Finite State Machine has been patented
Every week, Gregory Aharonian (patents@world.std.com) mails out a list
of newly-minted patents. Every week I gaze over it and there is
always some few distinguished ones that just stand out and beg for a
wider audience. This is but one this week. And as with football, you
make the call.
Patent 05317757, on its face, covers any use of a finite state
machine. Although the word ``software'' is not actually used in the
patent, the words ``code'' and ``process'' and the general tone of the
patent imply that a software implementation is what is intended.
Claim number one focuses on any use of a finite state machine
whatsoever, making no mention of the intended use of such a structure.
Claim 2 focuses on finite state machines with two actions in the
next-state computation. Later claims add a third action.
The early part of the patent reads suspiciously like someone was
trying to patent the finite state machines used in a network protocol
stack. As examples one can think of of TCP/IP, DECnet or SNA.
Interestingly it is just this year that the term ``protocol stack''
has gained currency, especially in the PC community where many PC
owners are attempting to get access to the Internet which is
TCP/IP-based. ``Which protocol stack are you using? Is it a an open
or closed one (general or proprietary)?'' was heard much on the
exhibits floor of Internet World. If one can buy them at the corner
store with a range of choices, then finite state machines in software
and networking code in particular are definitely not a new invention.
Later on in the patent text we find explicit mention of IBM's Advanced
Peer-to-peer Network (APPN) protocol. This is a general patent on
finite state machines originating from the software design of IBM's
APPN networking product.
The intended goals of the patent, or ``objects'' as they are called in
patentese, are quite general. The ``objects'' of the patent are not
the ``claims'' but rather a listing of but why the patent is a useful
or non-trivial invention. They are a sort of description of how it is
intended to be used. They are as follows:
1. to efficiently perform finite state machine processing in a
system that is servicing multiple types of resources.
2. to perform finite state machine processing in a system having
multiple resources running under different concurrent processes.
3. to perform finite state machine processing in a system,
implemented in a minimum code space.
4. to perform finite state machine processing in a system, that
provides for ease of maintenance
5. to provide finite state processing in a system, so that the
implementations are tailored for each resource.
6. to perform finite state machine processing in a system, while
maintaining modularity of the design.
So, if you have a system that needs functionalities one through six,
then you had better examine this patent with special attention to
claim 1.
Number: 05317757
Title: System and method for finite state machine processing
using action vectors
Issue Date: May 31, 1994
Filing Date: Feb 6, 1992
Inventors: John A. Medicke; Paul Posharow;
Assignee: International Business Machines Corporation
Here's the abstract so you won't have to dig through the whole thing.
Abstract
A common set of building block action modules perform specific
tasks in the finite state machine and are strongly modular in
structure. The set of building block action modules can be made up
of modules for tasks generic to resource type and modules that are
resource type independent. A finite state machine is created for
each resource type to govern the steps of activation and
deactivation of the resource. Each finite state machine, uniquely
defines the new state and action processing for each resource
type. To tie the building block action modules to each finite
state machine, action vectors are created for each resource type.
The action vector correlates a particular action selection by the
finite state machine to the dispatching of one or more building
block action modules. An action vector can contain a plurality of
elements. Each of these elements identifies an action module to
which control is passed and a function request pointer. The
function pointer identifies the specific function to be performed
by the designated action module. The building block action modules
are invoked in the order of occurrence of the elements in the
action vector.
I wonder what this means for TCP/IP. Hey, does your stack violate
this patent?
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [interesting-people Home]
Powered by eList eXpress LLC