N-iX has got extensive Java expertise, with projects across various industries, from manufacturing automation and information management to ride-sharing and telecom. We’ve talked with our senior Java experts and asked them to share their ideas on the hottest Java-related trends, such as IoT, microservices, Data Science, and Hybris Development and dwell on some of the most interesting Java-based projects at N-iX which you should consider joining.
Some may say Java is at death’s door. However, it looks booming and blooming. According to the list of the most popular programming languages in Wikipedia, Java is used in a half of globally known projects. Stackoverflow 2017 survey indicates that Java is rated third among the most popular technologies, and it remains one of the most loved and demanded programming languages in the world.
Java platform is scalable, reliable, practical and with the advent of JDK 8 it provides the ability to code in a more functional way. Lambda expressions and the streams API have made the code more readable, convenient and maintainable. Also, improvements in concurrency, IO, Date/Time API and Core API allow to write clear and effective code without additional libraries.
The choice of Java in many companies, including N-iX, is determined in many ways by technical requirements for resources which are necessary for solving various tasks and problems on different projects, as well as by the maturity of the Java platform and a large quantity of available solutions and libraries.
With Java becoming even more efficient, it now powers some of the latest technological trends:
Trend #1. Microservices
Microservices architecture makes it easier to add functions and services to the system and change them. Adoption of Docker containers, DevOps and PaaS technologies made realization of microservices possible. Such giants as Netflix, Amazon, eBay, the UK Government Digital Service, Twitter, PayPal, Soundcloud, The Guardian, and many more are vivid examples of how enterprises have migrated from monolith architecture to microservices and are now taking advantage of the trend.
The Rising Microsevices Trend
Source: Google Trends
Architectural style of microservices is an approach in which a single application is built as a set of small services, each of which works within its own process and communicates with the rest using lightweight mechanisms, as a rule HTTP. Those services are built around business needs and deployed independently using a fully automated environment. They are decentralized, more easily maintainable and can be built using different coding languages, databases, and environment, depending on which one fits a specific purpose in the most effective way. It is very convenient to develop and test a single microservice without a need to run them all together. Also, it’s easier to troubleshoot because usually there is some monitoring over the services, and it’s possible to quickly identify which service is causing problems.
Java is often used for implementation of microservices. Microservices are great but they entail such technological concerns as development of distributed systems and considerable operational overhead. However, with the advent of SpringBoot, SpringCloud and Kubernetes, the usage of Java for microservices became less time-and-effort-consuming and more efficient. In particular, SpringBoot helps to build microservices without the need to undertake multiple configurations. SpringCloud and Kubernetes allow developers to quickly build some of the common patterns in distributed systems such as service discovery, configuration management, routing, etc.
Join a fresh N-iX project built with microservices
The project has just started. This is a platform for video-streaming. The customer plans to apply it in various spheres, including surveillance cameras to monitor road traffic. Users are provided with SDK for different coding languages for each user to be able to write their own plugin for video processing. A flexible event-based architecture allows to notify a user when an event on the video has been detected: criminal face recognized or giraffe detected. Not only real-time video streaming is planned but also processing the video archives from cloud storage like Youtube or Amazon S3.
Aspects of the project which are worth noting:
- The very video streaming is on C, and Java provides wrapper classes. Java as a microservice calls low level C services.
- The platform is built using microservices. We use SpringBoot and Kubernetes for management of microservices.
- The customer is tech-savvy. They create various documentation and charts for everything.
- We have our own OAuth2 server and API provided which will allow clients to write their custom applications using this solution.
- NoSQL databases(Mongodb), Redis.
Trend #2. Data science and machine learning
This is a game-changing trend which allows us to create predictive decision-making models and solve high-dimensional problems. What’s more, the results of machine learning can be transferred across many applications and myriads of users.
Source: CrowdFlower
The most popular languages for data science and machine learning are Python, Java and R. Each of them is good for solving specific data science tasks. Java is good in terms of speed, scalability, and performance. That’s why Java underpins data engineering of such giants as Facebook and Twitter. The Java Virtual Machine is a perfect fit for creating the code which will look the same across multiple platforms – which is excellent for big data solutions. Additionally, big data applications are usually written using garbage collecting languages, such as Java.
Join Vable – master Data Science, Machine Learning and Microservices
Technology stack: AngularJS, NodeJS, Java 8/SpringBoot, Python, AWS, MongoDB, Elasticsearch, RabbitMQ, Consul, MySQL, Redis, Docker / Swarm, Microservices, Ansible, Gradle, Git, Linux.
Vable is an innovative information management and analytics platform that provides high quality content to large organizations across various industries. The solution performs crawling, scraping, parsing, processing, full text search and data visualization, as well as newsletters delivery based on topics its users are interested in. Members of the project are involved into a new generation platform development. Almost the whole backend of the platform and the business logic of the application are built with Java.
The project is quite innovative and has a special startup culture about it. The team has recently embarked on data analytics and data science on the project. NLP development has just started using Python and Java. The NLP services rapidly decipher the importance and relevance of articles for the platform users, automatically assigning keywords, so that they can easily find the most relevant content. Machine Learning (Suggestion Engine) phase is going to start soon. It is planned to be implemented using Java and Apache Spark.
Vable project highlights:
- There are two cross-functional senior-level teams with about 8 members in each team, majority of whom are located in Lviv (12 engineers).
- Maintaining Continuous Delivery pipeline, it takes 15 minutes from git push to production.
- The team has powerful local workstations which replicate behavior of cloud-like environments.
- The system architecture is built from scratch and is growing from 0 to 30 microservices using Domain Driven Design.
- The programmers are using Java 8 / SpringBoot to rump up services.
- Orchestrating microservices using Docker Swarm, Consul, Ansible on AWS.
- Operating sharded Mongo and Elasticsearch cluster with tens of millions of documents.
- Using full-blown automation testing (component, behavioral API, end to end UI).
- Using Java DSL for API behavioral tests, completely parallel test suites which allow to run hundreds of complex system-level scenarios in less than 5 minutes.
Trend #3. Internet of Things
Top IoT programming languages are Java, C, JavaScript, Python.
According to the IBM report on the future of the Internet of Things, the amount of IoT devices is predicted to exceed 30 billion in 2020. Java MQTT broker is widely used to enable IoT. MQTT is considered to be the most effective protocol for IoT because it is more lightweight than HTTP, and it can transfer data over wide-ranging networks.
Programmers employ Java for large-scale enterprise development, and the same architectures and communication protocols can be used for IoT. Here are 10 legitimate reasons why Java is one of the best solutions for embedded devices.
Join SCHAD project – excel at IoT
Technology Stack: Phonegap, HTML5/CSS3/JavaScript, Ionic, Backbone, Dust.js, jQuery, Java, Spring, Apache CXF (JAX-RS, JAX-WS), Apache Camel, Apache Maven, Apache Tomcat, IBM Maximo, ActiveMQ, MSSQLServer.
The project will be a perfect fit for those who are interested in the usage of IoT for process automation. IBM IoT Platform is expanded with SCHAD automation products.
SCHAD is the company which is targeted at shaping standards of mobile operations, enhancing supervision and maintenance of automated systems. N-iX development team have built a functional solution based on the legacy product EXTEND7000, as well as supported and extended the existing version of the product. EXTEND7000 comprises mobile tools that enable factory workers who are responsible for the factory operations to receive real-time SCADA notifications and get full control over automation systems. This is a product which is used by major market players in manufacturing, airport operations and logistics including Toyota UK, Honda North America, Volkswagen, Boston Logan Airport, Allessa Chemie (chemicals), Zalando (Internet shopping and distribution), Baur (mail order and e-tailer), as well as a substantial number of airports in Europe.
The project entails innovations and employment of the latest trends and technologies. Software engineers are using the latest Java and Spring framework, NoSQL databases (CouchDB) and distributed architecture which calls for many complex skills.
As it has been mentioned before, SCHAD is implemented in the IoT domain, with the usage of MQTT broker which is lightweight and has less operational overhead.
Trend #4. Hybris development
Hybris development is one of the latest trends for e-commerce. Hybris solutions are very flexible, and they can be customized to meet various customers’ requirements. Among companies which use it as their e-commerce platform are Samsung, O2, Vodafone, Audi, Lebara, and other world-known brands. The platform has it’s own WCMS, Customer Service, integration with payment, available Build Framework, Backoffice Administration Cockpit, and more. Hybris developers are in high demand and are very well paid. This technology is used for a wide variety of projects. For instance, in banking digital transformation projects (as we discuss in this post).
Lebara project – mastering Hybris development, Data Science, and microservices
Technology stack: .Net, ASMX Web Services, SQL, Windows Services, Azure Cloud Service, Azure Service Bus, iOS, Xcode, Swift, Android, Android SDK, Android Studio IDE, Java, Spring stack (MVC, Data, Security), MySQL, Elasticsearch, Spring boot, Hybris OOB stack, JavaScript, jQuery, Gulp JS, NodeJS, Bootstrap, HTML, CSS (Sass/Less), JSP, Hybris CMS.
Lebara is a telecom company which provides services to international and migrant communities around the world, using the mobile virtual network operator business model. Lebara services comprise Lebara Play (movie and live TV-channel streaming), Lebara Talk (HD Quality calling and messaging app), Lebara Mobile (low-cost international mobile service), and Lebara Money (a cross-border mobile money transfer service) etc.
The cooperation between Lebara and N-iX involves many projects covering multiple technologies and domains such as Business Intelligence, Cloud Solutions, microservices, DevOps, frontend development, mobile product development etc. The project has both pure Java and Hybris development involved. Latest Java and Spring stack (MVC, Data, Security) are used on the project.
The project has an impressive technology stack, and it provides developers with numerous directions for career development. We are always looking for a wide range of specialists, from Java trainees who are willing to master Hybris to Senior Hybris Developers with many years of experience behind their back.
Summary
Java remains one of the most practical, reliable and loveable programming languages. It is used not only in Java enterprise development and enterprise mobility solutions, but also powers the latest trends, such as microservices, data science, IoT, and Hybris development. We’ve described 4 the most exciting and challenging Java projects at N-iX powered by the aforementioned technological trends and which you should consider joining.