Title of Invention: Process and apparatus for automatically monitoring the hardware resources of a computer
Abstract: 
A process executed into a computer for automatically monitoring the hardware resources existing in said computer (1), comprising the steps of initiating an analysis step of the software configuration existing in the machine. The monitoring agent then causes the connection to a conformity server located on an Intranet or Internet network, and elaborates a request for the purpose of launching an analysis process of the hardware configuration for checking its adequacy to the software package. In one embodiment, the evaluation of the ideal hardware configuration is performed in the conformity server which simultaneously receive, in addition to said software package representation, data representative of the hardware configuration of the machine. From that information, the conformity server derives an ideal hardware configuration for the purpose of comparing it to the actual hardware configuration. The result of the comparison is transmitted back to the monitoring agent which can then start a connection with a Internet server for the purpose of initiating a computer aided business transaction. Alternatively, the evaluation of the ideal hardware configuration is performed within the monitoring agent in the local computer. 

Summary of Invention: 

TECHNICAL FIELD OF THE INVENTION 
&lsqb;0001&rsqb; The invention relates to computer systems, and more particularly to a process for automatically monitoring the hardware resources of a computer and for supervising the adequate configuration of a computer to the particular needs of a user. 


BACKGROUND ART 
&lsqb;0002&rsqb; The continuous progress of the Information Handling System (I.H.S.) and communication technology have generalised the use of computers in most areas of human activity. With a single personal computer a particular user may get access to a wide range of applications and solutions, including the access to remote information and services via the Internet Network. 
&lsqb;0003&rsqb; A personal computer is likely to support a wide range of applications, and serve for a wide number of different uses. 
&lsqb;0004&rsqb; Generally speaking, a computer which leaves the manufacturing line is configured in a limited fashion, including memory and data which are fitted for basic use. After the first installation, the user may wish to add new software and applications to satisfy his or her particular needs and requirements. The installation of additional software packages in the machine often increases the need for additional processing resources. New versions of originally installed software packages also typically require higher amount of processing resources. 
&lsqb;0005&rsqb; The constant evolution of the software configuration tends to change the user's perception and appreciation of his machine. The latter becomes rapidly convinced of the limitations of the machine, and that his investment has become obsolete. 
&lsqb;0006&rsqb; Some customers are well versed in the practice of computers and are capable of delaying the natural obsolescence of their machines. Those customers maintain their investment by upgrading their machines with additional elements and internal parts, such as the video card, the hard disk drive, the amount of RAM memory . . . To achieve this, they can take advantage of the substantial information available from the Internet Network, and which may help them to find the appropriate manufacturers and new product parts for their machines. Some kind of so-called intelligent agents are useful for that purpose since they permit automation, to some extent, of the transactions which the Internet network may permit. An example of an agent which facilitates such transactions can be found in U.S. Pat. No. 5,877,759 assigned to Netscape Communications Corp. and entitled Interface for is user/agent interaction. There is disclosed an user interface providing assistance to the client and which is centred on autonomous processing of whole tasks rather than sequences of commands, and the detection of contexts requiring the launch of a process. WO 98/43146 application assigned to IBM Corp., and entitled Intelligent agent with negotiation capability and method of negotiation therewith is another example of an improvement brought to a so-called intelligent agent. 
&lsqb;0007&rsqb; European Patent Application number 00410004.6 (Case HP 5099036) entitled “Process and apparatus for allowing a transaction between a user and a remote server”, filed on Jan. 21, 2000 not published at the date of priority of the present application and assigned to the Assignee of the present application, is prior art under Article 53(4) of the European Patent Convention. It discloses an agent that facilitates, upon request from the user, the upgrade of a given machine by initiating an automatic transaction with an external server, such as an accessory server. The agent particularly automates the extraction of technical information which is essential for the preparation of a well tailored offer to the user, and which is certainly not easy to gather, such as the type of the mother card, the disk drive characteristics etc . . . , and the transmission of such information to the accessory server for the purpose of preparing and completing an offer for transaction. 
&lsqb;0008&rsqb; Although the techniques and tools which are evoked above provide a substantial help to the users who are concerned with the problem of maintaining and upgrading their computers when needed, it is clear, however, that the monitoring process of the computer is still manual. Most customers are simply not aware of the concrete way of monitoring their machines, which technical characteristics need to be carefully examined to ensure that the machine is properly packed with the appropriate hardware resources, and how to upgrade when such an upgrade is necessary. They only reach the conclusion that their machine is becoming slow, and that their investment is becoming obsolete. 
&lsqb;0009&rsqb; Computer manufacturers are certainly concerned about the way their computers are appreciated by their clients, and about how the image of their products are received in the field. In addition, computer manufacturers wish to be involved in the sales of upgrade material, as this profitable business typically goes to retailers. 
&lsqb;0010&rsqb; In order to preserve the customer satisfaction and perception of the machines which they put to the market, computer manufacturers may wish to automate in a substantial extent the monitoring of the quality of the service offered to their customers after their machine have left the manufacturing line. 
&lsqb;0011&rsqb; It is a desire to provide an automatic mechanism that allows the monitoring of a computer, while minimising the amount of information exchanged on the network. 


