Breaking Apart the Monolith with Modularity and Microservices CON3127

Size: px
Start display at page:

Download "Breaking Apart the Monolith with Modularity and Microservices CON3127"

Transcription

1 Breaking Apart the Monolith with Modularity and Microservices CON3127 Neil Griffin Software Architect, Liferay Inc. Specification Lead, JSR 378 Portlet 3.0 Bridge for JavaServer Faces 2.2 Michael Han Vice President of Operations, Liferay, Inc.

2 Presenter: Neil Griffin Liferay Faces project lead Contributing Author, JSF 2.0 Complete Reference Specification Lead for JSR 378 Liferay JCP Representative JSR 362 (Portlet 3.0) JSR 372 (JSF 2.3)

3 Presenter: Michael Han Vice President of Operations Responsible for benchmarking and performance management of Liferay's product lines Senior Architect of large-scale distributed systems

4 Microservices Componentized via Independently Deployable Services Designed for Failure, not against Failure Services are Independently Scalable Great! How do I get there?

5 Modularity What do we mean when we use the word modularity? Standards for modularity in Java: JSR 376: Java TM Platform Module System (Project JigSaw) (Available with JDK 9) OSGi TM

6 Types of Modularity Several attempts have been made to define a maturity model for modularity, for example: This presentation describes three basic levels of modularity for a Java application: Level 1: Monolithic (No modularity) Level 2: Composite (Reusable dependencies) Level 3: Dynamic (OSGi)

7 Level 1: Monolithic Application The simplest way to develop a Java application is to develop a monolith Single artifact that contains a large compiled codebase WEB-INF/classes/ CustomerService.class CustomerServiceImpl.class ProductService.class ProductServiceImpl.class PurchaseService.class PurchaseServiceImpl.class.war

8 Demo & Code Review: Monolith Drawbacks: Services are not reusable outside the application Service API cannot be versioned on its own release schedule All classes are loaded into the same servlet context ClassLoader No boundaries between the It works! application, Service API and Service Implementation Class.forName( com.liferay.store.monolith.customer.service.customerserviceimpl )

9 Level 2: Composite Applications.jar.jar In order to overcome the drawbacks of a monolith, develop a composite application.jar.jar Package services into separate.jar artifacts.war Include each.jar as an embedded dependency

10 Build Tools MavenTM Build tools like Maven or Gradle can help to achieve the goal of having independently versioned artifacts GradleTM Each artifact can be on an independent release schedule Artifacts can be published to an artifact repository like Maven Central

11 Demo & Code Review: Composite Benefits: Minimal code in WEB-INF/classes Versioned services can be embedded as dependencies Drawbacks: All classes are still loaded into the same servlet context ClassLoader Not designed to anticipate failure Still no boundaries between the application, It still works! Service API and Service Implementation Class.forName( com.liferay.store.monolith.customer.service.customerserviceimpl )

12 Level 3: Dynamic Modularity bundle.jar bundle.jar In order to overcome the drawbacks of a composite application, develop a dynamic modular application Package services into separate.jar artifacts bundle.jar bundle.jar wab.war OSGi Runtime Deploy each.jar as an OSGi bundle that runs in its own ClassLoader

13 OSGi OSGi is an open standard that achieves the goal of modularity for Java Modules are defined as simple.jar artifacts called OSGi bundles Each bundle runs in its own ClassLoader Bundles communicate via services that are published in the OSGi service registry

14 OSGi Implementations OSGi core framework implementations are available in open source Popular Core Framework Implementations: Felix (Apache) Equinox (Eclipse)

15 OSGi Bundles OSGi bundles are plain old JAR files that contain OSGi Bundle additional information in META-INF/MANIFEST.MF Manifest-Version: 1.0 Bundle-SymbolicName: com.liferay.store.customer Export-Package: com.liferay.store.customer.model;version="1.0.0",com.l iferay.store.customer.service;uses:="com.liferay.store.customer.model ";version="1.0.0" Bundle-Name: com.liferay.store.customer Bundle-Version: 1.0.0

16 Bundle API The API of an OSGi bundle is defined at the -exportcontents: \ com.liferay.store.customer.model, \ com.liferay.store.customer.service bnd.bnd (source) level of Java packages Manifest-Version: 1.0 Bundle-SymbolicName: com.liferay.store.customer Export-Package: com.liferay.store.customer.model;version="1.0.0",com.l iferay.store.customer.service;uses:="com.liferay.store.customer.model ";version="1.0.0" Bundle-Name: com.liferay.store.customer Bundle-Version: MANIFEST.MF (generated)

