Difference between revisions of "Interoperability"

From Earth Science Information Partners (ESIP)
 
(17 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
A System-of-Systems (SoS) is defined as: A configuration of systems in which component systems can be added/removed during use; each provides useful services in its own right; and each is managed for those services. Yet, together they exhibit a synergistic, transcendent capability
  
 +
SoS is built from a collection of independently acquired and operating systems that must be connected. These systems that may have been developed during different timeframes, from different sources, and from differing organizations or missions. Interoperability standards are the primary mechanism to enable effective connection of the parts. A carefully crafted definition of the protocol is a better means for a long-lived approach towards establishing interoperability than adherence to a specific product...
  
A ''Web Service'' is a software system designed to support interoperable machine to machine interaction over a network." Web services are frequently just Web APIs that can be accessed over a network, such as the Internet, and executed on a remote system hosting the requested services.
 
  
The W3C Web service definition encompasses many different systems, but in common usage the term refers to clients and servers that communicate using XML messages that follow the SOAP standard. Common in both the field and the terminology is the assumption that there is also a machine readable description of the operations supported by the server written in the Web Services Description Language (WSDL). The latter is not a requirement of a SOAP endpoint, but it is a prerequisite for automated client-side code generation in many Java and .NET SOAP frameworks (frameworks such as Spring and Apache CXF being notable exceptions). Some industry organizations, such as the WS-I, mandate both SOAP and WSDL in their definition of a Web service.
+
A ''Web Service'' is a software system designed to support interoperable machine-to-machine interaction over a network. Web services encompass many different systems, but generally refers to clients and servers that communicate. Web services are components of '''[[Service-oriented architecture]]''' ('''SOA'''), where the basic unit of communication is a message. [[Loose coupling]] of services into workflows and applications is facilitated by the "contract" that WSDL provides, rather than the underlying implementation details.
  
==Styles of use==
+
In '''[[Representational_State_Transfer|RESTful Web services]]''' constrain the interface to a simple set standard operations (e.g., GET, PUT, DELETE). Here, the focus is on interacting with stateful resources, rather than messages or operations. RESTful Web services can use WSDL to describe SOAP messaging over HTTP, which defines the operations, or can be implemented as an abstraction purely on top of SOAP (e.g., WS-Transfer).
'''Web services''' are a set of tools that can be used in a number of ways. The three most common styles of use are RPC, SOA and REST.
 
  
===Remote procedure calls===
 
[[Image:webservice_xrpc.png|thumb|Architectural elements involved in the XML-RPC.]]
 
'''[[Remote procedure call|RPC]] Web services''' present a distributed function (or method) call interface that is familiar to many developers. Typically, the basic unit of RPC Web services is the WSDL operation.
 
  
The first Web services tools were focused on RPC, and as a result this style is widely deployed and supported. However, it is sometimes criticised for not being [[Loose coupling|loosely coupled]], because it was often implemented by mapping services directly to language-specific functions or method calls. Many vendors felt this approach to be a dead end, and pushed for RPC to be disallowed in the [[WS-I Basic Profile]].
+
==WCS_Services==
  
===Service-oriented architecture===
+
===WCS_MapPoint===
Web services can also be used to implement an architecture according to '''[[Service-oriented architecture]]''' ('''SOA''') concepts, where the basic unit of communication is a message, rather than an operation. This is often referred to as "message-oriented" services.
 
  
SOA Web services are supported by most major software vendors and industry analysts. Unlike RPC Web services, [[loose coupling]] is more likely, because the focus is on the "contract" that WSDL provides, rather than the underlying implementation details.
+
* Function: Extraction of a point data subset for a MapView.
 +
* Inputs: Parameter, geographic bounding box, date and time, output format.
 +
* Outputs: Extracted data subset packaged in the user requested format.
 +
* Operation: This service accesses the AIRNOW-I database and returns the space-time subset of observations in the requested format. The list of the available formats is published through the WCS described coverage document. The service allows the delivery of any of the parameters (one at a time), including the time-aggregated point monitoring data stored in the database. The WCS data access service is usually the first in service chain. The data delivered through this service can be further processed by the client through filtering, aggregation, and data fusion operations.
 +
* Code: The main code for this service is available through the core functionality of Airnow-I. The two specific functions required are the ''GetPoint(?)'' and the ''DataTransformator''. The chaining of these operations can be performed by the ''Dispatcher'' module. Furthermore, a wrapper code (.Net code is available from DataFed) is needed to encapsulate this function chain to be a WCS compliant service.  
  
=== Representational state transfer ===
+
===WCS_MapGrid===
Finally, '''[[Representational_State_Transfer|RESTful Web services]]''' attempt to emulate HTTP and similar protocols by constraining the interface to a set of well-known, standard operations (e.g., GET, PUT, DELETE). Here, the focus is on interacting with stateful resources, rather than messages or operations.
 
RESTful Web services can use WSDL to describe SOAP messaging over HTTP, which defines the operations, or can be implemented as an abstraction purely on top of SOAP (e.g., WS-Transfer).
 
  
[[Web_Services_Description_Language|WSDL version 2.0]] offers support for binding to all the [[Hypertext_Transfer_Protocol#Request_methods|HTTP request methods]] (not only GET and POST as in version 1.1)  
+
* Function: Extraction of a grid data subset for a MapGrid View.
so it enables a better implementation of [[Representational_State_Transfer|RESTful Web services]]<ref>{{cite web |url=http://www.w3.org/TR/2007/REC-wsdl20-adjuncts-20070626/#_http_binding_default_rule_method |title=Web Services Description Language (WSDL) Version 2.0 Part 2: Adjuncts}}</ref>.
+
* Inputs: Parameter, geographic bounding box, date and time, output format.
However support for this specification is still poor in [[Software_development_kit|software development kits]], which often offer tools only for WSDL 1.1.
+
* Outputs: Extracted data subset packaged in the user requested format, e.g. netCDF.
 +
* Operation: This service accesses point data from the AIRNOW-I database, performs a gridding operation and returns the space-time subset of observations in the requested grid format. The service allows the delivery of any of the parameters (one at a time), including the time-aggregated point monitoring data stored in the database. The data delivered through this service can be further processed or portrayed by the client. 
 +
* Code: The specific function from the AIRNOW-I data engine include point''GetPoint'' data access, rastering operation by the ''Interpolation'' routine and data transformation/packaging.  The chaining of these operations can be performed by the dispatcher module. The wrapper code for this service is the same as that to the MapPoint service.
 +
 
 +
===WCS_TimePoint===
 +
 
 +
* Function: Extraction of a time series for a specific parameter, site, and time range  for a Time View.
 +
* Inputs: Parameter, site ID, time range, output format.
 +
* Outputs: Extracted time series data for a specific parameter, site and time range packaged in the user requested format, e.g. netCDF, CSV.
 +
* Operation: This service accesses point data from the AIRNOW-I database, and returns the time series data in the requested format. The service allows the delivery of any of the parameters (one at a time), including the time-aggregated point monitoring data stored in the database. The data delivered through this service can be further processed or portrayed by the client. This service is useful for clients which support temporal data processing and/or data views.
 +
* Code: The specific function from the AIRNOW-I data engine include point data access ''GetPoint(/)'', and data packaging.  The chaining and the wrapper code for this service is the same as that to the MapPoint.
 +
 
 +
===WFS_Station (optional)===
 +
 
 +
* Function: Extraction of a station description record.
 +
* Inputs: Station ID, output format.
 +
* Outputs: Station description record in XML, KML snippet, netCDF or CSV format.
 +
* Operation: This service accesses the AIRNOW-I database and returns a record describing a specific station. The list of the available formats is published through the WCS described coverage document. The data delivered through this service is particularly useful as metadata for display in client-side applications, e.g. Google Earth.  
 +
* Code: The main code for this service is (probably?) available through the core functionality of AIRNOW-I. The data formating and WFS wrapping software will need to be developed.
 +
 +
===WMS_Point===
 +
 
 +
* Function: Delivery of a map image with monitoring data displayed as point values.
 +
* Inputs: Parameter, site ID, date and time, output format.
 +
* Outputs: Map image of the requested data represented as points on a spacial map, in the user-specified image format. Void of boundaries or other interferences to image overlays.
 +
* Operation: This service extracts the point data from the AIRNOW-I database and returns the space-time subset of observations rendered as an image. The WMS data service is usually consumed by simple web-applications that do not require data manipulation. However, WMS data are frequently overlayed with other data layers. This requires particular attention to the transparency of the colors used. Typical consuming clients include GIS mapping, Google Maps and Google Earth as well as simple web pages that display the images requested through WMS.
 +
* Code: WMS is a composite of multiple server-side operations consisting of point data access, processing (if necessary) and portrayal, chained a wrapped as for WCS_Point service.
 +
 
 +
===WMS_Grid===
 +
 
 +
* Function: Delivery of a map image with monitoring data displayed as contoured grid values.
 +
* Inputs: Parameter, site ID, time range, output format.
 +
* Outputs: Map image of the requested data represented as gridded values on a map, in the user-specified image format.
 +
* Operation: The operation of this service is identical to the MapPoint service described above.
 +
* Code: WMS is a composite of multiple server-side operations consisting of point data access, gridding and portrayal services, chained a wrapped as for WCS_Point service.
 +
 
 +
===WMS_Composite===
 +
* Function: Delivery of a map image with monitoring data and other data layers supperimposed.
 +
* Inputs: Parameter, site ID, time range, output format.
 +
* Outputs: Map image of the requested data of multiple layers, delivered in the user-specified image format.
 +
* Operation: The operation of this service is identical to the MapPoint service described above. However, it can deliver an information rich image since it incorporates the data from multiple data layers. The operators of the AIRNOW-I software should decide which of the GIS data layers to include as well as the overall layout of this composite map image.  This service is particularly useful for delivering rich, customized images that can be readily incorporated into simple client applications, e.g. dynamic web pages, serving specific audiences.
 +
* Code: WMS is a composite of multiple server-side operations consisting of point data access, gridding and portrayal services, chained a wrapped as for WCS_Point service.
 +
 
 +
 
 +
 
 +
===Optional Services===
 +
Aggregation
 +
 
 +
 
 +
[[Category:Interoperability]]

Latest revision as of 13:03, November 28, 2008

A System-of-Systems (SoS) is defined as: A configuration of systems in which component systems can be added/removed during use; each provides useful services in its own right; and each is managed for those services. Yet, together they exhibit a synergistic, transcendent capability

SoS is built from a collection of independently acquired and operating systems that must be connected. These systems that may have been developed during different timeframes, from different sources, and from differing organizations or missions. Interoperability standards are the primary mechanism to enable effective connection of the parts. A carefully crafted definition of the protocol is a better means for a long-lived approach towards establishing interoperability than adherence to a specific product...


A Web Service is a software system designed to support interoperable machine-to-machine interaction over a network. Web services encompass many different systems, but generally refers to clients and servers that communicate. Web services are components of Service-oriented architecture (SOA), where the basic unit of communication is a message. Loose coupling of services into workflows and applications is facilitated by the "contract" that WSDL provides, rather than the underlying implementation details.

In RESTful Web services constrain the interface to a simple set standard operations (e.g., GET, PUT, DELETE). Here, the focus is on interacting with stateful resources, rather than messages or operations. RESTful Web services can use WSDL to describe SOAP messaging over HTTP, which defines the operations, or can be implemented as an abstraction purely on top of SOAP (e.g., WS-Transfer).


WCS_Services

WCS_MapPoint

  • Function: Extraction of a point data subset for a MapView.
  • Inputs: Parameter, geographic bounding box, date and time, output format.
  • Outputs: Extracted data subset packaged in the user requested format.
  • Operation: This service accesses the AIRNOW-I database and returns the space-time subset of observations in the requested format. The list of the available formats is published through the WCS described coverage document. The service allows the delivery of any of the parameters (one at a time), including the time-aggregated point monitoring data stored in the database. The WCS data access service is usually the first in service chain. The data delivered through this service can be further processed by the client through filtering, aggregation, and data fusion operations.
  • Code: The main code for this service is available through the core functionality of Airnow-I. The two specific functions required are the GetPoint(?) and the DataTransformator. The chaining of these operations can be performed by the Dispatcher module. Furthermore, a wrapper code (.Net code is available from DataFed) is needed to encapsulate this function chain to be a WCS compliant service.

WCS_MapGrid

  • Function: Extraction of a grid data subset for a MapGrid View.
  • Inputs: Parameter, geographic bounding box, date and time, output format.
  • Outputs: Extracted data subset packaged in the user requested format, e.g. netCDF.
  • Operation: This service accesses point data from the AIRNOW-I database, performs a gridding operation and returns the space-time subset of observations in the requested grid format. The service allows the delivery of any of the parameters (one at a time), including the time-aggregated point monitoring data stored in the database. The data delivered through this service can be further processed or portrayed by the client.
  • Code: The specific function from the AIRNOW-I data engine include pointGetPoint data access, rastering operation by the Interpolation routine and data transformation/packaging. The chaining of these operations can be performed by the dispatcher module. The wrapper code for this service is the same as that to the MapPoint service.

WCS_TimePoint

  • Function: Extraction of a time series for a specific parameter, site, and time range for a Time View.
  • Inputs: Parameter, site ID, time range, output format.
  • Outputs: Extracted time series data for a specific parameter, site and time range packaged in the user requested format, e.g. netCDF, CSV.
  • Operation: This service accesses point data from the AIRNOW-I database, and returns the time series data in the requested format. The service allows the delivery of any of the parameters (one at a time), including the time-aggregated point monitoring data stored in the database. The data delivered through this service can be further processed or portrayed by the client. This service is useful for clients which support temporal data processing and/or data views.
  • Code: The specific function from the AIRNOW-I data engine include point data access GetPoint(/), and data packaging. The chaining and the wrapper code for this service is the same as that to the MapPoint.

WFS_Station (optional)

  • Function: Extraction of a station description record.
  • Inputs: Station ID, output format.
  • Outputs: Station description record in XML, KML snippet, netCDF or CSV format.
  • Operation: This service accesses the AIRNOW-I database and returns a record describing a specific station. The list of the available formats is published through the WCS described coverage document. The data delivered through this service is particularly useful as metadata for display in client-side applications, e.g. Google Earth.
  • Code: The main code for this service is (probably?) available through the core functionality of AIRNOW-I. The data formating and WFS wrapping software will need to be developed.

WMS_Point

  • Function: Delivery of a map image with monitoring data displayed as point values.
  • Inputs: Parameter, site ID, date and time, output format.
  • Outputs: Map image of the requested data represented as points on a spacial map, in the user-specified image format. Void of boundaries or other interferences to image overlays.
  • Operation: This service extracts the point data from the AIRNOW-I database and returns the space-time subset of observations rendered as an image. The WMS data service is usually consumed by simple web-applications that do not require data manipulation. However, WMS data are frequently overlayed with other data layers. This requires particular attention to the transparency of the colors used. Typical consuming clients include GIS mapping, Google Maps and Google Earth as well as simple web pages that display the images requested through WMS.
  • Code: WMS is a composite of multiple server-side operations consisting of point data access, processing (if necessary) and portrayal, chained a wrapped as for WCS_Point service.

WMS_Grid

  • Function: Delivery of a map image with monitoring data displayed as contoured grid values.
  • Inputs: Parameter, site ID, time range, output format.
  • Outputs: Map image of the requested data represented as gridded values on a map, in the user-specified image format.
  • Operation: The operation of this service is identical to the MapPoint service described above.
  • Code: WMS is a composite of multiple server-side operations consisting of point data access, gridding and portrayal services, chained a wrapped as for WCS_Point service.

WMS_Composite

  • Function: Delivery of a map image with monitoring data and other data layers supperimposed.
  • Inputs: Parameter, site ID, time range, output format.
  • Outputs: Map image of the requested data of multiple layers, delivered in the user-specified image format.
  • Operation: The operation of this service is identical to the MapPoint service described above. However, it can deliver an information rich image since it incorporates the data from multiple data layers. The operators of the AIRNOW-I software should decide which of the GIS data layers to include as well as the overall layout of this composite map image. This service is particularly useful for delivering rich, customized images that can be readily incorporated into simple client applications, e.g. dynamic web pages, serving specific audiences.
  • Code: WMS is a composite of multiple server-side operations consisting of point data access, gridding and portrayal services, chained a wrapped as for WCS_Point service.


Optional Services

Aggregation