MQTT Essentials

The Internet of Things (IoT) has recently gained massive traction. IoT challenges enterprises, small companies, and developers with new problems to solve. While HTTP is the de facto protocol for the human web, communication between machines at scale requires a paradigm shift — steering away from request/response and leading toward publish/subscribe. This is where the ultra-lightweight, massively scalable, open, and easy-to-implement MQTT protocol enters the picture. In this Refcard, we dive into what MQTT is and how it works, including brokers, client libraries, and more.

Takeaways for a Successful IoT Project

Ever wondered how to tackle an IoT project that you need to start from scratch? Felt overwhelmed by extremely detailed how-to guides on the internet or glowing (possibly sponsored) technology recommendations for just part of your problem statement? IoT projects can grow in scale and complexity much quicker than you would expect.

Whether your IoT project is a proof of concept, a check of a certain value proposition, or even a full-fledged pilot with multiple customers involved, you will find some guidelines in this article, where we will put you in the reins of your IoT project and give you the handles to wrestle this beast to the ground. We will go into some detail on differences between the different IoT projects and concepts. We will share with you some insights, aptitudes, and attitudes to bring your IoT project to a successful outcome as well as sharing some of our learnings we picked up along the way! 

Composite Design Pattern in Java

Here I am with another useful design pattern for you — the composite design pattern. I will try to point out the key features to remember while implementing the composite pattern for you.

Composite Design Pattern

The composite pattern is meant to "compose objects into a tree structure to represent part-whole hierarchies. Composite lets clients treat individual objects and compositions of objects uniformly"

How to Easily Set Up Mutual TLS SSL

Mastering Two-Way TLS

This tutorial will walk you through the process of protecting your application with TLS/SSL authentication, only allowing access for certain users based on their certificates. This means that you can choose which users are allowed to call your application.

Table of Contents

  1. Introduction
  2. Tutorial
    • Starting the server
    • Saying hello to the server (without encryption)
    • Enabling HTTPS on the server (one-way TLS)
    • Require the client to identify itself (two-way TLS)
    • Two-way TLS based on trusting the Certificate Authority
  3. Automated scripts
  4. Tested HTTP Clients
  5. Demo and walk-through video

Introduction

This sample project demonstrates a basic setup of a server and a client. The communication between the server and client happens through HTTP, so there is no encryption at all yet. The goal is to ensure that all communication will be encrypted.

Parallel TCP/IP Socket Server With Multithreading and Multiprocessing in C

The primary intention of writing this article is to give you an overview of how we can entertain multiple client requests to a server in parallel. For example, you are going to create a TCP/IP server which can receive multiple client requests at the same time and entertain each client request in parallel so that no client will have to wait for server time. Normally, you will get lots of examples of TCP/IP servers and client examples online which are not capable of processing multiple client requests in parallel.  

In the first example, the TCP/IP server has been designed with multi-threading for parallel processing and in the second example, I have implemented the server with multi-processing to accomplish the same goal. 

Configuring SSL/TLS Connection Made Easy

Setting up encryption for your application, how hard can it be? I thought it should be easy, as all communication with modern web applications should be encrypted, right? Well, my expectations were wrong... While setting it up, I encountered a couple of hidden difficulties. For example, the configuration is vague, verbose, not straight-forward to set it up, hard to debug, and not unit-test friendly.

For this article, I'll assume you already have a basic understanding of certificates, keystores, encryption protocols, and ssl-handshake. If not, I would recommend going through this article: How to Easily Set Up Mutual TLS.

The Best of Node and Express [Articles and Tutorials]

All aboard!

Built on top of Google Chrome's V8 Engine, Node.js (and its companion framework, Express.js) have come to dominate much of backend development, especially when JavaScript is your language of choice on the server-side. In this edition of "Best of DZone," we're going to take a look into the two frameworks to better understand key pieces of functionality and how they work in tandem to create applications.  

Before we begin, we'd like need to thank those who were a part of this article. DZone has and continues to be a community powered by contributors like you who are eager and passionate to share what they know with the rest of the world.