text:
in the cause
SCOTNET (1974) LIMITED and OTHERS
Pursuers: Currie, Q.C., Robertson; McClure Naismith
Defenders: Moynihan, Q.C., Frame-Bell; Burness, W.S.
[1] In this intellectual property cause I heard a preliminary proof before answer restricted to issues of infringement. As matters developed during the course of the proof, certain issues, which had been live during the pursuers' evidence, fell away. In the event, therefore, the ambit of the dispute narrowed considerably, essentially to a question of construction of the pursuers' patent.
[2] For the purpose of their closing submissions, both parties lodged written submissions, for which I am grateful. These were taken as read; and in consequence parties were able, in their oral argument, to focus on the issues that the written submissions had thrown up.
[3] The pursuers and defenders both manufacture elasticated tubular netting of the type used for wrapping joints of meat. They do so using small diameter circular warp knitting machines. The pursuers are the registered owners of GB Patent 2333301B ("the 301 Patent"), which patented certain improvements in such machines. They use machines manufactured in accordance with that patent. I shall refer to the pursuers' machine as the "Trunature machine". The defenders use a machine known as the "Turbo 98". The pursuers allege that the defenders' machine infringes certain claims in the 301 Patent.
Operation of a circular warp knitting machine
[4] I take the description of how a circular warp knitting machine works from the Report by Mr Adrian Chettle, a mechanical engineer by training and now a Chartered Patent Agent and European Patent Attorney, who gave evidence for the pursuers. I did not understand this description to be controversial.
"In a circular warp knitting machine the warp threads run generally vertically down and are arranged in a circle around a cylinder. Several pressers are driven around the machine at high speed and knit successive warp threads on reciprocating needles, one needle being provided for each warp thread. The separate knitted warp chains are drawn down out of the centre of the cylinder under tension, and are endless so long as the thread supply is maintained.
The rotating pressers periodically urge successive warp threads radially inwardly to be engaged by the respective needles. A typical machine has four pressers to form chains of successive warp thread loops.
A weft thread feeder may rotate with the pressers so that plain loops are knitted between periodic weft engaging loops. The number of plain loops is one less than the number of pressers for a single weft thread. In this form the knitting machine will knit a continuous sock by inlaying or knitting the weft thread to the warp threads. Several weft thread feeders may be provided. The weft may be laid from the inside or from the outside."
The pressers typically rotate anti-clockwise around the cylinder.
[5] The key to the successful operation of the knitting machine is to ensure that the warp threads are consistently engaged by the reciprocating needles. Typically, the needles are moved up and down my means of cams, which rotate around the cylinder with the pressers. The needles have an open hook at the upper end and a hinged latch by means of which the hook is opened and closed. The latch falls open as the needle rises; the warp thread is deflected into the open hook by a rotating presser; and as the needle descends, having caught the thread, the latch is closed by the movement of the previous loop of thread. This process is repeated endlessly so long as there is enough thread. It is important that the warp thread is deflected into the open hook for a period long enough to ensure that it cannot escape before being trapped in the hook by the descending needle. However, the thread need not necessarily be pressed inwardly into the needle hook for the full period before the latch is closed because, at some point before the latch closes, the needle will have descended sufficiently to enable the hook to have trapped the thread securely.
The 198 Patent
[6] The pursuers' patent sought to improve upon machines then in use, a typical one being that described in UK Patent 2214198 ("the 198 Patent"). According to the specification of the 198 Patent, the descending warp threads pass through wire guides fixed to the cylinder in a position just above the highest point reached by the hook of the needle. These wire guides were referred to during the proof as "staples". Their purpose was to hold the thread in position and, in conjunction with the rotating presser plate, guide it into position in way of the open hook of the needle. Their shape can be described in this way. The leading edge of the staple (i.e. the edge nearest the presser plate as it approaches in an anti-clockwise rotation) protrudes from the curved surface of the cylinder at the normal (i.e. at an angle of 90º to the tangent). The wire then turns at an acute angle before returning in a curve to the cylinder. The warp thread, when not being pressed, lies against the straight edge of the staple. When the rotating presser plate moves into contact with the thread, it pushes the thread onto the curved part of the staple, and that pressure on the thread against the curvature of the staple guides the thread inwards towards the cylinder. By this means the thread is pressed into a position where it brushes across the face of the needle below the hook and is caught by the hook of the needle as it descends. As the presser moves further around the cylinder, it releases the thread. The released thread remains held within the staple.
The 301 Patent
[7] The pursuers' managing director, Stuart Revill, who gave evidence at the preliminary proof, was the inventor named in the 301 Patent. According to the descriptive part of that patent, the provision of the staples in the 198 Patent limits the number of needle tricks which can be provided in a given cylinder. The needle trick is the groove within which the needle moves up and down, and limiting the number of needle tricks limits the number of needles involved in the knitting operation. The descriptive part of the patent goes on to state that the applicants
"have discovered that if warp threads approach the cylinder at an appropriate angle and if the presser plate is appropriately shaped and positioned there is no necessity to surround each warp thread with such a guide [viz. a staple]. Dispensing with these guides permits the use of up to twice as many needles in the same machine, thus permitting the manufacture of a more closely or densely knit product without any detriment to the speed and efficiency of the operation. The machine of the present invention is simpler, utilises less components and is easier to maintain".
There is then mention of another improvement, namely the latch guard, which prevents the latch being cast off too abruptly and closing at the wrong time. In the Trunature machine the latch guard takes the form of a wire running horizontally between and below the presser plates and rotating with them.
[8] Against that background, the principal claim in the 301 Patent (Claim 1) is as follows:
"1. A high speed circular warp thread knitting machine of the kind in which latch needles are reciprocated in respective, vertical tricks in a stationary cylinder by rotating cam means thereby to engage warp threads drawn down from above, a presser plate rotating with a said cam means being provided to deflect each warp thread in turn inwardly of the cylinder across a needle while the latch of the latter is open, wherein the warp threads are drawn through respective guides in a stationary element mounted above the cylinder, the angular relationship of said element to the cylinder being such that each guide is angularly offset relative to the associated needle trick in the direction opposite to the intended direction of rotation of the presser plate, the presser plate having a leading surface presented towards the cylinder at an acute angle to a radius of the cylinder and the arrangement being such that, when not deflected by the presser plate, each warp thread passes inwardly of the cylinder in a straight line at an acute angle to the vertical between the associated guide and the top of the associated needle trick without passing through or around any other thread guidance or deflection means."
I should also quote Claim 5, which is in the following terms:
"5. A machine as claimed in any one of the preceding claims, wherein a latch guard is provided positioned to obstruct closing movement of the latch of an ascending needle just after the latch has cast off onto the stem of the needle a previously formed loop."
The Turbo 98 machine
[9] The defenders' Turbo 98 knitting machine also operates without any wire guides or staples attached to the cylinder to guide the thread. The difference, which for present purposes is the only difference which I need mention, between the Trunature machine and Turbo 98 machine lies in the part which performs the function of deflecting the yarn around the needle. In the 301 Patent, as we have seen, this is called the "presser plate", whereas in the Turbo 98 machine it is known as the "placer".
presser plate and the placer
[10] The presser plate on the Trunature machine is a small steel plate. It's shape is approximately rhomboid, with sides of approximately 21/2 cm in length, and angles of approximately 100º and 80º; but with this difference, namely, that at one of the oblique angles the corner has been taken off, so that there are, in effect, five surfaces. The operative surfaces are the "leading edge", which is at an acute angle to the cylinder and contacts the yarn to begin deflecting it; the "chamfered surface", which is the surface cutting across what would otherwise be the fourth corner of the rhomboid and is positioned so as to run nearly parallel to the tangent at the nearest part of the cylinder; and the "trailing edge" which holds the yarn in the hook for long enough for it to be secure before releasing it.
[11] The Turbo 98 placer is significantly larger (over 10 cm long) and differently shaped. There was lodged in process a drawing of the placer divided into three sections. Parties were agreed that, depending upon precisely where one drew the lines notionally separating it from the two end sections, the central section ("D") of the placer was the equivalent of the Trunature presser plate. The foremost part of the placer ("B") was known as the "pre-tensioner"; and the aftermost part ("C") as the "post-tensioner". Sections B, D and C lie in the horizontal plain. The latch guard on the Turbo 98 machine, more substantial than on the Trunature machine, is fixed directly below the three sections of the placer.
[12] The defenders contended during the proof that the pre- and post- tensioners served a useful function. According to them, the function of the pre-tensioner was to produce some slack in the yarn before it was taken up by the central section D; and to place the yarn in the correct position against the leading edge of the central section. The function of the post-tensioner was to release the warp thread smoothly after it had been caught in the hook of the needle, thereby avoiding vibration or "twanging" which might cause the next stitch to be missed; and to ensure that the warp thread passed smoothly over the weft yarn feeder. In light of events which happened at the proof, I only heard partial evidence on some of these points. On that evidence, I am satisfied that although the pre- and post-tensioners deflect the yarn from the straight, neither performs any useful function relative to the knitting process. There is no need for the tension in the yarn to be slackened before being presented to the leading edge of the central section of the placer. Nor is there any need to position the yarn to the pre-tensioner; if properly set, the machine delivers the yarn to the correct position without this. It was not shown that the gradual release of tension by means of the post-tensioner achieves anything useful, in that there was no evidence that the Trunature machine, which does not use a post-tensioner, has a propensity to drop stitches. So far as the warp feeder is concerned, it seemed clear to me that by holding the yarn deflected towards the cylinder for longer than was necessary, the post-tensioner holds the warp yarn in the path of the weft yarn feeder; so that, when the weft yarn feeder moves around the cylinder, the action of the post-tensioner creates increased friction between the warp yarn and the weft yarn feeder. It certainly did not help the warp yarn pass smoothly over the weft yarn feeder. For these reasons, I do not accept the defenders' submission that the pre- and post-tensioner serve any useful function in the knitting process. I should also say at this point that I do not accept the defenders' case that the warp thread was deflected from the straight by the latch guard on the Turbo 98 machine. According to the evidence I heard, and the photographs and DVDs shown in evidence which recorded the machine in action, there was no contact between the latch guard and the thread. Any such contact, had it occurred, would have been undesirable.
The issue
[13] The pursuers claim that the defenders' Turbo 98 machine infringes Claims 1 and 5 of the 301 Patent. It is agreed, however, that the alleged infringement of Claim 5 is dependent upon the arguments in relation to infringement of Claim 1. Accordingly, the focus of the discussion before me turned on the proper construction to be given to Claim 1, and in particular the concluding part of Claim 1 which, for convenience, I set out again at this point:
"...the arrangement being such that, when not deflected by the presser plate, each warp thread passes inwardly of the cylinder in a straight line at an acute angle to the vertical between the associated guide and top of the associated needle trick without passing through or around any other thread guidance or deflection means." [emphasis added]
It is the defenders' contention that only the central part, D, of their placer is a "presser plate", as that term is to be understood in the 301 Patent. Accordingly, on their construction, the Turbo 98 machine does not infringe the monopoly claimed in the 301 Patent because the thread, "when not deflected by the presser plate", does pass around thread guidance or deflection means, namely sections B and C of their placer. (They also assert that the latch guard is another deflection means but, since I have found that there is no contact between the latch guard and the thread, I need not consider this aspect of the submission further.)
[14] The principles to be applied in construing the 301 Patent were not in dispute. Section 125 of the Patents Act 1977 provides that, for the purposes of the Act, an invention for a patent for which an application has been made or for which a patent has been granted "shall, unless the context otherwise requires, be taken to be that specified in a claim of the specification of the application or patent, as the case may be, as interpreted by the description and any drawings contained in that specification" and it goes on to provide that the extent of any protection conferred by the patent shall be determined accordingly. That section also applies the Protocol on the Interpretation of Article 69 of the European Patent Convention. In Kirin-Amgen Inc. v Hoechst Marion Roussel Ltd [2005] R.P.C. 9, the House of Lords approved, as consistent with the 1977 Act and the Protocol, the classic approach to construction set out by Lord Diplock in Catnic Components Limited v Hill & Smith Limited [1992] R.P.C. 183, 243:
"A patent specification should be given a purposive construction rather than a purely literal one derived from applying to it the kind of meticulous verbal analysis in which lawyers are too often tempted by their training to indulge. The question in each case is: whether persons with practical knowledge and experience of the kind of work in which the invention was intended to be used, would understand that strict compliance with a particular descriptive word or phrase appearing in a claim was intended by the patentee to be an essential requirement of the invention so that any variant would fall outside the monopoly claimed, even though it could have no material effect upon the way the invention worked."
[15] In Improver Corp v Remington Consumer Products Limited [1990] F.S.R. 181, Hoffman J. referred to the approach of Lord Diplock in Catnic Components Limited v Hill and Smith Limited and, at page 189, set out what have become known as the "Improver" or "Protocol" questions:
"If the issue was whether a feature embodied in an alleged infringement which fell outside the primary, literal or a contextual meaning of a descriptive word or phrase in the claim ('a variant') was nevertheless within its language as properly interpreted, the court should ask itself the following three questions:
(1) Does the variant have a material effect upon the way the invention works? If yes, the variant is outside the claim. If no -
(2) Would this (i.e. that the variant had no material effect) have been obvious at the date of publication of the patent to a reader skilled in the art. If no, the variant is outside the claim. If yes -
(3) Would the reader skilled in the art nevertheless have understood from the language of the claim that the patentee intended that strict compliance with the primary meaning was an essential requirement of the invention. If yes, the variant is outside the claim.
On the other hand, a negative answer to the last question would lead to the conclusion that the patentee was intending the word or phrase to have not a literal but a figurative meaning (the figure being a form of synecdoche or metonymy) denoting a class of things which included the variant and the literal meaning, the latter being perhaps the most perfect, best-known or striking example of the class."
I should also mention a further passage from the judgment of Hoffman J in Improver at page 190:
"It is worth noticing that Lord Diplock's first two questions, although they cannot sensibly be answered without reference to the patent, do not primarily involve questions of construction: whether the variant would make a material difference to the way the invention worked and whether this would have been obvious to the skilled reader are questions of fact. The answers are used to provide the factual background against which the specification must be construed. It is the third question which raises the question of construction and Lord Diplock's formulation makes it clear that on this question the answers to the first two questions are not conclusive. Even a purposive construction of the language of the patent may lead to the conclusion that although the variant made no material difference and this would have been obvious at the time, the patentee for some reason was confining his claim to the primary meaning and excluding the variant. If this were not the case, there would be no point in asking the third question at all."
In this connection, Mr Moynihan referred me to a passage in the speech of Lord Diplock in Catnic at page 244, in which he had stressed the absence, in that case, of a "plausible reason ... why any rational patentee should want to place so narrow a limitation on his invention".
[16] I was reminded by Mr Moynihan that in Kirin-Angen, Lord Hoffman emphasised that the Improver questions were merely guidelines. Further, he submitted that they were an unnecessary distraction in the present case because the true question was to determine the proper interpretation of the patent; and, as the Improver case shows, the first two questions can be answered adversely to the defenders without there necessarily being any infringement. I accept that the true question is to determine the proper interpretation of the contract, rather than move too rapidly to (or focus too rigidly on) the Improver questions; and for this reason, that before one gets to the Improver questions, there is a prior question to be resolved, namely whether the Turbo 98 machine is a variant at all, i.e. (to adopt the formulation used by Hoffman J in Improver) whether it falls "outside the primary, literal or a contextual meaning" of the claim. There are two discrete arguments relevant to this question.
[17] The first raises the question whether the whole of the defenders' Turbo 98 "placer" corresponds to the Trunature "presser plate" or whether, on the other hand, the pre- and post-tensioners, sections B and C, are separate and distinct parts of the machine. The question is somewhat arcane, and may give of a variety of answers depending on the context in which it is asked. Here it is asked not in the abstract but for the purpose of understanding the defenders' machine in terms of an alleged infringement of the 301 Patent. To answer the question it is necessary to ask what, in terms of the 301 Patent, is meant by the "presser plate". Clearly it is not limited to a plate of the precise dimensions and angles of the Trunature presser plate. This was, as I understood it, common ground, otherwise the defenders' acceptance that the central part of their "placer" corresponded to the presser plate would make no sense. Mr Moynihan argued that one should look to the definition of "presser plate" in Claim 1 of the 301 Patent, which was to be found in the passage stating that the presser plate has "a leading surface presented towards the cylinder at an acute angle to the radius of the cylinder". He submitted that the Turbo 98 placer as a whole did not meet this description. The relevant surface of the placer, which corresponded to the leading surface of the presser plate, was the surface at the forward part of the central section D of the placer. Therefore section D was the equivalent of the presser plate, while the pre- and post-tensioners (sections B and C) were wholly distinct and were not part of the one presser plate.
[18] I do not see why the fact that the relevant "leading surface" is the front edge of the central section D should prevent the whole of the placer being a presser plate. According to the definition relied upon by Mr Moynihan, the presser plate contemplated by the 301 patent has "a leading surface presented towards the cylinder at an acute angle to the radius of the cylinder" (emphasis added). But that definition, if such it is, does not require that "leading surface" to be at the forward end of the presser plate. There may indeed be more than one "leading surface" on the presser plate. The front edge of the pre-tensioner B might be described as a "leading surface"; and, although there was no evidence or discussion about the precise angle of this surface in relation to the radius of the cylinder, it may well be that it was an acute angle. Be that as it may, section D has a leading edge fulfilling the requirements of the definition; and therefore the placer as a whole has "a leading surface" presented towards the cylinder at an appropriate angle to the radius of the cylinder.
[19] Looked at more generally, and taking a "purposive" approach to the construction of Claim 1, it seems to me that the reference to the presser plate rotating around the cylinder is intended as a reference to a plate, of whatever precise length, width or shape, which rotates around the cylinder for the purpose of pressing the warp yarn inwards so that it gets caught by the hook of the descending needle. The description "presser plate", on this approach, encompasses not only the presser plate in the 301 Patent but also its equivalent in the 198 Patent and the whole of the defenders' placer.
[20] Accordingly, I reject the defenders' argument that their placer comprises three separate elements, only the central one of which is the equivalent of the "presser plate" in the 301 Patent. It follows from this that, when being deflected by the pre- and post-tensioner parts of the placer, the yarn is still being deflected by the presser plate. Put another way, the pre- and post-tensioners are part of the presser plate and are not "other thread guidance or deflection means".
[21] Subject to a separate consideration of the operation of the weft feeder, that conclusion must lead to a finding of infringement against the defenders.
[22] The second argument assumes, contrary to the above, that only the central part of the Turbo 98 placer corresponds to the "presser plate" in the 301 Patent; and that the pre-tensioner and post-tensioner are both to be regarded as separate and distinct features of the Turbo 98 machine. The assumption also has to be made, which was in any event shown by the evidence and is accepted by the pursuers, that the warp yarn comes into contact with the pre-tensioner and post-tensioner and, when in contact with them, is deflected from the straight.
[23] On this basis, Mr Moynihan argues that the Turbo 98 machine is not a machine in which the arrangement is such that, when not deflected by the presser plate, the warp thread passes in a straight line to the top of the needle trick "without passing through or around any other thread guidance or deflection means"; and therefore does not infringe Claim 1 of the patent.
[24] The starting point is to identify what is meant by the expression "any other thread guidance or deflection means" at the end of Claim 1. Mr Moynihan emphasised the word "other". He submitted that the presser plate referred to in Claim 1 is a thread guidance or deflection means, in the sense that it is a means of guiding or deflecting the thread. So also, he submitted, were the pre-tensioner and the post-tensioner. They also guided or deflected the thread. They were therefore "other" "thread guidance or deflection means" around which the thread passed. I do not accept this argument. I consider that it gives insufficient weight to the word "means". In once sense, it is, of course, true to say, as Mr. Moynihan argued, that anything which, by design, causes a deflection in the thread is a "means" of deflecting the thread. But such an interpretation is, to my mind, unduly literal and wholly circular; and does not take account of the inventiveness claimed in Claim 1. The purpose of the machine, as there explained, is for the presser plate to be the "means" of deflecting each warp thread across the needle so that it is caught by the hook of the needle as it descends. The word "means" is used in this sense near the beginning of Claim 1. I would link the word "means" in the final part of Claim 1 to its meaning earlier. It is referring to a means of deflecting the warp thread into the path of the open hook of the needle as it descends. Read in this way the negative restriction in the last part of Claim 1 is not to be read as brought into play whenever the thread passes around something which causes it to deflect. Rather, it refers to the thread passing around something as a means of deflecting it into the path of the needle for the purpose of the knitting operation. "Guidance or deflection means", as that expression is used in Claim 1, are the "means" by which the thread is guided or deflected into the correct position for the purpose of the knitting operation.
[25] Accordingly, I do not accept Mr Moynihan's submission that, on its literal construction, or primary meaning, the negative restriction at the end of Claim 1 is engaged simply because the warp thread passes around some part other than the presser plate which causes it to deflect. I have already indicated my finding, on the evidence before me, that the pre- and post-tensioners play no useful part in the knitting operation. On that basis, one never gets to having to answer the Improver questions. The Turbo 98 machine is not a variant and the case for infringement is made out.
[26] On the assumption, however, contrary to that view, that, on the literal wording or primary meaning of the last few lines of Claim 1, the negative restriction is indeed engaged whenever the thread is deflected by some part of the knitting machine other than the presser plate, the Improver questions would arise for consideration. It is plain from what I have already said that I would answer questions 1 and 2 No and Yes respectively. As regards question 3, I have to ask myself whether a reader skilled in the art would have understood from the language of the claim that the patentee intended that strict compliance with this meaning was an essential requirement of the invention. To my mind, the answer to that question is plainly: No. I cannot see any basis upon which the reader skilled in the art would so have understood the patentee's intentions. The inventive idea underlying Claim 1 of the patent was the removal of the need for the thread to be held, guided or deflected by anything other than the presser plate in order for the knitting process to be effective. It removed the need, for example, for some device such as the staple in the 198 Patent. The machine disclosed in the 301 Patent can knit without any other guidance or deflection device other than the presser plate. I can think of no plausible reason why the patentee would have intended so to restrict his claim that any deflection otherwise than by the presser plate would take the variant outside the claim in the patent. I asked Mr Moynihan what the position would be if, for example, the defenders' machine incorporated a purely decorative brass plate, which happened to cause the warp thread to deflect as it went round. At one point he seemed to accept that the logic of his submission pointed to such a brass plate being a "deflection means" within the meaning of the last part of Claim 1 so as to take the variant outside the claim. He submitted that there was no infringement if the defender, using the same presser plate as the pursuers, added to their machine separate items that caused a deflection in the yarn, albeit to no purpose, and even if the addition of such items was detrimental to the efficient operation of the machine. I cannot accept that submission. It follows from this, also, that even if I had found that the thread was defected by the latch guard on the Turbo 98 machine, I would have answered the third Improver question in respect of the latch guard in the same way as for the pre- and post-tensioners.
[27] A separate point arose on the weft feeder. The patent does not discuss the operation of the weft feeder, simply saying that its operation is known "per se" and forms no part of the invention. The weft feeder operates in such a way that it threads the weft through the tubular net during the knitting process. The weft feeder rotates around the cylinder and inevitably causes a deflection of the warp yarn as it feeds the weft through the yarn. Mr Moynihan submitted that this was another "deflection means" within the meaning of the last part of Claim 1. I reject this argument for the same reasons as before. The weft feeder has nothing at all to do with the essential knitting operation with which the presser plate is concerned. The weft feeder is therefore not a means of deflecting the warp yarn for the purpose of engaging the warp yarn in the hook of the needle at the appropriate moment. Even if it were, I would answer the third Improver question in the same way in respect of it also.
[28] For these reasons I find against the defenders on the arguments raised before me on this preliminary proof before answer. It was agreed that, if this was my decision, I should simply repel the defenders' third plea-in-law. This leaves outstanding the defenders' fourth plea-in-law, which raises the question of whether the defenders can establish a defence based upon Section 64 of the Patent Act 1977.