SUMMARY OF THE INVENTION 
&lsqb;0012&rsqb; It is an object of the present invention to design a new process for continuously monitoring the configuration of the hardware resources of a computer and for determining whether a given configuration fits the particular needs of a customer and fully match the software package configuration installed in that machine. 
&lsqb;0013&rsqb; It is another object of the present to provide an automatic transaction process for the purpose of ensuring an appropriate upgrade operation of a computer, when the latter is deemed to be necessary. 
&lsqb;0014&rsqb; This object is solved by the present invention which is based on a monitoring agent which firstly initiates an analysing process of the software configuration which exists in the machine for the purpose of elaborating a direct representation of the software package which is installed in the computer. The monitoring agent then causes the connection to a conformity server located on an Intranet or Internet network, and elaborates a request for the purpose of launching an analysis process of the hardware configuration for checking its adequacy to the software package. 
&lsqb;0015&rsqb; In one embodiment, the evaluation of the ideal hardware configuration is performed in the conformity server which simultaneously receive, in addition to said software package representation, data representative of the hardware configuration of the machine. From that information, the conformity server derives an ideal hardware configuration for the purpose of comparing it to the actual hardware configuration. The result of the comparison is transmitted back to the monitoring agent which can then start a connection with a Internet server for the purpose of initiating a computer aided business transaction. 
&lsqb;0016&rsqb; In a second embodiment, the evaluation of the ideal hardware configuration is performed within the monitoring agent in the local computer. For that purpose, the monitoring agent receives, in response to said request, information representative of typical hardware configurations corresponding to different software package installations. The monitoring agent then derives from that data a description of an ideal hardware configuration which could properly handle the determined software packages configuration which is desired by the user. The monitoring agent then initiates a comprehensive analysis of the actual hardware resources that are available in the user's machine, for the purpose of elaborating a precise description of the actual hardware configuration of the user's machine. The real hardware configuration is compared to the ideal configuration which was determined by means of the conformity data received from the external conformity server, and the agent uses the result of the comparison for automatically informing the user of the conformity of the machine to the software configuration which the user wish to use in that machine. 
&lsqb;0017&rsqb; In the second embodiment, the substantial part of the information representative of the software and hardware configuration still remains within the local computer, thus substantially increasing the security. 
&lsqb;0018&rsqb; Preferably, the monitoring agent derives from the result of the comparison a request that may be used to initiate a connection to an external server and for entering into a transaction for upgrading the computer with additional parts or elements. 
&lsqb;0019&rsqb; Also, the information received from the conformity server is formatted in the XML structure which is defined by the World Wide Web Consortium (W3C) and which is associated with an appropriate Document Type Definition (DTD) file. 
&lsqb;0020&rsqb; In one embodiment, the analysis of the software package that is installed is based on the analysis of the internal registers which are handled by the operating system, and particularly the registry in the case of the Microsoft Windows™ operating system. The analysis may also be completed by an exhaustive checking of the different types of files loaded in the machine. 
&lsqb;0021&rsqb; Preferably, the local conformity agent handles the HTTP standard protocol and the aggregate request is a POST of the appropriate data following the well-known servlet mechanism. HTTP is attractive as it is well known by firewalls and other internet nodes, and thus can pass where other protocols may be blocked. The use of the HTTPS &lsqb;RFC 2660&rsqb; protocol can be alternatively used for increasing the security of the information being exchanged. 
&lsqb;0022&rsqb; In one embodiment, the local conformity agent includes means for collecting internal parameters that are extracted from the basic information handled by the System Management Basic Input Output System (SMBIOS). This can be directly done by accessing the tables constructed in RAM by the boot code or by means of an executable file accessing the Distributed Management Interface (DMI) or Windows Management Instrumentation (WMI). By constructing a machine profile via these resources, traditionally used for corporate asset management, the local conformity agent 11 permits a comprehensive description of the hardware processing resources located into the machine, e.g. the type of the memory, the memory speed characteristics, the model of PC, and so on. 
&lsqb;0023&rsqb; In one embodiment, the local monitoring agent is automatically launched after the installation of software in order to check the conformity of the current hardware configuration with the newly evolved software configuration which the user has installed in his computer. 
&lsqb;0024&rsqb; Preferably, the accessory server's response is formatted in accordance with the Hypertext Markup Language (HTML) standard, and the local conformity agent directly pushes the response received into a web browser for the purpose of allowing the user to complete the transaction. This arrangement permits the agent to automatically check the conformity of the user's machine and execute the first steps of the negotiation depending on the concrete hardware configuration without involving the user. The latter however nevertheless gets control of the negotiation at the final stage when the local conformity communication agent pushes the last proposal into the web browser. The user keeps the control of the last but essential step of the transaction while all the preceding ones which require the gathering of a great number of pieces of information, can be automatically handled by the local agent. 
&lsqb;0025&rsqb; The close interaction between the web browser and the local agent permits to reduce the size and complexity of the latter, thus facilitating its download over the internet. 


