DETAILED ACTION
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
This Office Action is in response to claims filed 06/15/2026.
Claims 1-4, 6-10, 12-13 and 15-21 are currently amended.
Claims 5 and 14 are cancelled.
Claims 22-23 are new.
Claims 1-4, 6-10, 12-13 and 15-23 are pending.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1, 4-5, 8-9, 10, 14, and 17-18 are rejected under 35 U.S.C. 103(a) as being unpatentable over Moeller et al. (US 20090254601 A1) (hereinafter Moeller) in view of Iyer et al. (US 20120102504 A1) (hereinafter Iyer), in further view of Luna et al. (US 20120179801 A1) (hereinafter Luna), and in further view of Palanisamy et al. (US 20170150332 A1) (hereinafter Palanisamy).
Regarding Claim 1, Moeller teaches:
A method comprising: creating, by a first application on a first device, a first object when the first application detects that first information in the first application is sent to a second application:
“A distributed data object may be created within an application and transmitted to other applications that are interested in data objects meeting a certain criteria met by the newly created object”, (Moeller: ¶042), “The client library allows an application to create shared data, send it to other applications”, (Moeller: ¶088), “a data object 22A having an identifier of OBJ01, which is simultaneously existing as another instantiation 22B within application 102”, (Moeller: ¶027), “a first application sends a request to invoke a service (procedure) by a second application” … “In response to the invoked change” … “the second application compares the change to the subscription's data set description” … “match the data set, forwards a message, step 860, to the first application indicating a change in the status of the data objects within the data set”, (Moeller: ¶348, Fig 8), “Management Server 104 creates a Subscription Data Object for Client Library 114 with the Subscription Query created by Client Library 116”, (Moeller: ¶346), “Associated with each application is a respective client library 114, 116 and 118”, (Moeller: ¶034), “When data objects arrive at a client library” … “If not, a copy of the object is created within the pool”, (Moeller: ¶177). Examiner notes: The Client Library creates a Subscription query which the Management service uses to create a Subscription Data Object AFTER the data arrives at the client pool.
generating, by the first application, a unique identifier of the first object;
“Distributed data objects can be implemented” … “the following features: [0044] A globally unique identifier” … “This identifier (e.g., OBJ001, OBJ002, etc.) distinctly identifies this specific data object 302, 304” … “identifier can be a string of characters that is automatically generated when a data object is first created” … “the application creating the data object”, (Moeller: ¶043).
sending, by the first application, the unique identifier to the second application;
“This identifier (e.g., OBJ001, OBJ002, etc.) distinctly identifies this specific data object”, (Moeller: ¶043), “Reference parameters have the globally unique id of the referenced data object sent along in the parameter message”, (Moeller: ¶278), “sends the procedure call message to that application” … “a calling client library can send the procedure call message directly to the application providing the procedure”, (Moeller: ¶279).
receiving, by the first application from the second application, a subscription request based on the unique identifier
“registration module associated that accepts subscriptions from subscribing applications” … “applications on the network, compares the data object in the data message with one or more of the subscriptions, and selectively notifies the subscribing applications in response to the comparison”, (Moeller: ¶011), “procedure indicates a subscription desire for future updates, the system establishes an event subscription that matches the returned results”, (Moeller: ¶284), “Management Server 104 receives the subscription request”, (Moeller: ¶335), “registers this event subscription on behalf of the calling procedure using a method provided by the client library”, (Moeller: ¶284), “identifier (e.g., OBJ001, OBJ002, etc.) distinctly identifies this specific data object 302, 304”, (Moeller: ¶043),
wherein the subscription request comprises identification information of the second application;
“registration module associated that accepts subscriptions from subscribing applications” … “applications on the network, compares the data object in the data message with one or more of the subscriptions, and selectively notifies the subscribing applications in response to the comparison”, (Moeller: ¶011), “the subscription request discovers that a broadcast data object exists that has created a broadcast channel for the data object type the client is creating a subscription”, (Moeller: ¶250), “Distributed data objects can be implemented as data containers having, by way of example, the following features: [0044] A globally unique identifier”, (Moeller: ¶43), “This data object contains the data set definition statement and an indicator of which application created the subscription”, (Moeller: ¶205), “FIG. 5 depicts a subscription object in accordance with one embodiment of the invention;” … “ID = OBJ011” … “ClientLibrary” … “114” … “118” … “116”, (Moeller: ¶019; Fig 5 Parts 500, 502, 504, 506), “Associated with each application is a respective client library 114, 116 and 118”, (Moeller: ¶034). Examiner notes: the subscription request contains the client library ids of where subscription request is to be sent to.
verifying, by the first application, whether the second application has permission to subscribe to the first object; … based on the first application verifying that the second application has the permission to subscribe to the first object,
“An event subscription is set up by an application” … “calling an appropriate method on the client library” … “The client library can create an event subscription by sending a message to a management server to register a subscription” … “The management server creates a data object” … “event subscription data object type, representing the new subscription. This data object contains the data set definition statement and an indicator of which application created the subscription”, (Moeller: ¶205), “every management server and applicable client library in the system that needs to know the list of event subscriptions will always be up-to-date with the current list of subscription”, (Moeller: ¶206), “the read permissions are checked for the corresponding library session's user and the user's groups”, (Moeller: ¶259), “If the result is that the session is not allowed to read the object, it is not sent to the application”, (Moeller: ¶259), “Data objects also exist that define access control permissions”, (Moeller: ¶258), “A read permission is defined by writing a data retrieval filter that describes a set of data that either can (allow) or cannot (deny) be read by a group or a user”, (Moeller: ¶259).
adding, by the first application in response to the subscription request, the identification information to a subscription list of the first object;
“the subscription request discovers that a broadcast data object exists that has created a broadcast channel for the data object type the client is creating a subscription”, (Moeller: ¶250), “Distributed data objects can be implemented as data containers having, by way of example, the following features: [0044] A globally unique identifier”, (Moeller: ¶43), “Management Server 104 will note that Client Library 114 has subscribed to changes to the appropriate objects in its list of Subscription Data Objects”, (Moeller: ¶346), “This data object contains the data set definition statement and an indicator of which application created the subscription”, (Moeller: ¶205), “FIG. 5 depicts a subscription object in accordance with one embodiment of the invention;” … “ID = OBJ011” … “ClientLibrary” … “114” … “118” … “116”, (Moeller: ¶019; Fig 5 Parts 500, 502, 504, 506), “Associated with each application is a respective client library 114, 116 and 118”, (Moeller: ¶034). Examiner notes: the subscription request contains the client library ids of where subscription request is to be sent to, each application has a respective client id.
querying, by an operating system of the first device when the operating system of the first device is triggered to forcibly kill applications running on the first device to release system resources due to a limitation of the system resources, for the first application, querying, by the operating system of the first device, the subscription list of the first object;
“the subscription request discovers that a broadcast data object exists that has created a broadcast channel for the data object type the client is creating a subscription”, (Moeller: ¶250), “Distributed data objects can be implemented as data containers having, by way of example, the following features: [0044] A globally unique identifier”, (Moeller: ¶43), “Management Server 104 will note that Client Library 114 has subscribed to changes to the appropriate objects in its list of Subscription Data Objects”, (Moeller: ¶346), “This data object contains the data set definition statement and an indicator of which application created the subscription”, (Moeller: ¶205), “FIG. 5 depicts a subscription object in accordance with one embodiment of the invention;” … “ID = OBJ011” … “ClientLibrary” … “114” … “118” … “116”, (Moeller: ¶019; Fig 5 Parts 500, 502, 504, 506), “Associated with each application is a respective client library 114, 116 and 118”, (Moeller: ¶034). Examiner notes: the subscription request contains the client library ids of where subscription request is to be sent to, each application has a respective client id.
and prolonging, by the operating system, a time to live of the first application when the subscription list comprises the identification information.
“the subscription request discovers that a broadcast data object exists that has created a broadcast channel for the data object type the client is creating a subscription”, (Moeller: ¶250), “Distributed data objects can be implemented as data containers having, by way of example, the following features: [0044] A globally unique identifier”, (Moeller: ¶43), “Management Server 104 will note that Client Library 114 has subscribed to changes to the appropriate objects in its list of Subscription Data Objects”, (Moeller: ¶346) “This data object contains the data set definition statement and an indicator of which application created the subscription”, (Moeller: ¶205), “FIG. 5 depicts a subscription object in accordance with one embodiment of the invention;” … “ID = OBJ011” … “ClientLibrary” … “114” … “118” … “116”, (Moeller: ¶019; Fig 5 Parts 500, 502, 504, 506), “Associated with each application is a respective client library 114, 116 and 118”, (Moeller: ¶034). Examiner notes: the subscription request contains the client library ids of where subscription request is to be sent to, each application has a respective client id.
Further regarding Claim 1, Moeller fails to teach:
querying, by an operating system of the first device when the operating system of the first device is triggered to forcibly kill applications running on the first device to release system resources due to a limitation of the system resources, for the first application, querying, by the operating system of the first device, the subscription list of the first object;
However, Iyer teaches: “with operating system 102 managing applications 104. The management of applications 104 includes automatically shutting down one or more applications 104”, (Iyer: ¶014), “collection module 106 collects various information regarding characteristics of applications 104 and/or the resources of computing device 100”, (Iyer: ¶016), “tracking module 112 and determines when a threshold value associated with a particular characteristic of an application 104 and/or a resource of computing device 100 has been met application selection module 116 selects one or more of applications 104 to shut down”, (Iyer: ¶018), “having a high probability of freeing up resources for other applications to use is the application that is shut down”, (Iyer: ¶055).
and prolonging, by the operating system, a time to live of the first application when the subscription list comprises the identification information.
However, Iyer teaches: “The lifetime or life of an application 104 refers to the time period when the application is running”, (Iyer: ¶014), “If the threshold value has not been met, then the multiple applications are allowed to continue running”, (Iyer: Abstract), “TABLE I Characteristic Threshold Value Application age 3 hours (since the application was last in the foreground)”, (Iyer: Table 1), “The age of an application 104 refers to how long ago…”, (Iyer: ¶016), “threshold value associated with a particular characteristic of application 104 and/or a resource of computing device 100 has been met, application selection module 116 selects one or more of applications 104 to shut down”, (Iyer: ¶018), “The particular threshold values can be set, for example, based on empirical analysis of the operation of different devices”, (Iyer: ¶026), “threshold values include a first threshold value associated with an age of one of the multiple applications”, (Iyer: Claim 20). Examiner notes: A threshold value for the age of an application can be set by the operating system and can be ignored and continued to allow to process prolonging its lifetime, however Iyer does not teach a dynamic threshold value that can be increased to keep processing an application.
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine querying, by an operating system of the first device when the operating system of the first device is triggered to forcibly kill applications running on the first device to release system resources due to a limitation of the system resources, for the first application, querying, by the operating system of the first device, and prolonging, by the operating system, a time to live of the first application of Iyer with the methods and systems of Moeller resulting in an operating system that can terminate jobs if resources run thin or allow jobs to process past expiration if resources permit. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “alleviate the user of some of the burden of managing multiple applications on his or her computing device”, (Iyer: ¶056).
Further regarding Claim 1, Moeller in view of Iyer fails to teach:
prolonging, by the operating system, a time to live … wherein prolonging the time to live
However, Luna teaches: “The resolver DNS cache is typically maintained by the operating system and the time to live of the cache entries are either specified by the operating system or configured via the operating system”, (Luna: ¶058), “maintains and uses the cached DNS entries” … “for a time period that is longer than the TTL typical of a DNS resolver”, (Luna: ¶051), “The increased TTL allows for a reduction in the network traffic related to DNS queries”, (Luna: ¶051)” the time period with which DNS records can be maintained by the harmonization component to be configurable and typically also dynamically adjustable”, (Luna: ¶062).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine prolonging, by the operating system, a time to live … wherein prolonging the time to live of Luna with the methods and systems of Moeller in view of Iyer resulting in an operating system that could increase the TTL of running applications. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “identify or detect long poll requests, possible long poll requests” … “but not limited to, a long-held HTTP request, a persistent connection enabling COMET style push, request for HTTP streaming, etc”, (Luna: ¶362).
Lastly regarding Claim 1, Moeller in view of Iyer and Luna fails to teach:
wherein adding the identification information to the subscription list indicates a collaborative relationship between the first application and the second application and to provide a service; … maintains an application collaboration function between the first application and the second application and to provide the service.
However, Palanisamy teaches: “An application may send an event subscription to the ADDS 322 and provide a list of application identifiers for which it should be notified of events occurring with those applications”, (Palanisamy: ¶497), “The MTC application 216 may be a MTC communication endpoint that may interact with SCSs 212, AS MTC applications, or other UE MTC applications”, (Palanisamy: ¶16), “As long as the application ID is known, any entity can send a message to that application, so long as the sending application/end node is authorized to do so and is interfaced to an ADDS client 324”, (Palanisamy: ¶72), “Application Data Delivery Service (ADDS) which facilitates application data transfer between applications”, (Palanisamy: ¶34), “The ADDS data transfer procedure is the procedure used by an application to transfer data using ADDS. This procedure enables the applications residing at the ADDS end nodes (SCS/UE) to send application specific data using ADDS. An ADDS end node uses the application identifier as the destination identifier and passes the application data and its characteristics to the underlying ADDS client”, (Palanisamy: ¶435). Examiner notes: for as long as application IDs are known, communication between applications is maintained.
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine wherein adding the identification information to the subscription list indicates a collaborative relationship between the first application and the second application and to provide a service; … maintains an application collaboration function between the first application and the second application and to provide the service of Palanisamy with the methods and systems of Moeller in view of Iyer and Luna resulting in a system with two applications communicating with one another for as long as they are subscribed to one another. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “may provide more application-aware services as well as more efficient transport services to applications than just the QoS and IP flow control”, (Palanisamy: ¶31), “Application awareness can also make triggering more efficient” … “decisions can be made more intelligently or efficiently by the core network with assistance from the SCS”, (Palanisamy: ¶032).
Regarding Claim 4, Moeller teaches:
wherein the subscription request is received when the second application has permission to read the unique identifier
“All queries, persists, posts, subscription requests, and sending of monitor and statistics data occurs on the given management server's channel”, (Moeller: ¶107), “The infrastructure 15 also provides” … “permissions for applications such that they can only write and read specific data”, (Moeller: ¶032, Fig 1), “Data objects also exist that define access control permissions. Access control permissions can be assigned to groups and users”, (Moeller: ¶258), “the read permissions are checked for the corresponding library session's user and the user's groups”, (Moeller: ¶259), “If the result is that the session is not allowed to read the object, it is not sent to the application”, (Moeller: ¶259), “Management Server 104 receives the subscription request as described above”, (Moeller: ¶335), “The address is a unique name that identifies that instance of the application. The management servers can prevent two applications from running with the same address. Every application that wishes to be monitored requests permission to start from a management server”, (Moeller: ¶309).
Regarding Claim 8, Moeller teaches:
wherein the second application is located in the first device or in a second device.
“The management infrastructure 15 uses the best mechanism to effectively move data objects and their updates among system components”, (Moeller: ¶028), “FIG. 2 is a schematic representation of system 10, which here connects together disparate applications 100, 102 and 106”, (Moeller: ¶034, Fig 2), “The client libraries 114, 116, 118 communicate with each other on the data protocol layer 122 and facilitate communication and data accessibility between the applications 100, 102, 106”, (Moeller: ¶034), “At step 810 a first application sends a request to invoke a service (procedure) by a second application”, (Moeller: ¶348), “Because the client library for each application can be written in a different language and operate on a different computing platform” … “whether they are on the same machine or on separate machines”, (Moeller: ¶086).
Further regarding Claim 8, Moeller in view of Iyer and Luna fails to explicitly teach:
wherein the service comprises providing information in the first application to the second application for viewing
However, Palanisamy teaches: “The MTC application 216 may be a MTC communication endpoint that may interact with SCSs 212, AS MTC applications, or other UE MTC applications”, (Palanisamy: ¶16), “As long as the application ID is known, any entity can send a message to that application, so long as the sending application/end node is authorized to do so and is interfaced to an ADDS client 324”, (Palanisamy: ¶72), “Application Data Delivery Service (ADDS) which facilitates application data transfer between applications”, (Palanisamy: ¶34), “The ADDS data transfer procedure is the procedure used by an application to transfer data using ADDS. This procedure enables the applications residing at the ADDS end nodes (SCS/UE) to send application specific data using ADDS. An ADDS end node uses the application identifier as the destination identifier and passes the application data and its characteristics to the underlying ADDS client”, (Palanisamy: ¶435). Examiner notes: the ADDS facilitates communication of application specific data between apps.
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine wherein the service comprises providing information in the first application to the second application for viewing of Palanisamy with the methods and systems of Moeller in view of Iyer and Luna resulting in a system with an application that is able to provide information about itself to another application. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “may provide more application-aware services as well as more efficient transport services to applications than just the QoS and IP flow control”, (Palanisamy: ¶31), “Application awareness can also make triggering more efficient” … “decisions can be made more intelligently or efficiently by the core network with assistance from the SCS”, (Palanisamy: ¶032).
Regarding Claim 9, Moeller teaches:
wherein the second application comprises a plurality of third applications,
“FIG. 2 is a schematic representation of system 10, which here connects together disparate applications 100, 102 and 106”, (Moeller: ¶034), “the term "system" is considered to mean any number of applications running on any number of computers that are communicating with each other”, (Moeller: ¶040), “Multiple applications may connect to a single database simultaneously”, (Moeller: ¶006), “a single server may provide a price calculation service through a request/reply mechanism to user-facing graphical interface applications, to a web server, and to stand-alone processing servers”, (Moeller: ¶009).
wherein prolonging the time to live of the first application if' comprises prolonging, by the operating system, the time to live when the subscription list comprises second identification information of at least one third application
“This data object contains the data set definition statement and an indicator of which application created the subscription”, (Moeller: ¶205), “every management server and applicable client library in the system that needs to know the list of event subscriptions will always be up-to-date with the current list of subscriptions”, (Moeller: ¶206), “The management server will run through a list of all of its event subscriptions for the given data type”, (Moeller: ¶2020), “Subscription Data Objects will receive an update indicating a new subscription exists”, (Moeller: ¶333).
Further regarding Claim 9, Moeller in view of Iyer and Palanisamy fails to teach:
wherein prolonging the time to live of the first application if' comprises prolonging, by the operating system, the time to live
However, Luna teaches: “The resolver DNS cache is typically maintained by the operating system and the time to live of the cache entries are either specified by the operating system or configured via the operating system”, (Luna: ¶058), “maintains and uses the cached DNS entries” … “for a time period that is longer than the TTL typical of a DNS resolver”, (Luna: ¶051), “The increased TTL allows for a reduction in the network traffic related to DNS queries”, (Luna: ¶051)” the time period with which DNS records can be maintained by the harmonization component to be configurable and typically also dynamically adjustable”, (Luna: ¶062).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine prolonging, by the operating system, a time to live of Luna with the methods and systems of Moeller in view of Iyer and Palanisamy resulting in an operating system that could increase the TTL of running applications. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “a reduction in the network traffic related to DNS queries”, (Luna: ¶051).
Regarding Claim 10, Moeller teaches:
An electronic device comprising one or more processors; and a memory coupled to the one or more processors,
“Computational machines have a memory for storing code that is used by the processor in order to execute the instructions”, (Moeller: ¶025).
wherein when executed by the one or more processors, the instructions cause the electronic device to: create a first object when a first application on the electronic device detects that first information in the first application is sent to a second application;
“A distributed data object may be created within an application and transmitted to other applications that are interested in data objects meeting a certain criteria met by the newly created object”, (Moeller: ¶042), “The client library allows an application to create shared data, send it to other applications”, (Moeller: ¶088), “a data object 22A having an identifier of OBJ01, which is simultaneously existing as another instantiation 22B within application 102”, (Moeller: ¶027), “a first application sends a request to invoke a service (procedure) by a second application” … “In response to the invoked change” … “the second application compares the change to the subscription's data set description” … “match the data set, forwards a message, step 860, to the first application indicating a change in the status of the data objects within the data set”, (Moeller: ¶348, Fig 8), “Management Server 104 creates a Subscription Data Object for Client Library 114 with the Subscription Query created by Client Library 116”, (Moeller: ¶346), “Associated with each application is a respective client library 114, 116 and 118”, (Moeller: ¶034), “When data objects arrive at a client library” … “If not, a copy of the object is created within the pool”, (Moeller: ¶177). Examiner notes: The Client Library creates a Subscription query which the Management service uses to create a Subscription Data Object AFTER the data arrives at the client pool.
generate a unique identifier of the first object;
“Distributed data objects can be implemented” … “the following features: [0044] A globally unique identifier” … “This identifier (e.g., OBJ001, OBJ002, etc.) distinctly identifies this specific data object 302, 304” … “identifier can be a string of characters that is automatically generated when a data object is first created” … “the application creating the data object”, (Moeller: ¶043).
send the unique identifier to the second application;
“This identifier (e.g., OBJ001, OBJ002, etc.) distinctly identifies this specific data object”, (Moeller: ¶043), “Reference parameters have the globally unique id of the referenced data object sent along in the parameter message”, (Moeller: ¶278), “sends the procedure call message to that application” … “a calling client library can send the procedure call message directly to the application providing the procedure”, (Moeller: ¶279).
receive from the second application a subscription request based on the unique identifier,
“registration module associated that accepts subscriptions from subscribing applications” … “applications on the network, compares the data object in the data message with one or more of the subscriptions, and selectively notifies the subscribing applications in response to the comparison”, (Moeller: ¶011), “procedure indicates a subscription desire for future updates, the system establishes an event subscription that matches the returned results”, (Moeller: ¶284), “Management Server 104 receives the subscription request”, (Moeller: ¶335), “registers this event subscription on behalf of the calling procedure using a method provided by the client library”, (Moeller: ¶284), “identifier (e.g., OBJ001, OBJ002, etc.) distinctly identifies this specific data object 302, 304”, (Moeller: ¶043),
wherein the subscription request comprises identification information of the second application;
“registration module associated that accepts subscriptions from subscribing applications” … “applications on the network, compares the data object in the data message with one or more of the subscriptions, and selectively notifies the subscribing applications in response to the comparison”, (Moeller: ¶011), “the subscription request discovers that a broadcast data object exists that has created a broadcast channel for the data object type the client is creating a subscription”, (Moeller: ¶250), “Distributed data objects can be implemented as data containers having, by way of example, the following features: [0044] A globally unique identifier”, (Moeller: ¶43), “This data object contains the data set definition statement and an indicator of which application created the subscription”, (Moeller: ¶205), “FIG. 5 depicts a subscription object in accordance with one embodiment of the invention;” … “ID = OBJ011” … “ClientLibrary” … “114” … “118” … “116”, (Moeller: ¶019; Fig 5 Parts 500, 502, 504, 506), “Associated with each application is a respective client library 114, 116 and 118”, (Moeller: ¶034). Examiner notes: the subscription request contains the client library ids of where subscription request is to be sent to.
verify whether the second application has permission to subscribe to the first object … based on the first application verifying that the second application has the permission to subscribe to the first object,
“An event subscription is set up by an application” … “calling an appropriate method on the client library” … “The client library can create an event subscription by sending a message to a management server to register a subscription” … “The management server creates a data object” … “event subscription data object type, representing the new subscription. This data object contains the data set definition statement and an indicator of which application created the subscription”, (Moeller: ¶205), “every management server and applicable client library in the system that needs to know the list of event subscriptions will always be up-to-date with the current list of subscription”, (Moeller: ¶206), “the read permissions are checked for the corresponding library session's user and the user's groups”, (Moeller: ¶259), “If the result is that the session is not allowed to read the object, it is not sent to the application”, (Moeller: ¶259), “Data objects also exist that define access control permissions”, (Moeller: ¶258), “A read permission is defined by writing a data retrieval filter that describes a set of data that either can (allow) or cannot (deny) be read by a group or a user”, (Moeller: ¶259).
add, in response to the subscription request, the identification information to a subscription list of the first object;
“the subscription request discovers that a broadcast data object exists that has created a broadcast channel for the data object type the client is creating a subscription”, (Moeller: ¶250), “Distributed data objects can be implemented as data containers having, by way of example, the following features: [0044] A globally unique identifier”, (Moeller: ¶43), “Management Server 104 will note that Client Library 114 has subscribed to changes to the appropriate objects in its list of Subscription Data Objects”, (Moeller: ¶346), “This data object contains the data set definition statement and an indicator of which application created the subscription”, (Moeller: ¶205), “FIG. 5 depicts a subscription object in accordance with one embodiment of the invention;” … “ID = OBJ011” … “ClientLibrary” … “114” … “118” … “116”, (Moeller: ¶019; Fig 5 Parts 500, 502, 504, 506), “Associated with each application is a respective client library 114, 116 and 118”, (Moeller: ¶034). Examiner notes: the subscription request contains the client library ids of where subscription request is to be sent to, each application has a respective client id.
query the subscription list when an operating system of the electronic device is triggered to forcibly kill applications running on the electronic device;
“the subscription request discovers that a broadcast data object exists that has created a broadcast channel for the data object type the client is creating a subscription”, (Moeller: ¶250), “Distributed data objects can be implemented as data containers having, by way of example, the following features: [0044] A globally unique identifier”, (Moeller: ¶43), “Management Server 104 will note that Client Library 114 has subscribed to changes to the appropriate objects in its list of Subscription Data Objects”, (Moeller: ¶346), “This data object contains the data set definition statement and an indicator of which application created the subscription”, (Moeller: ¶205), “FIG. 5 depicts a subscription object in accordance with one embodiment of the invention;” … “ID = OBJ011” … “ClientLibrary” … “114” … “118” … “116”, (Moeller: ¶019; Fig 5 Parts 500, 502, 504, 506), “Associated with each application is a respective client library 114, 116 and 118”, (Moeller: ¶034). Examiner notes: the subscription request contains the client library ids of where subscription request is to be sent to, each application has a respective client id.
and prolong a time to live of the first application when the subscription list comprises the identification information.
“the subscription request discovers that a broadcast data object exists that has created a broadcast channel for the data object type the client is creating a subscription”, (Moeller: ¶250), “Distributed data objects can be implemented as data containers having, by way of example, the following features: [0044] A globally unique identifier”, (Moeller: ¶43), “Management Server 104 will note that Client Library 114 has subscribed to changes to the appropriate objects in its list of Subscription Data Objects”, (Moeller: ¶346) “This data object contains the data set definition statement and an indicator of which application created the subscription”, (Moeller: ¶205), “FIG. 5 depicts a subscription object in accordance with one embodiment of the invention;” … “ID = OBJ011” … “ClientLibrary” … “114” … “118” … “116”, (Moeller: ¶019; Fig 5 Parts 500, 502, 504, 506), “Associated with each application is a respective client library 114, 116 and 118”, (Moeller: ¶034). Examiner notes: the subscription request contains the client library ids of where subscription request is to be sent to, each application has a respective client id.
Further regarding Claim 10, Moeller fails to teach:
query the subscription list when an operating system of the electronic device is triggered to forcibly kill applications running on the electronic device;
However, Iyer teaches: “with operating system 102 managing applications 104. The management of applications 104 includes automatically shutting down one or more applications 104”, (Iyer: ¶014), “collection module 106 collects various information regarding characteristics of applications 104 and/or the resources of computing device 100”, (Iyer: ¶016), “tracking module 112 and determines when a threshold value associated with a particular characteristic of an application 104 and/or a resource of computing device 100 has been met application selection module 116 selects one or more of applications 104 to shut down”, (Iyer: ¶018), “having a high probability of freeing up resources for other applications to use is the application that is shut down”, (Iyer: ¶055).
and prolong a time to live of the first application when the subscription list comprises the identification information.
However, Iyer teaches: “The lifetime or life of an application 104 refers to the time period when the application is running”, (Iyer: ¶014), “If the threshold value has not been met, then the multiple applications are allowed to continue running”, (Iyer: Abstract), “TABLE I Characteristic Threshold Value Application age 3 hours (since the application was last in the foreground)”, (Iyer: Table 1), “The age of an application 104 refers to how long ago…”, (Iyer: ¶016), “threshold value associated with a particular characteristic of application 104 and/or a resource of computing device 100 has been met, application selection module 116 selects one or more of applications 104 to shut down”, (Iyer: ¶018), “The particular threshold values can be set, for example, based on empirical analysis of the operation of different devices”, (Iyer: ¶026), “threshold values include a first threshold value associated with an age of one of the multiple applications”, (Iyer: Claim 20). Examiner notes: A threshold value for the age of an application can be set by the operating system and can be ignored and continued to allow to process prolonging its lifetime, however Iyer does not teach a dynamic threshold value that can be increased to keep processing an application.
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine querying, by an operating system of the first device when the operating system of the first device is triggered to forcibly kill applications running on the first device to release system resources due to a limitation of the system resources, for the first application, querying, by the operating system of the first device, and prolonging, by the operating system, a time to live of the first application of Iyer with the methods and systems of Moeller resulting in an operating system that can terminate jobs if resources run thin or allow jobs to process past expiration if resources permit. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “alleviate the user of some of the burden of managing multiple applications on his or her computing device”, (Iyer: ¶056).
Further regarding Claim 10, Moeller in view of Iyer fails to teach:
and prolong a time to live ... wherein the time to live is prolonged
However, Luna teaches: “The resolver DNS cache is typically maintained by the operating system and the time to live of the cache entries are either specified by the operating system or configured via the operating system”, (Luna: ¶058), “maintains and uses the cached DNS entries” … “for a time period that is longer than the TTL typical of a DNS resolver”, (Luna: ¶051), “The increased TTL allows for a reduction in the network traffic related to DNS queries”, (Luna: ¶051)” the time period with which DNS records can be maintained by the harmonization component to be configurable and typically also dynamically adjustable”, (Luna: ¶062).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine and prolong a time to live ... wherein the time to live is prolonged of Luna with the methods and systems of Moeller in view of Iyer resulting in an operating system that could increase the TTL of running applications. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “identify or detect long poll requests, possible long poll requests” … “but not limited to, a long-held HTTP request, a persistent connection enabling COMET style push, request for HTTP streaming, etc”, (Luna: ¶362).
Lastly regarding Claim 10, Moeller in view of Iyer and Luna fails to teach:
wherein adding the identification information to the subscription list indicates a collaborative relationship between the first application and the second application and to provide a service; … maintains an application collaboration function between the first application and the second application and to provide the service.
However, Palanisamy teaches: “An application may send an event subscription to the ADDS 322 and provide a list of application identifiers for which it should be notified of events occurring with those applications”, (Palanisamy: ¶497), “The MTC application 216 may be a MTC communication endpoint that may interact with SCSs 212, AS MTC applications, or other UE MTC applications”, (Palanisamy: ¶16), “As long as the application ID is known, any entity can send a message to that application, so long as the sending application/end node is authorized to do so and is interfaced to an ADDS client 324”, (Palanisamy: ¶72), “Application Data Delivery Service (ADDS) which facilitates application data transfer between applications”, (Palanisamy: ¶34), “The ADDS data transfer procedure is the procedure used by an application to transfer data using ADDS. This procedure enables the applications residing at the ADDS end nodes (SCS/UE) to send application specific data using ADDS. An ADDS end node uses the application identifier as the destination identifier and passes the application data and its characteristics to the underlying ADDS client”, (Palanisamy: ¶435). Examiner notes: for as long application IDS are known, communication between applications is maintained.
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine wherein adding the identification information to the subscription list indicates a collaborative relationship between the first application and the second application and to provide a service; … maintains an application collaboration function between the first application and the second application and to provide the service of Palanisamy with the methods and systems of Moeller in view of Iyer and Luna resulting in a system with two applications communicating with one another for as long as they are subscribed to one another. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “may provide more application-aware services as well as more efficient transport services to applications than just the QoS and IP flow control”, (Palanisamy: ¶31), “Application awareness can also make triggering more efficient” … “decisions can be made more intelligently or efficiently by the core network with assistance from the SCS”, (Palanisamy: ¶032).
Regarding Claim 17, Moeller teaches:
wherein the second application is located in the electronic device or in a second electronic device.
“The management infrastructure 15 uses the best mechanism to effectively move data objects and their updates among system components”, (Moeller: ¶028), “FIG. 2 is a schematic representation of system 10, which here connects together disparate applications 100, 102 and 106”, (Moeller: ¶034, Fig 2), “The client libraries 114, 116, 118 communicate with each other on the data protocol layer 122 and facilitate communication and data accessibility between the applications 100, 102, 106”, (Moeller: ¶034), “At step 810 a first application sends a request to invoke a service (procedure) by a second application”, (Moeller: ¶348), “Because the client library for each application can be written in a different language and operate on a different computing platform” … “whether they are on the same machine or on separate machines”, (Moeller: ¶086).
Regarding Claim 18, Moeller teaches:
wherein the second application comprises a plurality of third applications, and,
“FIG. 2 is a schematic representation of system 10, which here connects together disparate applications 100, 102 and 106”, (Moeller: ¶034), “the term "system" is considered to mean any number of applications running on any number of computers that are communicating with each other”, (Moeller: ¶040), “Multiple applications may connect to a single database simultaneously”, (Moeller: ¶006), “a single server may provide a price calculation service through a request/reply mechanism to user-facing graphical interface applications, to a web server, and to stand-alone processing servers”, (Moeller: ¶009).
wherein the instructions to prolong the time to live of the first application comprises instructions to prolonging the time to live when the subscription list comprises second identification information of at least one third application.
“This data object contains the data set definition statement and an indicator of which application created the subscription”, (Moeller: ¶205), “every management server and applicable client library in the system that needs to know the list of event subscriptions will always be up-to-date with the current list of subscriptions”, (Moeller: ¶206), “The management server will run through a list of all of its event subscriptions for the given data type”, (Moeller: ¶2020), “Subscription Data Objects will receive an update indicating a new subscription exists”, (Moeller: ¶333).
Further regarding Claim 18, Moeller in view of Iyer and Palanisamy fails to teach:
wherein the instructions to prolong the time to live of the first application comprises instructions to prolonging the time to live
However, Luna teaches: “The resolver DNS cache is typically maintained by the operating system and the time to live of the cache entries are either specified by the operating system or configured via the operating system”, (Luna: ¶058), “maintains and uses the cached DNS entries” … “for a time period that is longer than the TTL typical of a DNS resolver”, (Luna: ¶051), “The increased TTL allows for a reduction in the network traffic related to DNS queries”, (Luna: ¶051)” the time period with which DNS records can be maintained by the harmonization component to be configurable and typically also dynamically adjustable”, (Luna: ¶062).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine prolonging, by the operating system, a time to live of Luna with the methods and systems of Moeller in view of Iyer and Palanisamy resulting in an operating system that could increase the TTL of running applications. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “a reduction in the network traffic related to DNS queries”, (Luna: ¶051).
Claims 2, 3, 6, 12, 13, 15 and 19-22 are rejected under 35 U.S.C. 103(a) as being unpatentable over Moeller in view of Iyer, Luna and Palanisamy, in further view of Pruden et al. (US 20180048691 A1) (hereinafter Pruden).
Regarding Claim 2, Moeller teaches:
first application among currently running applications on the first device
“a first application sends a request to invoke a service (procedure) by a second application.”, (Moeller: ¶348), “Because the client library for each application can be written in a different language and operate on a different computing platform” … “whether they are on the same machine or on separate machines”, (Moeller: ¶086).
Further regarding claim 2, Moeller in view of Iyer and Palanisamy fails to teach:
prolonging the time to live
However, Luna teaches: “The resolver DNS cache is typically maintained by the operating system and the time to live of the cache entries are either specified by the operating system or configured via the operating system”, (Luna: ¶058), “maintains and uses the cached DNS entries” … “for a time period that is longer than the TTL typical of a DNS resolver”, (Luna: ¶051), “The increased TTL allows for a reduction in the network traffic related to DNS queries”, (Luna: ¶051)” the time period with which DNS records can be maintained by the harmonization component to be configurable and typically also dynamically adjustable”, (Luna: ¶062).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine prolonging, by the operating system, a time to live of Luna with the methods and systems of Moeller in view of Iyer and Palanisamy resulting in an operating system that could increase the TTL of running applications. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “a reduction in the network traffic related to DNS queries”, (Luna: ¶051).
Further regarding Claim 2, Moeller in view of Iyer, Luna and Palanisamy fails to teach:
wherein prolonging the time to live comprises increasing, by the operating system, a current priority of the first application in by at least one priority level to indicate a longer time to live of the first application among currently running applications on the first device.
However, Pruden teaches: “systems and methods may manage network performance by assigning packets to a buffer priority queue for transmission by devices across a network”, (Pruden: ¶015), “The local office 103 may also include an application server 107”, (Pruden: ¶020), “the network 100 may be a Digital Subscriber Line (DSL) system that includes a local office 103 communicating with numerous gateway interface devices”, (Pruden: ¶017), “may adjust its buffer priorities” … “third highest priority buffer queue to a fourth highest priority buffer queue, increase the acceptable time-to-live value by 25%”, (Pruden: ¶057).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine wherein prolonging the time to live comprises increasing, by the operating system, a current priority of the first application in by at least one priority level to indicate a longer time to live of the first application among currently running applications on the first device. of Pruden with the methods and systems of Moeller in view of Iyer, Luna and Palanisamy resulting in a system that can dynamically adjust priorities to increase TTL of running applications. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “reduce the effects of latency and/or jitter on targeted media types or data types that are more susceptible to such unfavorable network conditions”, (Pruden: ¶003).
Regarding Claim 3, Moeller teaches:
currently running applications.
“a first application sends a request to invoke a service (procedure) by a second application.”, (Moeller: ¶348), “Because the client library for each application can be written in a different language and operate on a different computing platform” … “whether they are on the same machine or on separate machines”, (Moeller: ¶086), “data objects representing each running application in the system”, (Moeller: ¶308)
Further regarding Claim 3, Moeller in view of Iyer, Luna and Palanisamy fails to teach:
wherein increasing the current priority comprises increasing, by the operating system, the current priority to a highest priority among the currently running applications.
However, Pruden: “Packets in the highest priority buffer queues may be transmitted before packets in the lower priority buffer queues”, (Pruden: ¶015), “may adjust its buffer priorities” … “third highest priority buffer queue to a fourth highest priority buffer queue, increase the acceptable time-to-live value by 25%”, (Pruden: ¶057).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine wherein increasing the current priority comprises increasing, by the operating system, the current priority to a highest priority among the currently running applications of Pruden with the methods and systems of Moeller in view of Iyer, Luna and Palanisamy resulting in a system that can dynamically adjust priorities to a highest level to increase TTL of running applications. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “reduce the effects of latency and/or jitter on targeted media types or data types that are more susceptible to such unfavorable network conditions”, (Pruden: ¶003).
Regarding Claim 6, Moeller teaches:
wherein the method further comprises: receiving, by the first application, a subscription cancellation request from the second application based on the unique identifier,
“by sending a message to a management server to register a subscription”, (Moeller: ¶205), “subscription ID of the subscription that the event pertains to” … “the type of action that caused the event (including, for example, object creation, object modification, and object deletion)”, (Moeller: ¶112), “data object update message for each event subscription object that is created, modified, or deleted within the system” … “listen to changes to event subscription objects. As a result, every management server and applicable client library in the system that needs to know the list of event subscriptions will always be up-to-date with the current list of subscriptions”, (Moeller: ¶206).
wherein the subscription cancellation request comprises the identification information;
“as well as message fields indicating the subscription ID of the subscription that the event pertains”, (Moeller: ¶112), “This data object contains the data set definition statement and an indicator of which application created the subscription”, (Moeller: ¶205).
deleting, by the first application, the identification information from the subscription list based on the subscription cancellation request;
“receives a data object update message for each event subscription object that is created, modified, or deleted within the system”, (Moeller: ¶206), “storing the subscription objects in an in-memory cache, to stay up to date on the full list of subscriptions”, (Moeller: ¶120), “contains a field indicating the subscription that was matched that generated the event message”, (Moeller: ¶249), “subscription ID of the subscription that the event pertains to” … “the type of action that caused the event (including, for example, object creation, object modification, and object deletion)”, (Moeller: ¶112).
the subscription list;
“the subscription request discovers that a broadcast data object exists that has created a broadcast channel for the data object type the client is creating a subscription”, (Moeller: ¶250), “Distributed data objects can be implemented as data containers having, by way of example, the following features: [0044] A globally unique identifier”, (Moeller: ¶43), “Management Server 104 will note that Client Library 114 has subscribed to changes to the appropriate objects in its list of Subscription Data Objects”, (Moeller: ¶346).
when the subscription list does not comprise the identification information.
“A globally unique identifier across all time and space. This identifier (e.g., OBJ001, OBJ002, etc.) distinctly identifies this specific data object 302, 304”, (Moeller: ¶043), “If the change to a data object causes it to not match any of the scopes above for a given subscription, then no event message will be sent”, Moeller: ¶217), “As a result, every management server and applicable client library in the system that needs to know the list of event subscriptions will always be up-to-date with the current list of subscriptions”, (Moeller: ¶206). Examiner notes: an action being taken when an object scope is not the subscription list.
Further regarding Claim 6, Moeller in view of Luna and Palanisamy fails to teach:
further querying, by the operating system when the operating system is triggered to forcibly kill the applications, the subscription list;
However, Iyer teaches: “with operating system 102 managing applications 104. The management of applications 104 includes automatically shutting down one or more applications 104”, (Iyer: ¶014), “collection module 106 collects various information regarding characteristics of applications 104 and/or the resources of computing device 100”, (Iyer: ¶016), “tracking module 112 and determines when a threshold value associated with a particular characteristic of an application 104 and/or a resource of computing device 100 has been met application selection module 116 selects one or more of applications 104 to shut down”, (Iyer: ¶018), “having a high probability of freeing up resources for other applications to use is the application that is shut down”, (Iyer: ¶055).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine further querying, by the operating system when the operating system is triggered to forcibly kill the applications, the subscription list; of Iyer with the methods and systems of Moeller in view of Luna and Palanisamy resulting in system that can prematurely terminate applications before they finish running. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “alleviate the user of some of the burden of managing multiple applications on his or her computing device”, (Iyer: ¶056).
Further regarding Claim 6, Moeller in view of Iyer, Luna and Palanisamy fails to teach:
and skipping prolonging, by the operating system, the time to live of the first application.
However, Pruden teaches: “the network 100 may be a Digital Subscriber Line (DSL) system that includes a local office 103 communicating with numerous gateway interface devices”, (Pruden: ¶017), “may adjust its buffer priorities” … “third highest priority buffer queue to a fourth highest priority buffer queue, increase the acceptable time-to-live value by 25%”, (Pruden: ¶057), “a lack of an entry may indicate that no priority treatment should be taken”, (Pruden: ¶037), “If it was determined not to use priority treatment in step 420”, (Pruden: ¶042, Fig 4 and Fig 6)
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine and skipping prolonging, by the operating system, the time to live of the first application of Pruden with the methods and systems of Moeller in view of Iyer, Luna and Palanisamy resulting in a system that can dynamically skip adjustment of priority level to not increase TTL of running applications. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “reduce the effects of latency and/or jitter on targeted media types or data types that are more susceptible to such unfavorable network conditions”, (Pruden: ¶003).
Regarding Claim 12, Moeller teaches:
the first application among currently running applications on the electronic device.
“a first application sends a request to invoke a service (procedure) by a second application.”, (Moeller: ¶348), “Because the client library for each application can be written in a different language and operate on a different computing platform” … “whether they are on the same machine or on separate machines”, (Moeller: ¶086).
Further regarding Claim 12, Moeller in view of Iyer and Palanisamy fails to teach:
prolong the time to live
However, Luna teaches: “The resolver DNS cache is typically maintained by the operating system and the time to live of the cache entries are either specified by the operating system or configured via the operating system”, (Luna: ¶058), “maintains and uses the cached DNS entries” … “for a time period that is longer than the TTL typical of a DNS resolver”, (Luna: ¶051), “The increased TTL allows for a reduction in the network traffic related to DNS queries”, (Luna: ¶051)” the time period with which DNS records can be maintained by the harmonization component to be configurable and typically also dynamically adjustable”, (Luna: ¶062).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine prolonging, by the operating system, a time to live of Luna with the methods and systems of Moeller in view of Iyer and Palanisamy resulting in an operating system that could increase the TTL of running applications. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “a reduction in the network traffic related to DNS queries”, (Luna: ¶051).
Further regarding Claim 12, Moeller in view of Iyer, Luna and Palanisamy fails to teach:
by increasing a current priority of the first application by at least one priority level to indicate a longer time to live of the first application among currently running applications on the electronic device.
However, Pruden teaches: “systems and methods may manage network performance by assigning packets to a buffer priority queue for transmission by devices across a network”, (Pruden: ¶015), “The local office 103 may also include an application server 107”, (Pruden: ¶020), “the network 100 may be a Digital Subscriber Line (DSL) system that includes a local office 103 communicating with numerous gateway interface devices”, (Pruden: ¶017), “may adjust its buffer priorities” … “third highest priority buffer queue to a fourth highest priority buffer queue, increase the acceptable time-to-live value by 25%”, (Pruden: ¶057).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine wherein prolonging the time to live comprises increasing, by the operating system, a current priority of the first application in by at least one priority level to indicate a longer time to live of the first application among currently running applications on the first device. of Pruden with the methods and systems of Moeller in view of Iyer, Luna and Palanisamy resulting in a system that can dynamically adjust priorities to increase TTL of running applications. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “reduce the effects of latency and/or jitter on targeted media types or data types that are more susceptible to such unfavorable network conditions”, (Pruden: ¶003).
Regarding Claim 13, Moeller teaches:
the currently running applications.
“a first application sends a request to invoke a service (procedure) by a second application.”, (Moeller: ¶348), “Because the client library for each application can be written in a different language and operate on a different computing platform” … “whether they are on the same machine or on separate machines”, (Moeller: ¶086), “data objects representing each running application in the system”, (Moeller: ¶308)
Further regarding Claim 13, Moeller in view of Iyer and Luna fails to teach:
wherein the instructions to increase the current priority comprises instructions to increase the current priority to a highest priority among the currently running applications.
However, Pruden: “Packets in the highest priority buffer queues may be transmitted before packets in the lower priority buffer queues”, (Pruden: ¶015), “may adjust its buffer priorities” … “third highest priority buffer queue to a fourth highest priority buffer queue, increase the acceptable time-to-live value by 25%”, (Pruden: ¶057).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine wherein increasing the current priority comprises increasing, by the operating system, the current priority to a highest priority among the currently running applications of Pruden with the methods and systems of Moeller, Iyer, and Luna resulting in a system that can dynamically adjust priorities to a highest level to increase TTL of running applications. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “reduce the effects of latency and/or jitter on targeted media types or data types that are more susceptible to such unfavorable network conditions”, (Pruden: ¶003).
Regarding Claim 15, Moeller teaches:
wherein when executed by the processor, the instructions further cause the electronic device to: receive a subscription cancellation request from the second application based on the unique identifier,
“by sending a message to a management server to register a subscription”, (Moeller: ¶205), “subscription ID of the subscription that the event pertains to” … “the type of action that caused the event (including, for example, object creation, object modification, and object deletion)”, (Moeller: ¶112), “data object update message for each event subscription object that is created, modified, or deleted within the system” … “listen to changes to event subscription objects. As a result, every management server and applicable client library in the system that needs to know the list of event subscriptions will always be up-to-date with the current list of subscriptions”, (Moeller: ¶206).
wherein the subscription cancellation request comprises the identification information;
“as well as message fields indicating the subscription ID of the subscription that the event pertains”, (Moeller: ¶112), “This data object contains the data set definition statement and an indicator of which application created the subscription”, (Moeller: ¶205).
delete the identification information from the subscription list based on the subscription cancellation request;
“receives a data object update message for each event subscription object that is created, modified, or deleted within the system”, (Moeller: ¶206), “storing the subscription objects in an in-memory cache, to stay up to date on the full list of subscriptions”, (Moeller: ¶120), “contains a field indicating the subscription that was matched that generated the event message”, (Moeller: ¶249), “subscription ID of the subscription that the event pertains to” … “the type of action that caused the event (including, for example, object creation, object modification, and object deletion)”, (Moeller: ¶112).
further query, when the operating system is triggered to forcibly kill the applications, the subscription list;
“the subscription request discovers that a broadcast data object exists that has created a broadcast channel for the data object type the client is creating a subscription”, (Moeller: ¶250), “Distributed data objects can be implemented as data containers having, by way of example, the following features: [0044] A globally unique identifier”, (Moeller: ¶43), “Management Server 104 will note that Client Library 114 has subscribed to changes to the appropriate objects in its list of Subscription Data Objects”, (Moeller: ¶346).
and skip prolonging the time to live of the first application when the subscription list does not comprise the identification information.
“A globally unique identifier across all time and space. This identifier (e.g., OBJ001, OBJ002, etc.) distinctly identifies this specific data object 302, 304”, (Moeller: ¶043), “If the change to a data object causes it to not match any of the scopes above for a given subscription, then no event message will be sent”, Moeller: ¶217), “As a result, every management server and applicable client library in the system that needs to know the list of event subscriptions will always be up-to-date with the current list of subscriptions”, (Moeller: ¶206). Examiner notes: an action being taken when an object scope is not the subscription list.
Further regarding Claim 15, Moeller in view of Luna and Palanisamy fails to teach:
further query, when the operating system is triggered to forcibly kill the applications, the subscription list;
However, Iyer teaches: “with operating system 102 managing applications 104. The management of applications 104 includes automatically shutting down one or more applications 104”, (Iyer: ¶014), “collection module 106 collects various information regarding characteristics of applications 104 and/or the resources of computing device 100”, (Iyer: ¶016), “tracking module 112 and determines when a threshold value associated with a particular characteristic of an application 104 and/or a resource of computing device 100 has been met application selection module 116 selects one or more of applications 104 to shut down”, (Iyer: ¶018), “having a high probability of freeing up resources for other applications to use is the application that is shut down”, (Iyer: ¶055).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine further querying, by the operating system when the operating system is triggered to forcibly kill the applications, the subscription list; of Iyer with the methods and systems of Moeller in view of Luna and Palanisamy resulting in system that can prematurely terminate applications before they finish running. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “alleviate the user of some of the burden of managing multiple applications on his or her computing device”, (Iyer: ¶056).
Further regarding Claim 15, Moeller in view of Iyer, Luna and Palanisamy fails to teach:
and skip prolonging the time to live of the first application when the subscription list does not comprise the identification information.
However, Pruden teaches: “the network 100 may be a Digital Subscriber Line (DSL) system that includes a local office 103 communicating with numerous gateway interface devices”, (Pruden: ¶017), “may adjust its buffer priorities” … “third highest priority buffer queue to a fourth highest priority buffer queue, increase the acceptable time-to-live value by 25%”, (Pruden: ¶057), “a lack of an entry may indicate that no priority treatment should be taken”, (Pruden: ¶037), “If it was determined not to use priority treatment in step 420”, (Pruden: ¶042, Fig 4 and Fig 6)
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine and skipping prolonging, by the operating system, the time to live of the first application of Pruden with the methods and systems of Moeller in view of Iyer, Luna and Palanisamy resulting in a system that can dynamically skip adjustment of priority level to not increase TTL of running applications. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “reduce the effects of latency and/or jitter on targeted media types or data types that are more susceptible to such unfavorable network conditions”, (Pruden: ¶003).
Regarding Claim 19, Moeller teaches:
A computer program product comprising computer-executable instructions that are stored on a non-transitory machine-readable storage medium and that, when executed by one or more processors, cause an electronic device to:
“Computational machines have a memory for storing code that is used by the processor in order to execute the instructions”, (Moeller: ¶025).
create a first object when a first application on the electronic device detects that first information in the first application is sent to a second application;
“A distributed data object may be created within an application and transmitted to other applications that are interested in data objects meeting a certain criteria met by the newly created object”, (Moeller: ¶042), “The client library allows an application to create shared data, send it to other applications”, (Moeller: ¶088), “a data object 22A having an identifier of OBJ01, which is simultaneously existing as another instantiation 22B within application 102”, (Moeller: ¶027), “a first application sends a request to invoke a service (procedure) by a second application” … “In response to the invoked change” … “the second application compares the change to the subscription's data set description” … “match the data set, forwards a message, step 860, to the first application indicating a change in the status of the data objects within the data set”, (Moeller: ¶348, Fig 8), “Management Server 104 creates a Subscription Data Object for Client Library 114 with the Subscription Query created by Client Library 116”, (Moeller: ¶346), “Associated with each application is a respective client library 114, 116 and 118”, (Moeller: ¶034), “When data objects arrive at a client library” … “If not, a copy of the object is created within the pool”, (Moeller: ¶177). Examiner notes: The Client Library creates a Subscription query which the Management service uses to create a Subscription Data Object AFTER the data arrives at the client pool.
generate a unique identifier of the first object;
“Distributed data objects can be implemented” … “the following features: [0044] A globally unique identifier” … “This identifier (e.g., OBJ001, OBJ002, etc.) distinctly identifies this specific data object 302, 304” … “identifier can be a string of characters that is automatically generated when a data object is first created” … “the application creating the data object”, (Moeller: ¶043).
send the unique identifier to the second application;
“This identifier (e.g., OBJ001, OBJ002, etc.) distinctly identifies this specific data object”, (Moeller: ¶043), “Reference parameters have the globally unique id of the referenced data object sent along in the parameter message”, (Moeller: ¶278), “sends the procedure call message to that application” … “a calling client library can send the procedure call message directly to the application providing the procedure”, (Moeller: ¶279).
receive from the second application a subscription request based on the unique identifier,
“registration module associated that accepts subscriptions from subscribing applications” … “applications on the network, compares the data object in the data message with one or more of the subscriptions, and selectively notifies the subscribing applications in response to the comparison”, (Moeller: ¶011), “procedure indicates a subscription desire for future updates, the system establishes an event subscription that matches the returned results”, (Moeller: ¶284), “Management Server 104 receives the subscription request”, (Moeller: ¶335), “registers this event subscription on behalf of the calling procedure using a method provided by the client library”, (Moeller: ¶284), “identifier (e.g., OBJ001, OBJ002, etc.) distinctly identifies this specific data object 302, 304”, (Moeller: ¶043),
wherein the subscription request comprises identification information of the second application;
“registration module associated that accepts subscriptions from subscribing applications” … “applications on the network, compares the data object in the data message with one or more of the subscriptions, and selectively notifies the subscribing applications in response to the comparison”, (Moeller: ¶011), “the subscription request discovers that a broadcast data object exists that has created a broadcast channel for the data object type the client is creating a subscription”, (Moeller: ¶250), “Distributed data objects can be implemented as data containers having, by way of example, the following features: [0044] A globally unique identifier”, (Moeller: ¶43), “This data object contains the data set definition statement and an indicator of which application created the subscription”, (Moeller: ¶205), “FIG. 5 depicts a subscription object in accordance with one embodiment of the invention;” … “ID = OBJ011” … “ClientLibrary” … “114” … “118” … “116”, (Moeller: ¶019; Fig 5 Parts 500, 502, 504, 506), “Associated with each application is a respective client library 114, 116 and 118”, (Moeller: ¶034). Examiner notes: the subscription request contains the client library ids of where subscription request is to be sent to.
verify whether the second application has permission to subscribe to the first object; … based on the first application verifying that the second application has the permission to subscribe to the first object,
“An event subscription is set up by an application” … “calling an appropriate method on the client library” … “The client library can create an event subscription by sending a message to a management server to register a subscription” … “The management server creates a data object” … “event subscription data object type, representing the new subscription. This data object contains the data set definition statement and an indicator of which application created the subscription”, (Moeller: ¶205), “every management server and applicable client library in the system that needs to know the list of event subscriptions will always be up-to-date with the current list of subscription”, (Moeller: ¶206), “the read permissions are checked for the corresponding library session's user and the user's groups”, (Moeller: ¶259), “If the result is that the session is not allowed to read the object, it is not sent to the application”, (Moeller: ¶259), “Data objects also exist that define access control permissions”, (Moeller: ¶258), “A read permission is defined by writing a data retrieval filter that describes a set of data that either can (allow) or cannot (deny) be read by a group or a user”, (Moeller: ¶259).
add, in response to the subscription request, the identification information to a subscription list of the first object;
“the subscription request discovers that a broadcast data object exists that has created a broadcast channel for the data object type the client is creating a subscription”, (Moeller: ¶250), “Distributed data objects can be implemented as data containers having, by way of example, the following features: [0044] A globally unique identifier”, (Moeller: ¶43), “Management Server 104 will note that Client Library 114 has subscribed to changes to the appropriate objects in its list of Subscription Data Objects”, (Moeller: ¶346), “This data object contains the data set definition statement and an indicator of which application created the subscription”, (Moeller: ¶205), “FIG. 5 depicts a subscription object in accordance with one embodiment of the invention;” … “ID = OBJ011” … “ClientLibrary” … “114” … “118” … “116”, (Moeller: ¶019; Fig 5 Parts 500, 502, 504, 506), “Associated with each application is a respective client library 114, 116 and 118”, (Moeller: ¶034). Examiner notes: the subscription request contains the client library ids of where subscription request is to be sent to, each application has a respective client id.
query the subscription list when an operating system of the electronic device is triggered to forcibly kill applications running on the electronic device;
“the subscription request discovers that a broadcast data object exists that has created a broadcast channel for the data object type the client is creating a subscription”, (Moeller: ¶250), “Distributed data objects can be implemented as data containers having, by way of example, the following features: [0044] A globally unique identifier”, (Moeller: ¶43), “Management Server 104 will note that Client Library 114 has subscribed to changes to the appropriate objects in its list of Subscription Data Objects”, (Moeller: ¶346), “This data object contains the data set definition statement and an indicator of which application created the subscription”, (Moeller: ¶205), “FIG. 5 depicts a subscription object in accordance with one embodiment of the invention;” … “ID = OBJ011” … “ClientLibrary” … “114” … “118” … “116”, (Moeller: ¶019; Fig 5 Parts 500, 502, 504, 506), “Associated with each application is a respective client library 114, 116 and 118”, (Moeller: ¶034). Examiner notes: the subscription request contains the client library ids of where subscription request is to be sent to, each application has a respective client id.
and prolong a time to live of the first application when the subscription list comprises the identification information.
“the subscription request discovers that a broadcast data object exists that has created a broadcast channel for the data object type the client is creating a subscription”, (Moeller: ¶250), “Distributed data objects can be implemented as data containers having, by way of example, the following features: [0044] A globally unique identifier”, (Moeller: ¶43), “Management Server 104 will note that Client Library 114 has subscribed to changes to the appropriate objects in its list of Subscription Data Objects”, (Moeller: ¶346) “This data object contains the data set definition statement and an indicator of which application created the subscription”, (Moeller: ¶205), “FIG. 5 depicts a subscription object in accordance with one embodiment of the invention;” … “ID = OBJ011” … “ClientLibrary” … “114” … “118” … “116”, (Moeller: ¶019; Fig 5 Parts 500, 502, 504, 506), “Associated with each application is a respective client library 114, 116 and 118”, (Moeller: ¶034). Examiner notes: the subscription request contains the client library ids of where subscription request is to be sent to, each application has a respective client id.
Further regarding Claim 19, Moeller fails to teach:
query the subscription list when an operating system of the electronic device is triggered to forcibly kill applications running on the electronic device;
However, Iyer teaches: “with operating system 102 managing applications 104. The management of applications 104 includes automatically shutting down one or more applications 104”, (Iyer: ¶014), “collection module 106 collects various information regarding characteristics of applications 104 and/or the resources of computing device 100”, (Iyer: ¶016), “tracking module 112 and determines when a threshold value associated with a particular characteristic of an application 104 and/or a resource of computing device 100 has been met application selection module 116 selects one or more of applications 104 to shut down”, (Iyer: ¶018), “having a high probability of freeing up resources for other applications to use is the application that is shut down”, (Iyer: ¶055).
and prolong a time to live of the first application when the subscription list comprises the identification information.
However, Iyer teaches: “The lifetime or life of an application 104 refers to the time period when the application is running”, (Iyer: ¶014), “If the threshold value has not been met, then the multiple applications are allowed to continue running”, (Iyer: Abstract), “TABLE I Characteristic Threshold Value Application age 3 hours (since the application was last in the foreground)”, (Iyer: Table 1), “The age of an application 104 refers to how long ago…”, (Iyer: ¶016), “threshold value associated with a particular characteristic of application 104 and/or a resource of computing device 100 has been met, application selection module 116 selects one or more of applications 104 to shut down”, (Iyer: ¶018), “The particular threshold values can be set, for example, based on empirical analysis of the operation of different devices”, (Iyer: ¶026), “threshold values include a first threshold value associated with an age of one of the multiple applications”, (Iyer: Claim 20). Examiner notes: A threshold value for the age of an application can be set by the operating system and can be ignored and continued to allow to process prolonging its lifetime, however Iyer does not teach a dynamic threshold value that can be increased to keep processing an application.
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine querying, by an operating system of the first device when the operating system of the first device is triggered to forcibly kill applications running on the first device to release system resources due to a limitation of the system resources, for the first application, querying, by the operating system of the first device, and prolonging, by the operating system, a time to live of the first application of Iyer with the methods and systems of Moeller resulting in an operating system that can terminate jobs if resources run thin or allow jobs to process past expiration if resources permit. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “alleviate the user of some of the burden of managing multiple applications on his or her computing device”, (Iyer: ¶056).
Further regarding Claim 19, Moeller in view of Iyer fails to teach:
and prolong a time to live of the first application … wherein the time to live is prolonged
However, Luna teaches: “The resolver DNS cache is typically maintained by the operating system and the time to live of the cache entries are either specified by the operating system or configured via the operating system”, (Luna: ¶058), “maintains and uses the cached DNS entries” … “for a time period that is longer than the TTL typical of a DNS resolver”, (Luna: ¶051), “The increased TTL allows for a reduction in the network traffic related to DNS queries”, (Luna: ¶051)” the time period with which DNS records can be maintained by the harmonization component to be configurable and typically also dynamically adjustable”, (Luna: ¶062).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine prolong a time to live of the first application … wherein the time to live is prolonged of Luna with the methods and systems of Moeller in view of Iyer resulting in an operating system that could increase the TTL of running applications. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “identify or detect long poll requests, possible long poll requests” … “but not limited to, a long-held HTTP request, a persistent connection enabling COMET style push, request for HTTP streaming, etc”, (Luna: ¶362).
Further regarding Claims 19, Moeller in view of Iyer and Luna fails to teach:
wherein the identification information is added to the subscription list to indicate a collaborative relationship between a first application and the second application and to provide a service;
However, Palanisamy teaches: “An application may send an event subscription to the ADDS 322 and provide a list of application identifiers for which it should be notified of events occurring with those applications”, (Palanisamy: ¶497), “The MTC application 216 may be a MTC communication endpoint that may interact with SCSs 212, AS MTC applications, or other UE MTC applications”, (Palanisamy: ¶16), “As long as the application ID is known, any entity can send a message to that application, so long as the sending application/end node is authorized to do so and is interfaced to an ADDS client 324”, (Palanisamy: ¶72), “Application Data Delivery Service (ADDS) which facilitates application data transfer between applications”, (Palanisamy: ¶34), “The ADDS data transfer procedure is the procedure used by an application to transfer data using ADDS. This procedure enables the applications residing at the ADDS end nodes (SCS/UE) to send application specific data using ADDS. An ADDS end node uses the application identifier as the destination identifier and passes the application data and its characteristics to the underlying ADDS client”, (Palanisamy: ¶435). Examiner notes: for as long application IDS are known, communication between applications is maintained.
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine wherein the identification information is added to the subscription list to indicate a collaborative relationship between a first application and the second application and to provide a service of Palanisamy with the methods and systems of Moeller in view of Iyer and Luna resulting in a system with two applications communicating with one another for as long as they are subscribed to one another. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “may provide more application-aware services as well as more efficient transport services to applications than just the QoS and IP flow control”, (Palanisamy: ¶31), “Application awareness can also make triggering more efficient” … “decisions can be made more intelligently or efficiently by the core network with assistance from the SCS”, (Palanisamy: ¶032).
Lastly regarding Claim 19, Moeller in view of Iyer, Luna and Palanisamy fails to teach:
increasing a current priority of the first application by at least one priority level to indicate a longer time to live of the first application among currently running applications on the electronic device.
However, Pruden teaches: “systems and methods may manage network performance by assigning packets to a buffer priority queue for transmission by devices across a network”, (Pruden: ¶015), “The local office 103 may also include an application server 107”, (Pruden: ¶020), “the network 100 may be a Digital Subscriber Line (DSL) system that includes a local office 103 communicating with numerous gateway interface devices”, (Pruden: ¶017), “may adjust its buffer priorities” … “third highest priority buffer queue to a fourth highest priority buffer queue, increase the acceptable time-to-live value by 25%”, (Pruden: ¶057).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine wherein prolonging the time to live comprises increasing, by the operating system, a current priority of the first application in by at least one priority level to indicate a longer time to live of the first application among currently running applications on the first device. of Pruden with the methods and systems of Moeller in view of Iyer, Luna and Palanisamy resulting in a system that can dynamically adjust priorities to increase TTL of running applications. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “reduce the effects of latency and/or jitter on targeted media types or data types that are more susceptible to such unfavorable network conditions”, (Pruden: ¶003).
Regarding Claim 20, Moeller in view of Iyer, Palanisamy and Pruden fails to teach:
the time to live is prolonged
However, Luna teaches: “The resolver DNS cache is typically maintained by the operating system and the time to live of the cache entries are either specified by the operating system or configured via the operating system”, (Luna: ¶058), “maintains and uses the cached DNS entries” … “for a time period that is longer than the TTL typical of a DNS resolver”, (Luna: ¶051), “The increased TTL allows for a reduction in the network traffic related to DNS queries”, (Luna: ¶051)” the time period with which DNS records can be maintained by the harmonization component to be configurable and typically also dynamically adjustable”, (Luna: ¶062).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine the time to live is prolonged of Luna with the methods and systems of Moeller in view of Iyer, Palanisamy and Pruden resulting in an operating system that could increase the TTL of running applications. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “a reduction in the network traffic related to DNS queries”, (Luna: ¶051).
Further regarding Claim 20, Moeller in view of Iyer, Luna and Pruden fails to teach:
maintain an application collaboration function between the first application and the second application and to provide the service.
However, Palanisamy teaches: “An application may send an event subscription to the ADDS 322 and provide a list of application identifiers for which it should be notified of events occurring with those applications”, (Palanisamy: ¶497), “The MTC application 216 may be a MTC communication endpoint that may interact with SCSs 212, AS MTC applications, or other UE MTC applications”, (Palanisamy: ¶16), “As long as the application ID is known, any entity can send a message to that application, so long as the sending application/end node is authorized to do so and is interfaced to an ADDS client 324”, (Palanisamy: ¶72), “Application Data Delivery Service (ADDS) which facilitates application data transfer between applications”, (Palanisamy: ¶34), “The ADDS data transfer procedure is the procedure used by an application to transfer data using ADDS. This procedure enables the applications residing at the ADDS end nodes (SCS/UE) to send application specific data using ADDS. An ADDS end node uses the application identifier as the destination identifier and passes the application data and its characteristics to the underlying ADDS client”, (Palanisamy: ¶435). Examiner notes: for as long application IDS are known, communication between applications is maintained.
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine maintain an application collaboration function between the first application and the second application and to provide the service of Palanisamy with the methods and systems of Moeller in view of Iyer, Luna and Pruden resulting in a system with two applications communicating with one another for as long as they are subscribed to one another. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “may provide more application-aware services as well as more efficient transport services to applications than just the QoS and IP flow control”, (Palanisamy: ¶31), “Application awareness can also make triggering more efficient” … “decisions can be made more intelligently or efficiently by the core network with assistance from the SCS”, (Palanisamy: ¶032).
Regarding Claim 21, Moeller teaches:
the currently running applications
“a first application sends a request to invoke a service (procedure) by a second application.”, (Moeller: ¶348), “Because the client library for each application can be written in a different language and operate on a different computing platform” … “whether they are on the same machine or on separate machines”, (Moeller: ¶086), “data objects representing each running application in the system”, (Moeller: ¶308)
Further regarding Claim 21, Moeller in view of Luna and Palanisamy fails to teach:
wherein the computer- executable instructions to increase the current priority comprises instructions to increase the current priority to a highest priority among the currently running applications.
However, Pruden: “Packets in the highest priority buffer queues may be transmitted before packets in the lower priority buffer queues”, (Pruden: ¶015), “may adjust its buffer priorities” … “third highest priority buffer queue to a fourth highest priority buffer queue, increase the acceptable time-to-live value by 25%”, (Pruden: ¶057).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine wherein increasing the current priority comprises increasing, by the operating system, the current priority to a highest priority among the currently running applications of Pruden with the methods and systems of Moeller in view of Luna and Palanisamy resulting in a system that can dynamically adjust priorities to a highest level to increase TTL of running applications. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “reduce the effects of latency and/or jitter on targeted media types or data types that are more susceptible to such unfavorable network conditions”, (Pruden: ¶003).
Further regarding Claim 21, Moeller in view of Luna, Palanisamy and Pruden fails to teach:
further query, when the operating system is triggered to forcibly kill the applications, the subscription list;
However, Iyer teaches: “with operating system 102 managing applications 104. The management of applications 104 includes automatically shutting down one or more applications 104”, (Iyer: ¶014), “collection module 106 collects various information regarding characteristics of applications 104 and/or the resources of computing device 100”, (Iyer: ¶016), “tracking module 112 and determines when a threshold value associated with a particular characteristic of an application 104 and/or a resource of computing device 100 has been met application selection module 116 selects one or more of applications 104 to shut down”, (Iyer: ¶018), “having a high probability of freeing up resources for other applications to use is the application that is shut down”, (Iyer: ¶055).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine further querying, by the operating system when the operating system is triggered to forcibly kill the applications, the subscription list; of Iyer with the methods and systems of Moeller in view of Luna, Palanisamy and Pruden resulting in system that can prematurely terminate applications before they finish running. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “alleviate the user of some of the burden of managing multiple applications on his or her computing device”, (Iyer: ¶056).
Further regarding Claim 21, Moeller in view of Iyer, Luna and Palanisamy fails to teach:
and skip prolonging the time to live of the first application when the subscription list does not comprise the identification information.
However, Pruden teaches: “the network 100 may be a Digital Subscriber Line (DSL) system that includes a local office 103 communicating with numerous gateway interface devices”, (Pruden: ¶017), “may adjust its buffer priorities” … “third highest priority buffer queue to a fourth highest priority buffer queue, increase the acceptable time-to-live value by 25%”, (Pruden: ¶057), “a lack of an entry may indicate that no priority treatment should be taken”, (Pruden: ¶037), “If it was determined not to use priority treatment in step 420”, (Pruden: ¶042, Fig 4 and Fig 6)
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine and skipping prolonging, by the operating system, the time to live of the first application of Pruden with the methods and systems of Moeller in view of Iyer, Luna and Palanisamy resulting in a system that can dynamically skip adjustment of priority level to not increase TTL of running applications. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “reduce the effects of latency and/or jitter on targeted media types or data types that are more susceptible to such unfavorable network conditions”, (Pruden: ¶003).
Regarding Claim 22, Moeller teaches:
wherein when executed by the processor, the computer-executable instructions further cause the electronic device to: receive a subscription cancellation request from the second application based on the unique identifier,
“by sending a message to a management server to register a subscription”, (Moeller: ¶205), “subscription ID of the subscription that the event pertains to” … “the type of action that caused the event (including, for example, object creation, object modification, and object deletion)”, (Moeller: ¶112), “data object update message for each event subscription object that is created, modified, or deleted within the system” … “listen to changes to event subscription objects. As a result, every management server and applicable client library in the system that needs to know the list of event subscriptions will always be up-to-date with the current list of subscriptions”, (Moeller: ¶206).
wherein the subscription cancellation request comprises the identification information;
“as well as message fields indicating the subscription ID of the subscription that the event pertains”, (Moeller: ¶112), “This data object contains the data set definition statement and an indicator of which application created the subscription”, (Moeller: ¶205).
delete the identification information from the subscription list based on the subscription cancellation request;
“receives a data object update message for each event subscription object that is created, modified, or deleted within the system”, (Moeller: ¶206), “storing the subscription objects in an in-memory cache, to stay up to date on the full list of subscriptions”, (Moeller: ¶120), “contains a field indicating the subscription that was matched that generated the event message”, (Moeller: ¶249), “subscription ID of the subscription that the event pertains to” … “the type of action that caused the event (including, for example, object creation, object modification, and object deletion)”, (Moeller: ¶112).
further query, when the operating system is triggered to forcibly kill the applications, the subscription list;
“the subscription request discovers that a broadcast data object exists that has created a broadcast channel for the data object type the client is creating a subscription”, (Moeller: ¶250), “Distributed data objects can be implemented as data containers having, by way of example, the following features: [0044] A globally unique identifier”, (Moeller: ¶43), “Management Server 104 will note that Client Library 114 has subscribed to changes to the appropriate objects in its list of Subscription Data Objects”, (Moeller: ¶346).
and skip prolonging the time to live of the first application when the subscription list does not comprise the identification information.
“A globally unique identifier across all time and space. This identifier (e.g., OBJ001, OBJ002, etc.) distinctly identifies this specific data object 302, 304”, (Moeller: ¶043), “If the change to a data object causes it to not match any of the scopes above for a given subscription, then no event message will be sent”, Moeller: ¶217), “As a result, every management server and applicable client library in the system that needs to know the list of event subscriptions will always be up-to-date with the current list of subscriptions”, (Moeller: ¶206). Examiner notes: an action being taken when an object scope is not the subscription list.
Claims 7, and 16 are rejected under 35 U.S.C. 103(a) as being unpatentable over Moeller in view of Iyer, Luna and Palanisamy, in further view of Kozura et al. (US 20190028338 A1) (hereinafter Kozura).
Regarding Claim 7, Moeller in view of Iyer, Luna and Palanisamy fail to teach:
wherein the unique identifier of the first object comprises device information of the first device, application information of the first application, object information of the first object, and timestamp information generated when the first object is created.
However, Kozura teaches: “the device identification information includes a device identification identifier represented by one of a serial number, a media control access (MAC) address, and a universally unique identifier (UUID)”, (Kozura: Claim 13), “The pretty JSON for this request would look like:” … ““requestData”: {“id”: “my-app-id”, “apikey”: “key”}, “device”: { “name”: “Some name” } “, (Kozura: ¶412), “id generated by the originator for this message [0471] timeStamp—sender long of current time” … “devIds—list of device/group/program UUIDs”, (Kozura: ¶466).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine wherein the unique identifier of the first object comprises device information of the first device, application information of the first application, object information of the first object, and timestamp information generated when the first object is created of Kozura with the methods and systems of Moeller in view of Iyer, Luna and Palanisamy resulting in system that can keep track of object transmission data and send and receive objects correctly. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “communication to operate in an efficient asynchronous manner, while keeping all system components up to date with the current state”, (Kozura: ¶371).
Regarding Claim 16, Moeller in view of Iyer, Luna and Palanisamy fail to teach:
wherein the unique identifier of the first object comprises device information of the first device, application information of the first application, object information of the first object, and timestamp information generated when the first object is created
However, Kozura teaches: “the device identification information includes a device identification identifier represented by one of a serial number, a media control access (MAC) address, and a universally unique identifier (UUID)”, (Kozura: Claim 13), “The pretty JSON for this request would look like:” … ““requestData”: {“id”: “my-app-id”, “apikey”: “key”}, “device”: { “name”: “Some name” } “, (Kozura: ¶412), “id generated by the originator for this message [0471] timeStamp—sender long of current time” … “devIds—list of device/group/program UUIDs”, (Kozura: ¶466).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine wherein the unique identifier of the first object comprises device information of the first device, application information of the first application, object information of the first object, and timestamp information generated when the first object is created of Kozura with the methods and systems of Moeller in view of Iyer, Luna and Palanisamy resulting in system that can keep track of object transmission data and send and receive objects correctly. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “communication to operate in an efficient asynchronous manner, while keeping all system components up to date with the current state”, (Kozura: ¶371).
Claim 23 is rejected under 35 U.S.C. 103(a) as being unpatentable over Moeller in view of Iyer, Luna, Palanisamy and Pruden, in further view of Kozura et al. (US 20190028338 A1) (hereinafter Kozura).
Regarding Claim 23, Moeller in view of Iyer, Luna, Palanisamy and Pruden fail to teach:
wherein the unique identifier of the first object comprises device information of the first device, application information of the first application, object information of the first object, and timestamp information generated when the first object is created
However, Kozura teaches: “the device identification information includes a device identification identifier represented by one of a serial number, a media control access (MAC) address, and a universally unique identifier (UUID)”, (Kozura: Claim 13), “The pretty JSON for this request would look like:” … ““requestData”: {“id”: “my-app-id”, “apikey”: “key”}, “device”: { “name”: “Some name” } “, (Kozura: ¶412), “id generated by the originator for this message [0471] timeStamp—sender long of current time” … “devIds—list of device/group/program UUIDs”, (Kozura: ¶466).
It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to combine wherein the unique identifier of the first object comprises device information of the first device, application information of the first application, object information of the first object, and timestamp information generated when the first object is created of Kozura with the methods and systems of Moeller in view of Iyer, Luna, Palanisamy and Pruden resulting in system that can keep track of object transmission data and send and receive objects correctly. A person having ordinary skill in the art would have been motivated to make this combination, with a reasonable expectation of success, for the purpose of “communication to operate in an efficient asynchronous manner, while keeping all system components up to date with the current state”, (Kozura: ¶371).
Response to Arguments
In light of applicants amendments, all Claim objections and rejections under 35 U.S.C. 112(b) have been with withdrawn.
Regarding rejections made under 35 U.S.C. 103:
Applicant argues: “The Applicant respectfully submits that the combination of Moeller, Iyer and Luna fails to disclose all of the limitations set forth in independent claims 1, 10, and 19, and consequently does not render obvious claims 1, 4, 8-10, and 17-19. The combination of Moeller, Iyer and Luna fails to render obvious claims 1, 4, 8-10, and 17- 19 because the combination of Moeller, Iyer and Luna fails to verify whether the second application has permission to subscribe to the first object,” … “Moeller, FIG 8, " 205-206, 258-259, and 348 (emphasis added). As shown above, Moeller states that a client library can setup a subscription for access to a registered data set, and that read permissions are checked for users for objects of the library. Moeller also describes that a request for a service by a first application to a client library can result in a subscription for a dataset. Notably absent from Moeller is any teaching of an application, such as a first application, verifying whether a second application has permission to subscribe to the first object,” … “Therefore, the combination of Moeller, Iyer and Luna fail to teach verifying, by the first application, whether the second application has permission to subscribe to the first object,”
Examiner respectfully disagrees, Moeller teaches: “The client library can create an event subscription by sending a message to a management server to register a subscription. The management server creates a data object of a well-known, event subscription data object type, representing the new subscription”, (Moeller: ¶205), “the same code that creates, updates, and posts objects, and listens to events on objects is able to be used to actually create, update, and post event subscription objects themselves, and listen to changes to event subscription objects”, (Moeller: ¶206), “Whenever a data object is written by a client library, the write permissions are checked for the corresponding library session's user and the user's groups”, (Moeller: ¶260). The citations indicate that the client library verifies permissions before a subscription request is written and if permissions are not found then the subscription is not written. Thus, Moeller teaches verifying whether the second application has permission to subscribe to the first object, there for the rejection under 35 U.S.C. 103 is upheld.
Applicant argues: “the combination of Moeller, Iyer and Luna fails to” … “add, in response to the subscription request, the identification information to a subscription list of the first object based on the first application verifying that the second application has the permission to subscribe to the first object, wherein adding the identification information to the subscription list indicates a collaborative relationship between the first application and the second application and to provide a service, and prolong, by the operating system, a time to live of the first application when the subscription list comprises the identification information, wherein prolonging the time to live maintains an application collaboration function between the first application and the second application and to provide the service.” …. “Notably absent from Moeller is any teaching of” … “and adding, by the first application in response to a subscription request, identification information of the second application to a subscription list of a first object based on the first application verifying that the second application has permission to subscribe to the first object. For example, the cited portions of Moeller describe that read permissions of data for a client library, in relation to a network management infrastructure, may be provided for the data based on user identification. As such, the system of Moeller provides access to the client library data without the need for a first application to verify a subscription request form a second application. Moeller also does not teach a first application adding identification information of a second application to a subscription list of a first object based on the first application verifying that the second application has permission to subscribe to the first object, wherein adding information to the subscription list indicates a collaborative relationship between the first application and the second application and to provide a service. As can be seen in FIG. 8, Moeller describes forwarding a dataset to an application and access to the dataset for permitted users without first and second applications. Moreover, Moeller does not prolong the time to live for a first application to maintain an application collaboration function between the first application and the second application and to provide the service. Because Moeller provides access to data by an application based on user identity, Moeller does not teach that prolonging the time to live maintains an application collaboration function between the first application and the second application and to provide the service. Additionally, Iyar and Luna do not make up for the shortcomings in Moeller. Therefore, the combination of Moeller, Iyer and Luna fail to teach” … “adding, by the first application in response to the subscription request, the identification information to a subscription list of the first object based on the first application verifying that the second application has the permission to subscribe to the first object, wherein adding the identification information to the subscription list indicates a collaborative relationship between the first application and the second application and to provide a service, and prolonging, by the operating system, a time to live of the first application when the subscription list comprises the identification information, wherein prolonging the time to live maintains an application collaboration function between the first application and the second application and to provide the service”
Applicant’s additional arguments with respect to claim(s) 1-4, 6-10, 12-13 and 15-23 have been considered but are moot because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument.
Conclusion
THIS ACTION IS MADE FINAL. Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to SHIHAB ALAM whose telephone number is (571)272-8705. The examiner can normally be reached Mon - Fri 7:30am-5pm.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Bradley Teets can be reached at (571) 272-3338. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/S.A./Examiner, Art Unit 2197
/BRADLEY A TEETS/Supervisory Patent Examiner, Art Unit 2197