Providing a sensor composite service based on operational and spatial constraints

Mechanisms are provided for generating a composite service. A request to generate the composite service is received that identifies a geospatial region of interest for the composite service. One or more types of components needed to generate the composite service are determined and, for each component of a plurality of components of the one or more types of components, a corresponding spatial coverage characteristic is determined. A subset of components, from the plurality of components, is selected based on the spatial coverage characteristics of the plurality of components and the geospatial region of interest. The composite service is then generated based on the selected subset of components from the plurality of components.

BACKGROUND

The present application relates generally to an improved data processing apparatus and method and more specifically to mechanisms for providing a sensor composite service based on operational and spatial constraints.

In today's society, environmental sensors are increasingly being used to monitor geospatial conditions. For example, traffic cameras and other traffic sensors are used to monitor roadway conditions, weather sensors are used to monitor weather conditions at various geographical locations, cameras are used for facial recognition to identify persons of interest, sensors for monitoring city operations, utility grids, supply chains, surveillance, and the like, and other cameras and sensors are used to monitor a plethora of other geospatial conditions. These cameras and sensors generate a large amount of time-varying geospatial data. The proliferation of such cameras, sensors, and the like, and the resulting large datasets gathered from these spatially-distributed camera and sensor devices provides unprecedented opportunities for increased situation awareness and effective action-taking by end-user smart applications.

These cameras and sensors (hereafter referred to collectively as “sensors”) are often associated with a plurality of different providers that each may monitor different geospatial regions and may measure different characteristics of a particular geospatial region, e.g., acoustic properties, temperature properties, barometric pressure properties, visual properties, etc. Thus a single geospatial data provider and/or type of sensor may not be able to fulfill the information needs to perform advance analysis and utilization of data.

SUMMARY

In one illustrative embodiment, a method, in a data processing system comprising a processor and a memory, for generating a composite service is provided. The method comprises receiving, by the data processing system, a request to generate the composite service, wherein the request identifies a geospatial region of interest for the composite service. The method further comprises determining one or more types of components needed to generate the composite service and determining, for each component of a plurality of components of the one or more types of components, a corresponding spatial coverage characteristic. The method also comprises selecting, by the data processing system, a subset of components from the plurality of components based on the spatial coverage characteristics of the plurality of components and the geospatial region of interest. In addition, the method comprises selecting a subset of components from the plurality of components based on the spatial relevancy measures of the plurality of components.

DETAILED DESCRIPTION

The illustrative embodiments provide mechanisms for providing a sensor composite service based on operational and spatial constraints. The present invention is based on the recognition that a sensor service may be defined as a composition of a plurality of sensors of the same or different types, provided by the same or different provider entities, and directed to monitoring characteristics (or properties) of a same or different geospatial region. The information obtained from various different sensors may be combined to provide a more comprehensive representation of the characteristics of a particular geospatial region of interest, which may then be analyzed to provide a sensor composite service to users.

Within the context of the present description, a sensor composite service is defined as a combination of functionality residing on multiple sensor nodes and/or associated sensor services to provide a complex service. An example of a sensor composite service may be a camera tracking service which may make use of one or more acoustic sensors to detect and event occurring and using the detection of the event (e.g., car accident), possibly using a triangulation service, to cause one or more cameras (e.g., traffic cameras) to focus on a geospatial area (e.g., intersection of roads) to capture images of the event, using a camera service. It should be understood that the sensors, or sensor platforms, themselves may implement both pure sensory-related functionality (e.g., acoustic sensing) as well as algorithmic functionality that may, or may not, be directly related to sensing. For example, a triangulation algorithmic functionality operates on acoustic measurements, but is not in itself a sensing capability. Thus, the sensors, or sensor platforms, referenced in the present description may encompass one or both pure sensors (typically acting as initial data inputs/measurement sources) as well as algorithmic functionality that may be necessary as part of a sensor composite service.

The use of sensors and/or primitive sensor services in a sensor composite service may be constrained by security policies that specify allowed information flows among sensor nodes. Moreover, the use of particular sensors in a sensor composite service may also be constrained based on system or network management policies that control the use of these sensors based on available resources. In U.S. Patent Application Publication No. 2012/0215893, which is hereby incorporated by reference, a mechanism was provided for generating efficient data flow graphs by minimizing various cost-based metrics, i.e. performing cost minimization.

The present invention, in addition to providing cost efficiency though cost minimization, addresses the issue of how one can make the processing of selected sensors and/or primitive sensor services for a desired sensor composite service geographically relevant. That is, a user may be interested in a particular geospatial region (where “geospatial” refers to a geographical and/or spatial location, area, region, or the like) and wishes to have a sensor composite service provided that provides the desired sensor information and analysis results for the geospatial region of interest. The geospatial region may be defined in terms of various types of metrics including latitude/longitude coordinates, Cartesian coordinates, or any other multi-dimensional representation of space. The illustrative embodiments of the present invention, described herein, provide a mechanism for minimizing cost and ensuring that the geospatial region of interest to the user is covered by the sensor composite service requested by the user, while providing a desired quality of information (QoI).