text:
A system is provided for servicing requests by a mobile controller to utilize stationary or mobile resources present within a partitioned communication cell such as an office or room in a building. The mobile controller has a control signal mechanism for generating control request signals to modify behavior of the stationary or mobile resource, with the range of the control request signals substantially limited to the partitioned communication cell. A room agent receives and acts upon the control request signals after dynamically determining availability of both mobile resources entering and exiting the partitioned communication cell and stationary resources already present in the partitioned communication cell. In operation, the room agent is configured to grant requests for utilization of mobile and stationary resources located within the partitioned communication cell when predetermined contextual attributes within the partitioned communication cell are consistent with previously specified interaction policies.
1. A method for servicing requests for resources by mobile controllers located in a partitioned communication cell, said partitioned communication cell having a set of interaction policies that constrain the granting of requests for resources, with stationary controllers and mobile controllers located in the partitioned communication cell defining a first membership set and stationary and mobile resources in said partitioned communication cell defining a second membership set, said method comprising the steps of
identifying stationary controllers, mobile controllers, stationary resources, and mobile resources present within the partitioned communication cell to define said first and said second membership sets, including the step of dynamically updating said first and said second membership sets as mobile controllers and mobile resources enter and exit said partitioned communication cell;
registering interaction requests with a room agent made by mobile controllers located in the partitioned communication cell;
identifying contextual attributes within the partitioned communication cell of each of said interaction requests made to the room agent;
granting said interaction requests made to the room agent for utilization of mobile resources and stationary resources located within the partitioned communication cell when the identified contextual attributes are consistent with said partitioned communication cell interaction policies; and
denying interaction requests having contextual attributes inconsistent with said partitioned communication cell interaction policies.
2. A system for servicing requests for resources by mobile controllers, said system comprising
a plurality of stationary resources and a mobile resources present within a partitioned communication cell,
at least one mobile controller movable into the partitioned communication cell, the mobile controller having a control signal mechanism for generating control request signals to control the stationary resources or the mobile resources, with the range of said control request signals substantially limited to the partitioned communication cell, and
a room agent for receiving and acting upon said control request signals, with the room agent dynamically determining availability of both mobile resources entering and exiting said partitioned communication cell and stationary resources present in said partitioned communication cell, the room agent being configured to grant said control request signals from said mobile controller for utilization of mobile and stationary resources located within the partitioned communication cell in accordance with predetermined contextual attributes defined within the partitioned communication cell.
The present invention relates in general to a method and a system for allowing certain devices to control other devices and, in particular, to a method and a system for the dynamic selection, allocation and arbitration of control of devices within a proximal region.
The usefulness of any given device is determined in part by the degrees of freedom provided by the control mechanisms for the device. For example, a light that merely has an on/off switch is not as versatile as a light that allows an entire range of illumination through a dimmer switch. Systems that supply a wide range of control options and mechanisms are generally more desirable from a user's standpoint.
Conceptually, controllers may be broken down into a variety of broad categories. Controllers may either be physically attached to the controlled device or they may be remote and control the device from a distance. Controllers may be either dedicated to control a single device or adaptable to control a variety of different devices. Remote, adaptable controllers generally allow the user a greater range of use than dedicated, attached controllers. From across the room, a viewer is able to switch channels on a television set with a dedicated remote controller without physical exertion. Such a viewer might be better served by an adaptable controller that could also control other devices such as lighting, room temperature, stereo, and the like.
As user environments become more complex, the need for more versatile control mechanisms becomes greater. Users would like to feel that the devices at their disposal exist to aid them in their tasks--not monopolize their attention. In a sense, the best controller is one that provides the user the greatest range of functionality without requiring a great deal of conscious effort. That is, the more the control features blend into the background or become tacit, the better.
Current environments that facilitate human interactions, such as workplaces, homes, airports, commercial areas and the like, have seen increasing complexity and automation. Today, a typical environment may include many resources such as workstations, telephones, televisions, stereos, radios, VCRs, fax machines, printers, copiers, scanners, modems, and the like. These relatively new computational and communication resources supplement other environmental resources typically found in work and living spaces, such as lighting, air conditioning and the like. It is desirable from a user standpoint that all of these devices work together to create an environment conducive to achieving the task at hand.
While today's office comprises a large collection of devices needing control, that collection promises to expand in the future. One vision of the future office is found in Dr. Mark Weiser's article "The Computer for the 21st Century" (Scientific American, September 1991 issue). Dr. Weiser describes a work place in which there would be literally hundreds of computers per room. These computers would be so well integrated into the office environment that their presence would not be consciously noted.
This "ubiquitous computing" paradigm envisions a hierarchy of integrated computers in terms of size and performance. At the lowest end, "Tabs" and "Badges", currently at a few inches square, are the smallest components of ubiquitous computing. Tabs and Badges perform basic functions in a ubiquitous computer setting. For example, Badges are worn by people inhabiting this type of environment. As a wearer of the Badge walks from room to room, the Badge would communicate to the room, through a wireless medium, the presence of the person. Automatically, the room might make adjustments for the person, such as calling up the person's desktop onto a computer workstation located in the room. Additionally, the building itself could keep account of an individual's movements. Phone calls could be forwarded to the room where the individual is located. Likewise, security doors would open up for certain individuals and not for others.
At the other end of the hierarchy, "Pads" and "Boards" are computers analogous to sheets of paper and blackboards respectively. These computers, together with Tabs, work interactively with each other to form a seamless web of computing in the work place. Typically, in any given room, hundreds of Tabs may work and communicate with ten or twenty Pads and one or two Boards. An implementation of a "ubiquitous computing" environment, as envisioned by Dr. Weiser, is discussed in greater detail in commonly assigned U.S. patent application Ser. No. 08/100,655, entitled "A METHOD AND SYSTEM FOR MAINTAINING PROCESSING CONTINUITY TO MOBILE COMPUTERS IN A WIRELESS NETWORK", filed Jul. 30, 1993 by Want et al., which is herein incorporated by reference. Want et al. disclose a basic wireless network architecture in which each mobile computer on the network has an agent. An agent is a process, resident on a host on the network, that is dedicated to serving the needs of the mobile unit. For example, the agent is responsible for knowing the location of its assigned mobile unit. Additionally, all communications routed to and from a mobile computer go through its agent.
In its broadest sense, a ubiquitous computing environment has many aspects that must be considered in order for it to provide a meaningful work environment for its users. For example, one aspect of a ubiquitous computing environment is the ability of one device to control another. Devices, in such an environment, can be subdivided into the broad classes of controllers and resources. The previously mentioned Tab, carried by a user from room to room, may serve as a remote, adaptable mobile controller for a wide range of resources within its environment. Mobile controllers may essentially function as a mobile user interface, permitting users to sense and control resources remotely. For example, it would be desirable for a Tab with a touch screen to connect to a room's thermostat and either display the current temperature or, at the user's request, adjust the thermostat to a desired temperature.
One implementation of a control allocation scheme is detailed in commonly assigned U.S. patent application Ser. No. 08/161,968 (file number as yet unassigned--Attorney Docket Number D793335), entitled "SELECTION, CONTROL AND OWNERSHIP OF PARTICULAR DEVICES IN A MULTIPLE COMPUTER SYSTEM BASED ON CONTEXT AND ENVIRONMENT IN PROXIMITY TO A USER OR DEVICE", filed on Dec. 3, 1993 by Theliner et al., which is herein incorporated by reference. Theimer et al. describe an environment populated by users and computational devices whereby control of devices by a particular user is made in the context of the user. User context is comprised of the user's immediate surroundings (e.g. what device and other users are proximal to the particular user) and the preferences and/or policies of the devices and user.
A typical scenario using Theimer et al.'s system might involve a user who wants to print a private document having special graphics embedded in it. Because the document is private, the user wants the document to be printed where ever the user is located and, further, to be printed only when no one else is around. Additionally, the printer must be able to handle the special graphics. Theimer et al.'s system would wait until the context specified in the request is satisfied in the environment before action is taken. Specifically, the system would locate the user and all printers proximal to the user that might satisfy the request. Additionally, the system would check to see if other users are proximal to the requesting user before granting the request.
The system as disclosed by Theimer et al. identifies user and device policies as constraints to be considered when granting requests. These policies may be implemented as a set of IF-THEN rules as the instructions of an inference engine. In such an implementation, if the current context of the environment satisfies the conditional, then the system executes the actions specified in the rule.
Limiting system constraints, however, to only users and devices policies does not necessarily lead to meaningful or conducive work environments for its users. Users normally interact with each other in ways which are conducive to accomplishing a collaborative task. More often than not, collaborative efforts take place within a certain proximity, such as someone's room or office. Typically, the resources located in the room are involved in performing the task. The users, attempting to perform the task, naturally seek to use these resources to effect a solution. Thus, requests from the various users for the room's resources will be competing and, in some cases, conflicting.
For example, suppose a group of users, located in an office room, are collaboratively working to complete a proposal for an architectural project. The various tasks involved in completing the proposal might include: wordprocessing, graphic display and manipulation, computation (e.g. for deciding budgeting), and printing. In Theimer et al.'s system, any and all users are free to "grab" resources at will and control them indefinitely. This possibility may hinder the collaborative work required to efficiently finish the project--one user might simultaneously control graphical and printing devices while not necessarily using either to its peak efficiency. Thus, a "greedy" user may make other users idle at some points during the task.
Likewise, if the proposal is to be written by one primary user with some input from others, it might be desirable from the primary user's standpoint to have a mechanism in place to have priority control over the devices in the room after sufficient input has been culled.
Part of the problem is that users and devices generally do not have a global (or even a regional) view of competing requests for resources. Without such a view, allocations of resources made to "greedy" controllers and/or users may actually hinder the collaborate nature of the work being done in a proximal region.
Thus, there is a need for a system which arbitrates user interactions and requests for resources and makes allocation decisions based upon proximal region policies that tend to aid multiple users engaged in collaborate tasks or in discrete tasks that require a sharing of resources to accommodate all users.
In summary, the present invention comprises a method and a system by which mobile, remote, adaptable controllers can dynamically control a multitude of resources within a given region (e.g. a room) such that policies determined for the region, controllers, and resources can be arbitrated in a manner that creates a conducive work environment for users in the region.
Furthermore, this method allows a controller to dynamically choose one of various modes of operation, either singly or in combination, allowing the user of the controller a maximum of flexibility in interacting with the resources in the region.
These modes of operation comprise, but are not limited, to the following:
a) A mode where information concerning the nature and state of all resources in the region is presented to the controller and which allows the user of the controller to select suitable resources to control until some further change in state.
b) A mode where the controller is engaged in a specific activity and seeks a resource to aid in that activity. The system chooses the most suitable, available resource in the region, given the region policy and other various constraints placed on the choice.
c) A mode where the controller lets it be known that it is available to be a controller for resources that are looking for controllers. The system finds the most suitable resource, among those currently looking for controllers to attach itself to the controller and to configure the controller for the purpose of having a user being able to control resource, while enforcing region policy.
This method maximizes the control of the resources of a region such that the control of the most suitable resources is dynamically situated in the hands of the user on an adaptable mobile controller.
One advantage of the present invention is the ability to allocate control of resources to controllers while maintaining the integrity and context of meaningful work environments.
Another advantage of the present invention is versatility. A user, moving from room to room, may assume control of available resources within the new environment, either automatically or by user request. The user need not have a separate controller for each such resource--a single controller is sufficient.
Additional objects and features of the present invention will be more readily apparent from the following detailed description of an exemplary embodiment thereof, as illustrated in the accompanying drawings.
The purpose and advantages of the present invention will be apparent to those skilled in the art from the following detailed description in conjunction with the drawings.
FIG. 1 depicts an environment where mobile units are connected to a network via wireless media and resources are connected to the network via a wired medium.
FIG. 2 depicts the overall architecture of an embodiment of the present invention.
FIG. 3 is a diagram showing the lines of communication that might exist in a typical request by a controller agent for a resource.
FIG. 4 depicts a suitability matrix that is employed by one embodiment to determine the most suitable resource for a given request.
FIGS. 5 and 6 are flow charts summarizing the manual method of control allocation.
FIGS. 7 and 8 are flow charts summarizing the automatic, mobile controller-seeking-resource method of control allocation.
FIGS. 9 and 10 are flow charts summarizing the automatic, resource-seeks-mobile controller method of control allocation.
The following description is presented to enable any person skilled in the art to make and use the invention, and is provided in the context of a particular application and its requirements. Various modifications to the preferred embodiment will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present invention as defined by the appended claims. Thus, the present invention is not intended to be limited to the embodiment shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein.
The present invention provides services for matching resources to controllers over a constrained proximal region characterized by a dynamically changing set of controllers, resources and users. All three classes of inhabitants (resources, controllers, and users) may have some members that are stationary and some members that are mobile in the environment. Resources, though generally thought of as stationary, may be mobile. For example, resources may be relocatable to customize a user's workspace.
Likewise, some controllers may be stationary, such as a workstation, while other controllers are mobile. However, in order for an environment to be properly thought of as supporting ubiquitous computing, the environment must account for the mobility of the users. Human users walking around a workspace must have the ability to affect their surroundings automatically as they move room to room. Although the presently preferred embodiment of the present invention concerns itself chiefly with the interactions of mobile controllers, carried possibly by users, and resources, it will be appreciated that interactions between stationary controllers, used by mobile users, and resources may be similarly implemented.
Further, the distinction between a controller and a resource sometimes blurs in ubiquitous computing. Occasionally, a device normally considered a resource may act as a controller. For example, a Board is normally a resource that others may control remotely (e.g. to display and alter a graphic image). However, it is possible that control mechanisms for other devices, such as a room's lighting, may be displayed on the Board such that a user may control the device from the Board. In such a case, the Board acts as a controller making requests upon the lighting. Likewise, devices that are normally considered as controllers may act as resources. For the purposes of the present invention, whether a given device is a controller or a resource is context dependent. Broadly speaking, a device that is requesting control of another device may be considered a controller. A device that potentially may fulfill a request may be considered a resource.
FIG. 1 depicts a workspace, suitable for the purposes of the present invention, that is inhabited by users, resources, and controllers. The various components that might be found in such a workspace comprise a hardwired network backbone 12, radio and infrared transceivers 14 and 16 respectively, workstations 18, file servers 20, printers 22, various mobile controllers (e.g. Pads 24, Tabs 26, etc.), Boards 28, and users 30.
Network backbone 12 provides high bandwidth communications between the various communication and computing devices. One present embodiment uses a 10 Mbps Ethernet that provides the basic infrastructure. It will be appreciated that although any network architecture may suffice for the backbone, it is desirable that the bandwidth be large enough to support a desired maximum number of devices for some desired performance criteria.
Components of this environment may be properly classified as either "stationary" or "mobile". Stationary components are generally "hardwired" (i.e. physically connected) to network backbone 12. At the current state of the art, such components comprise user workstations 18, file servers 20 and printers 22, and the like. It will be appreciated that other networkable components may be connected to the infrastructure depending upon the needs of the office.
Mobile communication and computer units connect to backbone 12 via radio and infrared transceivers 14 and 16 respectively. One advantage of using infrared as a medium is frequency reuse. Walls 13 are essentially opaque to infrared transmission. Thus, IR transmissions in one room do not interfere with IR transmissions in another. Individual rooms 11 are termed communication "cells" because of this effective partitioning. This useful property allows the reuse of the IR bandwidth for each cell in the workplace. It will be appreciated that the use of IR as a medium of wireless communication is well known in the art.
A similar communications partitioning is possible with a single radio frequency if the "near field" components produced by an antenna are used to couple the mobile units to the network. The term "near field" describes those field components of an energized antenna that do not give rise to propagating waves. The use of near field communication is disclosed in commonly assigned U.S. patent application No. 07/984,821 entitled "Wireless Communications Using Near Field Coupling" filed Dec. 3, 1992 by Richley et al. and is hereby incorporated by reference.
Each transceiver 14 or 16 in the present embodiment is connected to a network 12 through a base station, or gateway computer 15, which performs translation between the wireless communication from the transceiver and the communication packets sent over the network 12.
It will be appreciated that the use of IR and near field radio as media of wireless communication is well known in the art. Although only near field radio and infrared transmission are employed in the presently preferred embodiment, it will also be appreciated that other bands of the electromagnetic and acoustic spectrum might be suitable and that the present invention should not be limited to the use of the media herein specified. It will also be appreciated that multiple frequencies may be employed to partition the communication space into non-interfering cells. Additionally, mobile controllers as well as some resources) may be temporarily "tethered" to the network by directly connecting them to the network backbone.
Users 30 may have in their possession mobile devices that allow the user to automatically interact with their surroundings. Two such devices, Tab 26 and Badge 32, announce the presence of the user currently "owning" the device by broadcasting a suitable signal to the transceivers 14 or 16. Tab 26 may additionally have a touch screen or other user interface that allows a richer interaction with the user's surroundings than just announcing presence. Users 30 may not have any such mobile device in possession; but may nonetheless interact and have the user's surroundings automatically interact by simply logging onto a workstation 18.
In addition to the various controllable devices inhabiting a workspace, the notion of a "region" is useful to the present invention. A region is a proximal, physical or geographic region, such as a room, hallway, wing, building, or the like. A region is a partition that defines a single working context, inhabited by controllers, resources and users within its boundaries.
In the presently preferred embodiment, a "room" is the region level in which devices dynamically share control. Rooms are reasonable areas to define as regions because of the effective partitioning of the wireless communications between rooms. Additionally, rooms represent logical work or living spaces. It will be appreciated, however, that other physical areas (such as desktops, corridors, wings, entire buildings, etc.) are possible candidates for regions. Additionally, other partitions, both logical or physical, are possible.
Rooms contain resources that can be controlled or can control other devices. As mentioned above, examples of resources would be lighting systems, heating systems, Boards, workstations, cameras, monitors, telephones, fax machines and the like. Controllers, both stationary and mobile, make requests for services to be performed by a room's resources. Mobile controllers (referred to as "MC"s) periodically enter and leave rooms and their presence is made known to the room upon entry. As will be described below, mobile controllers and resources "register" with the room upon entering in the presently preferred embodiment.
Rooms also define the context of the interactions between users, controllers, and resources. The "context" of a room includes: the presence of users, controllers, and resources; the states of those users, controllers, and resources; interaction policies of users, controllers, resources, as well as the room itself; and the status of applications and requests that involve users, controllers, and resources located in the room. The context of a room dynamically varies over time--users, controllers, and resources may enter and leave at various times; requests for resources are made at various times, etc.
Rooms are the regions in which requests for control are serviced. To provide this service, one embodiment of the present invention assigns to each room in the workspace a dedicated process, called a "room agent". A room agent resides on one or more processors coupled to the network and has an address that is registered with a global name service. In addition to room agents, each controller and resource has its own agent which manages the communications and requests for control for its associated device.
It will be appreciated that although the present invention will be described in reference to this embodiment, there are other embodiments that could implement and enforce room-level policies, arbitrate requests, and allocate resources based on those requests. Such an alternate embodiment might involve a "multicast" communication scheme whereby all resources and controllers broadcast messages to the entire room. Room-level policies might be distributed among the various resources and controllers in the room and each device would use room-level policies as filters on their own actions and/or reactions, in addition to their own device-specific policies.
FIG. 2 depicts the overall architecture of an embodiment employing a dedicated room agent. Room agent 48 communicates with mobile controller agents 44, resource agents 46, global name service 64, and a collection of databases 50. The mobile controller agent 44 and resource agent 46 in turn communicate with their associated mobile controller 40 and resource 42 respectively. All communications take place upon the network through either the hardwired line 12 or wireless communication links or a combination thereof.
The collection of databases 50 comprises databases 52, 54, 56, 58, 60, and 62. These databases contain information about the resources and MCs currently within the room. In this embodiment, this information is periodically updated by the room agent by broadcasting a "who are you" message within the room. Those resources and MCs located within the room respond, if so able, and the databases are updated by the room agent. It will be appreciated, however, that other mechanisms for updating the database exist (such as devices that check in periodically) and that the present invention should not be limited to the mechanisms disclosed herein.
It will be further appreciated that the decision of a device to register itself as either a resource or a controller is made by the individual device. As previously mentioned, such a decision is dependent upon the state of the device. In some cases, a single device may register itself as both a resource and a controller, depending upon whether the device is capable of requesting resources or fulfilling such requests.
The databases also maintain certain state and type information about the devices. For example, the resource-available and MC-available databases 60 and 54 keep track of resources and MCs respectively that are currently in a state in which control could be passed to another device. Additionally, resource-seeks-MC and MC-seeks-resource databases 62 and 56 maintain a list of resources and controllers that are seeking to control a mobile controller or resource respectively; but their requests, as yet, have gone unfulfilled. It will be appreciated that various other database schemes could be implemented to maintain a similar set of information about the room's devices and that the present invention should not be limited to the particular database scheme disclosed herein.
Having discussed the overall architecture of this present embodiment, the manner in which requests are arbitrated and resources allocated will be described. FIG. 3 is a diagram showing the lines of communication that might exist in a typical request by a controller agent 44 for a resource. Controller agent 44 formulates a request for resources from either user input and/or its own internal policies 70. For example, for a given printing request, controller policy might decide that only a specific type of printer with certain characteristics can satisfy the request.
The request is then forwarded to the room agent 48. Room agent 48 also has room-level policies 72 that acts as a filter in processing various requests. For example, the room agent may guard against the "greedy user/controller" by enforcing the policy that no single user/controller may have more than a certain number of devices of a certain type (e.g. displays, printers, computational resources, etc.) allocated to it at a given time. If the request of the controller agent runs afoul of room-level policy, then the appropriate request denied message is sent back to the controller agent.
Other possible room-level policies may be formulated as priority queues for certain device. For example, the room's primary occupant may desire a higher priority for resources than visitors to the occupant's room.
Additionally, policy might be based in known interferences between devices. The room agent, for example, might not allow the radio and TV to be on simultaneously. It will be appreciated that the room-level policies herein specified is not an exhaustive list of policies or their forms and that the present invention should not be limited to those policies described herein.
A second filter that winnows down the potential set of resources that may satisfy a request is resource "availability". For any given request, the room agent consults its database 50 of available resources to fulfill the request. Resources may be either "available" or "unavailable" for their control to be allocated. A resource is available if it is not currently busy with some activity or is otherwise interruptible. Resource agents decide their availability status and register that status with the room agent. Resources agents may decide their availability based upon its own internal policies 76.
The policies of the room, controllers and resources may allow for a rich set of allocations to occur. For example, to facilitate multiple controller allocations, a resource may decide whether it may link to multiple controllers. For example, the lighting in a room may allow concurrent control by an unlimited number of controllers. Likewise, resources, such as printers, may "spool" requests from different controllers--thus, giving controllers the impression of constant availability. Likewise, one controller may link to many resources. For example, one controller could acquire multiple displays in order to present coordinated graphics on all displays simultaneously.
A third filter used in allocating resources to controllers is resource "suitability". Briefly, a resource is suitable if the resource is able to perform a requested task to a level acceptable to the requesting controller. Requests for resources have an associated "activity type" that is specified in the body of the request. As will be discussed below, the controller may specify a minimum level of competency expected of the matched resource to perform the request. For example, the request could specify a color printer that prints at over 100 pages per minute and that no less capabilities will do.
FIG. 4 depicts a suitability matrix that might be employed by the room agent. The matrix 80 plots various activity types 86 that resources might be asked to perform, such as color printing, graphics display, room illumination, and the like. Obviously, the listing of activity types may be as detailed as desired and that the examples shown in FIG. 4 are by no means exhaustive. Against these activity types, resource types 84 are plotted. A resource type might be a general description (e.g. black and white printer) or the exact device name (e.g. 5775 printer). The numerical entries 82 in the table are a weighted assessment of the resource type against the particular activity type. For example, the table may give a SPARC workstation a rating of "10" in performing the activity of "wordprocessing" ("10" being the most suitable, "0" being the least suitable rating). It will be appreciated that other methods for matching resources against a suitability metric, such as rule-based expert systems, exist and are well known to those skilled in the art.
In deciding whether to allocate a given resource to a requested activity type, the room agent checks the set of available resources against their suitability for a task and the optionally supplied threshold level of competency supplied by the controller. For example, if a controller wants a color print of a document and not a black and white print, the controller would request a color printer with a threshold value greater than 5. Only the 5775 printer in its room will satisfy such a request and the 5775 printer will be allocated if available.
On the other hand, if time is of the essence for receiving a printout, the controller could request a color printer with a threshold of "5" or less. In that case, the room agent would allocate the more suitable 5775 color printer, if available. Otherwise, the room agent would allocate the black and white printer, if it is currently available.
A more detailed discussion of a current implementation of the present invention will now be given in reference to the flow charts in FIGS. 5 through 10 and in reference to the pseudocode given below. As previously stated, the present invention comprises a method by which mobile, remote, adaptable controllers can optimally and dynamically control a multitude of resources within a given room such that policies determined for the room, controllers, and resources can be arbitrated in a manner that creates a meaningful work environment for users in the room. Furthermore this method allows the controller to dynamically choose one of various modes of operation, either singly or in combination, allowing the user of the controller a maximum of flexibility in interacting with the resources in the room.
In the current implementation, three modes of operation are given. Broadly, these modes are:
a) "MANUAL" MODE: A mode where information concerning the nature and state of all resources in the room is presented to the controller. The user of the controller then selects suitable resources to control until some further change in state.
b) "MC AUTOMATICALLY SEEKS A RESOURCE" MODE: A mode where the controller is engaged in an activity and seeks a resource to aid in that activity. The system chooses the most suitable available device in the room given various constraints placed on the choice.
c) "RESOURCE AUTOMATICALLY SEEKS A MC" MODE: A mode where the controller lets it be known that it is available to be a controller for resources looking for controllers. The system finds the most suitable resource among those currently looking for controllers to attach itself to the controller and to configure the controller for the purpose of having a user being able to control resource.
FIGS. 5 and 6 give a flow chart detailing the manual mode of resource allocation. Although the present implementation only allows the MC to make MANUAL requests, it can be appreciated that suitable changes to the pseudo code could enable other devices to make manual requests.
In a manual request, the MC agent determines that it would like to control a resource. The MC determines this from user interaction (for example, the user presses an icon) or from some calculation (for example, an automatic request based on time of day). The request can specify any combination of an ACTIVITY-TYPE, a DEVICE-TYPE or a specific DEVICE-NAME. For example, an ACTIVITY-TYPE might be "a high speed, black and white printing". A DEVICE-TYPE might be "a color monitor with sound". A DEVICE-NAME may be "a SPARC work station number 220.127.116.11". Any of these three parameters can be arbitrarily complex. Additionally, other parameters may be added without loss of generality.
The request is sent to the room agent. Using the ACTIVITY-TYPE, DEVICE-TYPE and DEVICE-NAME, the room agent creates a list which contains all possible resources that can satisfy these constraints. This list can contain many possible candidates, one candidate or none. If the list contains no candidates, the room agent sends a RESOURCE-DENIED message back to the requester.
The room agent then subjects the list to its room policy. For example, the room's primary occupant may install policies regarding interactions that the occupant has with visitors. Additionally, different rooms may have different policies: a conference room's policies might vary greatly from a cafeteria's policies.
The room policy acts as a filter and returns a subset of the list such that all members of the new list satisfy the room policy. If the list is empty, a RESOURCE-DENIED message is returned to the requester. If the list has greater than one member in it, it is further subjected to a suitability test. The suitability test returns a metric, say from "0" to "10", though other more complex metrics are possible, where "0" might mean "not suitable for the requested activity" and "10" is "perfectly suitable for the requested activity". The room agent selects the most suitable candidate. If no candidates are suitable the room agent returns a RESOURCE-DENIED message to the requester.
The room agent then forwards the request to the most suitable resource agent. The resource agent can either accept or reject the connection based on its own policies. At the simplest level, it may be already busy, and so reject the request. At a more complex level, the new request may be considered more important than its current connections, in which case, it will terminate its current connection and accept the new connection. If the resource is not busy, or can accept multiple connections, the resource agent will accept the connection. If the connection is denied, the resource agent sends the room agent a RESOURCE-DENIED message. If the connection is accepted the resource agent creates a security code number and attaches it to a RESOURCE-GRANTED message which it then sends to the room agent.
The room agent receives and then forwards either of these two responses to the requesting MC agent. If it is a denied message, the room agent continues trying other identified resources, in the order from most suitable to least suitable. MC is free to make a duplicate request in the future. If it is a granted message, the MC agent forms a RESOURCE-CONNECTION message and includes in it the security code passed to it by the room agent. This message is then sent directly to the resource agent. After the resource agent has verified the security code, full connection is established. This typically includes the resource sending the MC all "control panel" information, and the MC sending the resource information to rectify the resource to the current state of the MC. When connection is established both the MC and the resource agents send the room a STATE-CHANGE message indicating their new states.
The second and third modes of request are AUTOMATIC modes which can be initiated by either a resource or a MC respectively. FIGS. 7 and 8 detail the "MC AUTOMATICALLY SEEKS A RESOURCE" mode in flow chart form. FIGS. 9 and 10 detail the "RESOURCE AUTOMATICALLY SEEKS A MC" mode. The purpose of these automatic modes is to help create a seamless work context as a mobile computer moves from room to room. They also create, in the case where resources are automatically seeking MCs, a "tacit", helpful environment where "correct" interactions automatically happen a goal of ubiquitous computing. In general, how MCs automatically connect with resources and how resources connection with MCs, are symmetrical and will be described once in terms of "MC SEEKING RESOURCES" mode. A parallel set of messages and databases exist for "RESOURCE SEEKING MC" mode.
Initially, two conditions must be satisfied in order for an automatic connection to be made between a MC and a resource. First, a resource agent must send to the room agent a RESOURCE-AVAILABLE message. The room agent will then place the resource into the RESOURCE-AVAILABLE database. Secondly, an MC must request an automatic connection with a resource. An MC does this by sending a MC-AUTO-SEEKS-RESOURCE message to the ROOM AGENT. This message also specifies the resource type desired by a combination of ACTIVITY-TYPE, DEVICE-TYPE and DEVICE-NAME fields. The request can also specify a "CUT-OFF" or threshold, metric below which a resource is deemed unsuitable. The message is sent to the room agent and the request is entered into the MC-SEEKS-RESOURCE database.
Whenever the RESOURCE-AVAILABLE or MC-SEEKS-RESOURCE databases change, the room agent determines if any "matches" have been made which both satisfy the MC's needs and the room's policies. The room agent checks each entry in the two databases to see if it satisfies the room's policies. If the entry passes this criteria, it determines a suitability metric for the entry. The room agent then determines the most suitable candidate and makes sure that it is above the CUT-OFF suitability.
If there are no matches, nothing happens. If a match is found to a suitable resource then a MC-FOUND message is sent to the resource. The resource agent can accept or deny this connection based on its own policies. At this point, the sequence of events is the same as in the manual mode. After the connection is made, the resource and MC may remove their names from the RESOURCE-AVAILABLE and MC-SEEKS-RESOURCE databases. If it is in the internal policies of either the respective MC or resource to allow multiple connections, then the respective name is not removed from the database.
To aid the understanding of one skilled in the art, a pseudo code description of a present embodiment is given below. Table I below details the operation of the room agent as it facilitates requests and messages between resources and mobile controllers. .As can be seen, the room agent, upon start up, initializes several databases and enters into an infinitely looping main process that receives and processes messages from either resources or mobile controllers.
TABLE 1__________________________________________________________________________ROOM AGENT OPERATION__________________________________________________________________________MAIN()INIT MC DATABASEINIT RESOURCE DATABASEINIT MC-SEEKS-RESOURCE DATABASEINIT RESOURCE-SEEKS-MC DATABASEINIT MC-AVAILABLE DATABASEINIT RESOURCE-AVAILABLE DATABASEBROADCAST A GENERAL WHO-IS-THERE MESSAGE TO ALLMCS AND RESOURCESWHILE (FOREVER)/******Messages Coming In From MCS******//*State and context changes from MCS*/IF MC-NEW MESSAGE IS RECEIVEDFORM A NEW ENTRY IN MC DATABASEGET DEVICE-TYPE, DEVICE-NAME, USER-NAME FROMMESSAGEUPDATE ENTRY IN MC DATABASEDEVICE-LIST()ELSE IF MC-STATE-CHANGE MESSAGE IS RECEIVEDGET DEVICE-NAME FROM MESSAGEGET NEW CONNECTION INFORMATION FROM MESSAGEUPDATE ENTRY IN MC DATABASE WITH NEWCONNECTION INFORMATIONDEVICE-LIST()ELSE IF MC-GONE MESSAGE IS RECEIVEDGET DEVICE-NAME FROM MESSAGEDELETE ENTRY IN MC DATABASEDEVICE-LIST()/*An MC has decided to become available for automatic connections*/ELSE IF MC-AVAILABLE MESSAGE IS RECEIVEDGET DEVICE-NAME FROM THE MESSAGEADD MC TO MC-AVAILABLE DATABASECHECK-FOR-RESOURCES-SEEKING-MCS()ELSE IF MC-NOT-AVAILABLE MESSAGE IS RECEIVEDGET DEVICE-NAME FROM THE MESSAGEDELETE MC FROM THE MC-AVAILABLE DATABASECHECK-FOR-RESOURCES-SEEKING-MCS()/*An MC is seeking an automatic connection with a RESOURCE*/ELSE IF MC-AUTO-SEEKS-RESOURCE MESSAGE IS RECEIVEDGET DEVICE-NAME FROM THE MESSAGEGET THE DESIRED ACTIVITY-TYPE FROM THE MESSAGEGET THE DESIRED DEVICE-TYPE OR DEVICE-NAMEFROM THE MESSAGEADD MC AND INFORMATION TO MC-SEEKS-RESOURCEDATABASECHECK-FOR-MC-SEEKING-RESOURCES()ELSE IF MC-NOT-AUTO-SEEKS-RESOURCE MESSAGE ISRECEIVEDGET DEVICE-NAME FROM THE MESSAGEDELETE MC FROM THE MC-SEEKS-RESOURCESDATABASECHECK-FOR-MC-SEEKING-RESOURCES()/* An MC is seeking an immediate (manual) connection with aRESOURCE*/ELSE IF MC-SEEKS-RESOURCE MESSAGE IS RECEIVEDGET DEVICE-NAME FROM THE MESSAGEGET THE DESIRED ACTIVITY-TYPE FROM THE MESSAGEGET THE DESIRED DEVICE-TYPE OR DEVICE-NAMEFROM THE MESSAGEFORM A DEVICE-SPEC FROM THE INFORMATIONRESOURCE-LIST = ROOM-POLICY-ROUTINE(DEVICESPEC,`RESOURCE-DATABASE`)FOR R IN RESOURCE-LISTMC-GRANTED = TRY-RESOURCES(RESOURCE-LIST,DEVICE-SPEC)IF MC-GRANT IS NOT NULL FORWARD MC-GRANTED TO MC BREAK FROM FOR LOOPELSE IF CHECK IS NULL CONTINUE IN FOR LOOPEND IFEND FOR/*An MC denied connection to a RESOURCEELSE IF RESOURCE-DENIED MESSAGE IS RECEIVEDGET DEVICE-NAME FROM MESSAGEFORWARD MESSAGE TO THE RESOURCE/*****Messages Coming in from Resources******//*Changes in state of RESOURCES*/IF RESOURCE-NEW MESSAGE IS RECEIVEDFORM A NEW ENTRY IN RESOURCE DATABASEGET DEVICE-TYPE, DEVICE-NAME, USER-NAME FROMMESSAGEUPDATE ENTRY IN RESOURCE DATABASEDEVICE-LIST()ELSE IF RESOURCE-STATE-CHANGE MESSAGE IS RECEIVEDGET DEVICE-NAME FROM MESSAGEGET NEW CONNECTION INFORMATION FROM MESSAGEUPDATE ENTRY IN RESOURCE DATABASE WITH NEWCONNECTION INFORMATIONDEVICE-LIST()ELSE IF RESOURCE-GONE MESSAGE IS RECEIVEDGET DEVICE-NAME FROM MESSAGEDELETE ENTRY IN RESOURCE DATABASEDEVICE-LIST()/*A RESOURCE has decided to become available for automaticconnections*/ELSE IF RESOURCE-AVAILABLE MESSAGE IS RECEIVEDGET DEVICE-NAME FROM THE MESSAGEADD RESOURCE TO RESOURCE-AVAILABLE DATABASECHECK-FOR-MCS-SEEKING-RESOURCES()ELSE IF RESOURCE-NOT-AVAILABLE MESSAGE IS RECEIVEDGET DEVICE-NAME FROM THE MESSAGEDELETE MC FROM THE RESOURCE-AVAILABLEDATABASE/*A RESOURCE is seeking an automatic connection with a MC*/ELSE IF RESOURCE-AUTO-SEEKS-MC MESSAGE IS RECEIVEDGET DEVICE-NAME FROM THE MESSAGEGET THE DESIRED ACTIVITY-TYPE FROM THE MESSAGEGET THE DESIRED DEVICE-TYPE OR DEVICE-NAMEFROM THE MESSAGEADD RESOURCE AND INFORMATION TO RESOURCE-SEEKS-MC DATABASECHECK-FOR-RESOURCES-SEEKING-MCS()ELSE IF RESOURCE-NOT-AUTO-SEEKS-MC MESSAGE ISRECEIVEDGET DEVICE-NAME FROM THE MESSAGEDELETE MC FROM THE RESOURCE-SEEKS-MC DATABASE/*A RESOURCE has denied a connection to a MC*/ELSE IF MC-DENIED MESSAGE IS RECEIVEDGET DEVICE-NAME FROM MESSAGEFORWARD THE MC-DENIED MESSAGE TO MC AGENTEND WHILEEND MAIN.CHECK-FOR-RESOURCES-SEEKING-MCS()FOR R IN THE RESOURCE-SEEKING-MC DATABASEGET DEVICE-TYPE, USER-TYPE, ACTIVITY-TYPE FROM RFORM DEVICE-SPEC FROM THIS INFORMATIONMC-LIST = ROOM-POLICY-ROUTINE(DEVICE-SPEC, `MC-AVAILABLE`)FOR M IN MC-AVAILABLE DATABASEFORM MC-GRANTED MESSAGESEND MESSAGE TO RESOUCE RGET RESPONSEIF RESPONSE IS `RESOURCE-GRANTED` FORWARD MESSAGE TO MC M BREAK FROM FOR LOOPEND IFEND FOREND CHECK-FOR-RESOURCES-SEEKING-MCS.CHECK-FOR-MCS-SEEKING-RESOURCES()FOR M IN THE MC-SEEKING-RESOURCE DATABASEGET DEVICE-TYPE, USER-TYPE, ACTIVITY-TYPE FROM MFORM DEVICE-SPEC FROM THIS INFORMATIONRESOURCE-LIST = ROOM-POLICY-ROUTINE(DEVICE-SPEC, `RESOURCE-AVAILABLE`)FOR R IN RESOURCE-LISTFORM MC-GRANTED MESSAGESEND MESSAGE TO RESOUCE RGET RESPONSEIF RESPONSE IS `RESOURCE-GRANTED` FOWARD MESSAGE TO MC M BREAK FROM FOR LOOPEND IFEND FOREND CHECK-FOR-MCS-SEEKING-RESOURCES.ROOM-POLICY-ROUTINE(DEVICE-SPEC,DEVICE-TYPE)/*Obtain a list of all devices that either the MC or the RESOURCE(depending on who is asking for the connection) that can be connectedto. Typically this is either a DEVICE-TYPE or a single DEVICE-NAME.*/DEVICES = LIST OF ALL ALLOWABLE DEVICES FROM DEVICE-SPEC USING THE DATABASE SPECIFIED IN DEVICE-TYPE/* POLICY returns a list of all devices which are allowed to beconnected to from the DEVICES list, given the policies of this roomand the DEVICE-SPEC. The DEVICE-SPEC includes the ACTIVITY-TYPE, USER-TYPE AND DEVICE-TYPE. The policy can also useknowledge of the types of connections as specified in the MCDATABASE and the RESOURCE DATABASE.*/DEVICES = POLICY(DEVICES, DEVICE-SPEC)/*SUITABILITY returns a metric (a number) depending on the qualityof the match between the ACTIVITY-TYPE and the DEVICE-TYPE.Typically each room maintains a SUITABILITY-TABLE that has thisinformation. A metric of "0" indicates that the device is not capable ofperforming that activity. A metric of "10" indicates that it is the"best"at performing the activity. The DEVICE-SPEC can contain a CUT-OFF below which the DEVICES can be said to SUITABLE. Then orderthis list such that the most suitable are first, and return this list.*/NEW-LIST EQUALS NULL.FOR D IN DEVICESMETRIC = SUITABILITY(D,ACTIVITY-TYPE)IF METRIC > CUT-OFF THENADD D TO NEW-LISTEND IFEND FORNEW-LIST = ORDER-LIST(NEW-LIST)/*Orders the list*/RETURN NEW-LISTEND ROOM-POLICY-ROUTINE.TRY-RESOURCES(RESOURCE-LIST, DEVICE-SPEC)FOR R IN RESOURCE-LISTFORM MC-GRANTED MESSAGEADD DEVICE-SPECSEND MESSAGE TO RGET RESPONSEIF THE RESPONSE IS RESOURCE-GRANTED MESSAGERETURN RESOURCE-GRANTED MESSAGEEND IFEND FORRETURN NULLEND TRY-RESOURCE.DEVICE-LIST()SET MC-LIST TO EMPTYFOR ALL MCS IN MC DATABASEADD NAME TO MC-LISTEND FORSET DEVICE-LIST TO EMPTYFOR ALL RESOURCES IN RESOURCE DATABASEADD FULL ENTRY TO DEVICE-LISTEND FORFOR ALL MCS IN MC DATABASEADD FULL ENTRY TO DEVICE-LISTEND FORFOR ALL MCS IN MC-LISTSEND DEVICE-LIST TO MC AGENTEND FOREND DEVICE-LIST.END DEVICE-LIST.__________________________________________________________________________
Table 2 below details the operation of a mobile controller as implemented in the presently preferred embodiment.
TABLE 2__________________________________________________________________________MOBILE CONTROLLER ("MC") AGENT OPERATION__________________________________________________________________________MAIN()WHILE (FOREVER)/*If there are state or context changes tell the ROOM AGENT*/IF MC ENTERS INTO NEW ROOMUSING INFRASTRUCTURE GET AND CACHE ROOMAGENT ADDRESSFORM MC-NEW MESSAGEADD DEVICE-TYPE, DEVICE-NAME, USER-NAMESEND TO ROOM AGENTELSE IF MC'S STATE CHANGES BY CONNECTING ORDISCONNECTING TO A RESOURCEFORM MC-STATE CHANGE MESSAGEADD DEVICE-NAMEADD WHETHER IT IS CONNECT OR DISCONNECTADD SECURITY-CODE OF CONNECTION/* for identification*/SEND TO ROOM AGENTELSE IF MC LEAVES THE ROOMFORM A MC-GONE MESSAGEADD DEVICE-NAMESEND TO THE ROOM AGENT/*If MC will accept automatic connections from RESOURCES*/ELSE IF THE MC DECIDES TO ACCEPT AUTOMATIC RESOURCECONNECTIONSFORM MC-AVAILABLE MESSAGEADD DEVICE-NAMESEND TO THE ROOM AGENTELSE IF THE MC DECIDES TO NO LONGER ACCEPTAUTOMATIC RESOURCE CONNECTIONSFORM MC-NOT-AVAILABLE MESSAGEADD DEVICE-NAMESEND TO THE ROOM AGENT/*If the MC is seeking automatic connection to a RESOURCE*/ELSE IF THE MC WISHES AN AUTOMATIC CONNECTION TO ARESOURCEFORM MC-AUTO-SEEKS-RESOURCE MESSAGEADD DEVICE-NAMEADD ACTIVITY-TYPE DESIREDIF SPECIFIC RESOURCE TYPE IS DESIREDADD DEVICE-TYPE DESIREDELSE IF SPECIFIC RESOURCE DESIREDADD DEVICE-NAMEEND IFSEND TO ROOM AGENTELSE IF THE MC NO LONGER WISHES AN AUTOMATICCONNECTION TO A RESOURCEFORM A MC-NOT-AUTO-SEEKS-RESOURCE MESSAGEADD DEVICE-NAMESEND TO ROOM AGENT/*If the MC seeks a connection with a RESOURCE*/ELSE IF THE MC WISHES AN IMMEDIATE OR MANUALCONNECTION TO A RESOURCEFORM A MC-SEEKS-RESOURCE MESSAGEADD DEVICE-NAMEADD ACTIVITY-TYPE DESIREDIF SPECIFIC RESOURCE TYPE IS DESIREDADD DEVICE-TYPE DESIREDELSE IF SPECIFIC RESOURCE DESIREDADD DEVICE-NAMEEND IFSEND TO ROOM AGENT/*If the MC receives a DEVICE-LIST from the ROOM AGENT*/ELSE IF THE MC RECEIVES A DEVICE-LIST FROM THE ROOMAGENTCACHE THE LIST OF DEVICES AND THEIR ATTRIBUTESIF MC WISHES TO DISPLAY THE LISTDISPLAY THE LISTEND IF/*The MC has been granted a RESOURCE*/ELSE IF THE MC RECEIVES A RESOURCE-GRANTED MESSAGEFROM MESSAGE GET AND CACHE SECURITY-CODEFROM MESSAGE GET DEVICE-TYPE, DEVICE-NAME,ACTIVITY-TYPE & USER-TYPE OF RESOURCEAND FORM INTO RESOURCE-SPECCHECK = MC-POLICY-ROUTINE(RESOURCE-SPEC)/*MC-POLICY-ROUTINE executes MC and user policiesof connections.*/IF CHECK = YESFORM RESOURCE-CONNECTION MESSAGEADD DEVICE-NAMEADD SECURITY-CODE TO MESSAGESEND TO RESOURCE AGENTSTART FULL CONNECTION WITH RESOURCEFORM MC-STATE-CHANGE MESSAGEADD DEVICE-NAMEADD WHETHER IT IS CONNECT OR DISCONNECTADD SECURITY-CODE OF CONNECTION/* for identification*/SEND TO ROOM AGENTELSE IF CHECK = NOFORM RESOURCE-DENIED MESSAGEADD DEVICE-NAMEADD SECURITY-CODESEND TO ROOM AGENTEND ELSEELSE IF THE MC RECEIVES A RESOURCE-DENIED MESSAGELET THE INTERESTED PARTIES KNOWELSE IF THE MC RECEIVES A MC-DENIED MESSAGELET THE INTERESTED PARTIES KNOW/*The MC gets a "ping" from the ROOM AGENT*/ELSE IF THE MC RECEIVES A WHO-IS-THERE MESSAGEFORM MC-NEW MESSAGEADD DEVICE-TYPE, DEVICE-NAME, USER-NAMESEND TO ROOM AGENTEND IFEND WHILEEND MAIN.__________________________________________________________________________
Table 3 below describes in a greater detail the operation of resource agent in the presently preferred embodiment.
TABLE 3__________________________________________________________________________RESOURCE AGENT OPERATION__________________________________________________________________________MAIN()WHILE (FOREVER)IF RESOURCE ENTERS INTO NEW ROOM OR STARTS UPUSING INFRASTRUCTURE GET AND CACHE ROOMAGENT ADDRESSFORM RESOURCE-NEW MESSAGEADD DEVICE-TYPE, DEVICE-NAME, USER-NAMESEND TO ROOM AGENTELSE IF RESOURCE'S STATE CHANGES BY CONNECTING ORDISCONNECTING TO A MCFORM RESOURCE-STATE CHANGE MESSAGEADD DEVICE-NAMEADD WHETHER IT IS CONNECT OR DISCONNECTADD SECURITY-CODE OF CONNECTION/* for identification*/SEND TO ROOM AGENTELSE IF RESOURCE LEAVES THE ROOM OR IS TURNED OFFFORM A RESOURCE-GONE MESSAGEADD DEVICE-NAMESEND TO THE ROOM AGENT/*If Resource will accept automatic connections from MCS*/ELSE IF THE RESOURCE DECIDES TO ACCEPT AUTOMATIC MCCONNECTIONSFORM RESOURCE-AVAILABLE MESSAGEADD DEVICE-NAMESEND TO THE ROOM AGENTELSE IF THE RESOURCE DECIDES TO NO LONGER ACCEPTAUTOMATIC MC CONNECTIONSFORM RESOURCE-NOT-AVAILABLE MESSAGEADD DEVICE-NAMESEND TO THE ROOM AGENT/*If the RESOURCE is seeking automatic connection to a MC*/ELSE IF THE RESOURCE WISHES AN AUTOMATICCONNECTION TO A MCFORM RESOURCE-AUTO-SEEKS-MC MESSAGEADD DEVICE-NAMEADD ACTIVITY-TYPE DESIREDIF SPECIFIC MC TYPE IS DESIREDADD DEVICE-TYPE DESIREDELSE IF SPECIFIC MC DESIREDADD DEVICE-NAMEEND IFSEND TO ROOM AGENTELSE IF THE RESOURCE NO LONGER WISHES AN AUTOMATICCONNECTION TO A MCFORM A RESOURCE-NOT-AUTO-SEEKS-MC MESSAGEADD DEVICE-NAMESEND TO ROOM AGENT/*The RESOURCE has been granted a MC */ELSE IF THE RESOURCE RECEIVES A MC-GRANTED MESSAGEFROM MESSAGE GET DEVICE-TYPE, DEVICE-NAME,ACTIVITY-TYPE & USER-TYPE OF RESOURCEAND FORM INTO MC-SPECCHECK = RESOURCE-POLICY-ROUTINE(MC-SPEC)/* RESOURCE-POLICY-ROUTINE executes RESOURCE anduser policies of connections.*/IF CHECK = YESFORM RESOURCE-GRANTED MESSAGEADD DEVICE-NAMECREATE A SECURITY-CODE AND CACHE ITADD SECURITY-CODE TO MESSAGESEND TO ROOM AGENTELSE IF CHECK = NOFORM MC-DENIED MESSAGEADD DEVICE-NAMESEND TO ROOM AGENTEND ELSE/* The RESOURCE gets a "ping" from the ROOM AGENT */ELSE IF THE RESOURCE RECEIVES A WHO-IS-THEREMESSAGEFORM RESOURCE-NEW MESSAGEADD DEVICE-TYPE, DEVICE-NAME, USER-NAMESEND TO ROOM AGENT/*The RESOURCE receives a connection from a MC*/ELSE THE RESOURCE RECEIVES A RESOURCE-CONNECTFROM A MCGET SECURITY-CODE FROM MESSAGEIF SECURITY-CODE IS NOT VALIDCONTACT OPERATOR ABOUT SECURITY VIOLATIONELSEOPEN FULL CONNECTION WITH MCSEND CONTROL INFORMATION TO MCRECTIFY STATE OF RESOURCE TO MC/*Might require multiple messages*/FORM RESOURCE-STATE-CHANGE MESSAGEADD DEVICE-NAMEADD WHETHER ITS CONNECT OR DISCONNECTADD SECURITY-CODE OF CONNECTIONSEND TO ROOM AGENTEND IFEND IFELSE IF THE RESOURCE RECEIVES A RESOURCE-DENIEDMESSAGEGET SECURITY-CODE FROM THE MESSAGELET INTERESTED PARTIES KNOWEND WHILEEND MAIN.__________________________________________________________________________
In summary, the present invention comprises a method by which mobile, remote, adaptable controllers can dynamically control a multitude of resources within a given region (e.g. a room) such that policies determined for the region, controllers, and resources can be arbitrated in a manner that creates a meaningful work environment for users in the region. Furthermore, this method allows a controller to dynamically choose one of various modes of operation, either singly or in combination, allowing the user of the controller a maximum of flexibility in interacting with the resources in the region.
Three modes of allocation have been described in relation to the presently claimed method: manual mode, and two automatic modes. The manual mode allows users, having access to controllers, to select among various resources that are available and meet region-level policies. The two automatic modes give the user a seamless computing environment by allowing controllers and resources to automatically connect to one another. The automatic allocations are performed with respect to region-level policies and with respect to the availability and suitability of devices.
This method maximizes the control of the resources of a region such that the control of the most suitable resources is dynamically situated in the hands of the user on an adaptable mobile controller.
Patent Citations
Referenced by
Legal Events
Original Image

