Implementing blockchain using Java

The Blockchain is a secure transaction ledger database that is shared by all parties participating in an established, distributed network of computers. It records every transaction between peers and eliminates the need of a middleman. Blockchain proponents often describe the innovation as a “transfer of trust in a trustless world”. Problems Considering irregularities in the financial systems, people started questioning the trustworthiness of the Banking technologies. The banking system needs a single source of truth and data-driven decisions. So in this blog, we are building a simple wallet application implemented in Java using Blockchain. Solution First, we should know why Blockchain? Blockchain is the first radical technology innovation of the 21st century. Blockchain assets provide an enhanced level of security, increasing the security of the system from hacking and fraud. It provides an easy mechanism to allow users to securely transfer the assets between parties and facilitates an easy audit of user accounts. The system may remain totally private if desirable. What is Blockchain? The blockchain is an incorruptible digital ledger of economic transactions that can be programmed to record not just financial transactions but virtually everything of value. A blockchain, originally block chain, is a continuously growing list of records, called blocks, which are linked and secured using cryptography. Each block typically contains a cryptographic hash of the previous block, a timestamp and transaction data. Fig: Block representation Blockchain Network: There are three types of networks. Centralize Decentralize Distributed Fig: Differentiation between the networks Business Use Cases There are many business use cases where blockchain can be applied. We are focusing few of them here. Blockchain Financial Services –...

Mobile App communication with Inverter through Bluetooth

