Embedded information technology focuses on defining a set of usages aimed at benefiting information technology departments and home personal computer customer support by providing advanced and remote capabilities for various purposes.
The invention described herein is illustrated by way of example and not by way of limitation in the accompanying figures. For simplicity and clarity of illustration, elements illustrated in the figures are not necessarily drawn to scale. For example, the dimensions of some elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference labels have been repeated among the figures to indicate corresponding or analogous elements.
While the concepts of the present disclosure are susceptible to various modifications and alternative forms, specific exemplary embodiments thereof have been shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that there is no intent to limit the concepts of the present disclosure to the particular forms disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention as defined by the appended claims.
In the following description, numerous specific details such as logic implementations, opcodes, means to specify operands, resource partitioning/sharing/duplication implementations, types and interrelationships of system components, and logic partitioning/integration choices are set forth in order to provide a more thorough understanding of the present disclosure. It will be appreciated, however, by one skilled in the art that embodiments of the disclosure may be practiced without such specific details. In other instances, control structures, gate level circuits and full software instruction sequences have not been shown in detail in order not to obscure the invention. Those of ordinary skill in the art, with the included descriptions, will be able to implement appropriate functionality without undue experimentation.
References in the specification to “one embodiment”, “an embodiment”, “an example embodiment”, etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to effect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
Embodiments of the invention may be implemented in hardware, firmware, software, or any combination thereof. Embodiments of the invention may also be implemented as instructions stored on a machine-readable medium, which may be read and executed by one or more processors. A machine-readable medium may include any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computing device). For example, a machine-readable medium may include read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; and others.
Referring now to
The processor 102 may include, but is not limited to, processors manufactured or marketed by Intel Corp., IBM Corp., and Sun Microsystems Inc. In one embodiment, computing device 100 may include multiple processors 102. The processors 102 may also include multiple processing cores. Accordingly, the computing device 100 may include multiple processing cores for executing instructions of the computing device 100.
The memory 104 may include, but is not limited to, Dynamic Random Access Memory (DRAM), Static Random Access Memory (SRAM), Synchronized Dynamic Random Access Memory (SDRAM), Rambus Dynamic Random Access Memory (RDRAM), or the like. In one embodiment, the memory 104 may include one or more memory units that do not have to be refreshed.
The chipset 106 may include a memory controller, such as a Memory Controller Hub (MCH), an input/output controller, such as an Input/Output Controller Hub (ICH), or the like. In an alternative embodiment, a memory controller for memory 104 may reside in the same chip as processor 102. In one embodiment, the chipset 106 may include a manageability engine (ME) 107, which may be used to allow remote out-of-band management of the computing device 100. In one embodiment, the manageability engine 107 may be a processor located in the MCH of the chipset 106. The chipset 106 may also include system clock support, power management support, audio support, graphics support, or the like. In one embodiment, chipset 106 is coupled to a board that includes sockets for processor 102 and memory 104.
The components of the computing device 100 may be connected by various interconnects. In one embodiment, an interconnect may be point-to-point between two components, while in other embodiments, an interconnect may connect more than two components. Such interconnects may include a Peripheral Component Interconnect (PCI), such as PCI Express, a System Management bus (SMBUS), a Low Pin Count (LPC) bus, a Serial Peripheral Interface (SPI) bus, an Accelerated Graphics Port (AGP) interface, or the like. I/O device 118 may include a keyboard, a mouse, a display, a printer, a scanner, or the like.
The computing device 100 may interface to external systems through network interface 114. The network interface 114 may include, but is not limited to, a modem, a Network Interface Card (NIC), or other interfaces for coupling a computing device to other computing devices. A carrier wave signal 123 may be received/transmitted by network interface 114. In the embodiment illustrated in
The computing device 100 also includes non-volatile storage 105 on which firmware and/or data may be stored. Non-volatile storage devices include, but are not limited to, Read-Only Memory (ROM), Flash memory, Erasable Programmable Read Only Memory (EPROM), Electronically Erasable Programmable Read Only Memory (EEPROM), Non-Volatile Random Access Memory (NVRAM), or the like.
The mass storage 112 may include, but is not limited to, a magnetic disk drive, such as a hard disk drive, a magnetic tape drive, an optical disk drive, or the like. It is appreciated that instructions executable by processor 102 may reside in mass storage 112, memory 104, non-volatile storage 105, or may be transmitted or received via network interface 114.
In one embodiment, the computing device 100 may execute an Operating System (OS). Embodiments of an OS include Microsoft Windows®, the Apple Macintosh operating system, the Linux operating system, the Unix operating system, or the like.
Referring now to
A virtual machine monitor (VMM) 208 may operate on the computing device 100. In one embodiment, the VMM 208 may operate a plurality of virtual machines such as VM0, VM1. The virtual machine VM1 may operate a service operating system (SOS) 210, such as a Windows or Linux based operating system, for example. The virtual machine VM0 may operate a capability operating system (COS) 212, such as Windows XP, for example. The COS 212 may allow various user applications 214 to be executed thereon.
Referring again to the virtual machine VM0, the SOS 210 may operate a context engine software 216, which may be implemented as software, and provide a device information layer, allowing it to provide information in regard to the computing device 100, such as power, disk storage, and connectivity information, for example. The context engine may provide a single application programming interface (API) across a plurality of operating systems and implement multiple languages. During runtime, the context engine 216 may also communicate synchronously or asynchronously. This allows various embedded information technology (EIT) applications to query system context information through a synchronous mode, or subscribe to receive an event notification occurring in the computing device 100 though an asynchronous event mechanism.
A policy engine 218 may be implemented as software operated through the context engine 216. The policy engine 218 may contain rule engine 220 and actuator provider managers 222. The policy engine 218 may load and parse predefined rules using the rule engine 220, analyze system context status or await event notification from the context engine 216. The policy engine 218 may also invoke the actuators managers 222 to select an accurate actuator and execute a rule.
A plurality of EIT applications 224 may be operated through the policy engine 218. In one embodiment, each of the plurality of EIT applications 224 may be used for tasks regarding various aspects of the computing device 100 such as provisioning, manageability, diagnostics, and remediation. A configuration graphical user interface (GUI) 226 may be used by a user as a policy management console, allowing an information technology (IT) administrator to define various rules to be enforced or to add/remove various EIT applications. Other EIT applications 230 may be implemented and configured to operate outside the policy engine 216 and directly on the context engine 218.
During operation of the software environment 200, the plurality of EIT applications 224 may be used to determine various information in regard to the computing device 100. The configuration of
Referring now to
At block 308, the context engine 216 may determine that status of a condition. At block 310, a determination may be made as to if the status determined by the context engine 216 has changed. If the status has not changed, the routine may be reset for execution at a later time. If the status has changed, at block 312 the policy engine 312 is notified by of the status change. At block 314, an action may be executed based upon the policy rule previously set.
Referring now to
The disk health analyzer 408 may return the disk status to the context engine 216, as indicated by arrow 410. The rule engine 220 may invoke the actuators manager 222 to execute action of the rule as indicated by arrow. In one embodiment, the policy engine 218 may implement an Event-Condition-Action (ECA) style rule, which on an event occurring, if a condition is true, an action is performed. In the embodiment illustrated in
In
While the disclosure has been illustrated and described in detail in the drawings and foregoing description, such an illustration and description is to be considered as exemplary and not restrictive in character, it being understood that only illustrative embodiments have been shown and described and that all changes and modifications that come within the spirit of the disclosure are desired to be protected.