On April 4-th, 2017 in cosmos coworking camp – Sofia, Trayan Iliev will talk about “Reactive Java Robotics and IoT with Spring Reactor” (http://robolearn.org/reactive-java-robotics-iot-spring-reactor/).
The event is organized by DEV.BG and it is part from the user group Internet of Things.
Program:
1. Robotics, IoT & Complexity. Domain-Driven Design (DDD). Reactive programming. Reactive Streams (java.util.concurrent.Flow);
2. High performance non-blocking asynchronous programming on JVM using Reactor project (using Disruptor/RingBuffer);
3. Implementig reactive hot event streams processing with Reactor: Flux & Mono, Processors;
4. End-to-end reactive web applications and services: Reactor IO (REST, WebSocket) + RxJS + Angular 2;
5. IPTPI robot demo – reactive hot event streams processing on Raspberry Pi 2 + Arduino with embedded and mobile interfaces: http://robolearn.org/
For the lecturer: Trayan Iliev
– founder and manager of IPT – Intellectual Products & Technologies (http://iproduct.org/) – company for IT trainings and consultancy, specialized in Java, Fullstack JavaScipt, web and mobile technologies
– 15+ years training and consulting experience
– lecturer on the conferences, organized by BGJUG and BGOUG – 9 presentations
– organizer of hackathons on Java robotics & IoT in Sofia and Plovdiv
– presenter on international developer conferences: jPrime, jPofessionals, Voxxed Days
How to Leverage Machine Learning (R, Hadoop, Spark, H2O) for Real Time Proces...Codemotion Tel Aviv
The document discusses applying machine learning models to real-time data streams. It covers building analytic models from historical data using tools like R, TensorFlow and Hadoop. It then discusses applying these pre-built models to real-time streaming data using frameworks like Apache Spark, TIBCO StreamBase and H2O to power applications like predictive maintenance and manufacturing analytics. The key takeaway is that machine learning on historical data finds insights, while stream processing applies these models in real-time to drive closed-loop analytics and enable real-time action.
How to Choose the Right Technology, Framework or Tool to Build MicroservicesKai Wähner
Microservices are the next step after SOA: Services implement a limited set of functions. Services are developed, deployed and scaled independently. This way you get shorter time to results and increased flexibility.
Microservices have to be independent regarding build, deployment, data management and business domains. A solid Microservices design requires single responsibility, loose coupling and a decentralized architecture. A Microservice can to be closed or open to partners and public via APIs.
This session discusses technologies such as REST, WebSockets, OSGi, Puppet, Docker, Cloud Foundry, and many more, which can be used to build and deploy Microservices. The main part shows different open service frameworks and proprietary tools to build Microservices on top of these technologies. Live demos illustrate the differences. The audience will learn how to choose the right alternative for building Microservices.
Log Analytics for Distributed MicroservicesKai Wähner
This document summarizes a presentation on log analytics for distributed microservices architectures. It discusses how log analytics is needed to monitor these complex distributed systems and gain business insights. The presentation covers topics like distributed microservice log events, an introduction to log analytics, the log analytics market, and how log analytics relates to other big data components. It provides examples of scenarios where log analytics can be used and an overview of alternatives for log analytics solutions.
IoT and Edge Integration with Open Source Frameworks:
Internet of Things (IoT) and edge integration is getting more important than ever before due to the massively growing number of connected devices year by year.
This session shows open source frameworks built to develop very lightweight microservices, which can be deployed on small devices or in serverless architectures with very low resources and wire together all different kinds of hardware devices, APIs and online services.
The focus of this session lies on showing open source projects such as Eclipse Kura, Node-RED or Flogo, which offer a framework plus zero-code environment with web IDE for building and deploying integration and data processing directly onto connected devices using IoT standards such as MQTT, WebSockets or CoaP, but also other interfaces such as Twitter feeds or REST services.
The end of the session discusses the relation to other components in a IoT architecture including cloud IoT platforms and big data respectively streaming analytics solutions (such as Apache Storm, Flink, Spark Streaming, Samza, StreamBase, Apama).
Streaming Analytics Comparison of Open Source Frameworks, Products, Cloud Ser...Kai Wähner
This document provides an overview of streaming analytics and compares different streaming analytics frameworks. It begins with real-world use cases in various industries and then defines what a data stream is. The core components of a streaming analytics processing pipeline are described, including ingestion, preprocessing, and real-time and batch processing. Popular open-source frameworks like Apache Storm and AWS Kinesis are highlighted. The document concludes by noting that both streaming analytics frameworks and products are growing significantly to enable real-time analytics on streaming data.
Case Study: How to move from a Monolith to Cloud, Containers and MicroservicesKai Wähner
This session shows a case study about successfully moving from a very complex monolith system to a cloud-native architecture. The architecture leverages containers and Microservices to solve issues such as high efforts for extending the system, and a very slow deployment process. The old system included a few huge Java applications and a complex integration middleware deployment.
The new architecture allows flexible development, deployment and operations of business and integration services. Besides, it is vendor-agnostic so that you can leverage on-premise hardware, different public cloud infrastructures, and cloud-native PaaS platforms.
The session will describe the challenges of the existing monolith system, the step-by-step procedure to move to the new cloud-native Microservices architecture, and why containers such as Docker play a key role in this scenario.
A live demo shows how container solutions such as Docker, PaaS cloud platforms such as CloudFoundry, cluster managers such as Kubernetes or Mesos, and different programming languages are used to implement, deploy and scale cloud-native Microservices in a vendor-agnostic way.
Key takeaways for the audience:
- Best practices for moving to a cloud-native architecture
- How to leverage microservices and containers for flexible development, deployment and operations
- How to solve challenges in real world projects
- Understand key technologies, which are recommended
- How to stay vendor-agnostic
- See a live demo of how cloud-native applications respectively services differ from monolith applications regarding development and runtime
The digital transformation is going forward due to Mobile, Cloud and Internet of Things. Disrupting business models leverage Big Data Analytics and Machine Learning.
"Big Data" is currently a big hype. Large amounts of historical data are stored in Hadoop or other platforms. Business Intelligence tools and statistical computing are used to draw new knowledge and to find patterns from this data, for example for promotions, cross-selling or fraud detection. The key challenge is how these findings can be integrated from historical data into new transactions in real time to make customers happy, increase revenue or prevent fraud. "Fast Data" via stream processing is the solution to embed patterns - which were obtained from analyzing historical data - into future transactions in real-time.
This session uses several real world success stories to explain the concepts behind stream processing and its relation to Hadoop and other big data platforms. It discusses how patterns and statistical models of R, Spark MLlib, H2O, and other technologies can be integrated into real-time processing by using several different real world case studies. The session also points out why a Microservices architecture helps solving the agile requirements for these kind of projects.
A brief overview of available open source frameworks and commercial products shows possible options for the implementation of stream processing, such as Apache Storm, Apache Flink, Spark Streaming, IBM InfoSphere Streams, or TIBCO StreamBase.
A live demo shows how to implement stream processing, how to integrate machine learning, and how human operations can be enabled in addition to the automatic processing via a Web UI and push events.
Keywords: Big Data, Fast Data, Machine Learning, Analytics, Analytic Model, Stream Processing, Event Processing, Streaming Analytics, Real Time, Hadoop, Spark, MLlib, Streaming, R, TERR, TIBCO, Spotfire, StreamBase, Live Datamart, H20, Predictive Analytics, Data Discovery, Insights, Patterns
Can we build an Azure IoT controlled device in less than 40 minutes that cost...Codemotion Tel Aviv
This document summarizes how to build an Azure IoT controlled device in 40 minutes for less than $10. It describes using an ESP8266 development board connected to sensors and actuators to control a device. The cloud portion uses Azure IoT Hub to connect the device and send/receive commands. A Xamarin mobile app is also created to control the device. Overall it shows how inexpensive and quick it is to build an IoT prototype using affordable hardware and Azure cloud services.
How to Leverage Machine Learning (R, Hadoop, Spark, H2O) for Real Time Proces...Codemotion Tel Aviv
The document discusses applying machine learning models to real-time data streams. It covers building analytic models from historical data using tools like R, TensorFlow and Hadoop. It then discusses applying these pre-built models to real-time streaming data using frameworks like Apache Spark, TIBCO StreamBase and H2O to power applications like predictive maintenance and manufacturing analytics. The key takeaway is that machine learning on historical data finds insights, while stream processing applies these models in real-time to drive closed-loop analytics and enable real-time action.
How to Choose the Right Technology, Framework or Tool to Build MicroservicesKai Wähner
Microservices are the next step after SOA: Services implement a limited set of functions. Services are developed, deployed and scaled independently. This way you get shorter time to results and increased flexibility.
Microservices have to be independent regarding build, deployment, data management and business domains. A solid Microservices design requires single responsibility, loose coupling and a decentralized architecture. A Microservice can to be closed or open to partners and public via APIs.
This session discusses technologies such as REST, WebSockets, OSGi, Puppet, Docker, Cloud Foundry, and many more, which can be used to build and deploy Microservices. The main part shows different open service frameworks and proprietary tools to build Microservices on top of these technologies. Live demos illustrate the differences. The audience will learn how to choose the right alternative for building Microservices.
Log Analytics for Distributed MicroservicesKai Wähner
This document summarizes a presentation on log analytics for distributed microservices architectures. It discusses how log analytics is needed to monitor these complex distributed systems and gain business insights. The presentation covers topics like distributed microservice log events, an introduction to log analytics, the log analytics market, and how log analytics relates to other big data components. It provides examples of scenarios where log analytics can be used and an overview of alternatives for log analytics solutions.
IoT and Edge Integration with Open Source Frameworks:
Internet of Things (IoT) and edge integration is getting more important than ever before due to the massively growing number of connected devices year by year.
This session shows open source frameworks built to develop very lightweight microservices, which can be deployed on small devices or in serverless architectures with very low resources and wire together all different kinds of hardware devices, APIs and online services.
The focus of this session lies on showing open source projects such as Eclipse Kura, Node-RED or Flogo, which offer a framework plus zero-code environment with web IDE for building and deploying integration and data processing directly onto connected devices using IoT standards such as MQTT, WebSockets or CoaP, but also other interfaces such as Twitter feeds or REST services.
The end of the session discusses the relation to other components in a IoT architecture including cloud IoT platforms and big data respectively streaming analytics solutions (such as Apache Storm, Flink, Spark Streaming, Samza, StreamBase, Apama).
Streaming Analytics Comparison of Open Source Frameworks, Products, Cloud Ser...Kai Wähner
This document provides an overview of streaming analytics and compares different streaming analytics frameworks. It begins with real-world use cases in various industries and then defines what a data stream is. The core components of a streaming analytics processing pipeline are described, including ingestion, preprocessing, and real-time and batch processing. Popular open-source frameworks like Apache Storm and AWS Kinesis are highlighted. The document concludes by noting that both streaming analytics frameworks and products are growing significantly to enable real-time analytics on streaming data.
Case Study: How to move from a Monolith to Cloud, Containers and MicroservicesKai Wähner
This session shows a case study about successfully moving from a very complex monolith system to a cloud-native architecture. The architecture leverages containers and Microservices to solve issues such as high efforts for extending the system, and a very slow deployment process. The old system included a few huge Java applications and a complex integration middleware deployment.
The new architecture allows flexible development, deployment and operations of business and integration services. Besides, it is vendor-agnostic so that you can leverage on-premise hardware, different public cloud infrastructures, and cloud-native PaaS platforms.
The session will describe the challenges of the existing monolith system, the step-by-step procedure to move to the new cloud-native Microservices architecture, and why containers such as Docker play a key role in this scenario.
A live demo shows how container solutions such as Docker, PaaS cloud platforms such as CloudFoundry, cluster managers such as Kubernetes or Mesos, and different programming languages are used to implement, deploy and scale cloud-native Microservices in a vendor-agnostic way.
Key takeaways for the audience:
- Best practices for moving to a cloud-native architecture
- How to leverage microservices and containers for flexible development, deployment and operations
- How to solve challenges in real world projects
- Understand key technologies, which are recommended
- How to stay vendor-agnostic
- See a live demo of how cloud-native applications respectively services differ from monolith applications regarding development and runtime
The digital transformation is going forward due to Mobile, Cloud and Internet of Things. Disrupting business models leverage Big Data Analytics and Machine Learning.
"Big Data" is currently a big hype. Large amounts of historical data are stored in Hadoop or other platforms. Business Intelligence tools and statistical computing are used to draw new knowledge and to find patterns from this data, for example for promotions, cross-selling or fraud detection. The key challenge is how these findings can be integrated from historical data into new transactions in real time to make customers happy, increase revenue or prevent fraud. "Fast Data" via stream processing is the solution to embed patterns - which were obtained from analyzing historical data - into future transactions in real-time.
This session uses several real world success stories to explain the concepts behind stream processing and its relation to Hadoop and other big data platforms. It discusses how patterns and statistical models of R, Spark MLlib, H2O, and other technologies can be integrated into real-time processing by using several different real world case studies. The session also points out why a Microservices architecture helps solving the agile requirements for these kind of projects.
A brief overview of available open source frameworks and commercial products shows possible options for the implementation of stream processing, such as Apache Storm, Apache Flink, Spark Streaming, IBM InfoSphere Streams, or TIBCO StreamBase.
A live demo shows how to implement stream processing, how to integrate machine learning, and how human operations can be enabled in addition to the automatic processing via a Web UI and push events.
Keywords: Big Data, Fast Data, Machine Learning, Analytics, Analytic Model, Stream Processing, Event Processing, Streaming Analytics, Real Time, Hadoop, Spark, MLlib, Streaming, R, TERR, TIBCO, Spotfire, StreamBase, Live Datamart, H20, Predictive Analytics, Data Discovery, Insights, Patterns
Can we build an Azure IoT controlled device in less than 40 minutes that cost...Codemotion Tel Aviv
This document summarizes how to build an Azure IoT controlled device in 40 minutes for less than $10. It describes using an ESP8266 development board connected to sensors and actuators to control a device. The cloud portion uses Azure IoT Hub to connect the device and send/receive commands. A Xamarin mobile app is also created to control the device. Overall it shows how inexpensive and quick it is to build an IoT prototype using affordable hardware and Azure cloud services.
Azure Digital Twins is a platform as a service (PaaS) offering that enables the creation of knowledge graphs based on digital models of entire environments. These environments could be buildings, factories, farms, energy networks, railways, stadiums, and more—even entire cities. These digital models can be used to gain insights that drive better products, optimized operations, reduced costs, and breakthrough customer experiences.
After nearly two years, Azure Digital Twins has been rewritten and it's off to a great start. In this session, we will see what it is for, see where it has changed, and see how to use it in our IoT strategy.
Tour through the history of middleware from old architectures to cloud-native middleware microservices leveraging Docker, Kubernetes, Cloudfoundry.
Microservices are the next step after SOA: Services implement a limited set of functions. Services are developed, deployed and scaled independently. Continuous Delivery automates deployments. This way you get shorter time to results and increased flexibility. Containers improve these even more offering a very lightweight and flexible deployment option.
In the middleware world, you use concepts and tools such as an Enterprise Service Bus (ESB), Complex Event Processing (CEP), Business Process Management (BPM) or API Gateways. Many people still think about complex, heavyweight central brokers. However, Microservices and containers are relevant not just for custom self-developed applications, but they are also a key requirement to make the middleware world more flexible, agile and automated.
This session focuses on live coding to demonstrate how to develop, deploy and operate cloud-native microservices in the middleware world. The live demos leverage frameworks and tools such as Docker, Kubernetes, Cloud Foundry, Consul, Spring Cloud Config, Eureka and Hystrix.
IoT Architecture - are traditional architectures good enough or do we need n...Guido Schmutz
Independent of the source of data, the integration of event streams into an Enterprise Architecture gets more and more important in the world of sensors, social media streams and Internet of Things. Events have to be accepted quickly and reliably, they have to be distributed and analysed, often with many consumers or systems interested in all or part of the events. Dependent on the size and quantity of such events, this can quickly be in the range of Big Data. How can we efficiently collect and transmit these events? How can we make sure that we can always report over historical events? How can these new events be integrated into traditional infrastructure and application landscape?
Starting with a product and technology neutral reference architecture, we will then present different solutions using Open Source frameworks.
Machine Learning Applied to Real Time Scoring in Manufacturing and Energy Uti...Kai Wähner
Kai Wähner (@KaiWaehner) is a Technology Evangelist and Community Director at TIBCO Software - a leading provider of integration and analytics middleware. Kai is an experience guy in broad variety of topics like Big Data, Advanced Analytics & Machine Learning, he loves to write articles and blog about new technologies and make talks. The talk is about 3 different projects where Kai's team built analytic models with technologies R, Apache Spark or H2O.ai which were deployed to real time processing. The use cases include predictive maintenance in manufacturing but also fraud detection in banking and context-specific pricing in insurance. For one of the cases, Kai gonna show detailed steps will be, how it was built and deployed using supervised/unsupervised ML.
Talk was done together with my colleague Ankitaa Bhowmick.
Streaming Analytics - Comparison of Open Source Frameworks and ProductsKai Wähner
Stream Processing is a concept used to create a high-performance system for rapidly building applications that analyze and act on real-time streaming data. Benefits, amongst others, are faster processing and reaction to real-time complex event streams and the flexibility to quickly adapt to changing business and analytic needs. Big data, cloud, mobile and internet of things are the major drivers for stream processing and streaming analytics.
This session discusses the technical concepts of stream processing and how it is related to big data, mobile, cloud and internet of things. Different use cases such as predictive fault management or fraud detection are used to show and compare alternative frameworks and products for stream processing and streaming analytics.
The audience will understand when to use open source frameworks such as Apache Storm, Apache Spark or Esper, and powerful engines from software vendors such as IBM InfoSphere Streams or TIBCO StreamBase. Live demos will give the audience a good feeling about how to use these frameworks and tools.
The session will also discuss how stream processing is related to Hadoop and statistical analysis with software such as SAS, Apache Spark’s MLlib or R language.
Comparison of Open Source Frameworks for Integrating the Internet of ThingsKai Wähner
Session from JFokus 2017 (https://www.jfokus.se/jfokus/talks.jsp#ComparisonofOpenSour) in Stockholm, Sweden.
This session shows and compares open source frameworks built to develop very lightweight applications or microservices, which can be deployed on small devices with very low resources and wire together all different kinds of hardware devices, APIs and online services. The focus of this session is the comparison of open source projects such as Node-RED or Flogo, which offer a zero-code environment with web IDE for building and deploying integration and data processing directly onto connected devices using IoT standards such as MQTT, WebSockets or CoaP, but also other interfaces such as Twitter feeds or REST services. The end of the session compares these open source projects to other options such as SaaS offerings like AWS IoT or more powerful streaming analytics platforms.
IPT High Performance Reactive Programming with JAVA 8 and JavaScriptTrayan Iliev
Presentation @ jProfessionals BGJUG Conference
Sofia, November 22, 2015 by IPT – IT Education Evolved, High Performance Reactive Programming Workshop - Dec 15-17,2015 http://iproduct.org/en/course-reactive-java-js/
You are welcome to join us!
Low-latency, high-throughput reactive and functional programming in Java using Spring Reactor, RxJava, RxJS, Facebook React, Angular 2, Reactive Streams, Disruptor (ring buffer), Reactor & Proactor design patterns, benchmarking & comparison of concurrency implementations. December 15 - 17, 2015 - Workshop: High Performance Reactive Programming with JAVA 8 and JavaScript - http://iproduct.org/en/course-reactive-java-js/
Bridging the gap between Administrative and Operational IT
Vision, Architecure and Project experience. This slide deck shows our vision on this market for industrial enterprise IOT
This document discusses building an effective IoT system on OpenStack. It describes key IoT use cases and requirements, such as high data volume, velocity, and variety. The proposed architecture uses OpenStack services like Nova, Neutron, Swift, and Ceilometer to provide scalable infrastructure, networking, storage, and monitoring for IoT workloads. The document outlines how OpenStack can support broker integration, device management, flexible data stores, external connectivity, and data federation to realize a full-featured IoT platform. Future work involves proof-of-concept testing of the integrated architecture.
The document discusses transitioning from a monolithic architecture to microservices architecture for an IoT cloud platform. Some key points include:
- The goals of enabling scalability, supporting new markets, and innovation.
- Moving to a microservices architecture can help with scalability, fault tolerance, and independent deployability compared to a monolith.
- Organizational structure should also transition from function-based to product-based to align with the architecture.
- Technical considerations in building microservices include service interfaces, data management, fault tolerance, and DevOps practices.
Developing IoT Applications Using Intel® System Studio | Eclipse IoT Day Sant...Eclipse IoT
Intel® System Studio is based on the Eclipse CDT project and offers a comprehensive set of tools under a free and renewable licensing model. This software suite allows you to build, debug, analyze and optimize applications and can be used throughout the entire development cycle from hardware bring-up to deploying the final product. During this presentation, we will introduce you to Intel® System Studio and show how to develop and debug IoT and systems applications. This includes running them locally and remotely on popular Intel Developer Kit platforms like the Aaeon UP2 and IEI Tank, as well as enhancing applications through cloud connectors, sensors, and libraries.
//SPEAKER
Anjali Gola, Intel
On making standards organizations & open source communities work hand in handBenjamin Cabé
Did you know that the Eclipse Foundation is home to many open source implementations of standards from a dozen of standards defining organizations: IETF, ISO, oneM2M, OASIS, etc.
We do believe that open source is key to standards' adoption, and this presentation shares some thoughts on what makes a standard successful, and how Eclipse has proved with recent success stories that open source and open communities are a key factor.
This document provides an overview of the Eclipse Foundation, including its history and current focus areas. It discusses how the Eclipse Foundation was launched in 2001 as an open source project led by IBM, before becoming an independent non-profit in 2004. It then summarizes the Foundation's growth in members, projects, committers and lines of code. The rest of the document outlines the Foundation's current focus on areas like Java, IoT, automation and cloud native computing, and provides examples of projects in these areas like Eclipse Che and Eclipse Kuksa.
[DevDay2019] Hands-on Machine Learning on Google Cloud Platform - By Thanh Le...DevDay.org
By recent release on Google Cloud Platform, Google focus on the era of AI/ML technological change, it lets us bring the powerful machine learning features to the mobile application whether it is for Android/iOS and whether experienced/beginner machine learning developer. The purpose of this topic is to share our use case on how to make your model as serving by bringing it to the cloud.
Trends at JavaOne 2016: Microservices, Docker and Cloud-Native MiddlewareKai Wähner
In addition to focusing on many related concepts like container or service discovery, technologies like Docker and cloud platforms, my session also discussed ten lessons learned from building cloud-native middleware microservices together with our customers in the last months.
The demo brings this from theory to practice by showing how to deploy a single (i.e. built just once) TIBCO BusinessWorks Container Edition microservice to different cloud and container platforms: Docker, Kubernetes and Pivotal CloudFoundry. The video also shows how to leverage other cloud-native open source frameworks such as Consul and Spring Cloud Config for distributed configuration management and service discovery of middleware microservices.
Leveraging the Open IoT Ecosystem to Accelerate Innovation [BizofIoT]Ian Skerrett
This document discusses leveraging open source ecosystems to accelerate IoT product strategies. It argues that open standards and hardware lower barriers to entry and allow companies to participate in larger markets. The document recommends that companies embrace open IoT standards, leverage open hardware, and participate in open source software projects to help build out the IoT ecosystem. This will help companies play in bigger markets and lower barriers for both themselves and developers.
The document describes a tutorial for creating an arcade shooter game simulator called Shoot-A-Pi using the Eclipse Kura IoT application framework on a Raspberry Pi. The tutorial will cover setting up the hardware, creating OSGi bundles to interface with sensors and actuators, implementing the game logic, and deploying the bundles to the Raspberry Pi. Attendees will work through building the game over the course of the tutorial session.
IRJET- A Survey on Real Time Object Detection using Voice Activated Smart IoTIRJET Journal
This document proposes a system that combines voice-activated virtual assistants with real-time object detection using machine learning. The system would allow disabled or normal users to monitor their home or environment using a camera and voice commands to an assistant like Alexa. When objects are detected by the camera using machine learning techniques, the virtual assistant would verbally notify the user. The document discusses how Amazon Web Services could power the system using serverless computing on image data from the camera. The proposed system aims to provide an affordable home security solution using emerging technologies like the Internet of Things, machine learning, and cloud computing.
Blockchain - The Next Big Thing for MiddlewareKai Wähner
Fascinating new technologies are emerging these days. Everybody talks about cloud, containers, big data and machine learning. Another disrupting technology is blockchain. You might have heard about blockchain as the underlying infrastructure of Bitcoin. But Bitcoin is just the tip of the iceberg. This slide deck explains the use cases and technical concepts behind blockchain, gives an overview about available services, and points out why middleware is a key success factor in this space.
The document discusses the open source Internet of Things (IoT) stack developed by the Eclipse Foundation. It describes how the open IoT stack provides open connectivity standards like MQTT, CoAP, and LWM2M to connect devices. It also includes IoT gateway services for remote management and application management. The stack supports various IoT solution frameworks for home automation, SCADA systems, and the OM2M standard. The Eclipse Foundation aims for an open ecosystem for IoT development and provides tools and projects through its open IoT stack.
IPT presentation @ jProfessionals 2016 on Java and JavaScipt Reactive Robotics and IoT including: Domain Driven Design (DDD), high-performance reactive micro-services development using Spring Reactor, state-of-the-art component-based client side MVVM implementation with Angular 2, ngrx (Redux pattern), TypeScript and reactive WebSockets.
This document provides a disclaimer and overview of a presentation on reactive Java, robotics, and IoT using technologies like Reactor, RxJava, Angular 2, and Raspberry Pi. It discusses key concepts like reactive programming, reactive streams, functional reactive programming, and achieving high performance. The presentation will include tales about robotics complexity, domain-driven design, imperative vs reactive programming, and code demonstrations.
Azure Digital Twins is a platform as a service (PaaS) offering that enables the creation of knowledge graphs based on digital models of entire environments. These environments could be buildings, factories, farms, energy networks, railways, stadiums, and more—even entire cities. These digital models can be used to gain insights that drive better products, optimized operations, reduced costs, and breakthrough customer experiences.
After nearly two years, Azure Digital Twins has been rewritten and it's off to a great start. In this session, we will see what it is for, see where it has changed, and see how to use it in our IoT strategy.
Tour through the history of middleware from old architectures to cloud-native middleware microservices leveraging Docker, Kubernetes, Cloudfoundry.
Microservices are the next step after SOA: Services implement a limited set of functions. Services are developed, deployed and scaled independently. Continuous Delivery automates deployments. This way you get shorter time to results and increased flexibility. Containers improve these even more offering a very lightweight and flexible deployment option.
In the middleware world, you use concepts and tools such as an Enterprise Service Bus (ESB), Complex Event Processing (CEP), Business Process Management (BPM) or API Gateways. Many people still think about complex, heavyweight central brokers. However, Microservices and containers are relevant not just for custom self-developed applications, but they are also a key requirement to make the middleware world more flexible, agile and automated.
This session focuses on live coding to demonstrate how to develop, deploy and operate cloud-native microservices in the middleware world. The live demos leverage frameworks and tools such as Docker, Kubernetes, Cloud Foundry, Consul, Spring Cloud Config, Eureka and Hystrix.
IoT Architecture - are traditional architectures good enough or do we need n...Guido Schmutz
Independent of the source of data, the integration of event streams into an Enterprise Architecture gets more and more important in the world of sensors, social media streams and Internet of Things. Events have to be accepted quickly and reliably, they have to be distributed and analysed, often with many consumers or systems interested in all or part of the events. Dependent on the size and quantity of such events, this can quickly be in the range of Big Data. How can we efficiently collect and transmit these events? How can we make sure that we can always report over historical events? How can these new events be integrated into traditional infrastructure and application landscape?
Starting with a product and technology neutral reference architecture, we will then present different solutions using Open Source frameworks.
Machine Learning Applied to Real Time Scoring in Manufacturing and Energy Uti...Kai Wähner
Kai Wähner (@KaiWaehner) is a Technology Evangelist and Community Director at TIBCO Software - a leading provider of integration and analytics middleware. Kai is an experience guy in broad variety of topics like Big Data, Advanced Analytics & Machine Learning, he loves to write articles and blog about new technologies and make talks. The talk is about 3 different projects where Kai's team built analytic models with technologies R, Apache Spark or H2O.ai which were deployed to real time processing. The use cases include predictive maintenance in manufacturing but also fraud detection in banking and context-specific pricing in insurance. For one of the cases, Kai gonna show detailed steps will be, how it was built and deployed using supervised/unsupervised ML.
Talk was done together with my colleague Ankitaa Bhowmick.
Streaming Analytics - Comparison of Open Source Frameworks and ProductsKai Wähner
Stream Processing is a concept used to create a high-performance system for rapidly building applications that analyze and act on real-time streaming data. Benefits, amongst others, are faster processing and reaction to real-time complex event streams and the flexibility to quickly adapt to changing business and analytic needs. Big data, cloud, mobile and internet of things are the major drivers for stream processing and streaming analytics.
This session discusses the technical concepts of stream processing and how it is related to big data, mobile, cloud and internet of things. Different use cases such as predictive fault management or fraud detection are used to show and compare alternative frameworks and products for stream processing and streaming analytics.
The audience will understand when to use open source frameworks such as Apache Storm, Apache Spark or Esper, and powerful engines from software vendors such as IBM InfoSphere Streams or TIBCO StreamBase. Live demos will give the audience a good feeling about how to use these frameworks and tools.
The session will also discuss how stream processing is related to Hadoop and statistical analysis with software such as SAS, Apache Spark’s MLlib or R language.
Comparison of Open Source Frameworks for Integrating the Internet of ThingsKai Wähner
Session from JFokus 2017 (https://www.jfokus.se/jfokus/talks.jsp#ComparisonofOpenSour) in Stockholm, Sweden.
This session shows and compares open source frameworks built to develop very lightweight applications or microservices, which can be deployed on small devices with very low resources and wire together all different kinds of hardware devices, APIs and online services. The focus of this session is the comparison of open source projects such as Node-RED or Flogo, which offer a zero-code environment with web IDE for building and deploying integration and data processing directly onto connected devices using IoT standards such as MQTT, WebSockets or CoaP, but also other interfaces such as Twitter feeds or REST services. The end of the session compares these open source projects to other options such as SaaS offerings like AWS IoT or more powerful streaming analytics platforms.
IPT High Performance Reactive Programming with JAVA 8 and JavaScriptTrayan Iliev
Presentation @ jProfessionals BGJUG Conference
Sofia, November 22, 2015 by IPT – IT Education Evolved, High Performance Reactive Programming Workshop - Dec 15-17,2015 http://iproduct.org/en/course-reactive-java-js/
You are welcome to join us!
Low-latency, high-throughput reactive and functional programming in Java using Spring Reactor, RxJava, RxJS, Facebook React, Angular 2, Reactive Streams, Disruptor (ring buffer), Reactor & Proactor design patterns, benchmarking & comparison of concurrency implementations. December 15 - 17, 2015 - Workshop: High Performance Reactive Programming with JAVA 8 and JavaScript - http://iproduct.org/en/course-reactive-java-js/
Bridging the gap between Administrative and Operational IT
Vision, Architecure and Project experience. This slide deck shows our vision on this market for industrial enterprise IOT
This document discusses building an effective IoT system on OpenStack. It describes key IoT use cases and requirements, such as high data volume, velocity, and variety. The proposed architecture uses OpenStack services like Nova, Neutron, Swift, and Ceilometer to provide scalable infrastructure, networking, storage, and monitoring for IoT workloads. The document outlines how OpenStack can support broker integration, device management, flexible data stores, external connectivity, and data federation to realize a full-featured IoT platform. Future work involves proof-of-concept testing of the integrated architecture.
The document discusses transitioning from a monolithic architecture to microservices architecture for an IoT cloud platform. Some key points include:
- The goals of enabling scalability, supporting new markets, and innovation.
- Moving to a microservices architecture can help with scalability, fault tolerance, and independent deployability compared to a monolith.
- Organizational structure should also transition from function-based to product-based to align with the architecture.
- Technical considerations in building microservices include service interfaces, data management, fault tolerance, and DevOps practices.
Developing IoT Applications Using Intel® System Studio | Eclipse IoT Day Sant...Eclipse IoT
Intel® System Studio is based on the Eclipse CDT project and offers a comprehensive set of tools under a free and renewable licensing model. This software suite allows you to build, debug, analyze and optimize applications and can be used throughout the entire development cycle from hardware bring-up to deploying the final product. During this presentation, we will introduce you to Intel® System Studio and show how to develop and debug IoT and systems applications. This includes running them locally and remotely on popular Intel Developer Kit platforms like the Aaeon UP2 and IEI Tank, as well as enhancing applications through cloud connectors, sensors, and libraries.
//SPEAKER
Anjali Gola, Intel
On making standards organizations & open source communities work hand in handBenjamin Cabé
Did you know that the Eclipse Foundation is home to many open source implementations of standards from a dozen of standards defining organizations: IETF, ISO, oneM2M, OASIS, etc.
We do believe that open source is key to standards' adoption, and this presentation shares some thoughts on what makes a standard successful, and how Eclipse has proved with recent success stories that open source and open communities are a key factor.
This document provides an overview of the Eclipse Foundation, including its history and current focus areas. It discusses how the Eclipse Foundation was launched in 2001 as an open source project led by IBM, before becoming an independent non-profit in 2004. It then summarizes the Foundation's growth in members, projects, committers and lines of code. The rest of the document outlines the Foundation's current focus on areas like Java, IoT, automation and cloud native computing, and provides examples of projects in these areas like Eclipse Che and Eclipse Kuksa.
[DevDay2019] Hands-on Machine Learning on Google Cloud Platform - By Thanh Le...DevDay.org
By recent release on Google Cloud Platform, Google focus on the era of AI/ML technological change, it lets us bring the powerful machine learning features to the mobile application whether it is for Android/iOS and whether experienced/beginner machine learning developer. The purpose of this topic is to share our use case on how to make your model as serving by bringing it to the cloud.
Trends at JavaOne 2016: Microservices, Docker and Cloud-Native MiddlewareKai Wähner
In addition to focusing on many related concepts like container or service discovery, technologies like Docker and cloud platforms, my session also discussed ten lessons learned from building cloud-native middleware microservices together with our customers in the last months.
The demo brings this from theory to practice by showing how to deploy a single (i.e. built just once) TIBCO BusinessWorks Container Edition microservice to different cloud and container platforms: Docker, Kubernetes and Pivotal CloudFoundry. The video also shows how to leverage other cloud-native open source frameworks such as Consul and Spring Cloud Config for distributed configuration management and service discovery of middleware microservices.
Leveraging the Open IoT Ecosystem to Accelerate Innovation [BizofIoT]Ian Skerrett
This document discusses leveraging open source ecosystems to accelerate IoT product strategies. It argues that open standards and hardware lower barriers to entry and allow companies to participate in larger markets. The document recommends that companies embrace open IoT standards, leverage open hardware, and participate in open source software projects to help build out the IoT ecosystem. This will help companies play in bigger markets and lower barriers for both themselves and developers.
The document describes a tutorial for creating an arcade shooter game simulator called Shoot-A-Pi using the Eclipse Kura IoT application framework on a Raspberry Pi. The tutorial will cover setting up the hardware, creating OSGi bundles to interface with sensors and actuators, implementing the game logic, and deploying the bundles to the Raspberry Pi. Attendees will work through building the game over the course of the tutorial session.
IRJET- A Survey on Real Time Object Detection using Voice Activated Smart IoTIRJET Journal
This document proposes a system that combines voice-activated virtual assistants with real-time object detection using machine learning. The system would allow disabled or normal users to monitor their home or environment using a camera and voice commands to an assistant like Alexa. When objects are detected by the camera using machine learning techniques, the virtual assistant would verbally notify the user. The document discusses how Amazon Web Services could power the system using serverless computing on image data from the camera. The proposed system aims to provide an affordable home security solution using emerging technologies like the Internet of Things, machine learning, and cloud computing.
Blockchain - The Next Big Thing for MiddlewareKai Wähner
Fascinating new technologies are emerging these days. Everybody talks about cloud, containers, big data and machine learning. Another disrupting technology is blockchain. You might have heard about blockchain as the underlying infrastructure of Bitcoin. But Bitcoin is just the tip of the iceberg. This slide deck explains the use cases and technical concepts behind blockchain, gives an overview about available services, and points out why middleware is a key success factor in this space.
The document discusses the open source Internet of Things (IoT) stack developed by the Eclipse Foundation. It describes how the open IoT stack provides open connectivity standards like MQTT, CoAP, and LWM2M to connect devices. It also includes IoT gateway services for remote management and application management. The stack supports various IoT solution frameworks for home automation, SCADA systems, and the OM2M standard. The Eclipse Foundation aims for an open ecosystem for IoT development and provides tools and projects through its open IoT stack.
IPT presentation @ jProfessionals 2016 on Java and JavaScipt Reactive Robotics and IoT including: Domain Driven Design (DDD), high-performance reactive micro-services development using Spring Reactor, state-of-the-art component-based client side MVVM implementation with Angular 2, ngrx (Redux pattern), TypeScript and reactive WebSockets.
This document provides a disclaimer and overview of a presentation on reactive Java, robotics, and IoT using technologies like Reactor, RxJava, Angular 2, and Raspberry Pi. It discusses key concepts like reactive programming, reactive streams, functional reactive programming, and achieving high performance. The presentation will include tales about robotics complexity, domain-driven design, imperative vs reactive programming, and code demonstrations.
This document provides an overview and introduction to reactive robotics and the Internet of Things (IoT). It discusses several key concepts including reactive programming, functional reactive programming, and high-performance reactive Java. It also covers topics like concurrency, parallelism, queues, and the LMAX Disruptor design pattern. Code examples are provided to demonstrate reactive programming concepts using tools like RxJava. The document aims to explain reactive approaches that can help address complexity in robotics and IoT systems.
Reactive Microservices with Spring 5: WebFlux Trayan Iliev
On November 27 Trayan Iliev from IPT presented “Reactive microservices with Spring 5: WebFlux” @Dev.bg in Betahaus Sofia. IPT – Intellectual Products & Technologies has been organizing Java & JavaScript trainings since 2003.
Spring 5 introduces a new model for end-to-end functional and reactive web service programming with Spring 5 WebFlow, Spring Data & Spring Boot. The main topics include:
– Introduction to reactive programming, Reactive Streams specification, and project Reactor (as WebFlux infrastructure)
– REST services with WebFlux – comparison between annotation-based and functional reactive programming approaches for building.
– Router, handler and filter functions
– Using reactive repositories and reactive database access with Spring Data. Building end-to-end non-blocking reactive web services using Netty-based web runtime
– Reactive WebClients and integration testing. Reactive WebSocket support
– Realtime event streaming to WebClients using JSON Streams, and to JS client using SSE.
My jPrime 2016 presentation shows example of Domain-Driven Design (DDD), Event Sourcing (ES) and Functional Reactive Programming (FRP) using Reactor and Redux in a showcase of Java robotics - two small robots IPTPI (Raspberry Pi 2 + Ardiuno) and LeJaRo (LeJOS).
Microservices with Spring 5 Webflux - jProfessionalsTrayan Iliev
The document discusses reactive microservices using Spring 5 WebFlux. It introduces reactive programming concepts like Reactive Streams and Project Reactor. It explains how Spring 5 supports reactive programming with WebFlux, reactive repositories, and hot event streaming. Code examples for WebFlux routing, handlers, and reactive clients are available on GitHub.
Spring 5 Webflux - Advances in Java 2018Trayan Iliev
The document discusses a presentation on functional reactive services with Spring 5 WebFlux. It introduces functional reactive programming (FRP), Project Reactor, building REST services with Spring 5 WebFlux including routers, handlers, filters, and reactive repositories. It also covers end-to-end non-blocking reactive service-oriented architecture with Netty, reactive WebClients, and real-time event streaming to JavaScript clients using server-sent events (SSE). The presentation code examples are available on GitHub.
Stream Processing with CompletableFuture and Flow in Java 9Trayan Iliev
Stream based data / event / message processing becomes preferred way of achieving interoperability and real-time communication in distributed SOA / microservice / database architectures.
Beside lambdas, Java 8 introduced two new APIs explicitly dealing with stream data processing:
- Stream - which is PULL-based and easily parallelizable;
- CompletableFuture / CompletionStage - which allow composition of PUSH-based, non-blocking, asynchronous data processing pipelines.
Java 9 will provide further support for stream-based data-processing by extending the CompletableFuture with additional functionality – support for delays and timeouts, better support for subclassing, and new utility methods.
More, Java 9 provides new java.util.concurrent.Flow API implementing Reactive Streams specification that enables reactive programming and interoperability with libraries like Reactor, RxJava, RabbitMQ, Vert.x, Ratpack, and Akka.
The presentation will discuss the novelties in Java 8 and Java 9 supporting stream data processing, describing the APIs, models and practical details of asynchronous pipeline implementation, error handling, multithreaded execution, asyncronous REST service implementation, interoperability with existing libraries.
There are provided demo examples (code on GitHub) using Completable Future and Flow with:
- JAX-RS 2.1 AsyncResponse, and more importantly unit-testing the async REST service method implementations;
- CDI 2.0 asynchronous observers (fireAsync / @ObservesAsync);
Making Machine Learning Easy with H2O and WebFluxTrayan Iliev
Machine learning is becoming a must for many business domains and applications. H2O is a best-of-breed, open source, distributed machine learning library written in Java. The presentation shows how to create and train machine learning models easily using H2O Flow web interface, including Deep Learning Neural Networks (DNNs). The session provides a tutorial how to develop and deploy fullstack-reactive face recognition demo using React + RxJS WebSocket front-end, OpenCV, Caffe CNN for image segmentation, OpenFace CNN for feature extraction, H20 Flow for face recognition interactive model training and export as POJO. The trained POJO model is incorporated in a real-time streaming web service implemented using Spring 5 Web Flux and Spring Boot. All demo is 100% Java!
The document discusses various topics related to reactive and functional programming including NGRX, RxJS, Redux, Reactive Streams specification, and computing derived data using Reselect. It provides code examples for setting up an NGRX application with state management, effects, selectors, and composing the root reducer. It also discusses hot and cold streams, converting cold streams to hot, and the anatomy of RxJS operators.
The Cytoscape Cyberinfrastructure extends Cytoscape and its community into web-connected services.The CI is a Service Oriented Architecture that supports network biology oriented computations that can be orchestrated into repeatable workflows.
Presentation slides for SDCSB Cytoscape Workshop on 5/19/2016. The presentation contains current status of Cytoscape project and overview of the Cytoscape ecosystem. It briefly mentions the Cytoscape Cyberinfrastructure.
In questo workshop abbiamo visto le best practices per l'uso di React Native, come l'organizzazione di file e cartelle e la comunicazione con i servizi di back-end, nel contesto di un progetto reale come Planet App per la gestione IoT del quartiere.
Reactive Programming on Android - RxAndroid - RxJavaAli Muzaffar
Introduction to RxJava for reactive programming and how to use RxAndroid to do reactive programming on Android.
There is a sample android app to go with the slides that has all the source shown in the project.
Fog computing is a system-level architecture that distributes computing, storage, control and networking functions closer to users along the continuum between IoT devices and the cloud. It aims to address issues like high latency and network congestion that result from processing all IoT data in the cloud. Key characteristics of fog computing include its ability to support location awareness, mobility and real-time interactions through a geographically distributed deployment.
- The document provides a technical profile and summary of Rajesh Kumar's skills and experience as a software developer with over 10 years of experience using technologies like Java, JSP, Servlets, Struts, Spring, Hibernate, XML and databases.
- He has experience working on projects for clients in Qatar and India across various domains including banking, insurance, government and more.
- Rajesh highlights his strong programming, troubleshooting, communication and learning skills and experience working with teams and in technical lead roles.
The document discusses the design and implementation of an Internet of Things (IoT) testbed framework with an enhanced performance approach. It aims to create an open IoT testbed that is accessible locally and over the internet for developers to create and test IoT applications and for data engineers to perform analytics on generated data. The testbed will host a range of sensors and be able to interface with microcontrollers like Arduino and Raspberry Pi to account for heterogeneous devices. It seeks to address challenges with proprietary systems like vendor lock-in and provide solutions for insufficient control, lack of concurrency, and diminished reusability.
Similaire à Reactive Java Robotics & IoT with Spring Reactor (20)
Rapid Web API development with Kotlin and KtorTrayan Iliev
Introduction to Kotlin and Ktor with flow, async and channel examples. Ktor is an async web framework with minimal ceremony that leverages the advantages of Kotlin like coroutines and extensible functional DSLs..
Sensor data is streamed in realtime from Arduino + accelerometeres, gyroscopes & compass 3D, ultrasound distance sensor, etc. using UDP protocol. The data processing is done with reactive Java alterantive implementations: callbacks, CompletableFutures and using Spring 5 Reactor library. The web 3D visualization with Three.js is streamed using Server Sent Events (SSE).
A video for the IoT demo is available @YouTube: https://www.youtube.com/watch?v=AB3AWAfcy9U
All source code of the demo is freely available @GitHub: https://github.com/iproduct/reactive-demos-iot
There are more reactive Java demos in the same repository - callbacks, CompletableFuture, realtime event streaming. Soon I'll add a description how to build the device and upload Arduino sketch, as well as describe CompletableFuture and Reactor demos and 3D web visualization part with Three.js. Please stay tuned :)
Learning Programming Using Robots - Sofia University Conference 2018 Trayan Iliev
Learn information technologies by creating your own robots and IoT projects. Robotics and IoT offer rich opportunities for practical and active learning of core information technologies, programming languages and software architectures. Presentation includes examples of teaching practices and robotics projects, and offers suggestions why and how to use them to achieve better students' motivation, engagement, creativity, and connection between theory and practice.
Active Learning Using Connected Things - 2018 (in Bulgarian)Trayan Iliev
Learn about active learning methods and practices using Robotics, IoT, and "smart things" projects. Includes examples of teaching practices and robotics projects, and offers suggestions why and how to use them to achieve better students' motivation, engagement, creativity, and connection between theory and practice. Several blended learning models are compared - Flipped Classroom, Stations/Labs Rotation, Flex model. Project support for individual learning styles is discussed.
Presentation from BGOUG conference Nov 17, 2017.
Since September 2017, Java 9 is generally available. It offers many enhancements:
• Modularity – provides clear separation between public and private APIs, stronger encapsulation & dependency management.
• JShell – using and customizing Java 9 interactive shell by example
• Process API updates – feature-rich, async OS process management and statistics
• Reactive Streams, CompletableFuture and Stream API updates
• Building asynchronous HTTP/2 and WebSocket pipelines using HTTP/2 Client and CompletableFuture composition
• Collection API updates
• Stack walking, and other language enhancements (Project Coin)
Discussed topics are accompanied by live demos available for further review @ github.com/iproduct.
Presentation discusses the best practices when writing higher order components (HOCs), and presents examples how to write them according to React recommendations.
Topics include: maximizing HOC factories composability, using ES7 decorators, wrapping context DI in HOCs, handling async state changes using RxJS Observanels and separation of concerns between presentation and business logic components. Examples (@GitHub projects - referenced in the presentation) are given using react, redux, react-router-redux, redux-observable, recompose, and reselect.
Hackathon: “IPTPI and LeJaRo Meet The Real World”Trayan Iliev
This document discusses a hackathon event called "RoboLearn Hackathon: IPTPI and LeJaRo meet the Real World" hosted in Sofia, Bulgaria on December 4, 2015. It introduces Trayan Iliev, the presenter, and his company IPT that specializes in Java training. The presentation covers how to build robots with Java platforms like Lego Mindstorms, Raspberry Pi, Arduino and others. Code examples are provided for controlling motors and sensors on Lego robots using the LeJOS Java library.
Presentation is highlighting novelties in SPA development with Angular 2 (+Ionic 2 demo) with real code examples.
We created together simple Ng2 application with Angular CLI.
All the code is available on GitHub (link to demos is at the end of presentation).
Prerequisites:
1. Install NodeJS. It is better to install version 6 or 4x. Read about NPM.
2. Install TypeScript + editor (Visual Studio Code or Sublime 3).
3. Install Angular 2 Command Line Interface (Angular CLI):
npm install -g angular-cli
MVC 1.0 is an action-oriented framework building on experience with previous frameworks such as Struts, Spring MVC, VRaptor etc. It is based on JAX-RS, CDI and BeanValidation JavaEE technologies and provides a standard, view specification neutral way to build web applications. Among supported view template frameworks are: JSP, Facelets, Freemarker, Handlebars, Jade, Mustache, Velocity, Thymeleaf, etc.
NOTE: MVC 1.0 JavaEE 8 API Specification is in early draft stage, and is subject to change based on open community process.
IPT Workshops on Java Robotics and IoTTrayan Iliev
Learn how to build your own robot & how to program it in Java with IPT workshops & hackathons. Two small robots: LeJaRo - "the leJOS java robot" & IPTPI - Raspberry Pi 2 enabled robot with higher processing capabilities + distance US and optical sensors, line follow sensor array, cameras, encoders and more. Get first hand experience and jump start in JAVA robotics. Find more on http://robolearn.org/. Children of ALL AGES are Welcome :)
The document outlines a presentation given by Trayan Iliev on building robots with Java. It discusses various robotics platforms that can be used like Lego Mindstorms, Raspberry Pi, Arduino, and shows example Java code for controlling motors and sensors on a Lego robot using the LeJOS library. The code sample moves the robot forward until detecting an obstacle based on color sensor readings, then backs up and turns to repeat the process in a loop.
Novelties in Java EE 7: JAX-RS 2.0 + IPT REST HATEOAS Polling Demo @ BGOUG Co...Trayan Iliev
Presentation shows by example (IPT Polling Demo JAXRS20 HATEOAS, https://github.com/iproduct/IPT-Polling-Demo-JAXRS20-HATEOAS/wiki) the novelties in JAX-RS 2.0 and REST HATEOAS:
- Standardized REST Client API;
- Client and server-side asynchronous HTTP request processing;
- Integration of declarative validation using JSR 349: Bean Validation 1.1;
- Improved server-suggested content negotiation;
- Aspect-oriented extensibility of request/response processing using Filters and Interceptors;
- Dynamic extension registration using DynamicFeature interface;
- Hypermedia As The Engine Of Application State (HATEOAS) REST architectural constraint support using state transition links (support for new HTTP Link header as well as JAXB serialization of resource links).
[IPT, http://iproduct.org]
SMS API Integration in Saudi Arabia| Best SMS API ServiceYara Milbes
Discover the benefits and implementation of SMS API integration in the UAE and Middle East. This comprehensive guide covers the importance of SMS messaging APIs, the advantages of bulk SMS APIs, and real-world case studies. Learn how CEQUENS, a leader in communication solutions, can help your business enhance customer engagement and streamline operations with innovative CPaaS, reliable SMS APIs, and omnichannel solutions, including WhatsApp Business. Perfect for businesses seeking to optimize their communication strategies in the digital age.
How Can Hiring A Mobile App Development Company Help Your Business Grow?ToXSL Technologies
ToXSL Technologies is an award-winning Mobile App Development Company in Dubai that helps businesses reshape their digital possibilities with custom app services. As a top app development company in Dubai, we offer highly engaging iOS & Android app solutions. https://rb.gy/necdnt
Measures in SQL (SIGMOD 2024, Santiago, Chile)Julian Hyde
SQL has attained widespread adoption, but Business Intelligence tools still use their own higher level languages based upon a multidimensional paradigm. Composable calculations are what is missing from SQL, and we propose a new kind of column, called a measure, that attaches a calculation to a table. Like regular tables, tables with measures are composable and closed when used in queries.
SQL-with-measures has the power, conciseness and reusability of multidimensional languages but retains SQL semantics. Measure invocations can be expanded in place to simple, clear SQL.
To define the evaluation semantics for measures, we introduce context-sensitive expressions (a way to evaluate multidimensional expressions that is consistent with existing SQL semantics), a concept called evaluation context, and several operations for setting and modifying the evaluation context.
A talk at SIGMOD, June 9–15, 2024, Santiago, Chile
Authors: Julian Hyde (Google) and John Fremlin (Google)
https://doi.org/10.1145/3626246.3653374
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j
Dr. Jesús Barrasa, Head of Solutions Architecture for EMEA, Neo4j
Découvrez les dernières innovations de Neo4j, et notamment les dernières intégrations cloud et les améliorations produits qui font de Neo4j un choix essentiel pour les développeurs qui créent des applications avec des données interconnectées et de l’IA générative.
When it is all about ERP solutions, companies typically meet their needs with common ERP solutions like SAP, Oracle, and Microsoft Dynamics. These big players have demonstrated that ERP systems can be either simple or highly comprehensive. This remains true today, but there are new factors to consider, including a promising new contender in the market that’s Odoo. This blog compares Odoo ERP with traditional ERP systems and explains why many companies now see Odoo ERP as the best choice.
What are ERP Systems?
An ERP, or Enterprise Resource Planning, system provides your company with valuable information to help you make better decisions and boost your ROI. You should choose an ERP system based on your company’s specific needs. For instance, if you run a manufacturing or retail business, you will need an ERP system that efficiently manages inventory. A consulting firm, on the other hand, would benefit from an ERP system that enhances daily operations. Similarly, eCommerce stores would select an ERP system tailored to their needs.
Because different businesses have different requirements, ERP system functionalities can vary. Among the various ERP systems available, Odoo ERP is considered one of the best in the ERp market with more than 12 million global users today.
Odoo is an open-source ERP system initially designed for small to medium-sized businesses but now suitable for a wide range of companies. Odoo offers a scalable and configurable point-of-sale management solution and allows you to create customised modules for specific industries. Odoo is gaining more popularity because it is built in a way that allows easy customisation, has a user-friendly interface, and is affordable. Here, you will cover the main differences and get to know why Odoo is gaining attention despite the many other ERP systems available in the market.
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesQuickdice ERP
Explore the seamless transition to e-invoicing with this comprehensive guide tailored for Saudi Arabian businesses. Navigate the process effortlessly with step-by-step instructions designed to streamline implementation and enhance efficiency.
Hand Rolled Applicative User ValidationCode KataPhilip Schwarz
Could you use a simple piece of Scala validation code (granted, a very simplistic one too!) that you can rewrite, now and again, to refresh your basic understanding of Applicative operators <*>, <*, *>?
The goal is not to write perfect code showcasing validation, but rather, to provide a small, rough-and ready exercise to reinforce your muscle-memory.
Despite its grandiose-sounding title, this deck consists of just three slides showing the Scala 3 code to be rewritten whenever the details of the operators begin to fade away.
The code is my rough and ready translation of a Haskell user-validation program found in a book called Finding Success (and Failure) in Haskell - Fall in love with applicative functors.
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfVALiNTRY360
Salesforce Healthcare CRM, implemented by VALiNTRY360, revolutionizes patient management by enhancing patient engagement, streamlining administrative processes, and improving care coordination. Its advanced analytics, robust security, and seamless integration with telehealth services ensure that healthcare providers can deliver personalized, efficient, and secure patient care. By automating routine tasks and providing actionable insights, Salesforce Healthcare CRM enables healthcare providers to focus on delivering high-quality care, leading to better patient outcomes and higher satisfaction. VALiNTRY360's expertise ensures a tailored solution that meets the unique needs of any healthcare practice, from small clinics to large hospital systems.
For more info visit us https://valintry360.com/solutions/health-life-sciences
8 Best Automated Android App Testing Tool and Framework in 2024.pdfkalichargn70th171
Regarding mobile operating systems, two major players dominate our thoughts: Android and iPhone. With Android leading the market, software development companies are focused on delivering apps compatible with this OS. Ensuring an app's functionality across various Android devices, OS versions, and hardware specifications is critical, making Android app testing essential.
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j
Dr. Jesús Barrasa, Head of Solutions Architecture for EMEA, Neo4j
Découvrez les dernières innovations de Neo4j, et notamment les dernières intégrations cloud et les améliorations produits qui font de Neo4j un choix essentiel pour les développeurs qui créent des applications avec des données interconnectées et de l’IA générative.
Most important New features of Oracle 23c for DBAs and Developers. You can get more idea from my youtube channel video from https://youtu.be/XvL5WtaC20A
Zoom is a comprehensive platform designed to connect individuals and teams efficiently. With its user-friendly interface and powerful features, Zoom has become a go-to solution for virtual communication and collaboration. It offers a range of tools, including virtual meetings, team chat, VoIP phone systems, online whiteboards, and AI companions, to streamline workflows and enhance productivity.
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemPeter Muessig
Learn about the latest innovations in and around OpenUI5/SAPUI5: UI5 Tooling, UI5 linter, UI5 Web Components, Web Components Integration, UI5 2.x, UI5 GenAI.
Recording:
https://www.youtube.com/live/MSdGLG2zLy8?si=INxBHTqkwHhxV5Ta&t=0
Transform Your Communication with Cloud-Based IVR SolutionsTheSMSPoint
Discover the power of Cloud-Based IVR Solutions to streamline communication processes. Embrace scalability and cost-efficiency while enhancing customer experiences with features like automated call routing and voice recognition. Accessible from anywhere, these solutions integrate seamlessly with existing systems, providing real-time analytics for continuous improvement. Revolutionize your communication strategy today with Cloud-Based IVR Solutions. Learn more at: https://thesmspoint.com/channel/cloud-telephony
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeAftab Hussain
Understanding variable roles in code has been found to be helpful by students
in learning programming -- could variable roles help deep neural models in
performing coding tasks? We do an exploratory study.
- These are slides of the talk given at InteNSE'23: The 1st International Workshop on Interpretability and Robustness in Neural Software Engineering, co-located with the 45th International Conference on Software Engineering, ICSE 2023, Melbourne Australia
2. 2
Trademarks
Oracle®, Java™ and JavaScript™ are trademarks or registered
trademarks of Oracle and/or its affiliates.
LEGO® is a registered trademark of LEGO® Group. Programs are not
affiliated, sponsored or endorsed by LEGO® Education or LEGO®
Group.
Raspberry Pi™ is a trademark of Raspberry Pi Foundation.
Other names may be trademarks of their respective owners.
3. 3
Disclaimer
All information presented in this document and all supplementary
materials and programming code represent only my personal opinion
and current understanding and has not received any endorsement or
approval by IPT - Intellectual Products and Technologies or any third
party. It should not be taken as any kind of advice, and should not be
used for making any kind of decisions with potential commercial impact.
The information and code presented may be incorrect or incomplete. It is
provided "as is", without warranty of any kind, express or implied,
including but not limited to the warranties of merchantability, fitness for a
particular purpose and non-infringement. In no event shall the author or
copyright holders be liable for any claim, damages or other liability,
whether in an action of contract, tort or otherwise, arising from, out of or
in connection with the information, materials or code presented or the
use or other dealings with this information or programming code.
4. Tales of JAVA Robotics
4
There are several tales to share:
Tale of Robotics, IoT and Complexity
Tale of Common Sense: DDD
Tale of two cities - Imperative and Reactive
Tale of two brave robots: LeJaRo and IPTPI
And some real reactive Java + TypeScript / Angular 2 /
Reactive WebSocket code
5. 5
High Performnce Reactive JAVA
Reactive programming. Reactor & Proactor design
patterns. Reactive Streams (java.util.concurrent.Flow)
High performance non-blocking asynchronous apps
on JVM using Reactor project & RxJava
Disruptor (RingBuffer), Flux & Mono, Processors
End-to-end reactive web applications and services:
Reactor IO (REST, WebSocket) + RxJS + Angular 2
Demo - reactive hot event streams processing on
Raspberry Pi 2 (ARM v7) based robot IPTPI.
RxJava (not Zen only :) coans for self assessment
7. Where to Find the Demo Code?
7
IPTPI Reactive Demo is available @ GitHub:
https://github.com/iproduct/course-social-robotics
https://github.com/iproduct/jprime-demo
9. … Even More Complex
9
Cross-section of many
disciplines:
mechanical engineering
electrical engineering
computer science
artificial intelligence (AI)
human-computer interaction
sociology & psychology
Picture by Hugo Elias of the Shadow Robot Company -
http://www.shadowrobot.com/media/pictures.shtml, CC BY-SA 3.0
10. Engineering, Science & Art
10
Source: https://commons.wikimedia.org/w/index.php?curid=551256, CC BY-SA 3.0
11. and How Can We Forget
11
Source: https://commons.wikimedia.org/
w/index.php?curid=234900, CC BY-SA 3.0
Source: Korea Institute of Industrial Technology,
http://news.naver.com/main/read.nhn?
mode=LSD&mid=sec&sid1=102&oid=020&aid=0000371339
12. Robots: The Most Intelligent Things
12
CC BY 2.0, Source:
https://www.flickr.com/photos/wilgengebroed/8249565455/
Radar, GPS, lidar for navigation and obstacle
avoidance ( 2007 DARPA Urban Challenge )
13. The Internet of Things has the potential to change the
world, just as the Internet did. Maybe even more so.
Nearly 50 petabytes of data are captured and created
by human beings
People have limited time, attention and accuracy
Capturing data about things in the real world in real time
Track and count everything, reduce waste, loss & cost.
Know when things need replacing, repairing or recalling
— Kevin Ashton, 'That 'Internet of Things' Thing', RFID Journal,
2009
Internet of Things (IoT)
14. There will be nearly 26 billion devices on the Internet of
Things by 2020.
[Gartner]
More than 30 billion devices will be wirelessly
connected to the Internet of Things by 2020
[ABI Research]
It's expected to be a 19 Trillion USD market
[John Chambers, Cisco CEO]
IoT Perspectives
15. "Basket of remotes" problem – we'll have hundreds of
applications to interface with hundreds of devices that
don't share protocols for speaking with one another
[Jean-Louis Gassée, Apple initial team, and BeOS co-founder]
Only IPv6 addresses are not enough – IoT devices
should be also easily and directly accessible for users
and [their] agents
In read/write mode
Preferably using a standard web browser
Even behind firewalls
IoT - Need for Standards
17. Tracking Complexity
17
We need tools to cope with all that complexity inherent in
robotics and IoT domains.
Simple solutions are needed – cope with problems through
divide and concur on different levels of abstraction:
Domain Driven Design (DDD) – back to basics:
domain objects, data and logic.
Described by Eric Evans in his book:
Domain Driven Design: Tackling Complexity in the Heart of
Software, 2004
18. Common Sense: DDD
18
Main concepts:
Entities, value objects and modules
Aggregates and Aggregate Roots [Haywood]:
value < entity < aggregate < module < BC
Repositories, Factories and Services:
application services <-> domain services
Separating interface from implementation
19. Imperative and Reactive
19
We live in a Connected Universe
... there is hypothesis that all
the things in the Universe are
intimately connected, and you
can not change a bit without
changing all.
Action – Reaction principle is
the essence of how Universe
behaves.
20. Imperative and Reactive
Reactive Programming: using static or dynamic data
flows and propagation of change
Example: a := b + c
Functional Programming: evaluation of mathematical
functions,
➢ Avoids changing-state and mutable data, declarative
programming
➢ Side effects free => much easier to understand and
predict the program behavior.
Example: books.stream().filter(book -> book.getYear() > 2010)
.forEach( System.out::println )
21. Functional Reactive (FRP)
21
According to Connal Elliot's (ground-breaking paper @
Conference on Functional Programming, 1997), FRP is:
(a) Denotative
(b) Temporally continuous
25. Reactive Streams Spec.
25
Reactive Streams – provides standard for
asynchronous stream processing with non-blocking
back pressure.
Minimal set of interfaces, methods and protocols for
asynchronous data streams
April 30, 2015: has been released version 1.0.0 of
Reactive Streams for the JVM (Java API,
Specification, TCK and implementation examples)
Java 9: java.util.concurrent.Flow
26. Reactive Streams Spec.
26
Publisher – provider of potentially unbounded number
of sequenced elements, according to Subscriber(s)
demand.
Publisher.subscribe(Subscriber) => onSubscribe onNext*
(onError | onComplete)?
Subscriber – calls Subscription.request(long) to
receive notifications
Subscription – one-to-one Subscriber ↔ Publisher,
request data and cancel demand (allow cleanup).
Processor = Subscriber + Publisher
27. FRP = Async Data Streams
27
FRP is asynchronous data-flow programming using the
building blocks of functional programming (e.g. map,
reduce, filter) and explicitly modeling time
Used for GUIs, robotics, and music. Example (RxJava):
Observable.from(
new String[]{"Reactive", "Extensions", "Java"})
.take(2).map(s -> s + " : on " + new Date())
.subscribe(s -> System.out.println(s));
Result:
Reactive : on Wed Jun 17 21:54:02 GMT+02:00 2015
Extensions : on Wed Jun 17 21:54:02 GMT+02:00 2015
28. 28
Performance is about 2 things (Martin Thompson –
http://www.infoq.com/articles/low-latency-vp ):
– Throughput – units per second, and
– Latency – response time
Real-time – time constraint from input to response
regardless of system load.
Hard real-time system if this constraint is not honored then
a total system failure can occur.
Soft real-time system – low latency response with little
deviation in response time
100 nano-seconds to 100 milli-seconds. [Peter Lawrey]
What About High Performance?
29. 32
Low garbage by reusing existing objects + infrequent GC
when application not busy – can improve app 2 - 5x
JVM generational GC startegy – ideal for objects living very
shortly (garbage collected next minor sweep) or be immortal
Non-blocking, lockless coding or CAS
Critical data structures – direct memory access using
DirectByteBuffers or Unsafe => predictable memory layout
and cache misses avoidance
Busy waiting – giving the CPU to OS kernel slows program
2-5x => avoid context switches
Amortize the effect of expensive IO - blocking
Low Latency: Things to Remember
30. 33
Non-blocking (synchronous) implementation is 2 orders of
magnitude better then synchronized
We should try to avoid blocking and especially contended
blocking if want to achieve low latency
If blocking is a must we have to prefer CAS and optimistic
concurrency over blocking (but have in mind it always
depends on concurrent problem at hand and how much
contention do we experience – test early, test often,
microbenchmarks are unreliable and highly platform dependent
– test real application with typical load patterns)
The real question is: HOW is is possible to build concurrency
without blocking?
Mutex Comparison => Conclusions
31. 34
Message Driven – asynchronous message-passing allows
to establish a boundary between components that ensures
loose coupling, isolation, location transparency, and
provides the means to delegate errors as messages
[Reactive Manifesto].
The main idea is to separate concurrent producer and
consumer workers by using message queues.
Message queues can be unbounded or bounded (limited
max number of messages)
Unbounded message queues can present memory
allocation problem in case the producers outrun the
consumers for a long period → OutOfMemoryError
Scalable, Massively Concurrent
32. 35
Queues typically use either linked-lists or arrays for the
underlying storage of elements. Linked lists are not
„mechanically sympathetic” – there is no predictable
caching “stride” (should be less than 2048 bytes in each
direction).
Bounded queues often experience write contention on
head, tail, and size variables. Even if head and tail
separated using CAS, they usually are in the same cache-
line.
Queues produce much garbage.
Typical queues conflate a number of different concerns –
producer and consumer synchronization and data storage
Queues Disadvantages
[http://lmax-exchange.github.com/disruptor/files/Disruptor-1.0.pdf]
33. 36
LMAX Disruptor design pattern separates different
concerns in a “mechanically sympathetic” way:
- Storage of items being exchanged
- Producer coordination – claiming the next sequence
- Consumers coordination – notified new item is available
Single Writer principle is employed when writing data in
the Ring Buffer from single producer thread only (no
contention),
When multiple producers → CAS
Memory pre-allocated – predictable stride, no garbage
LMAX Disruptor (RingBuffer)
[http://lmax-exchange.github.com/disruptor/files/Disruptor-1.0.pdf]
34. 37
LMAX Disruptor (RingBuffer) High Performance
[http://lmax-exchange.github.com/disruptor/files/Disruptor-
1.0.pdf]
Source: LMAX Disruptor github wiki - https://raw.githubusercontent.com/wiki/LMAX-
Exchange/disruptor/images/Models.png
LMAX-Exchange Disruptor License @ GitHub: Apache License Version 2.0, January 2004 -
http://www.apache.org/licenses/
35. 38
LMAX Disruptor (RingBuffer) High Performance
[http://lmax-exchange.github.com/disruptor/files/Disruptor-
1.0.pdf]
Source: LMAX Disruptor @ GitHub - https://github.com/LMAX-
Exchange/disruptor/blob/master/docs/Disruptor.docx
LMAX-Exchange Disruptor License @ GitHub: Apache License Version 2.0, January 2004 -
http://www.apache.org/licenses/
36. Project Reactor
39
Reactor project allows building high-performance (low
latency high throughput) non-blocking asynchronous
applications on JVM.
Reactor is designed to be extraordinarily fast and can
sustain throughput rates on order of 10's of millions of
operations per second.
Reactor has powerful API for declaring data
transformations and functional composition.
Makes use of the concept of Mechanical Sympathy
built on top of Disruptor / RingBuffer.
37. Project Reactor
40
Pre-allocation at startup-time
Message-passing structures are bounded
Using Reactive and Event-Driven Architecture patterns
=> non-blocking end-to-end flows, replies
Implement Reactive Streams Specification – efficient
bounded structures requesting no more than capacity
Applies above features to IPC and provides non-
blocking IO drivers that are flow-control aware
Expose a Functional API – organize their code in a
side-effect free way, which helps you determine you are
thread-safe and fault-tolerant
46. Disruptor (Ring Buffer) used in Reactor
49
Reactor provides 3 major types of Processors:
EmitterProcessor – using 0 threads (on same thread)
TopicProcessor using – N threads concurrently
processing the messages (AND operation)
WorkQueueProcessor – N threads alternatively
processing the messages (XOR operation – messages
are processed exactly by one thread – load ballancing
and work distribution)
53. LeJaRo: Lego®
Java Robot
56
Modular – 3 motors (with encoders) – one driving each
track, and third for robot clamp.
Three sensors: touch sensor (obstacle avoidance), light
color sensor (follow line), IR sensor (remote).
LeJaRo is programmed in Java using LeJOS library.
More information about LeJaRo:
http://robolearn.org/lejaro/
Programming examples available @GitHub:
https://github.com/iproduct/course-social-robotics/tre
e/master/motors_demo
LEGO® is a registered trademark of LEGO® Group. Programs of IPT are not
affiliated, sponsored or endorsed by LEGO® Education or LEGO® Group.
66. Takeaways: Why Go Reactive?
69
Benefits using Reactive Programming + DDD:
DDD helps to manage complexity in IoT and Robotics -
many subsystems = sub-domains
Reactive Streams (Fluxes, Monos) = uni-directional data
flows, CQRS, event sourcing, microservices
Reactive Streams can be non-blocking and highly
efficient, or can utilize blocking if needed
Naturally implement state management patterns like
Redux, allow time travel, replay and data analytics
Clear, declarative data transforms that scale (Map-
Reduce, BigData, PaaS)
67. Takeaways: Why Maybe Not?
70
Cons using Reactive Programming + DDD:
DDD requires additional efforts to clearly separate
different (sub) domains – DSL translators, factories...
Reactive Streams utilize functional composition and
require entirely different mindset then imperative – feels
like learning foreign language
Pure functions and Redux provide much benefits,
but there's always temptation to “do it the old way” :)
Tool support for functional programming in Java is still
not perfect (in Eclipse at least :)
68. Where to Find the Demo Code?
71
IPTPI Reactive Demo is available @ GitHub:
https://github.com/iproduct/course-social-robotics
https://github.com/iproduct/jprime-demo
69. 72
Resources: RxMarbles & Rx Coans
RxMarbles:
http://rxmarbles.com/
Lite Rx API Hands-On with Reactor Core 3:
https://github.com/reactor/lite-rx-api-hands-on/
RxJava Koans – Let's try to solve them at:
https://github.com/mutexkid/rxjava-koans
RxJS Koans – for those who prefer JavaScript :)
https://github.com/Reactive-Extensions/RxJSKoans
70. Tale of Simplicity: DDD
73
http://robolearn.org/ Let's move!
http://iproduct.org/
71. Thank’s for Your Attention!
74
Trayan Iliev
CEO of IPT – Intellectual Products
& Technologies
http://iproduct.org/
http://robolearn.org/
https://github.com/iproduct
https://twitter.com/trayaniliev
https://www.facebook.com/IPT.EACAD
https://plus.google.com/+IproductOrg