17 OSGi Services OSGi bundles communicate with each other via services made available by dependency injection Services are published in the OSGi service registry OSGi (service (dependency injection) OSGi (service consumer)

18 Bundle Dynamism Since OSGi bundles are dynamic (can be deployed and un-deployed dynamically), services can come and go at any time Programing for Failure: Declarative Services Service Tracker

19 Dynamism is a Familiar Concept tomcat/webapps/ context-1/ The Servlet Specification requires that the classes for each webapp (servlet context) be loaded into its own ClassLoader This offers a degree of dynamism: Copy the.war to tomcat/webapps to deploy Delete the webapp context to un-deploy Copy the.war to tomcat/webapps to re-deploy.war context-2/ context-n/

20 Demo & Code Review: Dynamic Benefits: Minimal code in WEB-INF/classes Versioned services can be deployed as OSGi bundles Each bundle runs in a separate ClassLoader Strict boundaries between the application, Service API, and Service No embedded service Implementation Modules are dynamic (can come and It doesn t work! jars! go at any time) Class.forName( com.liferay.store.monolith.customer.service.customerserviceimpl )

21 OSGi Compared to CDI/Spring OSGi: Services and injectable dependencies are discovered by the build-time system and satisfied at deploy time service implementation service dependency service = true, service = PurchaseService.class) public class PurchaseServiceImpl implements PurchaseService { private CustomerService private ProductService productservice;... bnd-maven-plugin Spring/CDI: Services and injectable dependencies are discovered and satisfied at deploy time by classpath scanning

22 Step 1: In-JVM Microservices OSGi runtimes can contain numerous bundles in a single JVM which can be referred to as In-JVM microservices Benefits: Although you program for failure, it does not have the drawbacks of a distributed system Bundles and service APIs are strictly versioned Bundles will NOT be activated at deploy time unless all service dependencies can be satisfied Direct method invocations and POJOs rather than invoking remote services and processing JSON or XML Less vulnerable to security attacks since service invocations do not go across the network Drawbacks: Heavily utilized services can cause a performance impact on other services since they are in the same JVM

23 Step 2 Distributed OSGi Publish services as remote services Add service properties: service.exported.interfaces, service.exported.configs Service Consumers have no knowledge whether service is remote or not See Apache CXF DOSGi and Eclipse ECF

24 Step 3 Microservices Platform Runtime Platform Must Provide Service Fault Tolerance Auto Scaling Platform Services Centralized Log Management Centralized monitoring Meso, Kubernetes, CloudFoundry, WeDeploy, etc

25 Case Study: Liferay Digital Enterprise Liferay Portal 6.2 CE and EE Web Content Management, Document Management and Collaboration, Workflow and Forms etc Proprietary WAR based modular system for extensions Liferay Portal 7.0 and Digital Enterprise Subsystems: WEM, Collaboration, Forms and Workflow, Platform 500+ modules (JAR)

26 Case Study: Liferay DXP Next Steps Implemented Distributed OSGi Runtime Integrate Distributed OSGi Runtime into PaaS Platform Wedeploy.com Liferay s PaaS Platform Kubernetes, OpenShift, CloudFoundry

27 Semantic Versioning com.mycompany.mybundle jar major.minor.patch com.mycompany.mybundle jar major = breaking changes minor = new feature release com.mycompany.mybundle jar patch = bug fixes Minor & patch versions are guaranteed to be binary backward compatible!

28 Semantic Versioning (Reporting) Reporting and enforcement of semantic versioning rules can be accomplished with the help of Bndtools at build-time mvn bundle:baseline maven-bundle-plugin

29 Thank You Liferay and Liferay Faces are trademarks or registered trademarks of Liferay, Inc. Java Community Process and JCP are service marks of Oracle Corporation in the United States and in other countries Java, Java EE, JavaOne, JVM, and JavaServer are trademarks or registered trademarks of Oracle Corporation in the United States and in other countries OSGi is a trademark of The OSGi Alliance Apache Maven is a trademark of The Apache Software Foundation "Tomcat" is a registered trademark of the Apache Software Foundation. "Apache Tomcat" and the Apache Tomcat project logo are trademarks of the Apache Software Foundation. Gradle is a trademark of Gradle, Inc. in the United States and/or other jurisdictions Payara is a trademark of Payara Services Limited and all its affiliates Spring Boot is a trademark of Pivotal Software, Inc. in the U.S. and other countries All other trademarks mentioned herein are the property of their respective owners

Modularity in Java. With OSGi. Alex Docklands.LJC January Copyright 2016 Alex Blewitt

Modularity in Java. With OSGi. Alex Docklands.LJC January Copyright 2016 Alex Blewitt Modularity in Java With OSGi Alex Blewitt @alblue Docklands.LJC January 2016 Modularity in Java Modularity is Easy? Modularity is Hard! Modularity is Hard! Modularity is Hard! Modularity is Hard! Modularity

More information

Agenda. Why OSGi. What is OSGi. How OSGi Works. Apache projects related to OSGi Progress Software Corporation. All rights reserved.

Agenda. Why OSGi. What is OSGi. How OSGi Works. Apache projects related to OSGi Progress Software Corporation. All rights reserved. OSGi Overview freeman.fang@gmail.com ffang@apache.org Apache Servicemix Commiter/PMC member Apache Cxf Commiter/PMC member Apache Karaf Commiter/PMC member Apache Felix Commiter Agenda Why OSGi What is

More information

Tuscany: Applying OSGi modularity after the fact

Tuscany: Applying OSGi modularity after the fact Tuscany: Applying OSGi modularity after the fact Luciano Resende lresende@apache.org http://lresende.blogspot.com Raymond Feng rfeng@apache.org Agenda Introduction and Motivation Status of current Tools

More information

Scripting Languages in OSGi. Thursday, November 8, 12

Scripting Languages in OSGi. Thursday, November 8, 12 Scripting Languages in OSGi Frank Lyaruu CTO Dexels Project lead Navajo Framework Amsterdam www.dexels.com Twitter: @lyaruu Navajo Framework TSL XML based script language Compiled to Java Recently ported

More information

Red Hat JBoss Enterprise Application Platform 7.2

Red Hat JBoss Enterprise Application Platform 7.2 Red Hat JBoss Enterprise Application Platform 7.2 Introduction to JBoss EAP For Use with Red Hat JBoss Enterprise Application Platform 7.2 Last Updated: 2018-11-29 Red Hat JBoss Enterprise Application

More information

Modular Java Applications with Spring, dm Server and OSGi

Modular Java Applications with Spring, dm Server and OSGi Modular Java Applications with Spring, dm Server and OSGi Copyright 2005-2008 SpringSource. Copying, publishing or distributing without express written permission is prohibit Topics in this session Introduction

More information

IBM. IBM WebSphere Application Server Migration Toolkit. WebSphere Application Server. Version 9.0 Release

IBM. IBM WebSphere Application Server Migration Toolkit. WebSphere Application Server. Version 9.0 Release WebSphere Application Server IBM IBM WebSphere Application Server Migration Toolkit Version 9.0 Release 18.0.0.3 Contents Chapter 1. Overview......... 1 Chapter 2. What's new........ 5 Chapter 3. Support..........

More information

OSGi Best Practices. Emily

OSGi Best Practices. Emily OSGi Best Practices Emily Jiang @IBM Use OSGi in the correct way... AGENDA > Why OSGi? > What is OSGi? > How to best use OSGi? 3 Modularization in Java > Jars have no modularization characteristics No

More information

Managing Installations and Provisioning of OSGi Applications. Carsten Ziegeler

Managing Installations and Provisioning of OSGi Applications. Carsten Ziegeler Managing Installations and Provisioning of OSGi Applications Carsten Ziegeler cziegeler@apache.org About Member of the ASF Current PMC Chair of Apache Sling Apache Sling, Felix, ACE, Portals (Incubator,

More information

OSGi. Building LinkedIn's Next Generation Architecture with OSGI

OSGi. Building LinkedIn's Next Generation Architecture with OSGI OSGi Building LinkedIn's Next Generation Architecture with OSGI Yan Pujante Distinguished Software Engineer Member of the Founding Team @ LinkedIn ypujante@linkedin.com http://www.linkedin.com/in/yan Background

More information

Building LinkedIn's Next Generation Architecture with OSGI

Building LinkedIn's Next Generation Architecture with OSGI OSGi Building LinkedIn's Next Generation Architecture with OSGI Yan Pujante Distinguished Software Engineer Member of the Founding Team @ LinkedIn ypujante@linkedin.com http://www.linkedin.com/in/yan Yan

More information

OSGi on the Server. Martin Lippert (it-agile GmbH)

OSGi on the Server. Martin Lippert (it-agile GmbH) OSGi on the Server Martin Lippert (it-agile GmbH) lippert@acm.org 2009 by Martin Lippert; made available under the EPL v1.0 October 6 th, 2009 Overview OSGi in 5 minutes Apps on the server (today and tomorrow)

More information

Equinox OSGi: Pervasive Componentization

Equinox OSGi: Pervasive Componentization Equinox OSGi: Pervasive Componentization Thomas Watson Equinox Development Lead IBM Lotus Jeff McAffer, Eclipse RCP and Equinox Lead IBM Rational Software 10/3/2006 Why is Eclipse interesting? Extensible

More information

Modular Java EE in the cloud

Modular Java EE in the cloud Modular Java EE in the cloud A practical guide to mixing java EE and OSGi Jfokus 2013 Practical Guide to Modularity in the Cloud Age Jfokus 2013 Bert Ertman Fellow at Luminis in the Netherlands JUG Leader

More information

Semantic Versioning A Large Existing Codebase

Semantic Versioning A Large Existing Codebase Case Study Semantic Versioning A Large Existing Codebase EclipseCon 2014 Raymond Augé @rotty3000 #eclipsecon #semver Outline The Goal The Problem

More information

Red Hat JBoss Fuse 6.1

Red Hat JBoss Fuse 6.1 Red Hat JBoss Fuse 6.1 Managing OSGi Dependencies How to package applications for OSGi containers Last Updated: 2017-10-12 Red Hat JBoss Fuse 6.1 Managing OSGi Dependencies How to package applications

More information

Liberate your components with OSGi services

Liberate your components with OSGi services Liberate your components with OSGi services One products journey through the Modularity Maturity Model Alasdair Nottingham (not@uk.ibm.com) WebSphere Application Server V8.5 Liberty Profile Development

More information

Spring and OSGi. Martin Lippert akquinet agile GmbH Bernd Kolb Gerd Wütherich

Spring and OSGi. Martin Lippert akquinet agile GmbH Bernd Kolb Gerd Wütherich Spring and OSGi Martin Lippert akquinet agile GmbH lippert@acm.org Bernd Kolb b.kolb@kolbware.de Gerd Wütherich gerd@gerd-wuetherich.de 2006 by Martin Lippert, Bernd Kolb & Gerd Wütherich, made available

More information

Modern frontend workflows in Liferay Portal and Liferay DXP. Iván Zaera Avellon, Liferay Chema Balsas, Liferay Pier Paolo Ramon, SMC

Modern frontend workflows in Liferay Portal and Liferay DXP. Iván Zaera Avellon, Liferay Chema Balsas, Liferay Pier Paolo Ramon, SMC Modern frontend workflows in Liferay Portal and Liferay DXP Iván Zaera Avellon, Liferay Chema Balsas, Liferay Pier Paolo Ramon, SMC https://www.youtube.com/watch?v=zcdwd4scz6i https://www.youtube.com/watch?v=8zfvppif-sm

More information

Red Hat Developer Studio 12.0

Red Hat Developer Studio 12.0 Red Hat Developer Studio 12.0 Release Notes and Known Issues Highlighted features in 12.0 Last Updated: 2018-07-18 Red Hat Developer Studio 12.0 Release Notes and Known Issues Highlighted features in

More information

Carsten Ziegeler

Carsten Ziegeler Embrace OSGi Change A Developer's Quickstart Carsten Ziegeler cziegeler@apache.org About Member of the ASF Sling, Felix, Cocoon, Portals, Sanselan, Excalibur, Incubator PMC: Felix, Portals, Cocoon, Incubator,

More information

mimacom & LiferayDXP Campaign

mimacom & LiferayDXP Campaign mimacom & LiferayDXP Campaign www.mimacom.sk/liferay-dxp-cee About me Gustav Novotný CEO Software Engineer Liferay Consultant gustav.novotny@mimacom.com Mobile: +420 605466614 Development & Consulting

More information

AppDev StudioTM 3.2 SAS. Migration Guide

AppDev StudioTM 3.2 SAS. Migration Guide SAS Migration Guide AppDev StudioTM 3.2 The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2006. SAS AppDev TM Studio 3.2: Migration Guide. Cary, NC: SAS Institute Inc.

More information

Creating an application with the Virgo Web Server

Creating an application with the Virgo Web Server Creating an application with the Virgo Web Server GreenPages: a demonstration Christopher Frost Ben Hale Rob Harrop Glyn Normington Steve Powell Andy Wilkinson Abstract 2.1.0.CI-10 Warning Please note

More information

GlassFish V3. Jerome Dochez. Sun Microsystems, Inc. hk2.dev.java.net, glassfish.dev.java.net. Session ID YOUR LOGO HERE

GlassFish V3. Jerome Dochez. Sun Microsystems, Inc. hk2.dev.java.net, glassfish.dev.java.net. Session ID YOUR LOGO HERE YOUR LOGO HERE GlassFish V3 Jerome Dochez Sun Microsystems, Inc. hk2.dev.java.net, glassfish.dev.java.net Session ID 1 Goal of Your Talk What Your Audience Will Gain Learn how the GlassFish V3 groundbreaking

More information

Creating an application with dm Server

Creating an application with dm Server Creating an application with dm Server GreenPages: a demonstration Christopher Frost Ben Hale Rob Harrop Glyn Normington Steve Powell Andy Wilkinson 2.0.0.RC1 Abstract Spring application programmers are

More information

1.2. Name(s) and address of Document Author(s)/Supplier: Sahoo: 1.3. Date of This Document: 12 July 2008

1.2. Name(s) and  address of Document Author(s)/Supplier: Sahoo: 1.3. Date of This Document: 12 July 2008 01234567890123456789012345678901234567890123456789012345678901234567890123456789 1. Introduction 1.1. Project/Component Working Name: Modularization of GlassFish using OSGi 1.2. Name(s) and e-mail address

More information

Jigsaw and OSGi: What the Heck Happens Now?

Jigsaw and OSGi: What the Heck Happens Now? Jigsaw and OSGi: What the Heck Happens Now? Neil Bartlett neil.bartlett@paremus.com Jigsaw and OSGi: WTF Happens Now? Neil Bartlett neil.bartlett@paremus.com Agenda WTF is a Module System? How do OSGi

More information

Using OSGi in Modular WebSphere Applications

Using OSGi in Modular WebSphere Applications Using OSGi in Modular WebSphere Applications Hannah Ramlee, IBM Software Engineer 2010 IBM Corporation 2 Cutting to the chase What: The WAS V7 Feature Pack for OSGi Applications and JPA 2.0 Why: Common

More information

Red Hat Process Automation Manager 7.0 Planning a Red Hat Process Automation Manager installation

Red Hat Process Automation Manager 7.0 Planning a Red Hat Process Automation Manager installation Red Hat Process Automation Manager 7.0 Planning a Red Hat Process Automation Manager installation Last Updated: 2018-08-31 Red Hat Process Automation Manager 7.0 Planning a Red Hat Process Automation

More information

Leverage Rational Application Developer v8 to develop OSGi application and test with Websphere Application Server v8

Leverage Rational Application Developer v8 to develop OSGi application and test with Websphere Application Server v8 Leverage Rational Application Developer v8 to develop OSGi application and test with Websphere Application Server v8 Author: Ying Liu cdlliuy@cn.ibm.com Date: June,29 2011 2010 IBM Corporation THE INFORMATION

More information

Demystifying OSGi bundles Excerpted from

Demystifying OSGi bundles Excerpted from Demystifying OSGi bundles Excerpted from Spring Dynamic Modules in Action EARLY ACCESS EDITION Arnaud Cogoluegnes, Thierry Templier, and Andy Piper MEAP Release: June 2009 Softbound print: Summer 2010

More information

IBM WebSphere Application Server 8. Java EE 6 Feature Packs

IBM WebSphere Application Server 8. Java EE 6 Feature Packs IBM WebSphere Application Server 8 EE 6 Feature Packs Thomas Bussière- bussiere@fr.ibm.com IT Architect Business Solution Center La Gaude, France Enabling Developers to Start With Open Source/Community

More information

Spring Framework 5.0 on JDK 8 & 9

Spring Framework 5.0 on JDK 8 & 9 Spring Framework 5.0 on JDK 8 & 9 Juergen Hoeller Spring Framework Lead Pivotal 1 Spring Framework 5.0 (Overview) 5.0 GA as of September 28 th, 2017 one week after JDK 9 GA! Embracing JDK 9 as well as

More information

Equinox Project Update

Equinox Project Update Equinox Project Update Jeff McAffer, Senior Technical Staff Member Eclipse RCP and Equinox Lead 2007 by IBM Corp; made available under the Creative Commons Att. Nc Nd 2.5 license October 2007 What is Equinox?

More information

What is it? What does it do?

What is it? What does it do? JBoss Enterprise Application Platform What is it? JBoss Enterprise Application Platform is the industryleading platform for next-generation enterprise Java applications. It provides a stable, open source

More information

Using Apache Felix: OSGi best practices. Marcel Offermans luminis

Using Apache Felix: OSGi best practices. Marcel Offermans luminis Using Apache Felix: OSGi best practices Marcel Offermans luminis 1 About me Marcel Offermans Software architect at luminis Consultancy & product development Over 4 years of experience with OSGi Committer

More information

Red Hat JBoss Enterprise Application Platform 7.1

Red Hat JBoss Enterprise Application Platform 7.1 Red Hat JBoss Enterprise Application Platform 7.1 Introduction to JBoss EAP For Use with Red Hat JBoss Enterprise Application Platform 7.1 Last Updated: 2018-02-08 Red Hat JBoss Enterprise Application

More information

What is Liferay and why do we need it? Vy Bui

What is Liferay and why do we need it? Vy Bui What is Liferay and why do we need it? Vy Bui Today s agenda Introduction What is Liferay? Why should developers care about Liferay? What is Liferay as a CMS? How to use some cool features to achieve the

More information

Spring Framework 2.5: New and Notable. Ben Alex, Principal Software Engineer, SpringSource

Spring Framework 2.5: New and Notable. Ben Alex, Principal Software Engineer, SpringSource Spring Framework 2.5: New and Notable Ben Alex, Principal Software Engineer, SpringSource GOAL> Learn what s new in Spring 2.5 and why it matters to you springsource.com 2 Agenda Goals of Spring 2.5 Support

More information

Creating an application with dm Server

Creating an application with dm Server Creating an application with dm Server GreenPages: a demonstration Christopher Frost Ben Hale Rob Harrop Glyn Normington Steve Powell Andy Wilkinson 2.0.0.M3 Abstract Spring application programmers are

More information

Developing Java Applications with OSGi Capital District Java Developers Network. Michael P. Redlich March 20, 2008

Developing Java Applications with OSGi Capital District Java Developers Network. Michael P. Redlich March 20, 2008 Developing Java Applications with OSGi Capital District Java Developers Network Michael P. Redlich March 20, My Background (1) Degree B.S. in Computer Science Rutgers University (go Scarlet Knights!) Petrochemical

More information

Apache Felix. Richard S. Hall. A Standard Plugin Model for Apache. Atlanta, Georgia U.S.A. November 13th, 2007

Apache Felix. Richard S. Hall. A Standard Plugin Model for Apache. Atlanta, Georgia U.S.A. November 13th, 2007 Apache Felix A Standard Plugin Model for Apache Richard S. Hall Atlanta, Georgia U.S.A. November 13th, 2007 Agenda Why OSGi technology? OSGi technology overview Apache Felix status Example application

More information

Struts 2 Maven Archetypes

Struts 2 Maven Archetypes Struts 2 Maven Archetypes DEPRECATED: moved to http://struts.apache.org/maven-archetypes/ Struts 2 provides several Maven archetypes that create a starting point for our own applications. Contents 1 DEPRECATED:

More information

Oracle Application Development Framework Overview

Oracle Application Development Framework Overview An Oracle White Paper July 2009 Oracle Application Development Framework Overview Introduction... 1 Oracle ADF Making Java EE Development Simpler... 2 THE ORACLE ADF ARCHITECTURE... 3 The Business Services

More information

Modularity in Java 9. Balázs Lájer Software Architect, GE HealthCare. HOUG Oracle Java conference, 04. Apr

Modularity in Java 9. Balázs Lájer Software Architect, GE HealthCare. HOUG Oracle Java conference, 04. Apr Modularity in Java 9 Balázs Lájer Software Architect, GE HealthCare HOUG Oracle Java conference, 04. Apr. 2016. Modularity in Java before Java 9 Source: https://www.osgi.org/developer/architecture/ 2 MANIFEST.MF

More information

JSR 277, 291 and OSGi, Oh My! - OSGi and Java Modularity

JSR 277, 291 and OSGi, Oh My! - OSGi and Java Modularity JSR 277, 291 and OSGi, Oh My! - OSGi and Java Modularity Richard S. Hall June 28 th, 2006 Agenda Modularity Modularity in Java Modularity in Java + OSGi technology Introduction to OSGi technology Apache

More information

MicroProfile - New and Noteworthy

MicroProfile - New and Noteworthy MicroProfile - New and Noteworthy Ivar Grimstad Principal Consultant, Cybercom Sweden https://github.com/ivargrimstad https://www.linkedin.com/in/ivargrimstad Background MicroProfile Demo and Samples Monolithic

More information

Android and OSGi: Can they Work Together?

Android and OSGi: Can they Work Together? Android and OSGi: Can they Work Together? BJ Hargrave Senior Technical Staff Member, IBM Lotus Neil Bartlett Java Developer and Consultant Yes! Any Questions? Motivation Different Models JVM DVM DVM App

More information

Microservices with Red Hat. JBoss Fuse

Microservices with Red Hat. JBoss Fuse Microservices with Red Hat Ruud Zwakenberg - ruud@redhat.com Senior Solutions Architect June 2017 JBoss Fuse and 3scale API Management Disclaimer The content set forth herein is Red Hat confidential information

More information

OSGi. Building and Managing Pluggable Applications

OSGi. Building and Managing Pluggable Applications OSGi Building and Managing Pluggable Applications What A Mess Billing Service Orders Shipping Accounting Workflow Inventory Application From The View Of... Building monolithic applications is evil nuf

More information

Spring Web Services Tutorial With Example In

Spring Web Services Tutorial With Example In Spring Web Services Tutorial With Example In Eclipse Bottom Up In addition to creating a basic web service and client, the article goes a step further This article will be using the Eclipse IDE (Kepler),

More information

Tattletale. What is Tattletale? Enterprise archives JBoss Application Server 7 Putting it all together Roadmap

Tattletale. What is Tattletale? Enterprise archives JBoss Application Server 7 Putting it all together Roadmap Tattletale What is Tattletale? Enterprise archives JBoss Application Server 7 Putting it all together Roadmap Problems You are faced with a lot of Java archives and you don't know how they relate You need

More information

Red Hat Fuse 7.0 Installing on Apache Karaf

Red Hat Fuse 7.0 Installing on Apache Karaf Red Hat Fuse 7.0 Installing on Apache Karaf Installing Red Hat Fuse on the Apache Karaf container Last Updated: 2018-08-27 Red Hat Fuse 7.0 Installing on Apache Karaf Installing Red Hat Fuse on the Apache

More information

Christopher Frost Virgo Committer Martin Lippert Lead, Spring Development Tools SpringSource, a division of VMware 3rd November 2011

Christopher Frost Virgo Committer Martin Lippert Lead, Spring Development Tools SpringSource, a division of VMware 3rd November 2011 All About Virgo Christopher Frost Virgo Committer Martin Lippert Lead, Spring Development Tools SpringSource, a division of VMware 3rd November 2011 OSGi Alliance Marketing 2008-2010 Page. 1 All Rights

More information

Index. Decomposability, 13 Deep reflection, 136 Dependency hell, 19 --describe-module, 39

Index. Decomposability, 13 Deep reflection, 136 Dependency hell, 19 --describe-module, 39 Index A --add-exports option, 28, 134 136, 142, 192 Apache Maven compatibility, 214 Compiler plugin, 212, 214 goals, 209 JDeps plugin goals, 210 options, 211 JEP 223 New Version-String scheme, 209 Automatic

More information

GAVIN KING RED HAT CEYLON SWARM

GAVIN KING RED HAT CEYLON SWARM GAVIN KING RED HAT CEYLON SWARM CEYLON PROJECT A relatively new programming language which features: a powerful and extremely elegant static type system built-in modularity support for multiple virtual

More information

About me. Jesper Pedersen. Project lead for. Chairman for Boston JBoss User Group. Core developer, JBoss by Red Hat

About me. Jesper Pedersen. Project lead for. Chairman for Boston JBoss User Group. Core developer, JBoss by Red Hat About me Jesper Pedersen Core developer, JBoss by Red Hat Project lead for IronJacamar JCA container Tattletale software quality tool JBoss Profiler 2 profiler suite Papaki high-performance annotation

More information

Java EE 7 is ready What to do next? Peter Doschkinow Senior Java Architect

Java EE 7 is ready What to do next? Peter Doschkinow Senior Java Architect Java EE 7 is ready What to do next? Peter Doschkinow Senior Java Architect The following is intended to outline our general product direction. It is intended for information purposes only, and may not

More information

Breaking Apart the Monolith

Breaking Apart the Monolith Breaking Apart the Monolith with Modularity & Microservices Igor Arouca Liferay, Inc Michael C. Han Liferay, Inc June 26 th, 2017 Room #206 What is a Monolith? Self-contained, single process Difficult

More information

Red Hat JBoss Fuse 6.1

Red Hat JBoss Fuse 6.1 Red Hat JBoss Fuse 6.1 Tooling Installation Guide Installing Red Hat JBoss Fuse ToolingRed Hat Fuse IDE Last Updated: 2017-10-16 Red Hat JBoss Fuse 6.1 Tooling Installation Guide Installing Red Hat JBoss

More information

Chapter 1: First steps with JAX-WS Web Services

Chapter 1: First steps with JAX-WS Web Services Chapter 1: First steps with JAX-WS Web Services This chapter discusses about what JAX-WS is and how to get started with developing services using it. The focus of the book will mainly be on JBossWS a Web

More information

11-15 DECEMBER ANTWERP BELGIUM

11-15 DECEMBER ANTWERP BELGIUM 1 Java EE Enhancements for Real World Deployments Nagesh Susarla Staff Software Engineer BEA Systems www.javapolis.com 2 Overall Presentation Goal Get an understanding of the latest application packaging,

More information

Class Dependency Analyzer CDA Developer Guide

Class Dependency Analyzer CDA Developer Guide CDA Developer Guide Version 1.4 Copyright 2007-2017 MDCS Manfred Duchrow Consulting & Software Author: Manfred Duchrow Table of Contents: 1 Introduction 3 2 Extension Mechanism 3 1.1. Prerequisites 3 1.2.

More information

Spring Dynamic Modules

Spring Dynamic Modules June 10-11, 2008 Berlin, Germany Spring Dynamic Modules by Example Martin Lippert Gerd Wütherich Agenda Spring Overview of the Spring framework A short example Spring Dynamic Modules Overview of Spring

More information

IBM Rational Application Developer for WebSphere Software, Version 7.0

IBM Rational Application Developer for WebSphere Software, Version 7.0 Visual application development for J2EE, Web, Web services and portal applications IBM Rational Application Developer for WebSphere Software, Version 7.0 Enables installation of only the features you need

More information

ECLIPSE TUTORIAL HOW TO WRITE JAVA PROGRAM IN ECLIPSE STEP BY STEP ECLIPSE TUTORIAL FOR BEGINNERS JAVA

ECLIPSE TUTORIAL HOW TO WRITE JAVA PROGRAM IN ECLIPSE STEP BY STEP ECLIPSE TUTORIAL FOR BEGINNERS JAVA ECLIPSE TUTORIAL HOW TO WRITE JAVA PROGRAM IN ECLIPSE STEP BY STEP ECLIPSE TUTORIAL FOR BEGINNERS JAVA page 1 / 5 page 2 / 5 eclipse tutorial how to pdf Eclipse Tutorial for Beginners - Learn Eclipse in

More information

Architecting Java solutions for CICS

Architecting Java solutions for CICS Architecting Java solutions for CICS Architecting Java solutions for CICS Course introduction Course introduction Reasons for hosting Java in CICS Requirements: Knowledge of transaction processing Experience

More information

Cheat Sheet: Wildfly Swarm

Cheat Sheet: Wildfly Swarm Cheat Sheet: Wildfly Swarm Table of Contents 1. Introduction 1 5.A Java System Properties 5 2. Three ways to Create a 5.B Command Line 6 Swarm Application 1 5.C Project Stages 6 2.A Developing a Swarm

More information

Maven POM project modelversion groupid artifactid packaging version name

Maven POM project modelversion groupid artifactid packaging version name Maven The goal of this document is to introduce the Maven tool. This document just shows some of the functionalities of Maven. A complete guide about Maven can be found in http://maven.apache.org/. Maven

More information

Webservices In Java Tutorial For Beginners Using Netbeans Pdf

Webservices In Java Tutorial For Beginners Using Netbeans Pdf Webservices In Java Tutorial For Beginners Using Netbeans Pdf Java (using Annotations, etc.). Part of way) (1/2). 1- Download Netbeans IDE for Java EE from here: 2- Follow the tutorial for creating a web

More information

Red Hat Developer Studio 12.0

Red Hat Developer Studio 12.0 Red Hat Developer Studio 12.0 Supported Configurations and Components Supported Configurations and Components for Red Hat Developer Studio Last Updated: 2018-07-16 Red Hat Developer Studio 12.0 Supported

More information

Component based Development. Table of Contents. Notes. Notes. Notes. Web Application Development. Zsolt Tóth

Component based Development. Table of Contents. Notes. Notes. Notes. Web Application Development. Zsolt Tóth Component based Development Web Application Development Zsolt Tóth University of Miskolc 2017 Zsolt Tóth (University of Miskolc) Component based Development 2017 1 / 30 Table of Contents 1 2 3 4 Zsolt

More information

Sonatype CLM Enforcement Points - Nexus. Sonatype CLM Enforcement Points - Nexus

Sonatype CLM Enforcement Points - Nexus. Sonatype CLM Enforcement Points - Nexus Sonatype CLM Enforcement Points - Nexus i Sonatype CLM Enforcement Points - Nexus Sonatype CLM Enforcement Points - Nexus ii Contents 1 Introduction 1 2 Sonatype CLM for Repository Managers 2 3 Nexus Pro

More information

Create your own Carbon Component. Sameera Jayasoma Technical Lead and Product Manager of WSO2 Carbon

Create your own Carbon Component. Sameera Jayasoma Technical Lead and Product Manager of WSO2 Carbon Create your own Carbon Component Sameera Jayasoma Technical Lead and Product Manager of WSO2 Carbon sameera@wso2.com WSO2 Founded in 2005 by acknowledged leaders in XML, Web Services Technologies & Standards

More information

Lab 1 Introduction ipojo Component Model

Lab 1 Introduction ipojo Component Model Lab 1 Introduction ipojo Component Model Thomas Leveque A Page 1, January 27, 2011 Service Oriented Computation New computing paradigm Service as fundamental element Reduce dependencies among «software

More information

Red Hat JBoss Developer Studio 11.1

Red Hat JBoss Developer Studio 11.1 Red Hat JBoss Developer Studio 11.1 Supported Configurations and Components Supported Configurations and Components for Red Hat JBoss Developer Studio Last Updated: 2017-11-03 Red Hat JBoss Developer

More information

Comparing JavaBeans and OSGi

Comparing JavaBeans and OSGi Comparing JavaBeans and OSGi Towards an Integration of Two Complementary Component Models HUMBERTO CERVANTES JEAN-MARIE FAVRE 09/02 Who I Am Humberto Cervantes 3d year PhD at Adèle team, LSR, Grenoble

More information

Apache Geronimo 3.0 Deep Dive

Apache Geronimo 3.0 Deep Dive Apache Geronimo 3.0 Deep Dive Kevan Miller, IBM kevan@apache.org Nov. 9, 2011 Who Am I Kevan Miller Employer: IBM Ac@ve at the ASF since 2005: Geronimo (PMC Chair) OpenEJB, Aries, OpenWebBeans Mentoring

More information

1 Markus Eisele, Insurance - Strategic IT-Architecture

1 Markus Eisele, Insurance - Strategic IT-Architecture 1 Agenda 1. Java EE Past, Present and Future 2. Java EE 7 Platform as a Service 3. PaaS Roadmap 4. Focus Areas 5. All the Specs 2 http://blog.eisele.net http://twitter.com/myfear markus.eisele@msg-systems.com

More information

I Got My Mojo Workin'

I Got My Mojo Workin' I Got My Mojo Workin' Gary Murphy Hilbert Computing, Inc. http://www.hilbertinc.com/ glm@hilbertinc.com Gary Murphy I Got My Mojo Workin' Slide 1 Agenda Quick overview on using Maven 2 Key features and

More information

Red Hat JBoss Fuse 6.1

Red Hat JBoss Fuse 6.1 Red Hat JBoss Fuse 6.1 Installation Guide Installing Red Hat JBoss Fuse on a computer Last Updated: 2017-10-12 Red Hat JBoss Fuse 6.1 Installation Guide Installing Red Hat JBoss Fuse on a computer JBoss

More information

Red Hat Fuse 7.0 Getting Started

Red Hat Fuse 7.0 Getting Started Red Hat Fuse 7.0 Getting Started Get started quickly with Red Hat Fuse! Last Updated: 2018-07-11 Red Hat Fuse 7.0 Getting Started Get started quickly with Red Hat Fuse! Legal Notice Copyright 2018 Red

More information

OSGi Application Development using GlassFish Server. Version 1.0

OSGi Application Development using GlassFish Server. Version 1.0 OSGi Application Development using GlassFish Server Table of Contents Version 1.0 1 Introduction:...3 1.1 New to OSGi?...3 1.2 Relationship between GlassFish Server & OSGi...4 2 OSGi Applications in GlassFish

More information

Optimizing Enterprise Java for a Microservices Architecture Otávio

Optimizing Enterprise Java for a Microservices Architecture Otávio Optimizing Enterprise Java for a Microservices Architecture Otávio Santana @otaviojava otaviojava@apache.org Enterprise Java Standards History J2EE 1.2 2000 Release Cadence J2EE 1.3 J2EE 1.4 2005 Java

More information

Red Hat Fuse 7.1 Getting Started

Red Hat Fuse 7.1 Getting Started Red Hat Fuse 7.1 Getting Started Get started quickly with Red Hat Fuse! Last Updated: 2019-01-02 Red Hat Fuse 7.1 Getting Started Get started quickly with Red Hat Fuse! Legal Notice Copyright 2019 Red

More information

Red Hat Fuse 7.0 Deploying into Apache Karaf

Red Hat Fuse 7.0 Deploying into Apache Karaf Red Hat Fuse 7.0 Deploying into Apache Karaf Deploying application packages into the Apache Karaf container Last Updated: 2018-08-27 Red Hat Fuse 7.0 Deploying into Apache Karaf Deploying application

More information

Dependencies, dependencies, dependencies

Dependencies, dependencies, dependencies Dependencies, dependencies, dependencies Marcel Offermans!"#$%&'&()"* 1 Marcel Offermans Fellow and Software Architect at Luminis Technologies marcel.offermans@luminis.nl Member and Committer at Apache

More information

Developing Applications with Java EE 6 on WebLogic Server 12c

Developing Applications with Java EE 6 on WebLogic Server 12c Developing Applications with Java EE 6 on WebLogic Server 12c Duration: 5 Days What you will learn The Developing Applications with Java EE 6 on WebLogic Server 12c course teaches you the skills you need

More information

Liferay Digital Experience Platform. New Features Summary

Liferay Digital Experience Platform. New Features Summary Liferay Digital Experience Platform New Features Summary Liferay has redesigned its platform with new functionality in Liferay Digital Experience Platform (DXP). The following is a summary of the key new

More information

Enterprise Java in 2012 and Beyond From Java EE 6 To Cloud Computing

Enterprise Java in 2012 and Beyond From Java EE 6 To Cloud Computing Enterprise Java in 2012 and Beyond From Java EE 6 To Cloud Computing Jürgen Höller, Principal Engineer, SpringSource 2012 SpringSource, A division of VMware. All rights reserved Deployment Platforms: Becoming

More information

Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX

Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX Duration: 5 Days US Price: $2795 UK Price: 1,995 *Prices are subject to VAT CA Price: CDN$3,275 *Prices are subject

More information

Architecting Java solutions for CICS This course presents the compelling reasons for developing Java applications in CICS Transaction Server. The course covers the various usage models of Java applications

More information

Fat / Uber jars - Using the Shade Plugin

Fat / Uber jars - Using the Shade Plugin Fat / Uber jars - Using the Shade Plugin Shading the container and the application has some challenges like merging correctly resources (META-INF/services/ typically). Here is a maven shade plugin configuration

More information

The Next Generation. Prabhat Jha Principal Engineer

The Next Generation. Prabhat Jha Principal Engineer The Next Generation Prabhat Jha Principal Engineer What do you wish you had in an Open Source JEE Application Server? Faster Startup Time? Lighter Memory Footprint? Easier Administration? 7 Reasons To

More information

Red Hat JBoss Fuse 6.3

Red Hat JBoss Fuse 6.3 Red Hat JBoss Fuse 6.3 Integration Guide Use Integration packs for Red Hat JBoss Fuse Last Updated: 2018-02-07 Red Hat JBoss Fuse 6.3 Integration Guide Use Integration packs for Red Hat JBoss Fuse JBoss

More information

OSGi. Tales from the Trenches. OSGitales from the trenches

OSGi. Tales from the Trenches. OSGitales from the trenches OSGi Tales from the Trenches Bertrand Delacretaz Senior R&D Developer, Day Software, www.day.com Apache Software Foundation Member and Director bdelacretaz@apache.org blog: http://grep.codeconsult.ch twitter:

More information

OSGi & Spring combined

OSGi & Spring combined OSGi & Spring combined Using Spring together with Eclipse Equinox Bernd Kolb b.kolb@kolbware.de http://www.kolbware.de Gerd Wütherich gerd@wuetherich.de http://www.wuetherich.de Martin Lippert lippert@acm.org

More information

JBoss Tattletale. Betraying all your project's naughty little secrets

JBoss Tattletale. Betraying all your project's naughty little secrets JBoss Tattletale Betraying all your project's naughty little secrets JBoss Tattletale Background Goals Features Reports Integration The Future JBoss Tattletale Background JBoss Tattletale - Background

More information

ECLIPSE PERSISTENCE PLATFORM (ECLIPSELINK) FAQ

ECLIPSE PERSISTENCE PLATFORM (ECLIPSELINK) FAQ ECLIPSE PERSISTENCE PLATFORM (ECLIPSELINK) FAQ 1. What is Oracle proposing in EclipseLink, the Eclipse Persistence Platform Project? Oracle is proposing the creation of the Eclipse Persistence Platform

More information