-
Notifications
You must be signed in to change notification settings - Fork 0
Manual Overview
JennyNet is an object data and file transport layer written in Java and performed on a Java Virtual Machine. JennyNet eases the way in which Java objects and files can be transmitted over the Internet by Java applications in the context of client/server or peer-to-peer communication architectures. It uses IP-addresses and port numbers (so called socket addresses) to identify hosts and rests on the TCP/IP transport layer. As executor of proprietary protocols, it requires that the same software package, with some identical initialisations, is present on all involved communication ends. JennyNet is designed to work efficiently on multi-core computers and enables parallel processing of sending and receiving streams. Atomic communication units are objects (graphs of objects) of serialisable Java classes and files of the file-system. Communication is divided into channels which are described by the transport data-types and transmit-priority attributes. Each channel ensures that the sequence of posting objects or files is replicated at the remote end.
Main Features:
- two standard serialisation methods: a) Java Serialization framework, and b) Kryo serialisation; plus a void slot for custom serialisations.
- automated serialisation/de-serialisation of Java objects and object graphs of registered classes.
- event-driven communication of application and layer, optional polling service.
- comfortable "background" file transfers (won't affect object communication).
- highly reactive interface; does not block application when large or multiple objects or files are being transmitted.
- 5 priority channels for object and file transmissions; sending actions are performed with priority attributes. This allows data to be instantly preferred to ongoing transmissions of a lower priority channel.
- data types SIGNAL, OBJECT and FILE constitute super-channels where objects are preferred to files and signals to objects.
- extra services like PING signals, ALIVE signaling and IDLE connection alarming.
- multi-threaded design optimises execution on multi-core machines and relieves applications from most blocking considerations.
- thread impact is 2-3 per connection, plus 2-4 on the static level.
Release and Requirements
- JennyNet comes as a Java Library (.jar) and is offered as a module for enclosing applications (API), size of 150 KiB.
- JennyNet can be used out-of-the-box (single package) using Java-serialisation.
- JennyNet requires a Java Virtual Machine (JRE) of version 1.8 or higher.
- JennyNet requires external software for the optional use of Kryo-serialisation. External Packages
Installation
JennyNet comes in two alternative packages: "jennynet-VERSION.jar" (stand-alone, 150 KiB) and "jennynet-all-VERSION.jar" (with dependencies, 600 KiB). The smaller package enables all functions, using Java-serialisation (the Java default serialisation framework). The larger package enables the additional Kryo-serialisation, which demands external software already contained in the package. If control is wished over external packages then the small "jennynet" package should be declared and complemented manually with external software packages.