Detailed Description: 

DESCRIPTION OF THE PREFERRED EMBODIMENTS OF THE INVENTION 
&lsqb;0031&rsqb; As will be shown below, the monitoring process which is executed for checking the conformity of the computer with the user's actual needs is handled by means of a local so-called monitoring agent which may be embodied under the form of Java code for instance. In view of the small size of the latter, it is even possible to contemplate the downloading of the local agent via the internet. However, it is clear that the preferred embodiment is where the code has been loaded into the user's computer during the manufacturing process. The monitoring agent is also fitted with means for getting a connection to service providers on the Internet network, and particularly to one conformity server with a database having information therein loaded which is representative of typical configurations of machines fitted for some different software configurations. It will be shown, with that example, how easy the monitoring of the actual configuration of the user's computer can be automatically achieved, for the purpose of issuing a concrete and tailored information to the user, even if the latter is not well versed in computer technology. 
&lsqb;0032&rsqb; As shown in FIG. 1, a user's computer 1 is connected to a communication network 2, such as an Internet or Intranet network for instance. In this way, the user's computer can access a conformity server 3 including a database loaded with data for the purpose of controlling the monitoring process of the hardware resources of the computer. While the figure shows a server 3 which is distinct from the accessory server 4, it is clear that, in another embodiment, the two servers could be grouped in one single common server. Server 4 is prepared to accept and process purchasing commands for accessories and computer parts. 
&lsqb;0033&rsqb; The user's computer 1—or client—includes a local monitoring agent 11 used for executing a monitoring process and for polling the database loaded into conformity server 3. In the preferred embodiment, monitoring agent 11 can interact with a web browser 15. Web browser 15 is a conventional browser such as, for instance, Internet Explorer 4 or 5 (manufactured by Microsoft Corp.) or Netscape Explorer (manufactured by Netscape Communications Corp. An internal system service 12 is used for automatically gathering technical parameters regarding the user's PC, and for storing them into a profile file 14 as will be described hereinafter. 
&lsqb;0034&rsqb; With respect to FIG. 2 there is shown a first embodiment of a process for monitoring the user's computer and for automatically constructing, when appropriate, an information displayed to the user for informing the latter that an upgrade operation of his computer is appropriate or even necessary. 
&lsqb;0035&rsqb; The monitoring process is executed on user's request, that occurs for instance upon actuation of one predetermined key, or when the user clicks on an icon. In the preferred embodiment of the invention, the monitoring process is executed at regular intervals, and particularly after the installation process of a new software in the machine. 
&lsqb;0036&rsqb; The first embodiment starts with a step 21 where the software packages installed in the machine are analysed. Different mechanisms may be used for that purpose. Preferably, the monitoring agent examines the contents of the internal registers which are handled by the operating system, for instance the registry in the case of the Microsoft Windows™ operating system. This leads to a first description of the software package existing into the machine. That description may be enhanced by means of an additional analysis of the file types existing in the particular machine being considered, and the mapping of the latter to a list of software packages which are likely to be installed. 
&lsqb;0037&rsqb; When step 21 completes, the monitoring agent 11 issue a clear representation—under the form of a simple list, or a “S vector” for instance—of the software packages which are actually installed into the machine. 
&lsqb;0038&rsqb; In addition, hardware data is extracted from the machine in a step 22. In one particular embodiment of the invention, System service 12 maintains a profile on the machine, constructed using a piece of software—a so called sysinfo.exe executable file—which is launched for accessing internal technical parameters which are loaded into the BIOS layer. The sysinfo.exe file will normally be installed into the user's computer at the same time as the monitoring agent, and will be executing when that agent starts, e.g. when the machine boots. In the case of a monitoring agent that is downloaded from the Internet network, for instance under the form of a Java applet, the execution of the latter will first result in the installation of the sysinfo.exe application for the purpose of gathering the internal parameter of the user's computer. As known by the skilled man, the use of Java applets in this manner requires them to be signed, and for the user to explicitly give permission for the applet to go outside the “sandbox”. Because of this, an applet approach, while possible, is not the preferred implementation. 
&lsqb;0039&rsqb; Once installed, the sysinfo.exe executable file extracts system information directly from the SMBIOS tables, or interrogates the Distributed Management Interface (DMI, or Windows Management Instrumentation (WMI) as known from Microsoft. As known by the skilled man, the DMI interface is an Application Programming Interface (API) that consists of a set of routines that are called for accessing the information stored within the BIOS layer. Basic information relating to the DMI programming interface can be found at the address http://www.dmtf.org/spec/html. 
&lsqb;0040&rsqb; By using the DMI or WMI interfaces, or by accessing directly the SMBIOS level, the sysinfo.exe executable file accesses the different tables contained in the System Management BIOS (SMBIOS) for the purpose of reporting comprehensive information regarding the user's preferred software configuration, and required for completing a request for transaction. Such information includes the type of processor, the type of chipset, the number of hard disk drives, the particular graphic card being used, the serial number of the display, the reference of the operating system and so on 
&lsqb;0041&rsqb; In step 23, local agent 11 then prepares a request for a transaction, which is then transmitted to monitoring server 3. The request includes the “S Vector” that contains the details of the PC software configuration, as well as the details of the PC hardware. 
&lsqb;0042&rsqb; The conformity server 3 then enters into an exhaustive analysis of both the “S” vector representative of the software package and the hardware actual configuration of the machine for the purpose of checking the adequacy of the hardware configuration with the software package. Preferably, from the information contained within the “S” vector and the details of the hardware configuration, the conformity server evaluates an ideal hardware configuration of the client machine, in terms of CPU speed, memory available, harddisk space etc . . . . 
&lsqb;0043&rsqb; The conformity server 3 then compares, in a step 25, the real hardware representation with the ideal hardware representation that was calculated before for the purpose of determining any lack of hardware features or capacity in the actual machine configuration. 
&lsqb;0044&rsqb; If the comparison test of step 25 shows that the actual hardware resources are superior than the ideal description which was elaborated in step 23, then a corresponding information is transmitted back to the conformity agent and the monitoring process completes and ends in a step 28. 
&lsqb;0045&rsqb; On the contrary, if the comparison test of step 25 leads to reveal a lack in the description of the hardware resources of the actual user's configuration, then the process proceeds to step 26 where conformity server 3 transmits an information to conformity agent 11 for informing the latter of the corresponding lack of hardware resources. The latter may then prepare a request to a separate accessory server. It should be noticed that, preferably, the information which is exchanged between the conformity agent and the accessory server may advantageously conform to the Hypertext Transfer Protocol (HTTP). In the preferred embodiment, the local agent issues a request for transaction which is embedded into a HTTP GET request which is recognised at every level, and particularly by every Proxy. The particular format of the HTTP GET request is defined in the well-known rules laid down in the Request For Comments (RFC) 609-500-8875, which are available at the following address http://www.w3.org/protocols. Since those rules are well known to the skilled man, they will not be elaborated further on. Use of the secure version of HTTP, HTTPS (RFC 2660) is an extension, which enables the protection of the users privacy by encrypting the profile information in transit. 
&lsqb;0046&rsqb; In one embodiment, the HTTP GET request comprises a query string which is introduced by a question mark, and which details the precise description of the actual hardware resources of the user's computer, and well as the ideal configuration which were elaborate by agent 11. Considering the following example below, it is shown that query string is sent to accompany the request for purchasing memory, by means of the following HTTP GET request:  

1












GET


accservice.hp.com/conformityneeds&quest;memory&processor&equals;Prototype&plus;PII&memory&equals;128MB&


graphics&equals;Cirrus&plus;Logic&plus;


5465&disk&equals;C%3D2GB%2CE%3D2GB%2CF%3D2GB&cdrom&equals;CDROM32x&sound&equals;Sound


Blaster&plus;Compatibles&keyboard&equals;PC%2FAT&plus;Enhanced&plus;Keyboard&plus;%28101%2F102-


Key%29&mouse&equals;Microsoft&plus;PS%2F2&plus;Port&plus;Mouse&os&equals;NT&plus;4.0&serial&equals;012345678


HTTP/1.0


User-Agent: Java 1.2.2


Host: glubs67.grenoble.hp.com:8093


Accept: text/html, image/gif, image/jpeg, *; q&equals;.2, */*; q&equals;.2


Request for memory








&lsqb;0047&rsqb; As it appears above, the HTTP GET request's query string details information taken from the PC profile, constructed automatically using the sysinfo.exe executable file. Different alternatives are possible. 
&lsqb;0048&rsqb; From the request transmitted in step 26 by monitoring agent 11, the accessory server 4 can elaborate a business proposal for the user. To achieve this, it extracts the different elements contained into the query string, with the different arguments for the purpose of elaborating a full and comprehensive proposal for transaction. That proposal may take different forms but, in one preferred embodiment, the server takes advantage of the existence of a web browser in most computers. Therefore, when the proposal has been elaborated by the Accessories server 4, the latter is embodied into a Hypertext Markup Language (HTML) page that comprises all the elements of the transaction proposal. 
&lsqb;0049&rsqb; That HTML page is received by the local monitoring agent 11, in step 27, which can then push it into the web browser 15 for the purpose of displaying it to the user. It therefore appears that the monitoring agent 11 executes a complete analysis of the actual user's configuration for the purpose of determining a possible lack of hardware resources and, when so, handles all the steps of the negotiation process that are necessary. Only when the negotiation process reaches the step where an accurate proposal can be made to the user with all the elements being determined, then the local agent uses the web browser for a manual operation from the user, so as to let the latter decide whether or not to accept the result of the negotiation process. All the preceding steps are automatically executed for the purpose of facilitating the access to the transaction. It should be understood that the interaction developed between the web browser and the local monitoring agent 11 entails a significant advantage. It permits to reduce the size, the complexity and the cost of the software code required to implement the local agent, since a web browser is generally available on any machine. The reduction in the size of the local monitoring agent 11 can even make it feasible to download the latter via an Internet network. More importantly, the use of a web browser as the user interface tool means that the user, once sending in a request, will receive the response in the same window—no new window will be opened. In addition, as the user already is within the web browser, transferring to “manual” web-browsing mode to accept a purchase, for example, is automatic. 
&lsqb;0050&rsqb; It can be seen that, in the first embodiment described above, the analysis of the hardware resources and its adequacy to the software configuration is mainly performed within conformity server 3. That may clearly raise a security issue as that first embodiment requires the transmission of some personal user data through the network. If the user distrusts the service provider, or the security of the message in transit across the internet, this might inhibit acceptance of the use of the process by many users. 
&lsqb;0051&rsqb; A second embodiment may be used which avoids that drawback and increases the security of the conformity process. In the second embodiment which will now be described in detail with respect to FIG. 3, most of the computation and analysis steps remain within the local computer. 
&lsqb;0052&rsqb; The process starts with a software analysis step 31 identical to that of step 21 of FIG. 2. It should be noticed that, although this is not absolutely necessary in that second embodiment, the software analysis step 31 may be completed by an additional hardware analysis similar to that of step 22 of FIG. 2. 
&lsqb;0053&rsqb; In step 32, a request is then prepared by conformity agent 11 which, in that case, only contains some harmless details of the machine which were detected in step 31, that is to say the software package representation together with, possibly, some hardware details of the hardware configuration. 
&lsqb;0054&rsqb; In a step 33, the server returns the details required to perform the conformity analysis. Clearly, this may be achieved by an exchange of documents between client and service complying with the known XML structure and associated with a Document Type Definition (DTD) file. 
&lsqb;0055&rsqb; In one embodiment, the data representative of typical configurations comprises information representative of the minimum technical features that are required for a given software, e.g. the particular speed of the processor, the amount of RAM memory or Video memory available in the machine. In a preferred embodiment, the information is also representative of the statistical use of different software at the same time by typical users. A typical use may be based, for instance, on the simultaneous use of both the ADOBE PHOTOSHOP™ and the MICROSOFT OFFICE™ pack when those two softwares are installed in the machine, and that kind of close relationship can be represented and encoded in the information received by the monitoring agent 11. This process is presented below in detail. 
&lsqb;0056&rsqb; In one particular embodiment, the information received by the monitoring agent 11 takes the particular form of a H matrix which will be combined in a step 34 with the S vector representative of the software packages configuration computed in step 31, in a manner akin to matrix multiplication. 
&lsqb;0057&rsqb; In the simplest case, the calculation of step 34 which will provide the ideal hardware configuration involves the following stages. 
&lsqb;0058&rsqb; Firstly, the list of the software installed on the user's machine, is mapped onto the “S Vector” which contains a ‘1’ indicating the presence of the application, or ‘0’ which indicates the absence of the application. In one embodiment, this mapping action is performed by searching for keywords in the descriptive data of the software. Keyword match results in a ‘1’ being set in the vector. 
&lsqb;0059&rsqb; Next, this vector is combined with the “H matrix”. The H matrix is formed by putting together the vector of requirements for each known software application. If for each application we store ‘N; details of required CPU and memory capabilities and so on, we have a N element vector for each application. (In practice there is also a process for assigning numerical values to non-numeric items; e.g. graphics cards can be assigned a “performance value” from 1 to 10.) If there are ‘M’ applications that have been analysed and their requirements stored, there are M N-element vectors which can be combined in a standard fashion to form a N×M matrix. Normal matrix multiplication is used EXCEPT that rather than add the element by element products, the maximum product is taken. Thus the result is a ‘N’ element vector containing the ideal requirements for a machine which has the software installed. Subtracting a ‘N’ element vector representing the actual configuration of the user's PC gives a result where elements <&equals;0 indicate a need for upgrade. 
&lsqb;0060&rsqb; As a simple example, let us consider 4 different known applications for the software package, and the cpu speed and memory size for the hardware characteristics. There is then a 4 element application vector, multiplying a 2×4 matrix.  

1






Combination
&it;

 

&it;
of
&it;

 

&it;
app
&it;

 

&it;
vector
&it;

 

&it;
and
&it;

 

&it;
requirements
&it;

 

&it;


matrix
&it;

&NewLine;

(

app1
,
app2
,
app3
,
app4

)

&CenterDot;

(



cpu1


mem1




cpu2


mem2




cpu3


mem3




cpu4


mem4



)



=


(


cpu
_

&it;

 

&it;

mem
_


)

.





Equation
&it;

 

&it;
1









&lsqb;0061&rsqb; Where the ‘.’ operation involves element by element multiplication followed by the taking of the maximum value, and the result is a vector of maximum values. 
&lsqb;0062&rsqb; A more complex of this calculation allows incorporation of the dependencies between applications. For example, a user will frequently switch between a drawing application and a word-processing application, both being installed and running simultaneously on the machine. A calculation that only took into account their individual requirements would under-estimate the configuration to guarantee correct performance. A simple approach is to pre-process the application vector by performing a standard matrix multiplication by a ‘M’ by ‘M’ matrix, where as before ‘M’ is the number of applications we check for. This matrix will contain elements which permit the presence of combinations of applications to cause a larger weighting to the requirements. The equation below illustrates this with an identity matrix being shown—which would result in exactly the same calculation as the original case. However, by modifying the elements of this matrix, it is possible to reflect dependencies between the applications.  

2






Calculation
&it;

 

&it;
with
&it;

 

&it;
dependency
&it;

 

&it;
matrix
&it;

 

&it;


added
&it;

&NewLine;

[


(

app1
,
app2
,
app3
,
app4

)

&it;

(



1


0


0


0




0


1


0


0




0


0


1


0




0


0


0


1



)


]

&CenterDot;

(



cpu1


mem1




cpu2


mem2




cpu3


mem3




cpu4


mem4



)



=


(


cpu
_

&it;

 

&it;

mem
_


)

.





Equation
&it;

 

&it;
2









&lsqb;0063&rsqb; As an example, a numerical example is shown below where only app1 and app3 are to be found on the PC, but where there is a likelihood of their being used together, reflected in a increased weighting of the final requirements result.  

3






example
&it;

 

&it;


calculation
&it;

&NewLine;

[


(

1
&it;

 

&it;
0
&it;

 

&it;
1
&it;

 

&it;
0

)

&it;

(



1


0


.5


0




0


1


0


0




.5


0


1


0




0


0


0


1



)


]

&CenterDot;

(



300


64




300


64




300


64




300


6



)



=



(

1.5
&it;

 

&it;
0
&it;

 

&it;
1.5
&it;

 

&it;
0

)

&CenterDot;

(



300


64




300


64




300


64




300


6



)


=

(

450
&it;

 

&it;
96

)






Equation
&it;

 

&it;
3









&lsqb;0064&rsqb; In Equation 3, the dependency matrix is used for all the configuration elements being considered. As will be evident, an alternative is to use a different dependency matrix for each of the configuration elements (CPU, memory and so on) resulting in a set of vector to vector combinations rather than a single vector to matrix operation. 
&lsqb;0065&rsqb; At the end of step 34, an ideal configuration, for instance under the form of a H* vector is available. 
&lsqb;0066&rsqb; If the hardware configuration has not yet been detected at that point, the latter is analysed in a similar manner than that of step 22 of FIG. 2 and the resulting representation is then compared, in a step 35, to the ideal H* hardware representation calculated in step 33. 
&lsqb;0067&rsqb; The result of the comparison may reveal sufficient hardware resources in the machine configuration and, in that case, the process completes in a step 38. 
&lsqb;0068&rsqb; However, if the comparison step 35 reveals a lack of hardware resources in the machine configuration, then the process proceeds to step 36 where monitoring agent 11 informs the user of the corresponding lack of hardware resources. As for step 26 of FIG. 2, the monitoring agent 11 may transmit a corresponding request to accessory server 4 via the Hypertext Transfer Protocol (HTTP), for instance by means of a HTTP GET request as described above. The HTTP get comprises, as for step 26 of FIG. 2, a query string and introduced by a question mark, and which details the precise description of the actual hardware resources of the user's computer, and well as the ideal configuration which were elaborate by agent 11. 
&lsqb;0069&rsqb; From the request transmitted in step 36 by monitoring agent 11, the accessory server 4 can elaborate an appropriate proposal for hardware features upgrade. That HTML page is received by the local monitoring agent 11, in step 37, which can then push it into the web browser 15 for the purpose of displaying it to the user. 
&lsqb;0070&rsqb; It can be seen that, in the second embodiment, the security of the process is increased since it is the monitoring agent 11 which executes a complete analysis of the actual user's configuration within the local machine, and, if appropriate, handles all the next steps involved in the negotiation process. Only when that negotiation reaches the step where an accurate proposal can be made to the user with all the elements being determined, then the local agent uses the web browser for a manual operation from the user, so as to let the latter decide whether or not to accept the result of the negotiation process. All the preceding steps are automatically executed for the purpose of facilitating the access to the transaction. It should be understood that the interaction developed between the web browser and the local monitoring agent 11 entails a significant advantage. It permits to reduce the size, the complexity and the cost of the software code required to implement the local agent, since a web browser is generally available on any machine. The reduction in the size of the local monitoring agent 11 can even make it feasible to download the latter via an Internet network. More importantly, the use of a web browser as the user interface tool means that the user, once sending in a request, will receive the response in the same window—no new window will be opened. In addition, as the user already is within the web browser, transferring to “manual” web-browsing mode to accept a purchase, for example, is automatic. 
&lsqb;0071&rsqb; FIG. 4 illustrates the different messages that are exchanged during the monitoring process between the agent and the servers 3 and 4. When the agent has completed the software package configuration analysis of step 31, the latter elaborates a request which is transmitted to conformity server 3, as referenced by arrow 41. The conformity server 3 then answers with message 42 which provides data representative to typical hardware configuration appropriate to some software package installations. In one preferred embodiment, the data posted by conformity server 3 contains a matricial information which can be used and applied to Software vector S for the purpose of computing and deriving ideal configuration vector H. 
&lsqb;0072&rsqb; In message 43, the monitoring agent aggregates ideal H vector with the real vector H determined during step 34 and posted that information to accessory server 4. The latter can then process the request and transmits a contextual response in an HTML format, as illustrated by arrow 44. Local monitoring agent 11 can then push the HTML response to the web browser, for the purpose of completing the transaction. 
&lsqb;0073&rsqb; In a second embodiment, the monitoring agent 11 includes a means for regularly downloading from server 3 a list of the different accessories servers which can be used for the purpose of transmitting message 43 as explained above. Preferably, the list of the accessories servers can be downloaded at the same time than the conformity data received during step 33, and will comply with the known XML structure so that a single set of data posted by the server 3 can be used for both the computation of the ideal hardware resources vector H and the determination of the appropriate accessories servers to which the monitoring agent 11 will have to post the transaction request. 



{'app_number': '09993979', 'application_number': None, 'doc_number': '20020161832', 'publication_number': None, 'source_file': './application/2002/pa021031.xml', 'source_data': 'USPTO-Application'}