With the mechanisms of the illustrative embodiments, each sensor and/or primitive sensor service (where a “primitive” sensor service is a service that may be combined with other services and/or sensors to generate a sensor composite service) is assigned a spatial relevancy metric with respect to the spatial interest of a provided user request for a sensor composite service. Service selection during sensor composite service creation takes into account both the cost of selecting the component sensor(s) and/or primitive sensor services (referred to hereafter as “components”) as well as the spatial relevancy of these components.

In order to provide a spatial relevancy metric for components (sensor(s) and/or primitive sensor service(s)), a spatial coverage characteristic is generated for the component. Some components have a spatial coverage characteristic associated with them directly, e.g., a camera sensor may have an associated geospatial location and radius or arc of viewing associated with the camera sensor that defines the geospatial range from which the camera is able to capture images. Thus, the geospatial location combined with the range or arc defines a geospatial area or region that the camera covers, i.e. a spatial coverage characteristic.

Other components may not have a directly associated spatial coverage characteristic. In such a case, the present invention generates a spatial coverage characteristic from the spatial coverage characteristics of the sub-components of the component. For example, a sensor triangulation service may not natively incorporate a notion of a spatial coverage characteristic, but may inherit the spatial coverage characteristics of the sensors from which the sensor triangulation service obtains inputs. As another example, a panoramic image composer service may not natively incorporate the notion of a spatial coverage characteristic, but inherits the spatial coverage characteristic of the camera sensors that provide the panoramic image composer service input.

Thus, with the mechanisms of the illustrative embodiments, each component (sensor and/or primitive sensor service) either natively provides a spatial coverage characteristic or is assigned a spatial coverage characteristic based on a function of the spatial coverage characteristics associated with that component's sub-components. The spatial coverage characteristic of a component may be compared against the geospatial requirements submitted by a user in a user request for a sensor composite service. Results of the comparison may be used to generate a spatial relevancy measure for the component which, in turn, can be used to determine which components should be included in the sensor composite service. That is, by selecting those components whose spatial coverage characteristic more closely match the requested geospatial requirements, and thus, have a higher spatial relevancy measure, a desired sensor composite service may be constructed. Such selection may be based on the spatial coverage characteristics as well as other factors including types of the components, costs associated with inclusion of the component in the sensor composite service, data flow constraints (which may be reflected as a “cost”), quality of information (QoI), and the like. As a result, a sensor composite service is dynamically generated that meets the specific requirements requested by the user, based on the various components available and both their geospatial characteristics and costs (which may represent various types of costs including data flow constraints, QoI, and the like).

For example, consider the case where a city agency needs to monitor traffic accidents occurring within a geographical area of a city. In order to monitor such traffic accidents, the city wishes to utilize cameras to obtain video images of such traffic accidents when they occur. The city government, or third party providers, may already have cameras used to monitor red light violations, traffic congestion, or other conditions of various areas of the city, which may be repurposed to assist in the monitoring of traffic accidents. Similarly, the city government, or third party providers, may further have acoustic sensors deployed, or may deploy such acoustic sensors, for the purpose of monitoring acoustic characteristics of various areas of the city. As a result, in order to provide the traffic accident monitoring, the city officials may wish to enlist a sensor composite service that leverages the functionality of the sensors and/or primitive sensor services associated with the deployed sensors to perform a more complex functionality and/or analysis. In the present example, the sensor composite service may make use of the acoustic sensors to sense acoustic input for designated areas of the city, provide output to a triangulation service that triangulates the location of an event based on the sensed acoustic input, and then provides an output to a camera sensor service that may control the operation of one or more cameras to direct their operation to the detected location of an event.

The above hypothetical (albeit not improbable) scenario exemplifies a trend where increased deployment and use of sensor networks is ushering a new era where information rich solutions are becoming even more pervasive and integrated parts of our personal and professional lives. The mechanisms of the illustrative embodiments establish procedures by which one can leverage the pervasiveness of sensors and primitive sensor services in today's society to provide complex sensor composite services that can provide desired information about geospatial areas of interest. More specifically, the mechanisms of the illustrative embodiments provide logic for selecting components from which a sensor composite service may be generated and provided to a user, with the selection being based on cost and geospatial factors.