subset: commoncrawl


text:
Facebook LikesSurplus food for the homeless is just an app away
Google Plus SharesHappy birthday, Sony Walkman! (It's 36 years old today)
The Buffalo AirStation Extreme AC1900 is one of the first routers that sports the DD-WRT NXT, but will the new open-source firmware make it worth the investment? Here's CNET's full review.18 days ago
Price: $192.99 - $193.70 Check prices
For home offices looking to upgrade printers, the HP Officejet 4630 offers 4-in-1 functionality, cloud printing, an affordable price tag and compatibility with HP's latest Instant Ink replacement service.24 days ago
Price: $69.99 - $99.99 Check prices


text:
Originally written on Fox Sports | Last updated 2/28/13
DETROIT - DECEMBER 13: Ales Hemsky #83 and Shawn Horcoff #10 of the Edmonton Oilers celebrate a goal against the Detroit Red Wings at Joe Louis Arena on December 13, 2007 in Detroit, Michigan. (Photo by Dave Sandford/Getty Images)
Ales Hemsky scored a goal and two assists, Jeff Petry added a goal and an assist, and Devan Dubnyk made 33 saves in helping the Edmonton Oilers roll to a 5-1 victory over the Dallas Stars on Thursday night. The win snapped Edmonton's six-game losing streak against the Stars, including two meetings earlier this season and represented their first victory in Dallas (0-10-1) since Dec. 8, 2006. Sam Gagner, Justin Schultz and Ben Eager also scored for the Oilers, while Jordan Eberle added two assists. Jaromir Jagr scored Dallas' goal, while Kari Lehtonen made 33 saves in his return to the Stars' net after missing five games with a groin injury. He made a number of big saves and was victimized by two shots from the corner that deflected off teammates in front of him.
Comments are closed.
What do you think?To leave a comment, you can:
All Sports News
Delivered to your inbox
You'll also receive Yardbarker's daily Top 10, featuring the best sports stories from around the web. Customize your newsletter to get articles on your favorite sports and teams. And the best part? It's free!
Follow us on Twitter
|Best of Yardbarker
|NFL News
|MLB News
Today's Best Stuff
For Bloggers
Join the Yardbarker Network for more promotion, traffic, and money.
Company Info
What is Yardbarker?
Yardbarker is the largest network of sports blogs and pro athlete blogs on the web. This site is the hub of the Yardbarker Network, where our editors and algorithms curate the best sports content from our network and beyond.
|© 2015 Yardbarker, Inc. All rights reserved. Use of this website (including any and all parts and components) constitutes your acceptance of these Terms of Use and Privacy Policy. (What's New?)


text:
San Diego is a proud military town with tens of thousands of airmen, sailors and Marines calling "America's Finest City" home. San Diegans are constantly reminded of the military's local presence as we drive to work or run errands. Whether passing by Miramar Marine Corps Air Station on Interstate 15 or Camp Pendleton Marine Corps base Pendleton on I-5, the military is simply a part of our daily lives. Yes, San Diego is a proud military town indeed.
Not only is the military a staple in San Diego, but so too is the regional federal government workforce and the defense industry that supports it. A recent study conducted by the San Diego Military Advisory Council estimated that the military pumps nearly $21 billion annually into the local economy and 311,000 San Diegans have defense-related positions, constituting approximately 25 percent of the regional work force.
We all likely have a friend or relative who is employed by a local defense contractor. These local civilian contractors share their military counterparts' love of country and commitment to national security. San Diego's ship-repair industry is one of many examples where military, civilian government personnel and civilian contractors work together to support our naval fleet. The hardworking men and women on our waterfront work day and night – sometimes through the night – to provide us with the security that comes with having the world's most capable navy.
Unfortunately, the troops stationed in San Diego, our local government employees and the local civilian contractor community is slated to suffer real economic harm if Congress doesn't act to change so-called sequestration – the draconian Department of Defense cuts that take effect Jan. 2.
Congress and President Obama included sequestration as part of the Budget Control Act of 2012 as an automatic trigger mechanism that was to take effect in the event Democrats and Republicans failed to agree on certain 2013 mandatory cuts. Unlike past budgetary years, sequestration can't be overridden by a continuing resolution or any other type of temporary fix. Sequestration is the law of the land, and here's the real shocker: Unless Democrats and Republicans find a compromise, $500 billion will be slashed from the Pentagon's budget over the next decade. To make matters worse, this massive reduction would come on top of the $489 billion in Pentagon-related reductions over the next 10 years that are currently culled out in the 2013 proposed budget by the Senate. These figures are downright frightening.
Defense Secretary Leon Panetta has described sequestration as a "disaster" which will devastate the struggling job market and undermine our national defense. The situation is so dire that many large defense contractors are expected to send out layoff notice within the next few weeks, and a significant amount of small defense contractors – from the sole-proprietor electrician to the mom-and-pop technical services provider – are expected to go out of business. What's more, aside from the military impact and the economic hit, sequestration will impact the day-to-day functioning of the Department of Defense. Some defense industry experts have speculated that the Pentagon will spend millions to simply administer the red tape associated with canceling thousands of existing government contracts.