pranesh-software-patents

advertisement
Software Patents
PRELIMINARY FINDINGS OF A TRUDGE
THROUGH THE OFFICIAL JOURNAL OF THE
INDIAN PATENT OFFICE
Methodology
 Patent website
Browsers
 SQL
Security certificates


 Patent Search(es)
Patent Search
 18 month search
Controller’s decisions search


 Patent journals
 Outside resources


Software Patents in India Group discussions
 BigPatent.com website
Bhaven Sampet, Mailman School of Public Health, Columbia University, with funding from
Ford Foundation
Some Statistics
Total granted
~300
Total applied for
895
233
Microsoft
1012
(including “a novel method for chromatographic finger printing and standardization of single medicines
and formulation”)
Points to remember
 Abstracts need to be more descriptive so that they
are challengeable
Subject matter
 Prior art
 Weasel words

 Vigilant civil society organizations reviewing such
patent applications

Persons skilled in the art
Existing system
0003/DEL/2004 - 10/02/2006 - Journal No. 06/2006
MICROSOFT CORPORATION
CONFIGURATION OF USER INTERFACES
Configuration of user interfaces is described. In an
implementation, a method includes receiving a query from a
device. The query is for a user interface (UI) from a client. A
processing of the request determines whether the execution
by the client of the control function is permitted. The
processing is performed at a head end by using client state
data. The hardware and/or software capabilities of the device
to execute the UI are detected. The UI is configured based on
the hardware and/or software capabilities of the device.
 [This seems to allude to something like a conditional
template/stylesheet/theme.]




Existing system
 0270/DEL/2005 - 09/02/2005 - Journal No. 52/2006
 MICROSOFT CORPORATION
 UPDATE DISTRIBUTION SYSTEM ARCHITECTURE AND
METHOD FOR DISTRIBUTING SOFTWARE
 A hierarchical software update distribution system and
method for distributing software updates is presented. The
update distribution system includes a root update service
node and at least one update service node. In an update
distribution system, each update service node, except the root
update service node, has one parent update service node. Each
update service node may function as parent update service
node to child update service nodes.
 [Seems like apt-get / yum, etc.]
Anti-circumvention?
 1043/DELNP/2008 - 04/07/2008 - Journal No. 27/2008
 SECURED DIMENSIONS LTD.
 METHOD FOR PREVENTING SOFTWARE REVERSE
ENGINEERING, UNAUTHORIZED MODIFICATION, AND
RUNTIME DATA INTERCEPTION
 A method for preventing the unauthorized modification of a
software or unauthorized modification of runtime data. According
to this method ‘a converter, which is capable of converting the
software into a generalized machine code is provided’. The
converter is designed such that it cannot be reverse engineered, by
using a conversion process that causes data loss. An interpreter,
which the knowledge of its process method is kept restricted, is also
provided. The interpreter interprets the general machine code into a
specific machine code, while reconstructing the lost data during the
interpretation process.
Purely Algorithmics/Software
0577/DELO/2005 - 16/03/2005 - Journal No. 35/2007
METHOD AND SYSTEM FOR LIMITING SOFTWARE UPDATES
MICROSOFT CORPORATION
A method of detecting pirated software includes receiving a request
for a software update by a client computer and providing to the
client computer a test to be performed. The test is performed on the
client computer against the client software application. The client
computer may be denied a software update as a result of the test
finding an illegitimate copy of the client software. The invention
may be practiced in a network environment where a server transfers
a test program for a client to execute upon request of a software
update. The test performs an integrity cheek and denies the request
for a software update if the client software is found to be
illegitimate.
 [The core of the ‘method’ is the integrity check, which is a)
(algorithmic) cryptographic hashing, b) performed by software.]




Existant
 02287/DELNP/2003 - 20/01/2006 - Journal No. - 3/2006
 CONTENTGUARD HOLDINGS, INC
 METHOD AND APPARATUS FOR SUPPORTING MULTIPLE TRUST
ZONES IN A DIGITAL RIGHTS MANAGEMENT SYSTEM
 A digital rights management method and system for items having usage
