ASN.1 Tools for Java — Runtime Choices

Throughout the years, OSS Nokalva's customers have had many different requirements for code size, encoding/decoding speed and diagnostic capabilities on a variety of mainstream and embedded platforms. To satisfy our customers' various needs, OSS Nokalva offers three flavors of our ASN.1 Tools for Java runtime libraries.

All three flavors of the runtime libraries perform the same function and have an identical API consisting of methods for encoding/decoding ASN.1 messages, methods for copying, comparing and printing unencoded/decoded messages, and many other useful functions.

You can switch from one flavor of the ASN.1/Java runtime libraries to another with little or no impact to your application code. See the "OSS ASN.1 Tools for Java Reference Manual" for detailed instructions on how to switch between the various runtime flavors.

SOED

The Space-Optimized Encoder/Decoder (SOED) was so named because of its emphasis on minimizing memory usage (i.e., small code size), especially when the ASN.1 specification is large or complex. SOED is a popular choice for use during development. It offers a wealth of tracing, error trapping, diagnostic and recovery capabilities, our most flexible storage manager, and the ability to work interactively with an ASN.1 specification (which is useful, for example, when developing a protocol browser application which needs to access and manipulate data from OSS generated Java classes in a generic manner).

TOED

The time-optimized encoder/decoder (TOED) is a new choice highly suited for deployment because of its emphasis on minimizing CPU utilization. We minimized the tracing capability and used a code-driven rather than metadata-driven design to achieve a significant boost in performance.

LED

The lean encoder/decoder (LED) is optimized to offer both smaller code size and faster encode/decode performance compared to SOED. It purposely does not possess a wealth of tracing and diagnostic capabilities. The lean runtime is half the size of the SOED runtime and runs up to 20% faster. It is often the best choice for working with large ASN.1 specifications, particularly when your software runs on systems with significant memory constraints.

Which ASN.1/Java Runtime is Right for Me?

Use the table below to choose the ASN.1/Java runtime that best suits your needs, based on its performance (expressed as both code size and the speed of encoding) and diagnostic capabilities.

SOED

TOED

LED

Encoding/Decoding Speed

Fast

Fastest

Faster

Code Size1

Small

Medium2

Small

Diagnostic Capabilities

Rich

Reduced

Reduced

Ideal for Use During

Development and Deployment

Deployment

Deployment

Best Suited for

  • Diagnosis during development
  • Applications used for testing
  • Applications that need generic access to data, such as protocol browsers, LAN analyzers, etc.
  • Large/complex ASN.1 specs
  • Environments with memory limitations
  • Small ASN.1 specs
  • Very high speed requirements
  • Large ASN.1 specs
  • High speed requirements
  • Environments with memory limitations

 

For details about each of the ASN.1/Java runtimes, please consult the "OSS ASN.1 Tools for Java Reference Manual".

1The size of the code generated by the ASN.1 compiler is highly dependent on the particular ASN.1 specification used.

2If your ASN.1 specification is short and simple, the size of the generated code for use with TOED could be comparable with the size of the generated code for use with SOED and LED.