[DE Deutsch] [translatable text] [howto help] [printable version] [Addenda]
Google
W3CRDFSOAPXPointerCIFSAltavista

Microsoft bars GNU software from interoperating with CIFS
Commemorate Banana Union Day

During the 1st week of April 2002, Microsoft published a license for its new specification CIFS which it is trying to establish as a de facto communication standard. This license says that free software under GNU GPL, LGPL and similar licenses may not use CIFS. It bases this ban on two broad and trivial US patents with priority dates of 1989 and 1993. Preliminary search results suggst that these patents to not have EP (European Patent) counterparts. But there is nevertheless an EP patent which could possibly be used by MS for the same purpose. Critical network infrastructure such as Samba as well as new projects such as Mono seem to be affected.
excerpted from (MS CIFS License Agreement 2002/03/28):
1.4. "IPR Impairing License" shall mean the GNU General Public License, the GNU Lesser/Library General Public License, and any license that requires in any instance that other software distributed with software subject to such license (a) be disclosed and distributed in source code form; (b) be licensed for purposes of making derivative works; or (c) be redistributable at no charge.

1.2 "Company Implementation" shall mean only those portions of the software developed by Company that implement CIFS for use on Non-Microsoft Platforms.

1.6 "Necessary Claims" shall mean those claims of a patent or patent application, including without limitation, United States Patents Nos. 5,265,261 and 5,437,013, which (a) are owned, controlled or sublicenseable by Microsoft without payment of a fee to an unaffiliated third party; and (b) are necessarily infringed by implementing the CIFS communication protocol as set forth in the Technical Reference, wherein a claim is necessarily infringed only when there are no technically reasonable alternatives to such infringement.

3.3 IPR Impairing License Restrictions. For reasons, including without limitation, because (i) Company does not have the right to sublicense its rights to the Necessary Claims and (ii) Company's license rights hereunder to Microsoft's intellectual property are limited in scope, Company shall not distribute any Company Implementation in any manner that would subject such Company Implementation to the terms of an IPR Impairing License.

US 5265261:
  1. A computer implemented method in a computer system for transmitting data from a server computer to a consumer computer connected by a virtual circuit, the consumer computer having an application program requesting a read from the server computer, having a redirector, and having a transport, the application program having access to a data buffer allocated by the application program, comprising the steps of: allocating and initializing a receive network control block for directing the transport to store the next data it receives directly in the data buffer; transmitting from the redirector to the transport a read request to read data from the server and said receive network control block for directing the transport to store the read data directly in the data buffer, the read request indicating that the read data should be transmitted without a header; in response to the step of transmitting, sending the read request from the transport to the server computer; examining and recognizing that the read request indicates that the read data should be transmitted without a header; storing the read data in a data block without the header; transferring the data block from the server computer to the transport in response to the step of sending the read request; and in response to the read request and the receive network control block and in response to the step of transferring, storing the data block directly from the transport into the data buffer.
  2. The method of claim 1 that includes the step of ensuring that no requests to transmit data on the virtual circuit are pending before the read request is transmitted.
  3. The method of claim 1, including the steps of: locking the data buffer before transmitting the read request to ensure that the data buffer remains accessible until the read request is satisfied; and unlocking the data buffer after the read data has been stored in the data buffer.
  4. ...
US 5437013:
  1. A computer implemented method in a computer system for transferring data on a network from a first computer to a second computer connected by a virtual circuit, the second computer having an application program, a transport implementing network communications and a redirector implementing a system message block protocol, the application program having access to a data buffer, the method comprising the steps of: under control of the redirector, initializing a network control block; and directing the transport of the second computer to store the data that it receives next directly in the data buffer pointed to by the network control block instead of a system message block buffer in the redirector; under control of a transport of the first computer, transferring the data without a system message block header containing information about the data from the first computer over the virtual circuit to the transport of the second computer; and under control of the transport of the second computer, and upon receiving the transferred data, storing the received data directly into the data buffer of the application program.
  2. The method of claim 1, including the step of under control of the redirector, ensuring that no requests to transfer data from the first computer to the second computer are pending so that data without a system message block header can be transferred from the first computer to the second computer.
  3. ...
EP 0438571:
  1. A method of locally catching data of a file at a remote terminal, the file being stored at the file server, comprising the steps of:
    when the remote terminal initially requests to open the file, requesting that the file server open the file; and retrieving data from the file server to the remote terminal;
    updating the retrieved data at the remote terminal without updating data of the file at the file server;
    when the remote terminal request to close the opened file and when no other remote terminal has requested the file server to open the file, maintaining the retrieved data of the file at the remote terminal without requesting the file server to close the file and without sending the updated file to the server;
    when the remote terminal requests to re-open the closed file and when no other remote terminal has requested the file server to open the file since the remote terminal requested to close the opened file, using the maintained data without requesting the file server to open the file and without retrieving the data of the file from the file server whereby so long as no other remote terminal has requested the file server to open the file all requests by the remote terminal to close and then open the file after the initial request to the file server to open the file are handled locally at the remote terminal even though the retrieved data may have been updated at the remote terminal.
  2. The method of claim 1 wherein the file is a batch file with multiple commands and the remote terminal locally processes the commands so long as no other remote terminal had requests to open the file.
  3. The method of claim 2 wherein before locally processing a command, the remote terminal requests to close the opened file and after processing the command, the remote terminal requests to re-open the file.
?!?Research the Patent Situation in Europe!
It seems that the same stuff might be patented at the EPO under somewhat different headings
?!?Find out more about CIFS etc
In what way is it a product of "extending and embracing" previous standards?

How important is CIFS? What is its relation to .NET and other Microsoft concepts?

What parts of it are covered by patents?

Where in CIFS is the core of the patented teaching found? i.e. which parts would still be covered if after an invalidity litigation the claim scope was narrowed down and only a few subclaims were left?

?!?What would a patent-unencumbered variant or alternative to CIFS have to look like? OpenAFS? CODA? Modified CIFS?
It is very likely that most of the claims of the MS patents would not stand an invalidity litigation test and that what is left over consists of methods which would not need to be used, if it were not for that Microsoft incorporated them into its CIFS specification. An effort similar to PNG vs GIF may need to be undertaken and effectively propagated. MSOS (Windows) clients for this CIFS alternative also need to be written. Companies like IBM should play a leading role in this, because they have the strength needed to litigate and to propagate standards in the commercial environment.

Study the feasibility of this kind of project!

?!?How does competition law come in here?
Patent lawyers will love to demonstrate that this case can be solved by applying competition law. If they do puruse that course, see to it that we get some really useful legal precedents that let interoperability considerations override patents, and not just an adhoc solution.
[ WWW standardisation mined by patents | RDF: web standard threatened by basic patent | Patent on searchword-based hyperlinking encumbers W3C XPointer standard | Microsoft bars GNU software from interoperating with CIFS | No more WWW indexing without permission from CMGI? ]
Valid XHTML 1.0!
http://swpat.ffii.de/pikta/xrani/cifs/index.en.html
© 2005/01/06 (2004/08/24) Workgroup
english version 2004/08/16 by Hartmut PILCH