Architecture of Jcapi
Java I/O application layer |
|
|
|
Java |
ISDN application layer |
|
implementation |
org.capi.capi20
CapiException
class |
|
net.sourceforge.jcapi
Jcapi
class |
|
net.sourceforge.jcapi
JcapiMessage
class |
|
net.sourceforge.jcapi
JcapiNotifier
class |
|
public interfaces to be certified by
CAPI Association |
org.capi.capi20
CapiListener
interface |
|
org.capi.capi20
Capi
interface |
|
org.capi.capi20
CapiMessage
interface |
| |
platform specific layer |
|
|
|
Java Native Interface (C/C++) |
vendor/device specific layer
(not part of Jcapi) |
|
CAPI 2.0 Application Level
e.g. capi2032.dll |
|
|
native |
Vendor/device specific layer
The whole architecture of Jcapi is based on the native Common ISDN API
(CAPI 2.0) for any platform or system architecture.
The vendor of the ISDN device should offer an application level CAPI,
usually a shared library (e.g. capi2032.dll
for Win32-systems).
Platform specific layer
Since a CAPI shared library cannot be loaded directly from a Java
application, it needs to be "wrapped". This is done by the
jcapi20 shared library which links the vendor specific CAPI library
dynamically and offers a Java Native Interface for Java access.
Thereby this library builds a bridge over two gaps between platform
independent Java applications and ISDN devices:
First, it gives access to the native coded driver including direct
memory access and second, it replaces
the platform specific CAPI 2.0 by an Java Native Interface identical for
all platforms and systems.
Since this wrapping feature is only possible for native coded programs, the
library has to be built for all platforms seperately; but keeping it small
and simple minimizes the extend required.
Specification layer: CAPI 2.0 for Java
This layer is designed to extend the Common ISDN Application Programming
Interface (CAPI 2.0) to the Java Virtual Machine (JVM) as an additional
platform. Therefore it has to be certified by the CAPI Association.
Implementation layer
The CAPI interfaces described above are implemented by this layer.
The CapiException class lies somewhere in between: It belongs to the
CAPI specification but is already an implementation.
ISDN application layer
The CAPI 2.0 is a "low level" interface with the need of special know-how
of the ISDN protocols and data structures. It is not designed for
application programmers who don't want to deal with "bits and bytes".
The ISDN layer offers a more simple and "Java like" API.
Java I/O application layer
There are standards defined for Java communication APIs like stream I/O.
These APIs are implemented for ISDN communication within this layer.