Java Abstract Syntax Notation One (ASN.1) API |
The DynamicTMN® Java ASN.1 API includes the complete
set of Abstract Syntax Notation One (ASN.1) value API classes used
by the DynamicTMN® product suite. These API classes provide the set of
generic, high-level interfaces used in constructing, accessing and manipulating
ASN.1 values for use with other DynamicTMN® APIs.
The DynamicTMN® Java ASN.1 API has a developer-friendly
interface with a variety of methods for populating and accessing ASN.1 values.
The ASN.1 API may be used standalone to perform ASN.1/BER encoding
and decoding, with the CMIS API
to populate and evaluate CMIS message
parameters, or with the GDMO Manager API
and GDMO Agent API to populate and
access GDMO attribute, action and notification information.
The ASN.1 APIs features include:
- high-level ASN.1 value classes for all ASN.1 builtin types
- metadata driven ASN.1 Basic Encoding Rules (BER) coder/decoder
- metadata based named OID resolution with reverse name lookup
- convenience classes and methods for ease of use
- ASN.1 Value Notation (AVN) string parsing/generation
- choice of string based AVN or convenience APIs
- configurable output formats
- smart BER buffer caching for optimized performance
The ASN.1 API classes correspond to the different ASN.1 types defined in the
ASN.1 syntax standard (X.208/X.680). For example, some of the ASN.1 value
classes are:
AbstractData : Common base superclass
BOOLEAN : ASN.1 BOOLEAN values
NULL : ASN.1 NULL values
REAL : ASN.1 REAL values
ENUMERATED : ASN.1 ENUMERATED values
BIT_STRING : ASN.1 BIT STRING values
INTEGER : ASN.1 INTEGER values
AbstractString : ASN.1 String/OCTET STRING values
OBJECT_IDENTIFIER : ASN.1 OBJECT IDENTIFIER values
CHOICE : ASN.1 CHOICE values
SEQUENCE_OF : ASN.1 SEQUENCE OF values
SET_OF : ASN.1 SET OF values
StructuredData : ASN.1 SET and SEQUENCE values
AnyData : ASN.1 ANY DEFINED BY values
The ASN.1 API uses the DynamicTMN® GDMO and ASN.1 Metadata API to validate and generate ASN.1 values and value notation strings.
See the following example which shows the use of the ASN.1 API to construct
and access the value for a simple ASN.1 SEQUENCE:
// -- Example ASN.1 Type
//
// Record ::= SEQUENCE
// {
// name GraphicString,
// age INTEGER,
// married BOOLEAN
// }
// -- Create a value using the StructuredData class
StructuredData record1 = new StructuredData("Record");
record1.set("name", "Barney Gumble");
record1.set("age", 43);
record1.set("married", false);
// -- Create a value using ASN.1 value notation --
String avn = "{ name 'Montgomery Burns', "
+ " age 89,"
+ " married FALSE }";
AbstractData record2 = AbstractData.Create("Record", avn);
// -- Extract fields from the value
String name = record2.getAsString("name");
int age = record2.getAsInt("age");
boolean married = record2.getAsBool("married");
For a complete set of API examples, API Javadoc, developer guides,
agent simulators and much more, please click here to download the DynamicTMN® CMIP Suite evaluation package.
Download DynamicTMN® CMIP SuitSuite Evaluation
The DynamicTMN® Java ASN.1 API supports the
following standards:
- Java 2: Java 2 SDK version 1.2 or greater
- TMF 040: Based on the TMForum ASN.1 API Standard
- ITU-T X.208/X.680: Abstract Syntax Notation One (ASN.1)
- ITU-T X.209/X.690: ASN.1 Basic Encoding Rules (BER)
The DynamicTMN® Java ASN1 API uses
the following DynamicTMN® API:
Is used by the following DynamicTMN® Java APIs:
As well as is used by by the following DynamicTMN® products:
Java is a trademark of Sun Microsystems, Inc (Java™). DynamicTMN®, DynamicSNMP® and DynamicTL1® are registered trademarks of Monfox, LLC. Other other logos, trademarks and brands are the property of their respective owners. |
|