DPDL (Dynamic Packet Definition Language)

DPDL is a small framework and scripting engine that can be used to implement extremly small, portable and highly efficient applications on Java enabled devices and small embedded systems.

The small applications can run on J2ME, any Java compliant platform and on small embedded systems like 16-bit or 8-bit microcontrollers by using the included micro Java Virtual Machine.

Dynamic Packet Definition Language


A portable data protocol for small embedded systems

DPDL is a micro platform component to facilitate in first place software development on mobile devices (J2ME, Android) and very small embedded systems, but can be used also in Desktop or Server applications.

Dpdl can be used as integrated application module, as a library module, as a testing environment or as rapid application prototyping platform for small devices and small embedded systems in the world of IoT (Internet Of Things)

Basically Dpdl allows to implement small applications and scripts that make use of the built-in data container in form of a Dpdl packet, a highly compressed chunked data packet with built in database technology and scripting engine.

Dpdl is a compact framework and small memory footprint library that can be used to encode, decode, control, query and visualize data efficiently on small microcontroller chips.

The system fits best on small memory devices like J2ME, Raspberry Pi, 16-bit Mircrocontroller Chips or even smaller platforms with a very basic specification.

Dpdl implements by default HTTP and Bluetooth protocols, but comes with an extendible API that allows to include other potular protocols for the IoT like MQTT, CoAP, and others.

Dpdl has been developed by A.Costa in years 2001-2004 and is now maintained by SEE Solutions.

Supported Platforms:

- Any Java 1.0 Spec implementation

- J2ME from Oracle

- ME Embedded from Oracle

- J2SE from Oracle

- J2EE from Oracle

- Java Card (but very basic spec): Java Card from Oracle

- Android

- DpdlVM: micro Java Virtual Machine

Dpdl Engine

Dpdl Framework

Dpdl Packet

Dpdl Framework

In 2004 A.Costa added to Dpdl some database optimization techniques with his BsC Thesis project dissertation:

"Advanced Database techniques in Dpdl (Dynamic Packet Definition Language). A portable data protocol for small Embedded Systems" in year 14/10/2004

The framework provides a particular way to encode data into a Dpdl Packet, a sort of executable data container, which can than be decoded on the target device by using database technology, compression, encryption and a allocation/deallocation paradigm.

Data contained in a Dpdl-Packet can therefore possibly be always available on the device indexed like a database. Dpdl comes with a built-in scripting engine that can be used within Dpdl to control the application flow and

is often also used to implement small applications or working prototypes.

Dpdl is particularly indicated for small memory footprint platforms (< 100Kb range) and is portable to a wide range of platfroms including Java, Android, J2ME and many others.

A supplied small footprint micro Java Virtual Machine (DpdlVM) written in native C language makes the system portable to virtually any platform.

The same Dpdl scripts and Dpdl packets run on all platforms having a Dpdl Framework installed.

Dpdl and IoT

Example Dpdl console application

Example running on Unix/Linux

Dpdl Framework

Example embedded Dpdl scripting language

Dpdl script to detect Bluetooth range singlals. Runing on J2ME and Desktop PC (<= Windows 7 , Linux, Mac OS) Dpdl embedded scriptings

Dpdl Console client app running on a RaspberryPi3 device

Dpdl Console app

Example app using Dpdl: very compact J2ME GPS Navigator app ( < 60 KB memory)

J2ME Navigator app with Dpdl

J2ME app (CLDC 1.0) to track GPS data via external or internal bluetooth gps adapters. Fully floating point emulation capability and Export capabilities to Google Earth 3D with web component

Dpdl example that uses DpdlPacket running on J2ME CLDC 1.0 devices

Dpdl Example: CityPhone

Dpdl embedded scriptings


Running on an old Nokia 6600 device

Dpdl embedded scriptings