Next: Objects as transportable data
One of the major stumbling blocks of developing and fielding
complex distributed applications is the difficulty in
implementing and debugging using existing communication tools.
The focus of the NetClasses architecture has been to provide
the tools necessary for programmers to develop complex
distributed applications without having to deal with the
esoteric details of low-level communications.
NetClasses is a set of C++ class libraries that is organized
as a software toolkit. The typical user of the NetClasses
libraries will be a distributed systems application developer
who requires an object-oriented framework for distributed,
message-passing based programming. By linking the appropriate
NetClasses libraries, application programmers are then able
- Transport objects over a network.
Currently, there are three object varieties that NetClasses can
- 1. Arbitrary C++ objects---once derived from PostModern's TransObject
- 2. arbitrary NIH-derived objects; and provide an object-oriented data
transport in which the structure and organization of network
transportable objects is specified externally in configurable files
using a simple, programming language independent abstract syntax
notation, the NetClasses Abstract Syntax Notation (NASN).
- Perform remote method invocations (RMI)
Using RMI, an application on machine B can invoke a method on
machine A. RMI insulates distributed applications from the complexity
inherent in traditional, RPC-based distributed systems
development tools such as protocol compilers, TCP/IP
code writing, and detailed socket handling. RMI makes fault
tolerance and connection management transparent to the
application programmer. The RMI layer is built on top of the
distributed services package that is described below.
- Build complex information distribution systems on top
of Distributed Services, PostModern Computing's
object-oriented approach to client-server connection
management and fault tolerance.
- Use the NetClasses application programmer interface in
order to create, manipulate, and destroy typed objects
given NetClasses Typed Object data type definitions.
(NIH-derived and native C++ objects are created, manipulated
and destroyed from C++ itself).
- Read and write all three varieties of NetClasses-transportable
objects on streams using machine-independent external
representations. All three varieties of objects can be
stored to and read from files.