Home
  • RapidOSS
  • Support
  • About Us
Home » Blogs » Sezgin's blog

Mashup comes to IT management: RapidOSS Google Maps integration

Posted August 28th, 2007 by Sezgin
in
  • EMC Smarts
  • Google
  • Integration
  • Mashups
  • Netcool
  • RapidInsight
  • RapidOSS
  • Smarts

RapidOSS is typically used to integrate data from different systems in the presentation level, hence data exchange between UI components in the browser is core functionality. In the live RapidOSS demo implementation available on this site, devices are organized in a tree. When the user clicks an object on the tree, the object data is passed to chart and the events grid components. Events grid show the events related to the object selected by user, and the pie chart updates based on the severities of the events for that objects. Which data should be exhanged between which components is specified in a configuration file. This functionality enables mashup of data from different data sources. Data from inventory, event, change management, ticketing, etc. can be presented to the users in context, in an integrated manner. RapidOSS data stores just enough data to facilitate the integration of the data and the communications with multiple backend systems.



RapidOSS is designed for the enterprise and has been heavily influenced by what's loosely referred as web 2.0 technologies. It has an Ajax UI, light web API, supports dynamic scripting on the server side, etc. Although we have not called them as such, it has supported mashups from the beginning. We've recently added a new component to use google maps in RapidOSS. Using the Gmap component, it is possible to integrate enterprise systems management data with Google Maps easily, without having to know anything about the Google Maps API. To demonstrate the capabilities, we've added the component to the live sample implementation we have on our site for demonstration purposes.

In the rest of this post, I'll explain briefly what we've done and how. Here is what we wanted to accomplish:

  • Network devices will be presented on Google Maps using place markers.

  • The devices will be grouped based on the location data available for each device. There will be one marker per location.

  • The color of the marker will represent the state of the devices, meaning the marker color will show the state of the most critical device in that location.

  • The map will be available through in context (right click) menu action.

  • The list of devices in a location will be shown in a grid when user clicks on a marker.

Step1: Geocodes

Google Maps API uses geographic coordinates (longtitude and latitude), aka geocodes, to place markers on a map. The API also includes a geocoder, an API call that calculates the geocode for a given address). The devices in the repository have the addresses of the location, but not the geographical coordinates, hence the geocode for each address needs to be determined using the geocoder API call. This can be done every time a user launches a map, but it is a costly process. Hence, for performance reasons, taking advantage of the RapidOSS data store, the latitude and longitude information for each device is retrieved only once and stored as a property of the device object. The geocode data is then served to the Gmap component in the browser from RapidOSS server, rather than making an API call to Google for every request.

RapidOSS server includes functionality to “listen” for changes in its object store and execute groovy scripts when there is a change. So using this mechanism, we've written a groovy script that is executed everytime an object (for a device) is added to the object store, The groovy script makes the Google Maps API call, retrieves the geocode for the device and store it as a property of the device object. The objects in the repository now have the necessary data to place the markers.

Step 2: GMap Component Script

UI components in RapidOSS are coupled with a groovy script executed on the server. The server side script can retrieve the data from RapidOSS object store as well as from external sources, process it and serve to the component in XML (or JSON) format. Ability to manipulate the data on the server side provides more control and flexibility. Here is the XML data consumed by the Gmap component:

-
<Locations>
        <Location Address=”1600 Amphitheatre Parkway, Mountain View, CA” Lat=”37.423021” Lng=”-122.083739” Tooltip=”2 devices” Marker=”http://www.mapbuilder.net/img/icons/marker_34_yellow.png”/>
        ......
</Locations>

As it can be seen, the location information consists of an address, geographical coordinates, a marker image that will be displayed on the map, and a tooltip which is displayed when the marker is clicked. Marker images can be used for various purposes. In this case, we've used them to show the state of the devices in that location (red for critical, etc.) You can access the whole script here.

 

Step 3: UI Configuration

In RapidOSS, the user interface is configuration is done in an xml file. The configuration includes the layout, which components will be in the UI, the right click menu actions, the data exchange between the components, etc. Here is a snippet of the client configuration xml file that shows how the Gmap dialog is configured.

 

-
.......
<GMap Url="getDeviceLocations"
          RootTag="Locations"
          ContentPath="Location"
          Id="deviceMap"
          DynamicTitle="true"
          Title="Devices Map"
          TitlePrefix="Devices Of "
          Timeout="120"
          LatitudeAttributeName="Lat"
          LongitudeAttributeName="Lng"
          AddressAttributeName="Address"
          MarkerAttributeName="Marker"
          TooltipAttributeName="Tooltip">

        <Tools>
                        <LoadingTool/>
                        <ErrorTool/>
        </Tools>
</GMap>
......

In this case, the tree components shows the devices organized hierarchically and users will be able to right click to any node in the tree and select the menu item to launch the google maps. The map will be shown in a dialog box (window) that will be created within the UI (not a separate browser window).

 


 

To see the final result, you can go to the live demo or you can take a quick look at this short screencast.

 

  • Login or register to post comments

Need a Google Map for

On December 19th, 2007 pdunon (not verified) says:

Need a Google Map for Enterprise license ?

Am I correct in assuming that :
1) this technical integration between RapidInsight and GoogleMap works with both the free Google Map or the Google Map for Enterprise API ? The API is the same in both cases, as said at
http://www.google.com/enterprise/maps/

2) the RapidInsight V2 license does not include the Google Map for Enterprise API license

  • Login or register to post comments

1) We have not tested this

On December 19th, 2007 berkay says:

1) We have not tested this specifically with Google Enterprise but there is no reason for this integration not to work with enterprise version. The functionality should be the same for both free and enterprise versions.

2) RapidInsight does NOT include the license for Google Maps for Enterprise. The software components to integrate easily with Google Maps is provided as part of the product, however the license for Google Maps Enterprise needs to be obtained from Google.

Google Maps for Enterprise is not required for the RapidInsight solution from a technical perspective, but you may need the license depending on how you plan to use it, as described in the Google Maps for Enterprise pages.

  • Login or register to post comments

 Social Bookmark

  • Simple consistent interfaces to external systems
  • RapidOSS: what is it good for? - Integration in the presentation layer
  • RapidOSS: what is it good for? - The broken client
  • RapidInsight SIMILE Timeline Integration
  • RapidOSS as the web interface for Netcool

  • Create new account
  • Request new password