Jump to: navigation, search

Difference between revisions of "COSMOS Programming Model"

(Providing Custom Capabilities)
Line 39: Line 39:
 
A data manager can expose operations that are not part of
 
A data manager can expose operations that are not part of
  
 +
=== Client proxy for MDR and Data Manager ===
 +
 +
=== Writing a Custom Data Manager Proxy ===
 
=== Packaging for deployment ===
 
=== Packaging for deployment ===

Revision as of 16:10, 10 October 2007

COSMOS provides a framework for collecting and visualizing data for system administration applications. By leveraging the COSMOS framework and providing the necessary extensions, programmers can quickly and easily create applications for collecting data from disparate data sources, and making data available through standard-based APIs or an easy-to-use user interface. This document explains the programming model used in extending the COSMOS framework.

Creating a Data Manager

Getting Code from CVS

Class Diagrams

Creating an MDR

Prerequisite: Import the framework bundles into workspace or install them in the target plaform. Note: org.eclipse.cosmos.rm.sandbox.dataManager.sml bundle is an implementation of an MDR that uses an SML repository as the backend datastore. Please refer to it as an example for creating an MDR. The following steps show how to create an MDR.

  • Create a plugin project. In the "Target Platform" section, select "an OSGi framework", and select "standard" from the dropdown box. Click next to provide plugin ID, name, etc, and click Finish.
  • Edit the MANIFEST.MF file in the Plug-in Manifest Editor. On the Dependencies tab, add the following dependencies and save the file:
    • org.apache.muse.complete
    • org.eclipse.cosmos.dc.sandbox.dataManager
    • org.eclipse.cosmos.dc.sandbox.mdr
  • Create a class in this bundle that provides the implementation of the
    • Annotate the class as a ManagedResource
    • Extend AbstractMDR class
    • Implement IDataManager and IMdrQuery (Although the superclass already implements these interfaces, we need this step as a temporary workaround for a bug in the management bundle.) The class signature looks something like this:
@ManagedResource
public class MyMDR extends AbstractMdr implements IDataManager, IMdrQuery
  • Implemnet methods declared in interfaces and abstract methods from super class. For example, the query method takes a CMDBf query as input. Provide adapter code here to parse the query, talk to the data source, and return the response in CMDBf response format. The logic for parsing the query, invocation of APIs of data source and transforming the query output to CMDBf query response can take place in another class or OSGi bundle.
  • An activator class is generated when the OSGi bundle created. Open the Activator java file in the editor. COSMOS framework comes with an abstract activator that contains code required by the activators of all data managers. Make the following updates in the activator java class:
    • Remove the "start" and "stop" method stubs generated by the eclipse.
    • Make the Activator class extend AbstractDataManagerActivator
    • Implement the getDataManagerInstance abract method. The method will return an instance of the class that implements the capabilities. The activator will look like the following.
public class Activator extends AbstractDataManagerActivator {

	protected IDataManager getDataManagerInstance() {
		return new MyDataManager();
	}

}

Providing Custom Capabilities

A data manager can expose operations that are not part of

Client proxy for MDR and Data Manager

Writing a Custom Data Manager Proxy

Packaging for deployment