With Internet of Things (IoT) adoption, OEMs are building connected products. The first step to build connected ecosystem is to enable wireless communication on edge devices. The objective of this blog is to help how to use the Bluetooth technologies to communicate with devices wirelessly. Problem We are working with leading solar inverter manufacturer. They have requirement to monitor power generation, storage and consumption of remotely deployed rooftop solar panels. As remote location does not have GSM connectivity, it’s always challenge to retrive data. Considering scale and low cost business model, Bluetooth technology was clear choice solution. Solution We have build Mobile app that interact with Inverter over Bluetooth. Providing reliable and cost effective solution to the end user is main motto behind this. User has to pair with Inverter and click few buttons to retrive data. The same data would be uploaded to cloud when Mobile comes in wi-fi or data coverage. package com.example.bluetoothconnection; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } } Source 1. Starting code The first programming step is to create a new Android Application Project in Android Studio. Doing so will generate code similar to that in Source 1. The first thing the program should do is determine if the Android device supports Bluetooth. To do this, create a BluetoothAdapter object using the function getDefaultAdapter(). If this returns null, then the Android device does not support Bluetooth. Source 2 shows how to do this. Add this code to OnCreate(). package com.example.bluetoothconnection; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); if (mBluetoothAdapter == null) {...

Delivering solutions using Microservices

When you start working in IT, very soon you realise that technologies are changing more rapidly compared to other domains. Key fundamental shifts in software development like Agile methodology, Domain-Driven design, Continuous delivery, PAAS, Automation, System for scale, Small teams are helping to build better software that react fast to the customers changing business requirements. Microservices are emerged from this world. These are small autonomous services that are loosely coupled. In software development lifecycle, requirements keep on changing and more driven by end users expectations and constant innovation happening in digital technology. Most of time, one-size fit solution won’t work as customers are trying to innovate and deliver differentiated experience to their end users. To meet these challenges Patterns7 build architecture framework in which the right systems can emerge and continue to grow as we learn more. Here is architecture of notification microservice that’s been used by multiple clients. We have build email notification microservice for sending communication related to “Invite user”, “Account Activation”, “Forgot Password”, “Reset Password” based on event driven architecture. Following diagram represents architecture details. Notification service is build for high cohesion with it’s own database. If we need to add new client, it’s simply adding client specific data like “From Email”, “Twirl Templates” etc in the Notification Database. Recently Patterns7 Technologies migrated architecture from monolithic to microservice based architecture. By embracing fine-grained, microservice architecture, it’s helping to deliver software faster, embrace newer technologies and give cost benefit to our clients. If you have any queries or need help defining loosely coupled architecture landscape, write an email to...

Geofencing in iOS

Description : This blog introduces you to use geofencing is iOS with in-build method of LocationManager. Geofencing uses global positioning system(GPS) to identify users geographical boundary. Now days geofencing would be too much useful in Internet of Things (IOT) application. As it can gives you position of user and also assigned some boundary with them. Geofencing is most accurate with WI-FI ON irrespective of it is connected to any network or not. Implentation : These are the 2 packages in objective c use to implement geofence : #import <Foundation/Foundation.h> #import <CoreLocation/CoreLocation.h> Which you can included inside LocationManager.  Now will consider one example to elaborate the implementation of geofence. Consider user is wanted to go to location A. At this point we can start or define boundary of user with location A. Support of this methods are above iOS 7.0 version.     if(![CLLocationManager locationServicesEnabled])     {         //You need to enable Location Services     }         CLLocationDegrees latitude = //Latitude of location A     CLLocationDegrees longitude =//Longitude of location A     CLLocationCoordinate2D centerCoordinate = CLLocationCoordinate2DMake(latitude, longitude);     CLLocationDistance regionRadius = //Radius as per your requirement but as per iOS suggestion it should be above 250-300 meter. NSString *identifierId = //Any unique value for geofence identifying.     CLRegion * region = nil;     if([version floatValue] >= 7.0f)      {         region =  [[CLCircularRegion alloc] initWithCenter:centerCoordinate                                              radius:regionRadius   identifier:identifierId];     }         [locationManagers startMonitoringForRegion:region];     After...

Industrial Internet of Things (IIoT)

The Industrial Internet of Things (IIoT) is the latest wave of technological change will transform companies and countries opening up a new era of economic growth and competitiveness. We see a future where the intersection of people, data and intelligent machines will have far-reaching impacts on the productivity, efficiency and operations of industries around the world. It will bring unprecedented opportunities to business and society. It will combine the global reach of the Internet with a new ability to directly control the physical world, including the machines, factories and infrastructure that define the modern landscape.   However, like the Internet was in the late 1990s, the Industrial Internet of Things is currently in its early stages. Many important questions remain, including how it will impact existing industries, value chains, business models and workforces, and what actions business and government leaders need to take now to ensure long-term success. According to WEF USA Industrial Internet Report Industrial Internet of Things (IIoT) will change the basis of competition, redraw industry boundaries and create a new wave of disruptive companies, just as the current Internet has given rise to Amazon, Google and Netflix. However, the vast majority of organizations are still struggling to understand the implications of the Industrial Internet on their businesses and industries. For these organizations, the risks of moving too slowly are real. Opportunities and benefits The industry disruption will come from new value creation made possible by massive volumes of data from connected products, and the increased ability to make automated decisions and take actions in real time. The key business opportunities will be found in four major...

Mobile technologies and happening disruption

The history of technology is defined by series of disruptions that have fundamentally challenged IT landscape. Smartphone and devices are challenging existing business processes and creating opportunities to reinvent for better. Mobility is at the centre stage for helping information to cross the boundaries. With M2M technologies Mobile apps becoming increasingly sophisticated with power of network, ability to analyse enormous data for quality and bringing core capability to device. According to a recent McKinsey CIO survey, tablets could replace up to 30 percent of laptops in the coming years, which is happening and now devices start playing smart roles in it’s bounded context. Mobile opportunities for businesses Customers and businesses are already pushing for the mobile transformation and generating number of business cases. These are categorised into: Communication and collaboration Mobile technologies is enhancing the way employee interact with other employees or customer. This is allowing businesses to engage their customer in fundamentally different ways. For example shopping on the way, delivering content based on predictive analysis. Access to core-business capabilities Every business has core capabilities that help deliver business value. Mobile technologies allows worker or customer to take advantage of core capabilities. Providing mobile access to CRM, ERP or executive dashboard improved enterprise productivity and help management make data driven decisions. Machine-to-Machine sensors By building intelligent sensor networks (e.g., real-time asset management using RFID-tagged cases), enterprises are also improving productivity. Key success factor in deploying mobile solution for your business: Business Value-centric solution Enabling mobile solution for enterprise is challenging. Businesses should identify and focus on areas that create real value. Segmenting the core capabilities and identifying the...