Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Detailed Action
Claim Interpretation
The terms “unit types” and “service types” have been interpreted in line with the Specification, particularly paragraph [0002], which describes “unit types” as interfaces and “service units” as units of execution, such as servers, clients, etc.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 17-20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to non-statutory subject matter.
Claims 17-20 recite a computer-readable storage medium storing instructions. However, according to the Specification at Paragraph [89], the medium is described as comprising transitory mediums such as wireless technologies, infrared, and microwaves. These types of mediums represent non-statutory subject matter.
Applicant is advised to make the following amendment to overcome this rejection: “A non-transitory computer-readable storage medium”.
Claim Rejections - 35 USC § 102
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
Claims 1-7, 9-15, and 17-20 are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Ramu et al. U.S. PGPUB No. 2012/0246316. (reference cited in IDS Dated 1/14/2026)
Per Claim 1, Ramu discloses a method comprising:
executing, at a first time, and by an operating system, a first software package from a plurality of software packages (Paragraph 4 describes a dynamic module system, which represents modular software applications/packages. Paragraph 25; Hybrid application 105 implemented on a hybrid application server. Paragraph 95, Fig. 12; Examples of computer systems which can implement the hybrid application server are presented, such as personal computer system desktop computer, laptop/notebook computer, mainframe, handheld computer systems, etc. All of these systems comprise operating systems that execute software packages.),
wherein the first software package (hybrid application 105) includes declarations of one or more unit types (Paragraph 4; “Related services are often deployed in OSGi as a group of implementing classes known as a bundle or module. Such a module may define a set of capabilities (i.e., service interfaces), requirements (i.e., dependencies), and classes (i.e., implementations).”), wherein each software package from the plurality of software packages defines one or more service units (Paragraphs 28; “OSGi service components 107 may be defined as part of an OSGi bundle that includes various classes implementing one or more services.”), and wherein one or more of the one or more service units implements one of the one or more unit types (Paragraph 4; “Related services are often deployed in OSGi as a group of implementing classes known as a bundle or module. Such a module may define a set of capabilities (i.e., service interfaces), requirements (i.e., dependencies), and classes (i.e., implementations).”);
while executing the first software package, fetching, by the operating system and from a centralized registry, a first set of implementations of the one or more unit types by the one or more service units (Paragraph 4; “OSGi is a dynamic module system for building modular, service-oriented Java.TM. applications. OSGi provides a service registry where developers can register and unregister services. Each service listed by the service registry may have multiple implementations and an OSGi component may query the service registry to discover and retrieve various implementations of a particular service.”);
and while executing the first software package: loading, by the operating system, one or more service units defined by the first software package with the first set of implementations; and executing, by the operating system, the one or more service units based on the first set of implementations (Paragraph 4; “In response to a service query, an OSGi container may determine an appropriate implementation that satisfies the query and return it to the querying component. Using the handle, the discovering object may then invoke the service. Related services are often deployed in OSGi as a group of implementing classes known as a bundle or module. Such a module may define a set of capabilities (i.e., service interfaces), requirements (i.e., dependencies), and classes (i.e., implementations).”).
Per Claim 2, Ramu discloses the method of claim 1, further comprising: executing, at a second time, and by the operating system, the first software package; while executing the first software package, fetching, by the operating system and from the centralized registry, a second set of implementations of the one or more unit types by the one or more service units; while executing the first software package, updating, by the operating system, the one or more service units defined by the first software package with the second set of implementations; and executing, by the operating system, the one or more service units based on the second set of implementations (Paragraph 4; “OSGi includes a lifecycle layer that enables modules to be dynamically installed, started, stopped, updated, and uninstalled during runtime, which enables reconfiguration without system downtime.”).
Per Claim 3, Ramu discloses the method of claim 1, wherein different service units defined by different software packages are configured to simultaneously implement one of the one or more unit types (Paragraph 4; “Each service listed by the service registry may have multiple implementations and an OSGi component may query the service registry to discover and retrieve various implementations of a particular service.”).
Per Claim 4, Ramu discloses the method of claim 1, wherein the centralized registry includes a list of registered service units for each of the one or more unit types, and wherein each registered service unit implements one of the one or more unit types (Paragraph 56).
Per Claim 5, Ramu discloses the method of claim 1, wherein the one or more unit types include one or more of a public type, a protected type, and a local type, and wherein the one or more unit types are declared in accordance with an inter-process communication policy including information indicative of one or more software packages authorized to implement the one or more unit types (Paragraph 94; “The OSGi container notifies any clients that currently hold a handle to the proxy object that the service represented by the proxy object is no longer available. In various embodiments, the message may be of a standard type for communication between the OSGi container and OSGi clients. Because OSGi is a dynamic module system, OSGi clients may be configured to respond to such a message by taking appropriate action to avoid any broken dependencies.”).
Per Claim 6, Ramu discloses the method of claim 5, wherein the one or more unit types include the protected type, the method further comprising: determining, by the operating system, whether each of the one or more software packages is authorized to implement the protected type (Paragraph 33; “The archive may also include various Java EE metadata that describes deployment settings of the one or more Java EE components. For example, the Java EE metadata may be declared in an XML-file (i.e., a deployment descriptor) that provides deployment metadata such as transaction attributes and security authorizations for the Java EE components”).
Per Claim 7, Ramu discloses the method of claim 1, wherein the one or more unit types include one or more interface types, and wherein the one or more service units include one or more Remote Procedure Call servers and one or more Remote Procedure Call clients (Paragraph 30; “A Java EE container may provide Java EE components with different services, such as security, transaction management, Java Naming and Directory Interface (JNDI) lookup functionality, remote connectivity, and/or other services.”; “Similarly, a container may also provide Java EE components with interfaces to remote components, such that a Java EE component can transparently access a remote component as though it is local.”).
Per Claim 9, Ramu discloses:
a computing system (system 100) comprising: one or more processors (Paragraph 97, Fig. 12; processor(s) 1260); and one or more storage devices that store instructions, wherein the instructions, when executed by the one or more processors, cause the one or more processors to (Paragraphs 99-100, Fig. 12; System memories 1210 contain program instructions 1220 ):
execute, at a first time, a first software package from a plurality of software packages (Paragraph 4 describes a dynamic module system, which represents modular software applications/packages. Paragraph 25; Hybrid application 105 implemented on a hybrid application server. Paragraph 95, Fig. 12; Examples of computer systems which can implement the hybrid application server are presented, such as personal computer system desktop computer, laptop/notebook computer, mainframe, handheld computer systems, etc. All of these systems comprise operating systems that execute software packages.),
wherein the first software package (hybrid application 105) includes declarations of one or more unit types (Paragraph 4; “Related services are often deployed in OSGi as a group of implementing classes known as a bundle or module. Such a module may define a set of capabilities (i.e., service interfaces), requirements (i.e., dependencies), and classes (i.e., implementations).”), wherein each software package from the plurality of software packages defines one or more service units (Paragraphs 28; “OSGi service components 107 may be defined as part of an OSGi bundle that includes various classes implementing one or more services.”), and wherein one or more of the one or more service units implements one of the one or more unit types (Paragraph 4; “Related services are often deployed in OSGi as a group of implementing classes known as a bundle or module. Such a module may define a set of capabilities (i.e., service interfaces), requirements (i.e., dependencies), and classes (i.e., implementations).”);
while executing the first software package, fetch, from a centralized registry, a first set of implementations of the one or more unit types by the one or more service units (Paragraph 4; “OSGi is a dynamic module system for building modular, service-oriented Java.TM. applications. OSGi provides a service registry where developers can register and unregister services. Each service listed by the service registry may have multiple implementations and an OSGi component may query the service registry to discover and retrieve various implementations of a particular service.”);
and while executing the first software package: load one or more service units defined by the first software package with the first set of implementations; and execute the one or more service units based on the first set of implementations (Paragraph 4; “In response to a service query, an OSGi container may determine an appropriate implementation that satisfies the query and return it to the querying component. Using the handle, the discovering object may then invoke the service. Related services are often deployed in OSGi as a group of implementing classes known as a bundle or module. Such a module may define a set of capabilities (i.e., service interfaces), requirements (i.e., dependencies), and classes (i.e., implementations).”).
Per claims 10-15, please refer to the above rejection of claims 2-7 as the limitations are substantially similar and the mapping of limitations is equally applicable.
Per Claims 17-20, please refer to the above rejection of claims 1-4 as the limitations are substantially similar and the mapping of limitations is equally applicable. Additionally, Ramu teaches the computer-readable storage medium embodiment (Paragraph 96).
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
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.
The factual inquiries set forth in Graham v. John Deere Co., 383 U.S. 1, 148 USPQ 459 (1966), that are applied for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
Claims 8 and 16 are rejected under 35 U.S.C. 103 as being unpatentable over Ramu et al. U.S. PGPUB No. 2012/0246316 in view of Wolf et al. U.S. PGPUB No. 2011/0055239.
Per Claim 8, Ramu discloses the method of claim 1, wherein the one or more unit types include one or more message types (Paragraph 69, “messaging services (e.g. JMS))
Ramu does not specifically teach wherein the one or more service units include one or more publisher units and one or more subscriber units.
However, Wolf teaches an OSGi framework where system elements (Paragraph 70) may operate as publishers and subscribers (Paragraphs 76 and 77).
- It would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to implement Wolf’s OSGi publisher/subscriber framework within the OSGi framework of Ramu because it facilitates decoupling by enabling an asynchronous communication (Wolf, Paragraph 76).
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to BRIAN T MISIURA whose telephone number is (571)272-0889 - (Direct Fax: 571-273-0889). The examiner can normally be reached on M-F: 8-4:30PM.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Andrew Jung can be reached on (571) 272-3779. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of an application may be obtained from the Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from either Private PAIR or Public PAIR. Status information for unpublished applications is available through Private PAIR only. For more information about the PAIR system, see http://pair-direct.uspto.gov. Should you have questions on access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free).
/Brian T Misiura/
Primary Examiner, Art Unit 2175