The above aspects and advantages of the illustrative embodiments of the present invention will be described in greater detail hereafter with reference to the accompanying figures. It should be appreciated that the figures are only intended to be illustrative of exemplary embodiments of the present invention. The present invention may encompass aspects, embodiments, and modifications to the depicted exemplary embodiments not explicitly shown in the figures but would be readily apparent to those of ordinary skill in the art in view of the present description of the illustrative embodiments.

Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be a system, apparatus, or device of an electronic, magnetic, optical, electromagnetic, or semiconductor nature, any suitable combination of the foregoing, or equivalents thereof. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical device having a storage capability, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber based device, a portable compact disc read-only memory (CDROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain or store a program for use by, or in connection with, an instruction execution system, apparatus, or device.

In some illustrative embodiments, the computer readable medium is a non-transitory computer readable medium. A non-transitory computer readable medium is any medium that is not a disembodied signal or propagation wave, i.e. pure signal or propagation wave per se. A non-transitory computer readable medium may utilize signals and propagation waves, but is not the signal or propagation wave itself. Thus, for example, various forms of memory devices, and other types of systems, devices, or apparatus, that utilize signals in any way, such as, for example, to maintain their state, may be considered to be non-transitory computer readable media within the scope of the present description.

As illustrated inFIG. 1, the servers104and106may be coupled to one or more sensor networks120-130which may be comprised of a plurality of electronic sensor devices and primitive sensor services of the same or different types (e.g., cameras, acoustic sensors, temperature sensors, pressure sensors, motion sensors, infrared sensors, triangulation services, composition services, control services, etc.) which are able to relay data corresponding to sensed conditions and perform primitive analysis or functionality with regard to a geospatial region via one or more data networks to the servers104and106. This data may be made available, through the servers104and106and network102, to one or more other servers (not shown), or even client devices110-114, for use with sensor composite services in performing relatively complex analysis of the sensor data provided by the sensor networks120-130. These sensor composite services may be statically generated or dynamically generated in response to user requests. Furthermore, the servers104,106, client devices110-114, or the like, may provide primitive sensor services which may also be included in the generation or defining of such sensor composite services, e.g., triangulation services, panoramic composer services, or the like. As described in greater detail hereafter, the servers104,106, or other servers not shown, and/or client devices110-114may implement mechanisms in accordance with the illustrative embodiments to dynamically select components (e.g., sensors and/or primitive sensor services) to utilize with these sensor composite services in accordance with determined spatial relevance characteristics and costs.

With reference now toFIG. 2, a block diagram of an example data processing system is shown in which aspects of the illustrative embodiments may be implemented. Data processing system200is an example of a computer, such as client110or server computer106inFIG. 1, in which computer usable code or instructions implementing the processes for illustrative embodiments of the present invention may be located. The data processing system200may be configured, via hardware, software, or a combination of hardware and software, to implement logic for performing the various operations and functions described hereafter with regard to providing a sensor composite service based on operational and spatial constraints as well as spatial coverage characteristics of potential components of the sensor composite service.

An operating system runs on processing unit206. The operating system coordinates and provides control of various components within the data processing system200inFIG. 2. As a client, the operating system may be a commercially available operating system such as Microsoft Windows 7 (Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both). An object-oriented programming system, such as the Java programming system, may run in conjunction with the operating system and provides calls to the operating system from Java programs or applications executing on data processing system200(Java is a trademark of Oracle and/or its affiliates.).

As a server, data processing system200may be, for example, an IBM® eServer™ System p® computer system, running the Advanced Interactive Executive (AIX®) operating system or the LINUX operating system (IBM, eServer, System p, and AIX are trademarks of International Business Machines Corporation in the United States, other countries, or both, and LINUX is a registered trademark of Linus Torvalds in the United States, other countries, or both). Data processing system200may be a symmetric multiprocessor (SMP) system including a plurality of processors in processing unit206. Alternatively, a single processor system may be employed.

As mentioned above, the illustrative embodiments provide mechanisms for creating sensor composite services by selecting components (sensors and/or primitive sensor services) for inclusion in the sensor composite service and then generating resources to define and control the sensor composite service. The sensor composite service is a collection of different sensors and/or primitive sensor services that together provide a complex functionality for achieving a desired operation. For example, a sensor composite service may be a camera tracking service that utilizes various components including acoustic sensors, cameras, triangulation services, and camera control systems to perform event tracking, e.g., traffic accident detection and monitoring.

The data structures and functional associations of these sensors and/or primitive sensor services provide a “description” of the sensor composite service. This description of the sensor composite service includes the specification of the interconnections of the selected components with one another. Such specification of interconnectivity amongst the selected component sensors/services may, for example, include a specification of the interconnection requirements between an output port of a first component (that acts as a service provider or sensor data provider), among a plurality of output ports of the first component, with an input port of a second component (that acts as a service or sensor data consumer) among a plurality of input ports of the second component. Such specification of interconnectivity amongst selected components might also include metadata information relating to the data transferred from one component to another via connectivity of input-output ports, the metadata information specifying characteristics of the data, such as quality measures (for example fidelity), provenance information (e.g., sources used for the generation of the data), as well as any other type of information that may characterize the data. The description of the sensor composite service may include information that characterize the composite service itself, including, but not limited to, overall cost of the sensor composite service, spatial coverage that the sensor composite service provides, and the like. Once the description of the sensor composite service is available, it can be used by the sensor network administrator and/or platform to instantiate the sensor composite service, including, but not limited to, loading the selected component services in memory and executing them, configuring network connectivity among the sensors so as to be able to transfer data among the sensors and sensor services that run on them, as well as other operational and security parameters that might need to be configured for the uninterrupted execution, communication and operation of the component sensors/services, and the like. In addition, the description of the sensor composite service may be stored in a sensor composite service repository for later retrieval, reference, to be used itself as a primitive sensor service component for synthesizing higher-layer sensor composite services, shared with third parties, audited, used to trigger dynamic re-composition should any of the operational parameters change, or the like.

FIG. 3is an example diagram illustrating the components of a sensor composite service in accordance with one illustrative embodiment. As shown inFIG. 3, a sensor composite service is depicted that, in this case, is a camera tracking service. The camera tracking service requires geo-location of an event of interest which can be obtained through the triangulation of acoustic bearings. That is, by using at least three acoustic sensors310-330, monitoring a geospatial location300and feeding acoustic data representing the acoustic conditions detected in the geospatial location300to a triangulation service340, the location of an event350within the geospatial location300may be determined. The use of such acoustic sensors and triangulation services in themselves is generally known in the art and thus, a more detailed description of how events are detected based on acoustic data and the geo-location determined through triangulation is not provided herein.

Such event detection and geo-location may be combined with a camera sensor service360to control the operation of one or more camera sensors to direct their operation to the geo-location for the event350as determined by the triangulation service340. That is, the acoustic sensors310-330may comprise logic for determining that an event of interest, e.g., a traffic accident, has occurred by analyzing the acoustic input received by the acoustic sensors310-330. Alternatively, the acoustic sensors310-330may strictly collect acoustic input and provide corresponding acoustic data to another service (not shown) that determines whether particular events have occurred within the geospatial location300by analyzing the acoustic data. Such a service may even be integrated with the triangulation service340, for example.

Having detected that an event has occurred, the triangulation service340may analyze the acoustic data to determine a geo-location for the detected event. For example, strength of acoustic signals may be triangulated by the triangulation service340to identify the most likely geo-location of the detected event. This geo-location data may be transmitted to the camera sensor service360which may then control one or more camera sensors to train their viewing area on the determined geo-location so that camera image/video data may be collected. Further complex analysis of the camera images/video may be performed by the camera sensor service360, or other services (not shown), to perform complex functionality for handling detected events, e.g., dispatching emergency services, generating reports and/or alerts, contacting appropriate personnel, etc.

The collection of the components including the acoustic sensors310-330, the triangulation service340, and the camera sensor service360in this example, constitutes an instance of a sensor composite service which, in this case, is a camera tracking service. It should be appreciated that there may be various sensor networks deployed in various geospatial locations and may be provided by a number of different providers. Similarly, various primitive sensor services may be provided for performing various types of analysis of data obtained from sensor networks. Thus, the selection of sensors within a sensor network, or across multiple sensor networks, as well as primitive sensor services may be a complex process especially when trying to satisfy requirements in user requests for such sensor composite services. Sensors and primitive sensor services must be selected that provide the necessary data for performing the more complex functionality/analysis while taking into account the costs of including the sensor/primitive sensor services in the sensor composite service and also making sure that the selected sensors/primitive sensor services have a spatial coverage characteristic that covers at least a portion of the geospatial region of interest.

FIG. 4is an example diagram illustrating a selection of components for inclusion in a sensor composite service in accordance with one illustrative embodiment. As shown inFIG. 4, for a particular geographical region, a plurality of sensors may be provided by one or more providers, with the sensors being of the same or different types. For example, multiple acoustic sensors410-420and multiple camera sensors430-440may be provided within the geographical region400. Each of the sensors may have a corresponding spatial coverage characteristic representing a portion450-460and470-480of the geographical region400that the sensor is able to monitor, i.e. obtain sensor input. A user may wish to establish a sensor composite service, such as a camera tracking service, for a particular geospatial region490. A subset of each of the types of sensors410-420and430-440have spatial coverage characteristics450-460and470-480that fall within the geospatial region490. Thus, these subsets of sensors410-420and430-440should be considered as candidates for inclusion within the requested sensor composite service. Moreover, from these candidates individual sensors may be selected based on costs, quality of information, type of sensor, and other pertinent factors, that will be apparent to those of ordinary skill in the art in view of the present description, which differentiate one sensor or group of sensors from another of the same or different type.

Thus, in the depicted example, sensors410-416and430-434have spatial coverage characteristics450-456and470-474that fall within the geospatial region490. Sensors418-420and436-440have spatial coverage characteristics458-460and476-480that fall outside of the geospatial region490of interest. From the sensors410-416and430-434subsets of the sensors may be selected based on a degree of coverage of the spatial coverage characteristics with regard to the geospatial region490, the number and types of sensors needed for other selected primitive sensor services, and the like. For example, assuming that a triangulation service is going to be used as part of the sensor composite service, then at least three acoustic sensors may be selected from the subset of acoustic sensors410-416that provide a best coverage of the geospatial region490. Similarly, camera sensors from within the subset of camera sensors430-434that provide a greatest coverage of the geospatial region490.

FIG. 4illustrates the selection of sensors based on natively associated spatial coverage characteristics associated with the sensors. However, as mentioned above, some sensors and/or primitive sensor services may not have natively associated spatial coverage characteristics. For example, in the example previously mentioned above, the triangulation service and camera tracking service themselves may not have a natively associated spatial coverage characteristic. Thus, a spatial coverage characteristic may be generated for these services based on the spatial coverage characteristics of the sub-components, e.g., sensors or sub-component services, associated with the service. Therefore, for example, the spatial coverage characteristic of the triangulation service may be generated based on the native spatial coverage characteristics of the sensors selected to provide input to the triangulation service, and the spatial coverage characteristic of the camera tracking service may be generated based on the spatial coverage characteristic of the triangulation service. Thus, a component (sensor or primitive sensor service) that does not have a native spatial coverage characteristic inherits the spatial coverage characteristic through an aggregation function applied over the spatial coverage characteristics of its input components.

FIG. 5is an example diagram illustrating a hierarchy of components for illustrating spatial coverage characteristic generation for components in accordance with one illustrative embodiment. As shown inFIG. 5, a user may request a particular sensor composite service that the user wishes to generate with a given geospatial region of interest510. That is, the user, via a user interface or the like, may submit a request to generate a sensor composite service. The request may specify the type of sensor composite service that is to be generated, the types of components needed to generate the sensor composite service, or the like, a geospatial region of interest for the sensor composite service, and may optionally specify other parameters for generating the sensor composite service, including a maximum cost, a quality of information desired, or the like. In some illustrative embodiments, the user may not need to specify the components to make up the sensor composite service and instead may allow an automated engine, as described hereafter, determine what components are needed to provide the requested sensor composite service. In such a case, the sensor composite service may be a pre-determined type of sensor composite service recognized by the engine and may in fact be selected by a user from a predetermined list of available sensor composite services. In other illustrative embodiments, the user may specify the sensor composite service by specifying desired outputs along with spatial and/or operational parameters without necessarily selecting a pre-defined sensor composite service from a predetermined list.

As shown inFIG. 5, there are a plurality of primitive sensor services X1-Xk which may be used as a basis for providing the requested sensor composite service510. These primitive sensor services X1-Xk may further have various sub-component primitive sensor services Y1-Ym that provide input to the primitive sensor services X1-Xk. The sub-component primitive sensor services Y1-Ym may have various sensor data sources1-nthat provide input to the sub-component primitive sensor services Y1-Ym. Thus, a hierarchy of primitive sensor services and sensors is present from which the components and sub-components for generating a requested sensor composite service may be selected in accordance with the constraints specified in the request for the sensor composite service, e.g., cost constraints, geospatial region constraints, or the like.

In the depicted example, based on the components needed to provide the sensor composite service specified in the request510, as determined either from being specifically specified in the request or automatically determined, various ones of the sensor data sources1-nand primitive sensor services X1-Xk, Y1-Ym are selected. The selection can take many different forms but are primarily based on the constraints specified in the request and the specific sensor composite service requested. For example, in one illustrative embodiment, the type of sensor composite service requested may be used to determine which primitive sensor services are required to provide the sensor composite service. In the depicted example, one or more of services X1-Xk are determined to be needed to provide the requested sensor composite service based on the type of services provided, which in this case may be services X1-X3.

In order to select a subset of the services X1-X3, spatial coverage characteristics associated with the services X1-X3may be compared to the geospatial region of interest constraint specified in the request510to generate a spatial relevancy measure for the service X1-X3. In order to generate the spatial relevancy measure, the spatial coverage characteristics of the services X1-X3must be determined. The services X1-X3in this example do not have their own natively associated spatial coverage characteristic, e.g., a native range or radius. Therefore, a spatial coverage characteristic needs to be generated for the services X1-X3based on the spatial coverage characteristics of their sub-components, e.g., services Y1-Ym. These services, in turn, may not have their own native spatial coverage characteristics and may have their spatial coverage characteristics generated based on the native spatial coverage characteristics of the sensor data sources1-nthat provide input to the respective services Y1-Ym.

Thus, in the depicted example, service Y1has a generated spatial coverage characteristic that is a function of the native spatial coverage characteristics of the sensor data sources1and2. For example, the spatial coverage characteristic of service Y1may be the intersection of the native spatial coverage characteristics of sensor data sources1and2, e.g., spatial coverage (Y1)=Cov(1)^Cov(2), such as in the case of service Y1being a triangulation service. Alternatively, other services may require different functions to be applied to the native spatial coverage characteristics of the sensor data sources1and2to generate the spatial coverage characteristic of the service, e.g., a union of the spatial coverage characteristics of the sensor data sources1and2, such as in the case of a panoramic image composer service for example, or the like.

Thus, the service Y1inherits the spatial coverage characteristics of the sensor data sources1and2through the application of a function to these spatial coverage characteristics, where the function may be specified in configuration information for the service Y1, to generate the spatial coverage characteristic for the service Y1. Similarly, service Y2inherits the spatial coverage characteristics of the sensor data sources4and5, although the function used to generate the spatial coverage characteristic for service Y2may be different from that used to generate the spatial coverage characteristic for service Y1. In the same way, service Ym inherits the spatial coverage characteristic of sensor data source6.

The same is true for higher levels of the hierarchy as well. That is, service X1inherits the spatial coverage characteristics of service Y2and sensor data source3by applying an appropriate function to these spatial coverage characteristics. Service X2inherits from service Y2and service X3inherits from both services Y2and Ym. In this way, components that do not have native spatial coverage characteristics have their spatial coverage characteristics generated based on their respective sub-components.

Having generated the spatial coverage characteristics for the various components and their sub-components, the spatial coverage characteristics may be compared to the geospatial region of interest specified in the request to generate a spatial relevancy measure for the particular components and/or sub-components. Based on the spatial relevancy measures associated with the components/sub-components, certain ones of the components/sub-components may be selected, e.g., those having a highest spatial relevancy measure. The selection of components/sub-components may further be constrained by the types of components/sub-components needed to provided the sensor composite service, e.g., a camera tracking service may require a triangulation service and a camera sensor service, which in turn may respectively need a plurality of acoustic sensors and one or more camera sensors. Additional operational constraints (such as may be expressed in the form of policies, for example) may also apply in conjunction with the spatial constraint specified by the geospatial region of interest in the original request for the sensor composite service, and which will further limit the selection of component sensors/services. In addition, the selection of components/sub-components may further be based on a cost of including the component/sub-component in the generation of the sensor composite service. The cost calculation may be based on a base cost associated with the component/sub-component which may itself be based on a number of characteristics of the component/sub-component, as described hereafter.

With regard to the spatial relevancy measure determination, various functions may be used to generate the spatial relevance measure depending on the particular implementation desired. In general, in accordance with one illustrative embodiment, the spatial relevancy measure SR may be calculated as a function of the overlapping area D(C, cx) between the geospatial region of interest C (with a radius R) and the spatial coverage characteristic cxof the component (with radius rx), e.g., SR=D(C, cx)/C. Of course other functions can be used without departing from the spirit and scope of the illustrative embodiments. Components/sub-components having the highest spatial relevancy measures relative to the other components/sub-components may be selected, for example.

In addition to the spatial relevancy measure, a base cost may be calculated for each of the components/sub-components. The base cost may be generated in any suitable manner. One example way of calculating a base cost for a component is described in co-pending and commonly assigned U.S. patent application Ser. No. 13/029,156. This base cost may be based on various factors including restrictions on data flows, monetary costs charged by providers, interoperability of components, processing costs, network costs, or any of a plethora of other factors that provide a relative measure of the monetary costs and operational difficulty of using the component.

The spatial relevancy measure may be used either individually, or in combination with the base cost calculations, as a basis for generating a value for ranking the various components/sub-components relative to one another. For example, an overall cost for the inclusion of the component/sub-component may be calculated as a function of the combination of the spatial relevancy measure and the base cost. In one illustrative embodiment, this overall cost may be calculated as follows: Cost=A*BaseCostx+B*(1−SRx), where Cost is the overall cost, A and B are predefined weights for the relative importance between the base cost (BaseCostx) and Spatial Relevancy (SRx) of component/sub-component x. In this case, the spatial relevancy measure is converted to an “irrelevancy” measure by converting it to a cost metric by subtracting the spatial relevancy measure from “1.”

Ranked listings may be generated for each type of component/sub-component based on this overall cost metric. The ranked listings associated with the types of components/sub-components needed for generating the sensor composite service may be selected. Then, from these selected ranked listings, the number of components/sub-components needed for generating the sensor composite service may be selected based on the relative ranking, e.g., those having the lowest cost. The selected components/sub-components may be used to generate data structures and communication connections for establishing the requested sensor composite service. That is, after the component sensors/services are selected for inclusion in the sensor composite service, the information for these selected component sensors/services becomes part of the overall specification of the composite sensor service. Upon completion of the sensor composite service creation, i.e. once all component sensors/services have been selected and all their inputs are satisfied, then the specification itself is stored in a persistent storage medium to be used for instantiation, monitoring, reference/retrieval, etc. Instantiation may include transferring the code/execution specification of the component services on the sensor platform nodes on which they will be executed (if not already stored there), executing the component service code (e.g., activating the relevant modules in a container), configuring and activating the interconnections among the component services as specified in the overall sensor composite service specification, enabling monitoring capabilities for the component services, obtaining the output of the sensor composite service, evaluating relevant policies on the data as well as metadata, and other functionality that may be implemented in hardware or software executed on hardware platforms.

Thus, with the mechanisms of the illustrative embodiments, a sensor composite service may be generated based on the operational and spatial constraints specified in a request for the sensor composite service. The operational and spatial coverage characteristics of the components/sub-components, e.g., primitive sensor service, sensor, or the like, are considered when selecting components/sub-components for inclusion in the generation of the requested sensor composite service. In addition, for those components/sub-components that do not have a native spatial coverage characteristic, the mechanisms of the illustrative embodiments provide logic for generating a spatial coverage characteristic based on inherency principles, or any other mechanism for determining spatial characteristics based on the inputs to the components/sub-components. In this way, a sensor composite service may be dynamically generated in response to a user requested using deployed primitive sensor services and sensors.

FIG. 6is an example block diagram of a sensor composite service generation engine in accordance with one illustrative embodiment. As shown inFIG. 6, the sensor composite service generation engine600comprises a controller610, an interface620, a component registry engine635with corresponding component data storage635, a spatial relevancy determination engine640, a cost determination engine650, a sensor composite service generator660and corresponding sensor composite services data structure665, and a user interface engine670. These elements may be implemented as logic in hardware, software, or any combination of hardware and/or software. In one illustrative embodiment, the elements of the sensor composite service generation engine600are implemented as software logic executed on one or more hardware devices. The sensor composite service generation engine600may be implemented in one or more of the computing devices inFIG. 1, for example, e.g., any one or more of the servers104,106or client computing device110-112.

The controller610controls the overall operation of the sensor composite service generation engine600and orchestrates the operation of the other elements620-670. The interface620provides a control and data communication pathway through which data is sent/received by the sensor composite service generation engine600. The interface620may be used to receive registration information from components/sub-components, receiving requests for sensor composite services, outputting information for defining or configuring the sensor composite service, and the like.

The component registry engine630provides the logic for receiving registration information from components/sub-components, either automatically or in response to requests sent from the component registry engine630. The registration information gathered from the components/sub-components may comprise information about the types of data/services provided by the components/sub-components, base costs associated with the components/sub-components, configuration information, related sub-component identifiers, spatial coverage characteristics, or the like. Some components/sub-components may not include spatial coverage characteristics in which case the sensor composite service generation engine600generates a spatial coverage characteristic for the component/sub-component based on the inherency principles previously described above, or any other mechanism for determining spatial characteristics based on the inputs to the components/sub-components. The registration information gathered from the various components/sub-components is stored in the components data storage635.

The spatial relevancy determination engine640provides logic for generating spatial coverage characteristics for components/sub-components that do not have natively associated spatial coverage characteristics, e.g., using an inherency function for calculating a spatial coverage characteristic based on the spatial coverage characteristics of components/sub-components providing input. Moreover, the spatial relevancy determination engine640further provides logic for calculating a spatial relevancy measure for components/sub-components in the components data storage635based on a geospatial region of interest in a request for the generation of a sensor composite service. For example, in one illustrative embodiment the spatial relevancy measure may be determined based on a function of the overlapping area between the geospatial region of interest and a spatial coverage characteristic of the component/sub-component.

The cost determination engine650comprises logic for calculating a cost for inclusion of particular components in the generation of a requested sensor composite service. The cost may be calculated in various ways but is generally a function of the spatial relevancy of the component/sub-component and a base cost associated with the component/sub-component. In one illustrative embodiment, the cost may be calculated as the function Cost=A*BaseCost+B*(1−SR), for example.

The sensor composite service generator660provides logic for selecting components/sub-components based on the costs associated with the components/sub-components, the operational capabilities of the components/sub-components, such as the type of component/sub-component. The sensor composite service generator660further comprises logic for actually generating the sensor composite service based on the selection of the components/sub-components. Configuration information for defining the sensor composite service is stored in the sensor composite services data storage665.

It should be appreciated that the actual generation of the sensor composite service may take place in multiple steps and guarantees that every component sensor service of the sensor composite service will receive input from other component/sub-component services and/or sensors. Once component sensors/services are selected, the wiring that connects an output of a component sensor/service to input of another component service is recorded as part of the specification. The composition process completes when no further component service selections are needed and all data inputs of a service are connected to sources for receiving data. One example algorithm for sensor service generation that may be augmented and extended to work with the mechanisms of the illustrative embodiment to generate a sensor composite service is described in Geyik et al., “Robust Dynamic Service Composition in Sensor Networks,” IEEE Transactions on Services Computing, Oct. 16, 2012, volume pp, issue99, which is incorporated herein by reference.

The user interface engine670provides logic for generating a user interface that is output to a user for defining a sensor composite service that is requested to be generated. The user interface may include, for example, fields for specifying the type of sensor composite service desired and the geospatial region of interest over which the sensor composite service operates. Additional fields may be provided for specifying components/sub-components to include in the sensor composite service, a quality of information for these components/sub-components, a budget for costs of components/sub-components, and/or other configuration parameters for defining the sensor composite service. Based on the request submitted through the user interface, the sensor composite service generation engine600may select which components/sub-components meet the operational and spatial constraints of the request.

In one illustrative embodiment, the user interface may include a predefined listing of the sensor composite services that may be generated which may in turn be used to identify predefined sets of components/sub-components associated with the sensor composite service. The particular instances of the components/sub-components that are selected are still dependent upon the spatial relevancy and costs, but the types of components/sub-components to include and even the number of each component/sub-component may be predefined with regard to predefined sensor composite services.

It should be appreciated that additional components for implementing the logic or functionality of the illustrative embodiments may be included in the sensor composite service generation engine600without departing from the spirit and scope of the present invention. Various ones of the elements in the sensor composite service generation engine600may be distributed to different computing devices or may be integrated with other elements of the sensor composite service generation engine600without departing from the spirit and scope of the present invention.

FIG. 7is a flowchart outlining an example operation for generating a spatial coverage characteristic for a component in accordance with one illustrative embodiment. The operation outlined inFIG. 7may be implemented, for example, by the spatial relevancy determination engine640of the sensor composite service generation engine600, for example.

The operation starts by selecting a component for determining a spatial coverage characteristic of the component (step710). A determination is made as to whether the component comprises an already generated spatial coverage characteristic (SCC) or a native spatial coverage characteristic, e.g., a location and range or area of operation (step720). If the component comprises an already generated spatial coverage characteristic or a native spatial coverage characteristic, the operation terminates. If the component does not comprise an already generated spatial coverage characteristic or a native spatial coverage characteristic, the spatial coverage characteristics of sub-components providing input to the component are identified (step730). An aggregation function for generating the spatial coverage characteristic for the component is identified, such as from configuration information for the component (step740) and applied to the spatial coverage characteristics of the sub-components (step750) to generate a spatial coverage characteristic for the component (step760). The spatial coverage characteristic that is generated for the component is then stored in configuration information for the component (step770) and the operation terminates.

FIGS. 8A-8Billustrate a flowchart outlining an example operation for generating a sensor composite service based on cost, spatial relevancy, criticality of components, and policy checks, in accordance with one illustrative embodiment. The operation outlined inFIGS. 8A-8Bmay be implemented by the sensor composite service generation engine600inFIG. 6, for example. Various ones of the elements in the sensor composite service generation engine600may be used to implement various ones of the functions described inFIG. 8A-8B.

As shown inFIGS. 8A-8B, the operation starts by providing a user interface through which a user defines and requests a sensor composite service that the user wishes to have generated as well as constraints for the sensor composite service including operational and geospatial region of interest constraints (step810). Types of components and sub-components needed to provide the requested sensor composite service are determined (step820). As mentioned previously, this may be done by performing a lookup operation of predetermined sensor composite services in a database which identifies which components and sub-components are needed to provide the predetermined sensor composite services. Alternatively, components and sub-components may be specified in the original request for the sensor composite service. Moreover, a combination of predetermined sensor composite services and specified components in the request may be used in some implementations.

Based on the determined required components/sub-components for providing the requested sensor composite service, a search of the components/sub-components matching those types of components/sub-components in a component data storage is performed to identify matching sets of components/sub-components (step830). For each matching component/sub-component, the spatial coverage characteristic of the component is compared to the geospatial region of interest constraint to determine a spatial relevancy measure for the component/sub-component (step840). For each matching component/sub-component, the spatial relevancy measure is used as a basis for calculating a cost for including the component/sub-component in the sensor composite service (step850). As discussed previously, the cost may further be a function of the base cost for the component, predetermined weight values, etc. The base cost may be determined from a combination of factors including processing costs, network costs, data flow restrictions, and the like.

For each type of matching component/sub-component, a determination is made as to whether that type of component/sub-component is a critical component/sub-component (step860), where a “critical” component/sub-component is one that is needed to provide the sensor composite service and is only provided by a single instance of the component/sub-component. If a component/sub-component is critical, it must be selected for inclusion in the definition of the sensor composite service (step870) since there are no other instances of the component/sub-component from which to choose, or other alternative sources of the required data. However, the critical component must still pass policy checks to ensure that the critical component still meets the requirements of the various governing policies with regard to access, authorization, and operational constraints (step880). If any of the critical components do not meet the requirements of the governing policies, then the generation of the sensor composite service fails (step890) and the operation terminates. If the critical components pass the policy checks, then the operation continues to step930described hereafter.

In a sense, one can view the selection of the components/sub-components for inclusion in the sensor composite service to be done both with regard to utility constraints and hard policy constraints. The utility constraints are measured in terms of base and spatial costs whereas the hard policy constraints are specified through access, authorization, and operational policies. For example, if a component/sub-component violates a policy constraint, then it will not be selected for inclusion in the sensor composite service even though the component might exhibit the best spatial characteristics and cost of the candidate components/sub-components.

For those components/sub-component types that are not critical, a ranked listings of components/sub-component instances, for each matching type of components/sub-components, are generated based on the calculated costs (step900). Particular ones of the components/sub-components are selected from the ranked listings based on the rankings and the required number of each type of component/sub-component (step910). For example, if three acoustic sensors are needed, then the three least costly acoustic sensors from the ranked listing of acoustic sensors may be selected. The selected components/sub-components may be subjected to policy checks (step920) to ensure that the selected components/sub-components pass all applicable access, authorization, and operational policies. If any of the policies are not satisfied by the component/sub-component, the component/sub-component is removed from consideration and if there are no other alternatives for this type of component/sub-component, the generation of the sensor composite service fails (step890). If there are other alternatives, the operation returns to step910. If the components/sub-components pass all of the policy checks, the components/sub-components are added to the definition of the sensor composite service (step930) and a determination is made as to whether all of the required components/sub-components to define the sensor composite service have been selected (step940). If not, the operation returns to step820. If so, the configuration information for the selected components/sub-components is used to build a sensor composite service configuration data structure and establish communication connections and data structures for the selected components/sub-components to establish the requested sensor composite service (step950). The operation then terminates.

Thus, again, the illustrative embodiments provide a mechanism by which a sensor composite service may be dynamically generated based on specified operational and geo spatial constraints. As a result, more complex analysis and functionality is able to be dynamically generated for a region of interest by building the sensor composite service from primitive sensor services and corresponding sensors of the same or various types.