8:00 | 8:00 - 9:00 Registration Registration Room: Level 0, Time: 8:00 - 9:00 Session Summary:
Welcome to DEVCON. Check in to DEVCON and MODCONF by using the self-service iPad stations. (Level 0) |
9:00 | 9:00 - 9:15 Welcome and Announcements Welcome and Announcements Room: Spectrum A, Time: 9:00 - 9:15 Session Summary:
Everything that you need to know for this year's DEVCON will be announced by Olaf. (Spectrum A) |
9:15 | 9:15 - 9:45 Keynote Keynote Room: Spectrum A, Time: 9:15 - 9:45 Session Summary:
Keynote by Liferay's Chief Software Architect & Founder on the modular approach of Liferay. More info coming soon. (Spectrum A) |
9:50 | 9:50 - 10:20 The Essence of Modularity The Essence of Modularity Room: Spectrum A, Time: 9:50 - 10:20 Session Summary:
Modularity is one of the most fundamental building blocks of nature, both in the physical as well as the abstract domain. Though widely acknowledged to reduce complexity in software, the underlying reasons why it works so well are not well understood. By better understanding the theory of modularity we can improve on existing practices. This presentation explains the fundamentals, analyzes the forces in this domain, and demonstrates a modularity/dependency model for today’s software. (Spectrum A) |
10:30 | 10:30 - 11:00 Lean microservices on OSGi Lean microservices on OSGi Room: Spectrum B, Time: 10:30 - 11:00 Session Summary:
Microservices and their frameworks like spring boot allow to start fast but can easily produce architectures that are difficult to maintain. OSGi on the other hand provides great modularity but is regarded as more complex than spring boot and alike. This Talk shows how to create lean and modular microservices using OSGi, maven and bndtools. The build result is a runnable jar or docker image and nicely fits microservice deployments. See how OSGi allows the flexibility to deploy each microservice on its own and let them communicate over (REST) remote calls or deploy them together and talk using OSGi services locally using the same business code bundles. Christian Schneider, Talend (Spectrum B) | 10:30 - 11:00 OSGi Transaction Control – A functional approach to resource management OSGi Transaction Control – A functional approach to resource management Room: Lounge, Time: 10:30 - 11:00 Session Summary:
Transactions are a critical part of almost all Enterprise applications, but correctly managing those transactions isn't always easy. This is particularly true in a dynamic, modular world where you need to be certain that everything is ready before you begin. With the advent of lambda expressions and functional interfaces we now have new, better tools for defining transactional work. The OSGi Transaction Control service uses these functional programming techniques to scope transactions and resource access, providing control and flexibility while leaving business logic uncluttered. The resulting solution is decoupled, modular and requires no container magic at all, making testing and portability a breeze. This talk will review the Transaction Control specification draft from the upcoming Enterprise OSGi Release 7, and demonstrate the capabilities of Transaction Control using the prototype Reference Implementation from Apache Aries. (Lounge) |
11:30 | 11:30 - 12:00 Modern building blocks for a modular Front-End Modern building blocks for a modular Front-End Room: Spectrum B, Time: 11:30 - 12:00 Session Summary:
Building a highly modular and scalable application is now possible. In this talk we’ll explore how OSGi, ES2015, metal.js and soy templates make this dream possible. (Spectrum B) | 11:30 - 13:20 Modular Rest APIs using JAX-RS in OSGi (Workshop) Modular Rest APIs using JAX-RS in OSGi (Workshop) Room: Lounge, Time: 11:30 - 13:20 Session Summary:
Building great APIs is essential in an increasingly interconnected world. In the workshop we will show how to build REST APIs using well known Java standards while dealing with complexity in an incremental way using OSGi. We will build a REST API from scratch that will be consumed from a client application. Creating JAX-RS application in a modular way Incremental resources and providers Adaptable URL generation Deploying in a OSGi container We will also introduce the ongoing OSGi RFC-217 for standarizing JAX-RS inside OSGi containers. Carlos Sierra Andrés, Liferay (Lounge) |
12:10 | 12:10 - 12:40 From JARs to Bundles to Resolutions to Knowledge From JARs to Bundles to Resolutions to Knowledge Room: Spectrum B, Time: 12:10 - 12:40 Session Summary:
Creating a modular system leads to a number of benefits, from technical improvements to organizational improvements. However, at scale modularity can require a significant amount of mental energy. The OSGi model is fundamentally based on the idea of injecting knowledge into individual modules which frameworks use to great effect. But given hundreds or thousands of modules the sheer volumn of information can make reasoning about them difficult. Luckily OSGi defines mechanisms for performing operations to reason over arbitrary number of modules. This talk will review and demonstrate the capabilities of these mechanism. (Spectrum B) |
12:50 | 12:50 - 13:20 Scalable Event Processing – Pushing the limits with Push Streams! Scalable Event Processing – Pushing the limits with Push Streams! Room: Spectrum B, Time: 12:50 - 13:20 Session Summary:
Data is being produced everywhere, there are sensors in thousands of homes, metrics collection from your cloud applications, industrial sensors manage the safe provision of water and electricity. The question is, what do we do with all of this data? How do you cope with thousands (or millions) of push-based data events per second? A crucial part of any of any solution is to have the right primitives. An asynchronous, push-based event processing pipeline is essential. OSGi Push Streams offer the power and simplicity of Java 8 streams, but with the power of asynchronous push-based events. This talk will describe the work happening in OSGi’s Push Streams RFC, using streams and promises to build scalable event processing pipelines. Finally the speaker will demonstrate live processing of real IoT data streams using OSGi Push Streams! (Spectrum B) |
13:20 | 13:20 - 14:35 Lunch Break Lunch Break Room: Level 1, Time: 13:20 - 14:35 (Level 1) |
14:40 | 14:40 - 15:10 Best practices for creating Modular Web Applications Best practices for creating Modular Web Applications Room: Spectrum B, Time: 14:40 - 15:10 Session Summary:
Today’s Web applications are large and complex systems. Most of them are also hard to support, maintain and improve. In this talk we will focus on a crucial requirement to make a Web application maintainable - to build it from small pieces of modules, each of them replaceable, pluggable and testable. We will explore the different ways of achieving it, what JavaScript provides OOTB and finally, how to share code between the server and the browser. (Spectrum B) | 14:40 - 15:50 Modules from Front to Back: Combining Java/OSGi & Web Components Modules from Front to Back: Combining Java/OSGi & Web Components Room: Lounge, Time: 14:40 - 15:50 Session Summary:
OSGi is a powerful and mature technology for modularity in the Java world – many modern web applications run on modular, OSGi-based servers. Web Components are relatively new, but a rich and powerful way to modularise web pages and the front-end of a web application. In this workshop we harness both technologies to create vertical slices of functionality. This enables functional modules to be added and removed in an application with both front- and -back-end modules correctly deployed with all necessary dependencies. The workshop will follow a classroom format and delegates will have a small, working web application upon completion. Technologies to be used include: OSGi, enRoute, Web Components, Polymer, Eclipse/Bndtools. Requirements for the talk: • Java 8 • Eclipse Neon (recommended) https://eclipse.org/downloads/ or Eclipse Luna (minimum) https://eclipse.org/luna/ • Bndtools 3.3 http://bndtools.org/installation.html (Lounge) |
15:20 | 15:20 - 15:50 The Java 9 Module System In Action The Java 9 Module System In Action Room: Spectrum B, Time: 15:20 - 15:50 Session Summary:
You might have heard about Project Jigsaw in Java 9 but did you see it in action? This talk will walk you through the features and pitfalls while modularizing an example application. It will show how to... * define modules and a module graph * migrate an application while handling unmodularized dependencies * analyze an application and its dependencies for compatibility problems With the different pieces of the puzzle coming together you will be able to vet or even spike _your_ app's migration. (Spectrum B) |
16:00 | 16:00 - 16:30 Modularity in Web Applications with Vaadin & OSGi Modularity in Web Applications with Vaadin & OSGi Room: Spectrum B, Time: 16:00 - 16:30 Session Summary:
We have been working in the area of modular software development for many years now. This talk is structured into two parts. The first part is about the basics behind modularity. What is modularity? What are best practice patterns behind it? How can we use Java to create real modular systems? What is the problem with WAR files and ServletContainers? Why can OSGi handle modularity so much better than JEE can? What about WildFly’s module system to create modular systems? How can we “make” JEE more modular? After part one the attendees know the difference between JEE-, OSGi- and Wildfly-ClassLoader-Architecture. And they will understand why (and how) OSGi allows to write much more modular systems then JEE containers do. In the second part, I will do a live demo and we are going to write a highly modular web application based on OSGi and Vaadin. We will make use of the brand new Vaadin-OSGi-R6 implementation based on the OSGi Prototype Scope. After this talk, the attendees will have good knowledge about modularity in web applications, the problems we are facing and a best practice implementation for a highly modular web application. Florian Pirchner, Lunifera GmbH (Spectrum B) | 16:00 - 16:30 The Component Model in Mobile App Development: Liferay Screens 2 The Component Model in Mobile App Development: Liferay Screens 2 Room: Lounge, Time: 16:00 - 16:30 Session Summary:
The component model was introduced more than 40 years ago, and it is one of the best practical applications of modularity. This presentation will bring you a new point of view of mobile app development, and will give you more insight about modular development and more specifically about the software component model José Manuel Navarro, Liferay (Lounge) |
16:30 | 16:30 - 16:55 Afternoon Coffee Break Afternoon Coffee Break Room: Level 1, Time: 16:30 - 16:55 (Level 1) |
17:00 | 17:00 - 17:30 Building awesome applications with WeDeploy Building awesome applications with WeDeploy Room: Spectrum A, Time: 17:00 - 17:30 Session Summary:
In this session you’ll see how launch production-ready environments in a matter of minutes, how to store data in the cloud, search and stream content in realtime, authenticate and manage users very easily, and much more. If you’re interested in Microservices and Containers, this is the right talk for you. (Spectrum A) | 17:00 - 17:30 Building Real-Time Web Applications with Websocket in a OSGi Container Building Real-Time Web Applications with Websocket in a OSGi Container Room: Spectrum B, Time: 17:00 - 17:30 Session Summary:
Web applications have grown a lot, and they consume a really huge amount of data. One of the most important aspects that were holding them back was the client started transactions. Some alternatives were created trying to overcome the previous problem (like long-polling), but the main problem affecting to all these alternatives was the HTTP overhead. Trying to solve many of the problems described above, the WebSocket alternative was created. RFC 6455 defines an important new capability for web applications: a full-duplex, two-way communication channel between the client and the server. Thanks to this fact, we can have a low level, bidirectional communication channel where transactions can be started in both endpoints. During the talk we’ll discover how Websockets work, how we can use them in our OSGi container using the Whiteboard pattern, and, last but not least, we will learn how to build applications that can benefit from all the new goodies offered by this infrastructure we’ve built. Cristina González Castellano, Liferay (Spectrum B) | 17:00 - 17:30 Unleashing the Full Potential of OSGi Unleashing the Full Potential of OSGi Room: Lounge, Time: 17:00 - 17:30 Session Summary:
Modularity, modularity, modularity. That’s all we hear these days. Yet, well-designed modular systems are still the exception rather than the rule. Why is that? Thinking in modular terms requires a concerted effort and a mindset change until it becomes second nature. Throughout this talk, you will learn how to leverage the power of OSGi in Liferay DXP to implement true modular systems. For instance, you will learn how to (re)implement some classic design patterns using the OSGi runtime, making them even more useful than before. You can think of this talk as your first step towards modularity nirvana. (Lounge) |
17:40 | 17:40 - 18:10 Software Craftsmanship in the era of the Software Revolution Software Craftsmanship in the era of the Software Revolution Room: Spectrum A, Time: 17:40 - 18:10 Session Summary:
Have you ever thought of the process of producing software? Would you describe it as craftsmanship? Or is it more like assembly line? How it should be? What is more important, quality or time to market? What about cost? We programmers need to be more efficient, deliver faster, meet deadlines, respond promptly to ever changing expectations, … At the same time we must remain creative yet precise and disciplined, continuously learning but aware of decades old principles, be open minded while our memory is mostly consumed by algorithms … And as if that wasn’t enough, our programmers’ ego, overclocked by the existence of some software masterpieces, insists on being an artist, a craftsman everyone else envy, a visionary architect that will change the world one day. If that sounds hard for a single programmer to handle, imagine what it has to be for a software company. Especially an open source one, with hundreds of own developers, thousands of community members and ever growing expectations from demanding customers. Curious? This keynote takes some time to explore how we (both individual developers and software companies) got where we are, why that matters and what options we have looking forward. (Spectrum A) |
18:15 | 18:15 - 18:45 Machine Learning: the next revolution or just another hype? Machine Learning: the next revolution or just another hype? Room: Spectrum A, Time: 18:15 - 18:45 Session Summary:
Machine Learning is quickly becoming the hottest topic in the technology world. The largest technology companies are investing tons of resources on it and the expectations on what it will achieve are sky rocketing. Is the hype justified? How does it affect us as developers? In this session we will go over the key concepts of machine learning, including neural networks and deep learning. We will also see examples of what they are good for and what they are not to better understand its applicability. Finally we will explain real code examples of machine learning for specific applications and show how to continue learning more to be able to answer whether it may be such a significant revolution. (Spectrum A) |
18:45 | 18:45 - 19:00 Intro for Evening Reception Intro for Evening Reception Room: Spectrum A, Time: 18:45 - 19:00 Session Summary:
Learn about the challenges and prizes that you can win during the WWW Party. (Spectrum A) |
19:00 | 19:00 - 22:30 WWW Party WWW Party Room: Level 0, Time: 19:00 - 22:30 Session Summary:
Enjoy the wild wild west party. (Level 0) |