ThingWorx Edge Java SDK > Introducing the ThingWorx Edge Java SDK
  
Introducing the ThingWorx Edge Java SDK
The ThingWorx Edge Java SDK is designed for portability while making it easy to integrate applications into the ThingWorx distributed computing view of the Internet of Things (IoT). The goal of the SDK is to make it simple to connect any Java-enabled devices and/or systems to the ThingWorx platform. In addition, the SDK is designed to give developers enough flexibility to start simple and move quickly to creating highly sophisticated applications.
The SDK allows you to create an application for your machines/devices that communicates with the ThingWorx platform. The SDK uses the ThingWorx AlwaysOn protocol for communication. The AlwaysOn protocol is a binary protocol that uses the WebSocket protocol as its transport. This protocol allows persistent WebSocket connections that can operate through a firewall. The persistence enables two-way, low latency communication between the device and platform.
Purpose of the Edge Java SDK
The primary purpose of the ThingWorx Edge Java SDK follows:
To establish and manage a secure, AlwaysOn connection with a ThingWorx platform.
To enable simple programmatic interaction with the properties, services, and events that are exposed by entities that exist on a ThingWorx platform.
To easily define properties and services that can be accessed from the ThingWorx platform.
Features
The Java SDK supports the following functionality that allows your machine, device, or application to work with ThingWorx platform:
Secure Connections — The Java SDK supports the OpenSSL library and defaults to rejecting self-signed certificates. The Java SDK supports client and server certificate validation. You can enable or disable SSL/TLS certificate validation.
Compression — As of v.6.1.0, the Java SDK uses a newer version of Netty to support WebSocket compression at the edge for all WebSocket communications with ThingWorx platform, including file transfers and tunneling. For more information about compression, see Compression on page 37.
File transfer — The file transfer functionality of the Java SDK allows bidirectional file transfer between an edge device and an instance of ThingWorx platform.
Tunneling — The tunneling functionality of the Java SDK allows you to establish secure, firewall-transparent application tunnels for applications that use TCP, such as VNC and SSH.
Proxy settings — If your environment requires edge devices to communicate through a proxy server, you can set up your application to connect to ThingWorx platform through a proxy server.
Subscribed properties — Events can subscribe to changes in property values and in aspects of properties.