rights. A first activation device defines a first trust zone. A first license
device associated with the first trust zone generates an open license having
usage rights associated with a first item. A second activation device defines
a second trust zone and is adapted to issue a software package that enforces
usage rights. A user device associated with the second trust zone is adapted
to receive the software package from the second activation device, to
receive the open license associated with the first item, and to use the first
item in accordance with the open license. In addition, a method is provided
for enforcing a license granting usage rights associated with a protected
item, and for classifying a license, the license being an open license or a
closed license.
Purely Software




0251/DEL/2005 - 29/12/2006 - Journal No. 52/2006
MICROSOFT CORPORATION
SCALABLE PRINT SPOOLER
An exemplary scalable print spooler efficiently prints data on a printer and
is most effective in use with a dedicated print server. One use of the
invention is with a print server that services a large number of client
computers having applications programs having a need to print data. These
could include, but are not limited to, word processing applications
programs. A server computer has software that implements a server print
spooler for co-ordinating the printing of data sent to the print server by the
client computers. A number of printers are coupled to the server computer
for printing under direction of the server print spooler. Client calls to the
print spooler are accomplished by asynchronous procedures that
communicate by means or an remote procedure call channel. A thread pool
at the print server services these calls without unreasonable context
switching between client requests.
 0284/DEL/2005 - 29/12/2006 - Journal No. 52/2006
 MICROSOFT CORPORATION
 TAG-BASED SCHEMA FOR DISTRIBUTING UPDATE METADATA IN AN
UPDATE DISTRIBUTION SYSTEM
 A tag-based structure for communicating software update metadata information to
client computers and to update service nodes is presented. An update metadata file
includes: an identifier tag including a software update identifier that uniquely
identifies the software update; zero or more general properties tags that carry
general property information relating the software update; zero or more localized
properties tags that carry localized property information organized according to
language; zero or more relationship tags that identify dependency relationships the
current software update, as described in the update metadata, has with other
software updates; zero or more applicability rules tags that carry information for
determining the applicability of the software update to a client computer; zero or
more files tags that carry information relating to the software update's payload files;
and handler specific data tags that carry information directed to the software
handler for installing the software update.
 0529/DEL/2005 - 12/01/2007 - Journal No. 02/2007
 MICROSOFT CORPORATION
 FILE LOCKER AND MECHANISMS FOR PROVIDING AND USING SAME
 A file locker manages the storage and use of protected data for software
objects. A protected environment maintains the cryptographic and isolative
infrastructure to support sealing of data items for use by a trusted agent.
The file locker uses the protected environment's sealing functionality to
seal data items for the file locker's exclusive access. The file locker seals, to
itself, files received from software objects, and provides those files upon
request, and upon sufficient proof of the requestor's trustworthiness,
authenticity, and/or identity. The file locker may be used to extend the
protected environment's sealing functionality to legacy applications,
without the legacy applications having to implement agents that can run in
the protected environment and access the sealing functionality directly.




0870/DEL/2005 - 05/01/2007 - Journal No. 01/2007
CISCO TECHNOLOGY, INC.
METHOD AND SYSTEM FOR CODE COVERAGE
A method, a native library and a java Virtual Machine Debugger interface
agent for providing code coverage for programs coded in a computer
language are described. The method involves determining the classes for
which the code coverage is desired. The runtime environment for the
computer language generates software events for several events that take
place in the environment, such as preparing a class for loading and
breakpoints. Handler functions for the events corresponding to events such
as preparing a class for loading and breakpoints are registered with the
runtime environment. The method further involves receiving breakpoints
for one or more executable units in the classes for which the code coverage
is desired. On receiving the breakpoint event, a line hit counter is
incremented, which enables determination of the lines of code which are
exercised and which are not. The native library and Java Virtual Machine
Debugger Interface agent contain instructions that implement the method.




0926/DEL/2005 - 01/12/2006 - Journal No. 48/2006
MICROSOFT CORPORATION
EFFICIENT PATCHING
A facility for augmenting software in a target computer system
is described. The facility receives and augmentation
specification in the target computer system. The
augmentations specification specifies; (a) a function to be
augmented, (b) a parameter of the function to be tested, (c) a
test to apply to the specified parameter, and (d) and
modification to perform to the behaviour of the function if
specified test is not satisfied by the specified parameter. When
the specified function is invoked on the target computer
system, if the specified tested is not satisfied by the specified
parameter, the facility performs the specified modification to
the behaviour of the specified function.
Intuitive
 10063/DELNP/2007 - 20/06/2008 - Journal No. - 25/2008
 AB INITIO SOFTWARE CORPORATION
 MANAGING MEMORY PAGES
 A method, and corresponding software and system, is
