Java CMIS API |
Overview | Classes | Examples | Standards | Related
The Java CMIS Messaging API includes a complete set of Common Management Information Service (CMIS) oriented communication and messaging classes for sending and receiving Common Management Information Protocol (CMIP) messages.
CMIS Messaging API Overview
The Java CMIS Messaging API provides high-level classes for the complete set of CMIS messages and CMIP parameter types as defined in the ITU standards. The API also defines a set of communications and association management classes which simplify the development of CMIS level manager and agent applications. The primary API features include:
- an easy to use CMIS service level messaging API
- support for both CMIS manager and agent development
- support for all standard CMIS messages
- support for listener based CMIS notification dispatching
- support for listener based CMIS indication dispatching
- support for pending requests for response processing
- fully configurable message processing (queueing, threading)
- a completed set of CMIS message classes
- all standard CMIP parameter classes
- transport independent association classes
- manager role naming service for association management
- easily extensible to add custom protocol tranport providers
- simplified object naming syntax (ex: "/managedElementId=191")
CMIS Messaging API Classes
The Java CMIS Messaging API service message classes correspond to the different CMIS services defined in the Common Management Information Service ITU standard (X.710). For example, some of the Java CMIS message classes are:
M_GET_Req : M-GET Request M_GET_Ind : M-GET Indication M_GET_Cnf : M-GET Confirmation M_GET_Rsp : M-GET Response M_SET_Req : M-SET Request M_SET_Ind : M-SET Indication M_SET_Cnf : M-SET Confirmation M_SET_Rsp : M-SET Response ... and so on for M-CREATE, M-DELETE, M-ACTION, ... M-EVENT-REPORT and M-CANCEL-GET
In addition to the message classes, the CMIS Messaging API provides high-level parameter and error classes for the CMIP datatypes defined in the Common Management Information Protocol ITU standard (X.710). Some of the parameter and error classes are:
ObjectClass AttributeId ObjectInstance EventTypeId Scope ActionTypeId Filter Attribute Mode Modification AttributeList GetListError Sync SetListError
And finally, the API includes high-level CMIS communications classes for managing associations with remote agents and handling messages sent and received by your application. These communications classes are listed below:
AgentHandle : handle to a remote agent Assocation : association with remote entity AE : local application entity CMISE : CMIS messing 'sending' interface Notification : incoming notification NotificationListener : CMIS event listener IndicationListener : CMIS indication listener M_GET_PendingIndication : represents uncompleted indication M_GET_PendingRequest : represents outstanding request ... and so on for the other CMIS services
For a complete set of API Javadoc, developer guides, agent simulators and much more, please click here to download the DynamicTMN® CMIP Suite evaluation package.
CMIS Messaging API Examples
The following example demonstrates the use of the CMIS Messaging API to create an association, send an M-GET request, receive the M-GET response, and view the results:
// -- create an M-GET request to retrieve 2 // -- attributes from the specified network element // -- M_GET_Req req = new M_GET_Req("managedElement", "/managedElementId=1"); req.addAttrid("locationName"); req.addAttrid("administrativeState"); // -- get the AgentHandle from the API's naming service // -- for the remote agent based on the object instance // -- NamingService nameserv = TMNFramework.GetNamingService(); AgentHandle agent_handle = nameserv.getAgentHandle(req.getObjectInstance()); // -- create and return association to the agent // -- Association assoc = agent_handle.getValidAssociation(); // -- send the M-GET request to the agent // -- M_GET_PendingRequest pr = assoc.cmise().send(req, 10); // -- block awaiting the M-GET confirmation (response) // -- M_GET_Cnf cnf = pr.cnf(); if ( ! (cnf.isError() || cnf.isReject()) ) { Attribute.Iterator iter = cnf.getAttributes(); while(iter.hasNext()) { Attribute attr = iter.next(); AttributeId id = attr.getAttributeId(); AbstractData val = attr.getAttributeValue(); System.out.println("(" + id + " = " + val + ")"); } } else { System.out.println("error: " + cnf); }
For a complete set of API examples, API Javadoc, developer guides, agent simulators and much more, please download the DynamicTMN® CMIP Suite evaluation package.
Supported Standards
The CMIS Messaging API implements the following standards:
- TMF 041: Based on the TMForum CMIS API Standard
- ITU-T X.219: Remote Operations (ROSE) Service Definition
- ITU-T X.229: Remote Operations (ROSE) Protocol
- ITU-T X.710: Common Management Information Service (CMIS)
- ITU-T X.711: Common Management Information Protocol (CMIP)
- RFC1006: OSI over TCPIP (CMIP over TCPIP)
Related DynamicTMN® Components
The Java CMIS Messaging API uses the following Java APIs:
Is used by the following DynamicTMN® Java APIs:
And is included in the following DynamicTMN® products: