The influence of Internet of Things is such that all researches are aligned in prediction that it will fundamentally change the world we are living in.
Regardless it's still in its infancy, IoT impact is growing quickly. The new rule for the future is going to be, “anything that can be connected, will be connected".
Per last McKinsey Global Institute (MGI) research, over the next decade, number of connected devices is expected to increase dramatically, with estimates ranging from 25 billion to 50 billion devices in 2025, generating value between $3.9 trillion to $11.1 trillion per year.
Introduction of IoT systems into the homes, cities, factories, and other settings could create value in new ways and to alter how people live and work. This will affect the full range of stakeholders and will enable new business models, including those that monetize the data generated by IoT technology.
Governments, policy makers and businesses have the chance to accelerate the enormous opportunities associated with the IoT.
The presentation describes the current state of IoT, basic motivations and some predictions regarding the IoT future, but most importantly tries to stimulate the audience to reflect on their future role in IoT world.
Scale changes everything. Number of connections and destinations went from dozen to thousands, number of messages increased by order of magnitude. What once was quite adequate for enterprise messaging can't scale to support "Internet of Things". We need new protocols, patterns and architectures to support this new world. This session will start with basic introduction to the concept of Internet of things. Next it will discuss general technical challenges involved with the concept and explain why it is becoming mainstream now. Now we're ready to start talking about solutions. We will introduce some messaging patterns (like telemetry and command/control) and protocols (such as MQTT and AMQP) used in these scenarios. Finally we will see how Apache ActiveMQ is gearing up for this race. We will show tips for horizontal and vertical scaling of the broker, related projects that can help with deployments and what the future development road map looks like.
Pair with the future via Bluetooth Low Energy
It seems like BLE appeared only yesterday, yet it's already taking over the world. We'll get down to the nitty gritty of how BLE really works (hint – its magic!) and talk range, connectivity, speed, power consumption and security. You’ll learn from our practical experiences that range from building disruptive health devices to improving the headset that landed on the Moon. Stay tuned.
Java EE 7 has been finalised mid 2013 and from J2EE to Java EE 7, much has changed ... but we are not done yet! Through the years, Java EE has always reinventing itself. Java EE 8 will be no exception to this rule!
In this session, we will look at the current state of Java EE 8. We will review the various new JSRs that will be part of Java EE 8 (e.g. MVC, JSON-B, Security JSR). We will obviously also look how the existing technologies will evolves in Java EE 8 (e.g. Servlet 4 which brings HTTP/2 support, JMS's plan to replace Message Driven Beans, CDI/EJB alignment, JAX-RS 2.1, etc.).
We will finally conclude this session by looking at how you can get involved in those works.
In this presentation we will look the fact that in large scale and complex web applications the single node backend is now dead or dying.
A single instance of a database is no longer sufficiently available, resilient or elastic to cope with the quantities and changing requirements of data that modern applications demand.
Historically, to cope with an increase in requirements and demand, developers have taken the 'traditional' database they began with and layered other technologies on top of it such as document stores and better search. This solves their short term need but creates brittle and complex series of interconnected parts that are hard to scale, upgrade and keep in sync.
Enter the world of distributed databases, designed to be deployed and structured at scale and for new instances to be added when needed without worrying about synchronization issues.
We will look at the principles behind developing applications with a distributed datastore, the complexities of discovery between nodes and the solutions to create a truly distributed database.
Imagine a culture where the input of the whole organization turns an individual idea into a user story in just a couple of hours, where everybody's goal is to make the customer’s job easier and more effective, and where you work on projects you love instead of projects you loathe.
Culture comes from allowing people to let their creativity thrive and bringing employees together to have fun. It comes from prioritizing a shared value system that causes everyone to work with purpose and opening up the lines of communication as far as they go. It’s about emphasizing transparency and honesty, respecting autonomy, and encouraging collaboration. It’s about maintaining all these things no matter how large an organization grows and protecting that culture by hiring people who will maintain it.
I'll talk about all these aspects and give lots of practical examples from our experience at Atlassian. Culture is the foundation from which everything else will grow – so, make sure it’s a strong one.
Containers are enabling developers to package their applications (and underlying dependencies) in new ways that are portable and work consistently everywhere? On your machine, in production, in your data center, and in the cloud. And Docker has become the de facto standard for those portable containers in the cloud.
Docker is the developer-friendly Linux container technology that enables creation of your stack: OS, JVM, app server, app, and all your custom configuration. So with all it offers, how comfortable are you and your team taking Docker from development to production? Are you hearing developers say, “But it works on my machine!” when code breaks in production?
At this workshop/talk we will start from the basics and come shortly to DynamicProxies, DynamicObjectAdapter and DynamicStaticProxies at runtime, ProxyComposite and more. How we could combine this with invoke dynamic or maybe with an other language like kotlin? We will have a deep dive to this pattern group , and I am sure you will like it ;-)
This workshop is based on the german book "Dynamic Proxies" written from Dr. Heinz Kabutz and me.The workshop will teach you how to get started developing with the Wunderbar IoT Platform. It will cover onboarding of a sensor kit to your relayr account, first steps with the sensors without coding, a live intro to the Java Script SDK and intros to individual SDKs as per request. The sensors will transmit their measurings automatically to the relayr cloud if the sensors are connected to wifi and can then be accessed through the SDKs. Currently there is a range of the following platforms: Android, iOS/OSX, C#, Python, NodeJS, Java Script, among others.
The Wunderbar consists of the following sensors: temperature, humidity, accelerometer, gyroscope, noise level, light, color, proximity. It also has an IR transmitter and a grove bridge which can be used to connect the Wunderbar to an arduino, if desired.
Feel free to share your desired platform upfront with Philipp so he can make sure you will get the most out of the workshop: philipp@relayr.de
SQL is an awesome language for some problems. But JDBC is a too low level API to access SQL from Java, while JPA is not about SQL. Find out in this talk, how to write SQL very efficiently.
SQL is a powerful and highly expressive language for queries against relational databases. SQL is established, standardised and hardly challenged by alternative querying languages. Nonetheless, in the Java ecosystem, there had been few relevant steps forward since JDBC to better integrate SQL into Java. All attention was given to object-relational mapping and language abstractions on a higher level, such as OQL, HQL, JPQL, CriteriaQuery. In the mean time, these abstractions have become almost as complex as SQL itself, regardless of the headaches they're giving to DBAs who can no longer patch the generated SQL.
jOOQ is a dual-licensed Open Source product filling this gap. It implements SQL itself as an internal domain-specific language in Java, allowing for the typesafe construction and execution of SQL statements of arbitrary complexity. This includes nested selects, derived tables, joins, semi-joins, anti-joins, self-joins, aliasing, as well as many vendor-specific extensions such as stored procedures, arrays, user-defined types, recursive SQL, grouping sets, pivot tables, window functions and many other OLAP features. jOOQ also includes a source code generator allowing you to compile queries in modern IDEs such as Eclipse very efficiently.
jOOQ is a good choice in a Java application where SQL and the specific relational database are important. It is an alternative when JPA / Hibernate abstract too much, JDBC too little. It shows, how a modern domain-specific language can greatly increase developer productivity, internalising SQL into Java.An expanded guide to beautiful design for developers and other non-design folks.
WARNING: 0% boring, 100% practical.
So you are a true coder ninja, able to build jaw-dropping apps in your sleep, playing Flappy Bird at the same time. There's just one thing in your way to building that perfect piece of software - you are lacking an eye for design. Debunking the myth that you need some magical "feel" or superpower to churn out good looking UIs, this lecture is a simple enough guide that could (and should) be practiced by anyone, regardless of the level of their design skills.
We will skip the boring theory and jump straight into the colors, alignments, sizes, fonts and animations. These are immediately applicable, track proven tips that will give your app that delightful experience that makes users say "Oooh!" and "Wowz!". So put your war face on and get ready to hack the design!
In the past decade, RDBMS related traction has moved away completely from SQL towards JPA / JPQL, or even further, towards NoSQL. Evangelists have widely agreed that RDBMS are not "web scale", even if the race is far from being decided.
In this talk, I want to show you how many features you're missing out on, when you don't do real SQL. When you don't take advantage of recent SQL standard evolutions, such as SQL:1999 hierarchical SQL, SQL:2003 window functions, or many vendor specific extensions. In an example session, we're going to look at how we can calculate running totals on medium-sized data sets using
- nested selects
- window functions
- hierarchical SQL
- the Oracle MODEL clause
- stored functions
And most importantly, we're going to see how the above can help us increase performance while we decrease the number of lines of code when using any of MyBatis, jOOQ, or SpringJDBC.
Docker is not just a new container technology, it is a completely different approach to how we see software. The basic approach is to think about Docker containers as normal containers that are being used in the real world to ship goods. The talk will cover both the part where these containers are being shipped (Docker) and managed (Kubernetes). Starting with what made Docker possible in the first place and finishing with where it is being used right now and the potential use cases.
We will show you how to create stand-alone Spring based applications that "just run" using Spring Boot. See for yourself just how little Spring configuration is needed and how radically faster and widely accessible is the “getting started experience”.You will familiarize with Spring Data module that makes using new data access technologies a breeze.
Get your “hands-on” experience by developing a Spring Web MVC application based on both Spring Boot and Spring Data modules in less than 3 hours!
Prerequisite:
Basic understanding of Java web development, Spring framework and its core modules is needed.So, you are developing that awesome mobile application that will rock the world, but it is becoming more complex with every code change. You are looking for a way to control every commit in order to ensure that nothing is broken and all features are working as expected. You start writing different kinds of automated tests (Unit, Functional, Performance, UI, ...) using various Test Frameworks (Robotium, Uiautomator, Espresso, Calabash, Appium), but you are missing that final little "something" that will assemble everything together.
The focus of this session will be to create simple but very efficient Jenkins CI server which will be that final part in putting your magnificent mobile app and all of those automated tests and test frameworks together into a concerted flow.
Microservices are today’s hype. It seems that if you’re not doing them – you’re old fashioned and Doing It Wrong. But to do it properly you have to work in certain environment – ‘you have to be That tall’ as Martin Fowler wrote. In particular if you ignore things Conway’s law you’ll fail miserably.
In this talk I’d like to tell you about our (small agile software house working for Big Company) experiences – when is it possible to change the company you’re working for and when it’s better to accept its constraints – and what can you do to make it still a bit better place to live – which rules and practices seen on Netflix gorgeous talks can be easily used and which are more problematic.
Be aware that I’ll use old-fashioned words like OSGi, but I’ll try to omit most technical details and focus more on bigger picture – how we tried to move from good (?) old ESB towards fashionable microservices and where and why we decided to stay.
As software becomes more and more complex we are in constant search for means to beat complexity and keep it simple. This aim is in contrast with turbulent and constantly changing industry so beside keeping simple we also strive to or are being forced to do things as fast as possible.
Clojure is designed with simplicity in mind.
Session begins with overview of what is Clojure, core ideas behind it, it's lisp heritage, and what does it mean for programming language to be considered as powerful. Specifics of Clojure such as it's core data structures and some pecularities not available in other languages are described next. Each core concept is covered with short but representative example. Afterwards, focus is shifted from abstracts to tangible stuff, that is, technical concepts such as REPL oriented development, Java interop and tools to aid in every day work. Session is concluded with suggestions on resources to aid in learning Clojure.
The workshop would show attendees the best practices when it comes to building a single page web application using only JavaScript. We will build an application with three tiers - a backend tier which will store JSON and binary (image) documents, a middle tier using Node.js/Express and finally a front-end tier which will make use of AngularJS.
Attendees will get hands on experience by coding some piece of the web app themselves as well as learning how to architect a single page application and how to work with JavaScript throughout the application stack.
Pre-requisites:
Immediate knowledge of JavaScript, node.js and AngularJS. (Knowledge of modules, directives, controllers, callbacks and promises)
Fed up with stop and go in your data center? Why not shift into overdrive and pull into the fast lane? Learn how AutoScout24 are building their Autobahn with microservices in the cloud to become the market leader in Europe's vehicle classified business.
Reinventing themselves by making a radical transition from monoliths to microservices, from .NET on Windows to Scala on Linux, from data center to AWS and from built by devs and run by ops to a devops mindset.
While the current stack keeps running, ever more microservices will go live as you listen to stories from the trenches.
Key takeaways from this talk include: How to...
… become cloud native
… evolve the architecture
… create “you build it you run it” teams
… involve business people in the transformationThe European ecommerce giant Zalando is in the middle of a paradigm shift: an evolution from online fashion shop to fashion platform. As part of this evolution, our engineering team has adopted an “API First” approach: publishing APIs that other companies can use to take advantage of our massive amounts of data and build their own applications. Zalando’s primary public API (https://api.zalando.com) is implemented with Java using Spring and RestEasy, and offers programmers access to the web shop. It also allows for basic operations such as searching for articles, categories, filters and brands.
Making our APIs public has presented some very exciting technical challenges: specifically, how do we auto-scale our API as our audience grows? In this talk, we will provide the answers to these and other questions by sharing insights into the architecture-related choices we have made as part of our API First shift. We will describe how we adopted AWS to aggregate data from our catalog and real-time stock data stores to ensure top API performance. We’ll explain how we use Solr and AWS to manage our catalog data store and power a useful, consistent search engine. We’ll talk about how we use Memcached to overcome constraints related to our real-time data store and ensure accuracy of our API data. Finally, we’ll summarize how all of these engineering efforts enabled us to succeed in auto-scaling our public API across multiple regions while keeping our codebase intact. By the end, we hope you’ll have some useful takeaways for managing scalability issues of your own.WatchKit presents an unique design and development challenge. On one hand you are very limited with what you can do while on the other it allows you to escape the confines of must-have-a-device-in-hand.
Learn how to efficiently transfer data between the iOS and Watch OS app and how to properly cheat when needed and create an illusion of real-time communication between the two.
Learn how to creating a compelling UI, thinking differently.
Most importantly, learn to not think about the app, but design in terms of glances and notifications.The presentation will be introduction to Scala-JS. We'll see (through live coding demo) how (and if) it can be used to create modern web applications.
Interactions with web frameworks will be shown using React framework and some simple OpenStreetMap examples.
The focus of the talk is to give flavor of developing with scala for frontend and try to answer questions - is it production ready, is it worth a try?
We will give introduction to widely used programming techniques for comparison with reactive principles. Explanation of Reactor/Proactor design pattern and various dispatchers. Elaboration on events and streams, their comparison, use cases and combination with functional programming. Advantages and challenges of reactive approach. Introduction of industry standard libraries such as RxJava and RxJS. Live demo in Project Reactor (Spring) that includes practical application of reactive principles in both front-end and back-end focusing on scalability.
The combination of WebSockets with AngularJS is a fantastic stack for building reactive web applications - think constantly updating dashboards or a web based chat application. But what backend fits this model?
You guessed it: Play and Akka! This talk will take you through building the backend using the PlayFramework and Akka. The Actor model is perfect for reacting to events on the server side and pushing them to the client via a WebSocket. You’ll be shocked how simple this is to setup and get a basic application up and running.
We’ll be going through the KillrWeather application (https://github.com/killrweather/killrweather), which is an open source reference application for Apache Spark Streaming + Cassandra. Spark streaming is all about processing high volumes of data and building analytics on the fly, we’ll be showing how to get the processed data into a reactive front end.Vert.x is very efficient high performance scalable platform. Based on event driven paradigm with eventbus allows you to build non blocking thread safe asynchronous applications. Vert.x is easily scalable that can handle very high load of concurrent connections. Due to non blocking IO efficiently uses server resources. It runs smoothly even on Raspberry Pi! That's awesome base for IoT solutions!
Another key feature of Vert.x is ability to use many programming languages in the same application. Vert.x supports Java, JavaScript, CoffeeScript, Ruby, Python, Groovy, Scala, Clojure and Ceylon. You can mix all of them in the same application using eventbus to communicate between pieces. Vert.x nicely handles concurrency so writing concurrent and yet thread safe code was never so easy. During the talk I'll show you live how to create simple and more advanced pieces of code. In 2014 Vert.x won Jax Innovation Award in Most innovative Java Technology category. Vertx 3.0 is on the way with it's premiere at 22 July 2015.
Vert.x is awesome. Come and let me convince you!The world of ARM devices is booming. The major players like RaspberryPi2 and Odroid C1, priced at just $35 are getting more and more popular. Besides their possibility to act like full-fledged PCs, the ability to extend them with other modules makes the world of possible solutions tremendous.
As of Java8, the JDK comes alongside with official supported binaries for Linux OSs running on v6/v7 hardfloat ARM devices. The possibility to code in Java and to extend the solutions with libraries that offer pure hardware input/output access like pi4j, give us the opportunity to make actual devices fully coded in our favorite language.
This talk will cover the basics of the hardware and software needed to make your own devices with RaspberryPi, Java, pi4j, electronic components and third party add-on devices. Several examples will be covered, out of which: basic I/O, NFC readout, touchscreen and JavaFX interfaces, home automation center, etc... Also, the attendees will have the opportunity to learn the basics behind the GPIO interface and how to communicate via I2C, SPI and UART.The purpose of this talk is to provide an overview of the security architecture of the Java platform and the various features related to it. The session will cover guidelines in using the security APIs of the Java platform and designing secure applications by following security best practices and will track the evolution of the Java security model in terms of Java 9 and beyond.
Agenda:
- Evolution of the Java security model
- Outside the sandbox - APIs for secure coding
- Designing and coding with security in mind