described for paging memory used for one or more
sequentially-accessed data structure. The method includes
providing a data structure (200) representing an order in
which memory pages are to be reused; and maintaining the
data structure according to a history of access to a memory
page associated with one of the sequentially-accessed data
structures. A position of the memory page in the order
depends on a transition of sequential access off of the memory
page.
Purely Software
 10085/DELNP/2007 - 20/06/2008 - Journal No. - 25/2008
 NOKIA CORPORATION
 SHOWING TOOLTIPS FOR PAGE SEGMENTS AND
GENERATING CONTENT FOR THE PAGE SEGMENT
 A method, system, device, and software product are presented
for describing to a user a section of a page on a small display,
such as a mobile phone display. A section selection signal
indicates a section of the page, and then a tooltip describes
content of that section of the page. The tooltip is
superimposed on at least part of the page. Then a larger
version of that section of the page can be displayed.
 [Insufficient details.]
Purely Software
 10184/DELNP/2007 - 20/06/2008 - Journal No. 25/2008
 MICROSOFT CORPORATION
 IMMUNIZING HTML BROWSERS AND EXTENSIONS FROM KNOWN
VULNERABILITIES
 An exemplary computer-implementable method (300) transforms or
"immunizes" information to reduce or eliminate risk of exploitation of a
known vulnerability of a software service and includes receiving
information (304) in response to a request, transforming the information
(308) to produce transformed information and sending the transformed
information (312). An exemplary firewall server (112) includes server
software (144, 148) that allows the firewall server (112) to receive
information from a resource (104, 108) via a network and to send
information to a client computer (114) and an immunization component
(264, 268) for immunizing the information to prevent exploitation of a
vulnerability of browser software (154) on the client computer (114).
Various other exemplary methods, devices, systems, etc., are also disclosed.
Standard
1036/DEL/2005 - 31/08/2007 - Journal No. 35/2007
MICROSOFT CORPORATION
GENERIC USB DRIVERS
Techniques are disclosed to provide generic USB drivers. More
particularly, a generic USB device driver architecture is described
which enables development through a user-mode USB library that
accesses a generic kernel-mode driver. In a described
implementation, a method includes loading a kernel-mode generic
device driver in response to a plug-in event of a device. A user
software component accesses the device by utilizing routing
provided by the generic user- mode library (e.g., a dynamic link
library (DLL) that communicates with the generic device driver).
 [This shows that it is very difficult to interpret “software per se”
narrowly, as all software is meant to interact with hardware.]




Misleading
 1043/DELNP/2008 - 04/07/2008 - Journal No. 27/2008
 SECURED DIMENSIONS LTD.
 METHOD FOR PREVENTING SOFTWARE REVERSE ENGINEERING,
UNAUTHORIZED MODIFICATION, AND RUNTIME DATA
INTERCEPTION
 A method for preventing the unauthorized modification of a software or
unauthorized modification of runtime data. According to this method a,
converter, which is capable of converting the software into a generalized
machine code is provided. The converter is designed such that it cannot be
reverse engineered, by using a conversion process that causes data loss. An
interpreter, which the knowledge of its process method is kept restricted, is
also provided. The interpreter interprets the general machine code into a
specific machine code, while reconstructing the lost data during the
interpretation process.
 [Possibly refers to cryptography, which isn’t patentable either, under
section 3(k), as it would be an algorithm.]
Purely software
0003/DEL/2004 - 10/02/2006 - Journal No. 06/2006
MICROSOFT CORPORATION
CONFIGURATION OF USER INTERFACES
Configuration of user interfaces is described. In an
implementation, a method includes receiving a query from a
device. The query is for a user interface (UI) from a client. A
processing of the request determines whether the execution
by the client of the control function is permitted. The
processing is performed at a head end by using client state
data. The hardware and/or software capabilities of the device
to execute the UI are detected. The UI is configured based on
the hardware and/or software capabilities of the device.
 [Not tied down to particular hardware, and seems to be aimed
at competitor control, rather than innovation.]




Download