The document discusses evaluating different modularity solutions for a large Java codebase at eBay, including OSGi and Maven, and provides an overview of their strengths and weaknesses in terms of enforcing modularity, managing dependencies, tooling support, and ease of migration from a monolithic codebase. OSGi receives high marks for strongly enforcing modularity but has challenges with tool integration and migration, while Maven has comprehensive tooling but was not designed as a modularity framework.
This document provides an overview of eBay's use of OSGi for its enterprise architecture. Some key points:
- eBay has a large codebase of over 44 million lines of code that was becoming difficult to manage due to its monolithic nature and tight coupling.
- eBay adopted OSGi to introduce modularity and loose coupling into its architecture in order to tame complexity, increase agility, and allow different components to evolve independently.
- OSGi was chosen because its features like bundles, imports/exports, and versioning help achieve eBay's goals of modularity, hiding implementation details, and accurate dependency management.
The document discusses integrating a language-agnostic garbage collection toolkit into various programming language runtimes. It describes how the garbage collector components have been decoupled from the J9 JVM and refactored. It also outlines the process for integrating the garbage collector, including implementing a few required glue APIs to provide language-specific information. Examples of integrating the garbage collector into the CSOM (C implementation of Smalltalk) runtime are also provided.
The document discusses serverless computing with Java functions. It outlines some of the challenges with using Java in a serverless environment, including the fact that Java is not typically used for short-lived "apps" and the JVM may not be suitable. It then presents some solutions and blueprints for building serverless Java applications, including using the Fn Project as an open-source serverless platform, developing functions with Java, improving performance of JVM containers, and leveraging the Java ecosystem.
This document provides an overview of Weblogic Multitenancy including key concepts, components, consolidation benefits, portability for DevOps, isolation capabilities, and live migration. It discusses how multitenancy allows consolidating multiple applications and tenants within a single Weblogic domain for improved resource utilization. Components like resource groups, virtual targets, and domain partitions provide isolation. Portability is enabled via partition export/import. Live migration minimizes downtime.
During this presentation, Craig Silviera, WW Director of Field Engineering described the steps to take to dramatically reduce your IT infrastructure costs when you make the switch from Oracle.
Craig provided actionable steps to:
• Identify the right applications to migrate
• Easily and safely migrate your applications
• Leverage resources before, during and after your migration
To learn more about migrating your database from Oracle to Postgres,
please email info@enterprisedb.com and someone will follow up with you asap.
times ten in-memory database for extreme performanceOracle Korea
어디서나 업무가 가능한 모바일 시대가 되면서 비약적으로 데이터 사이즈가 커지고 이를 처리하기 위해서는 고성능의 빠른 Database가 필요하게 되었습니다. 이러한 요구사항을 반영하여 기존에 우리가 잘 사용하고있던 Database 들도 In-Memory 기술을 속속 도입하고 있습니다. In-Memory 기술은 이전부터 있었지만 하드웨어의 한계와 소프트웨어의 확정성의 부족으로 많이 사용되지 않았던 기술입니다.
Oracle TimesTen 18.1은 기존 In-Memory Database가 가지는 한계를 극복하고, 빠른 처리 속도와 확장(Scaleout)가능한 분산 아키텍처를 지원하는 In-Memory 관계형 Database 입니다.
본 세션에서는 Oracle TimesTen의 분산 아키텍처와 주요 Feature를 소개하고 TimesTen 최신버전인 18.1의 데모를 진행할 예정입니다. 또한 현재 TimesTen을 이용하여 국내 통신사의 서비스를 개발하고 있는 이루온의 실제 적용 사례 및 성능 테스트 결과를 공유하는 시간이 될 것입니다.
OGh Oracle Fusion Middleware Experience 2016 bij FIGI Zeist
Door Maarten Smeets and Robbrecht van Amerongen, 16-02-2016
Ogh fmw experience 16 februari 2016
The document provides an overview of Oracle's WebCenter product and roadmap. Key elements discussed include enhanced support for mobile, social, and cloud capabilities. Upcoming features for WebCenter Portal, Content, and infrastructure include improved user experiences across devices, integration with Oracle Fusion applications and social networks, and cloud-based document and file sharing services. The document also summarizes Oracle's vision for business process management, including adaptive case management, mobile and social integration, enhanced analytics and process simulation capabilities.
This document provides an overview of eBay's use of OSGi for its enterprise architecture. Some key points:
- eBay has a large codebase of over 44 million lines of code that was becoming difficult to manage due to its monolithic nature and tight coupling.
- eBay adopted OSGi to introduce modularity and loose coupling into its architecture in order to tame complexity, increase agility, and allow different components to evolve independently.
- OSGi was chosen because its features like bundles, imports/exports, and versioning help achieve eBay's goals of modularity, hiding implementation details, and accurate dependency management.
The document discusses integrating a language-agnostic garbage collection toolkit into various programming language runtimes. It describes how the garbage collector components have been decoupled from the J9 JVM and refactored. It also outlines the process for integrating the garbage collector, including implementing a few required glue APIs to provide language-specific information. Examples of integrating the garbage collector into the CSOM (C implementation of Smalltalk) runtime are also provided.
The document discusses serverless computing with Java functions. It outlines some of the challenges with using Java in a serverless environment, including the fact that Java is not typically used for short-lived "apps" and the JVM may not be suitable. It then presents some solutions and blueprints for building serverless Java applications, including using the Fn Project as an open-source serverless platform, developing functions with Java, improving performance of JVM containers, and leveraging the Java ecosystem.
This document provides an overview of Weblogic Multitenancy including key concepts, components, consolidation benefits, portability for DevOps, isolation capabilities, and live migration. It discusses how multitenancy allows consolidating multiple applications and tenants within a single Weblogic domain for improved resource utilization. Components like resource groups, virtual targets, and domain partitions provide isolation. Portability is enabled via partition export/import. Live migration minimizes downtime.
During this presentation, Craig Silviera, WW Director of Field Engineering described the steps to take to dramatically reduce your IT infrastructure costs when you make the switch from Oracle.
Craig provided actionable steps to:
• Identify the right applications to migrate
• Easily and safely migrate your applications
• Leverage resources before, during and after your migration
To learn more about migrating your database from Oracle to Postgres,
please email info@enterprisedb.com and someone will follow up with you asap.
times ten in-memory database for extreme performanceOracle Korea
어디서나 업무가 가능한 모바일 시대가 되면서 비약적으로 데이터 사이즈가 커지고 이를 처리하기 위해서는 고성능의 빠른 Database가 필요하게 되었습니다. 이러한 요구사항을 반영하여 기존에 우리가 잘 사용하고있던 Database 들도 In-Memory 기술을 속속 도입하고 있습니다. In-Memory 기술은 이전부터 있었지만 하드웨어의 한계와 소프트웨어의 확정성의 부족으로 많이 사용되지 않았던 기술입니다.
Oracle TimesTen 18.1은 기존 In-Memory Database가 가지는 한계를 극복하고, 빠른 처리 속도와 확장(Scaleout)가능한 분산 아키텍처를 지원하는 In-Memory 관계형 Database 입니다.
본 세션에서는 Oracle TimesTen의 분산 아키텍처와 주요 Feature를 소개하고 TimesTen 최신버전인 18.1의 데모를 진행할 예정입니다. 또한 현재 TimesTen을 이용하여 국내 통신사의 서비스를 개발하고 있는 이루온의 실제 적용 사례 및 성능 테스트 결과를 공유하는 시간이 될 것입니다.
OGh Oracle Fusion Middleware Experience 2016 bij FIGI Zeist
Door Maarten Smeets and Robbrecht van Amerongen, 16-02-2016
Ogh fmw experience 16 februari 2016
The document provides an overview of Oracle's WebCenter product and roadmap. Key elements discussed include enhanced support for mobile, social, and cloud capabilities. Upcoming features for WebCenter Portal, Content, and infrastructure include improved user experiences across devices, integration with Oracle Fusion applications and social networks, and cloud-based document and file sharing services. The document also summarizes Oracle's vision for business process management, including adaptive case management, mobile and social integration, enhanced analytics and process simulation capabilities.
Best practices and lessons learnt from Running Apache NiFi at RenaultDataWorks Summit
No real-time insight without real-time data ingestion. No real-time data ingestion without NiFi ! Apache NiFi is an integrated platform for data flow management at entreprise level, enabling companies to securely acquire, process and analyze disparate sources of information (sensors, logs, files, etc) in real-time. NiFi helps data engineers accelerate the development of data flows thanks to its UI and a large number of powerful off-the-shelf processors. However, with great power comes great responsibilities. Behind the simplicity of NiFi, best practices must absolutely be respected in order to scale data flows in production & prevent sneaky situations. In this joint presentation, Hortonworks and Renault, a French car manufacturer, will present lessons learnt from real world projects using Apache NiFi. We will present NiFi design patterns to achieve high level performance and reliability at scale as well as the process to put in place around the technology for data flow governance. We will also show how these best practices can be implemented in practical use cases and scenarios.
Speakers
Kamelia Benchekroun, Data Lake Squad Lead, Renault Group
Abdelkrim Hadjidj, Solution Engineer, Hortonworks
Key Methodologies for Migrating from Oracle to PostgresEDB
This presentation reviews the key methodologies that all members of your team should consider, before planning a migration from Oracle to Postgres including:
• Prioritizing the right application or project for your first Oracle migration
• Planning a well-defined, phased migration process to minimize risk and increase time to value
• Handling common concerns and pitfalls related to a migration project
• Leveraging resources before, during, and after your migration
• Becoming independent from an Oracle database – without sacrificing performance
With EDB Postgres’ database compatibility for Oracle, it is easy to migrate from your existing Oracle databases. The compatibility feature set includes compatibility for PL/SQL, Oracle’s SQL syntax, and built in SQL functions. This means that many applications can be easily migrated over to EDB Postgres. It also allows you to continue using your existing Oracle skills.
For more information please contact us at sales@enterprisedb.com
Julien Dubois discusses the benefits of developing modular Java applications. Modularity improves quality, lowers complexity, and makes applications easier to reuse and maintain. Spring provides tools for creating layered applications with clear separation of concerns between presentation, service, and repository layers using annotations like @Controller, @Service, and @Repository. For true modularity with hot-deployable modules, OSGi is introduced, which Spring Dynamic Modules builds upon. dm Server leverages Spring, Tomcat, and OSGi to allow deployment of modular applications to virtualized and cloud environments at runtime for improved scalability and reduced costs.
Eclipse MicroProfile 과 Microservice Java framework – HelidonOracle Korea
2016년에 만들어져, 현재 Eclipse Foundation에 기반을 두고 있는 Enterprise Java Microservices를 위한 Eclipse Microprofile에 대해서 알아보고, 간단한 데모를 진행합니다.
Enterprise Java 표준(Java EE, 일명 EE4J)과 Microservices 기반 아키텍처의 실제 요구사항 사이를 차이를 좁히기 시작하였다. 여러가지 유용한 마이크로 서비스 관련 API를 기존 Java EE 7/8 API와 결합하여 사용하고, Heal Check, Metrics, Fault Tolerance, JWT Propagation, Configuration, Tracing 등을 제공하고 있습니다.
이번 세션에서는 MicroProfile의 현재에 대해서 알아 보고, 기타 Microservices를 위한 java Micro framework에 대해서도 알아볼 것 입니다.
This document discusses database as a service and cloud computing. It introduces concepts like software as a service (SaaS), platform as a service (PaaS), and infrastructure as a service (IaaS). It also covers topics like virtualization, multi-tenancy, service level agreements, storage models, distributed storage, replication, and security in the context of database as a service. The document will be covering these topics in more depth throughout the seminar.
MySQL High Availability with Replication New FeaturesShivji Kumar Jha
The session was presented at open source India 2014 (http://osidays.com/osidays/) by Shivji (me) and Manish Kumar. It talks of the new features in MySQL-5.7 Replication. It covered work on
1) performance enhancements in MySQL Replication
2) Usability improvements
3) More flexibility to provide more options to our users so
they can chose what is best for their application.
4) Semisynchronous and MySQL Group Replication
At then end, there are a lot of links to the blogs written on these features by the MySQL Replication engineers.
How to Become a Winner in the JVM Performance-Tuning BattleCapgemini
Has your system been touched by a JVM performance problems? If the answer is yes, this presentation is for you.
You need to be careful if you have to track issues in a production system. One mistake, too much data gathered, and your system will slow down. The root cause of the problem can be application code or the JVM garbage collector.
This presentation describes a real production example of how to measure, tune, and fix a problem with a slow enterprise Java application. To make this job effective, open source tools are used to analyze the JVM’s condition: GC, threads, and code bottlenecks. Measurement in the lab is with open source tools such as Zorka, GCViewer, and JVisual VM. To make the tuning task realistic, real production problems are simulated.
First presented at Oracle OpenWorld 2015.
http://www.capgemini.com/oracle
This document discusses Fn Project, an open source container-native serverless platform. It allows users to write small bits of code called functions that can be easily deployed, invoked and scaled independently in the cloud or on-premises. Fn Project supports many programming languages including Java, Go, Python and JavaScript. It uses Docker containers to wrap and run functions and provides tools for monitoring, management and rapid development of serverless applications.
A service-oriented architecture looks great as boxes and lines on a whiteboard, but what is it like in real life? Are the benefits of flexibility worth the overhead of administration? We've built a framework on top of Finagle that enables a simple approach to building and deploying a microservice with SBT and Scala.
Database Migrations with Gradle and LiquibaseDan Stine
Database migration scripts are a notorious source of difficulty in the software delivery process. This session will discuss how we neutralized this all too common headache.
Now our deployment framework executes database migrations automatically with every application deploy, and the QA team performs self-service full stack deployments in test environments. The resulting additional bandwidth has been invested in more frequent software releases, and the opportunity to focus on higher-value tasks.
This document provides a summary of Ankit Chohan's professional experience and technical skills. He has over 3 years of experience as a senior Java developer working on projects involving data integration, continuous integration/delivery, and financial systems. His technical skills include Java/J2EE, SQL, XML, web services, Jenkins, Ant, and various databases and application servers.
Containers brought new approach for implementation of DevOps workflows. So our CEO, Ruslan Synytsky, devoted a speech to this topic during Madrid meetup and described in details how Java developers can get benefits from Docker containers in Jelastic Cloud.
The document discusses best practices for modern Java application deployment based on the 12 Factor App methodology. It covers topics like packaging applications as JAR files instead of WAR files, managing dependencies, separating configuration from code, building in an automated and isolated way, making processes stateless and portable, enabling concurrency, and achieving parity between development and production environments. The 12 factors of the methodology are also listed and described.
Enterprise Java Web Application Frameworks Sample Stack ImplementationMert Çalışkan
This document provides an overview of enterprise Java web application frameworks and sample stack implementations. It discusses choosing between various UI, controller, model, and integration frameworks like JSF, Spring, Hibernate, and Apache CXF. It then demonstrates a sample stack using these technologies along with Maven, Eclipse, and other tools. The aim is to provide a scalable and high-performance MVC architecture using proven open source solutions.
This document summarizes the AQAvit quality testing program for OpenJDK binaries distributed by Adoptium. It describes the three layers of automation: standalone testing using TestKitGen (TKG), continuous integration (CI) using Jenkins or GitHub Actions, and results aggregation using the Test Results Summary Service (TRSS). TKG standardizes test execution, CI runs tests in parallel across platforms, and TRSS provides a dashboard to analyze results across builds. The document also outlines plans to expand testing to additional categories and use machine learning to analyze results.
Kellyn Pot’Vin-Gorman discusses DevOps tools for winning agility. She emphasizes that while many organizations automate testing, the DevOps journey is longer and involves additional steps like orchestration between environments, security, collaboration, and establishing a culture of continuous improvement. She also stresses that organizations should not forget about managing their data as part of the DevOps process and advocates for approaches like database virtualization to help enhance DevOps initiatives.
Breathing New Life into Apache Oozie with Apache Ambari Workflow ManagerDataWorks Summit
The document discusses Apache Ambari Workflow Manager, a new Ambari View that provides a graphical user interface for visually designing and executing Apache Oozie workflows. It allows users to build workflows without having to write XML definitions. The Workflow Manager integrates with the Ambari file browser and dashboard to manage Oozie jobs. Examples shown include using workflows to perform HBase administrative tasks like table creation and compactions. The presentation concludes with information on Oozie and Ambari resources for learning more.
Slides for the Apache Geode Hands-on Meetup and Hackathon Announcement VMware Tanzu
This document provides an agenda for a hands-on introduction and hackathon kickoff for Apache Geode. The agenda includes details about the hackathon, an introduction to Apache Geode including its history and key features, a hands-on lab to build, run, and use Geode, and a Q&A session. It also outlines how to contribute to the Geode project through code, documentation, issue tracking, and mailing lists.
This document discusses various considerations and steps for migrating from an Oracle database to PostgreSQL. It begins by explaining some key differences between the two databases regarding transactions, schemas, views, and other concepts. It then outlines the main steps of the migration process: migrating the database schema, migrating the data, migrating stored code like PL/SQL, migrating SQL statements, and migrating the application itself. Specific challenges for each step are explored, such as data type translations, handling PL/SQL, and translating Oracle-specific SQL. Finally, several migration tools are briefly described.
Here are the steps to filter the resource properties in the example:
1. Define the my.filter.value property in a filter file (e.g. src/main/filters/filter.properties):
my.filter.value=hello
2. Define the command.line.prop property in the pom.xml:
<properties>
<command.line.prop>hello</command.line.prop>
</properties>
3. The settings.offline property will be filtered from the <offline>true</offline> value defined in settings.xml
4. Add filtering configuration to the pom.xml:
<build>
<filters>
<filter>src
Best practices and lessons learnt from Running Apache NiFi at RenaultDataWorks Summit
No real-time insight without real-time data ingestion. No real-time data ingestion without NiFi ! Apache NiFi is an integrated platform for data flow management at entreprise level, enabling companies to securely acquire, process and analyze disparate sources of information (sensors, logs, files, etc) in real-time. NiFi helps data engineers accelerate the development of data flows thanks to its UI and a large number of powerful off-the-shelf processors. However, with great power comes great responsibilities. Behind the simplicity of NiFi, best practices must absolutely be respected in order to scale data flows in production & prevent sneaky situations. In this joint presentation, Hortonworks and Renault, a French car manufacturer, will present lessons learnt from real world projects using Apache NiFi. We will present NiFi design patterns to achieve high level performance and reliability at scale as well as the process to put in place around the technology for data flow governance. We will also show how these best practices can be implemented in practical use cases and scenarios.
Speakers
Kamelia Benchekroun, Data Lake Squad Lead, Renault Group
Abdelkrim Hadjidj, Solution Engineer, Hortonworks
Key Methodologies for Migrating from Oracle to PostgresEDB
This presentation reviews the key methodologies that all members of your team should consider, before planning a migration from Oracle to Postgres including:
• Prioritizing the right application or project for your first Oracle migration
• Planning a well-defined, phased migration process to minimize risk and increase time to value
• Handling common concerns and pitfalls related to a migration project
• Leveraging resources before, during, and after your migration
• Becoming independent from an Oracle database – without sacrificing performance
With EDB Postgres’ database compatibility for Oracle, it is easy to migrate from your existing Oracle databases. The compatibility feature set includes compatibility for PL/SQL, Oracle’s SQL syntax, and built in SQL functions. This means that many applications can be easily migrated over to EDB Postgres. It also allows you to continue using your existing Oracle skills.
For more information please contact us at sales@enterprisedb.com
Julien Dubois discusses the benefits of developing modular Java applications. Modularity improves quality, lowers complexity, and makes applications easier to reuse and maintain. Spring provides tools for creating layered applications with clear separation of concerns between presentation, service, and repository layers using annotations like @Controller, @Service, and @Repository. For true modularity with hot-deployable modules, OSGi is introduced, which Spring Dynamic Modules builds upon. dm Server leverages Spring, Tomcat, and OSGi to allow deployment of modular applications to virtualized and cloud environments at runtime for improved scalability and reduced costs.
Eclipse MicroProfile 과 Microservice Java framework – HelidonOracle Korea
2016년에 만들어져, 현재 Eclipse Foundation에 기반을 두고 있는 Enterprise Java Microservices를 위한 Eclipse Microprofile에 대해서 알아보고, 간단한 데모를 진행합니다.
Enterprise Java 표준(Java EE, 일명 EE4J)과 Microservices 기반 아키텍처의 실제 요구사항 사이를 차이를 좁히기 시작하였다. 여러가지 유용한 마이크로 서비스 관련 API를 기존 Java EE 7/8 API와 결합하여 사용하고, Heal Check, Metrics, Fault Tolerance, JWT Propagation, Configuration, Tracing 등을 제공하고 있습니다.
이번 세션에서는 MicroProfile의 현재에 대해서 알아 보고, 기타 Microservices를 위한 java Micro framework에 대해서도 알아볼 것 입니다.
This document discusses database as a service and cloud computing. It introduces concepts like software as a service (SaaS), platform as a service (PaaS), and infrastructure as a service (IaaS). It also covers topics like virtualization, multi-tenancy, service level agreements, storage models, distributed storage, replication, and security in the context of database as a service. The document will be covering these topics in more depth throughout the seminar.
MySQL High Availability with Replication New FeaturesShivji Kumar Jha
The session was presented at open source India 2014 (http://osidays.com/osidays/) by Shivji (me) and Manish Kumar. It talks of the new features in MySQL-5.7 Replication. It covered work on
1) performance enhancements in MySQL Replication
2) Usability improvements
3) More flexibility to provide more options to our users so
they can chose what is best for their application.
4) Semisynchronous and MySQL Group Replication
At then end, there are a lot of links to the blogs written on these features by the MySQL Replication engineers.
How to Become a Winner in the JVM Performance-Tuning BattleCapgemini
Has your system been touched by a JVM performance problems? If the answer is yes, this presentation is for you.
You need to be careful if you have to track issues in a production system. One mistake, too much data gathered, and your system will slow down. The root cause of the problem can be application code or the JVM garbage collector.
This presentation describes a real production example of how to measure, tune, and fix a problem with a slow enterprise Java application. To make this job effective, open source tools are used to analyze the JVM’s condition: GC, threads, and code bottlenecks. Measurement in the lab is with open source tools such as Zorka, GCViewer, and JVisual VM. To make the tuning task realistic, real production problems are simulated.
First presented at Oracle OpenWorld 2015.
http://www.capgemini.com/oracle
This document discusses Fn Project, an open source container-native serverless platform. It allows users to write small bits of code called functions that can be easily deployed, invoked and scaled independently in the cloud or on-premises. Fn Project supports many programming languages including Java, Go, Python and JavaScript. It uses Docker containers to wrap and run functions and provides tools for monitoring, management and rapid development of serverless applications.
A service-oriented architecture looks great as boxes and lines on a whiteboard, but what is it like in real life? Are the benefits of flexibility worth the overhead of administration? We've built a framework on top of Finagle that enables a simple approach to building and deploying a microservice with SBT and Scala.
Database Migrations with Gradle and LiquibaseDan Stine
Database migration scripts are a notorious source of difficulty in the software delivery process. This session will discuss how we neutralized this all too common headache.
Now our deployment framework executes database migrations automatically with every application deploy, and the QA team performs self-service full stack deployments in test environments. The resulting additional bandwidth has been invested in more frequent software releases, and the opportunity to focus on higher-value tasks.
This document provides a summary of Ankit Chohan's professional experience and technical skills. He has over 3 years of experience as a senior Java developer working on projects involving data integration, continuous integration/delivery, and financial systems. His technical skills include Java/J2EE, SQL, XML, web services, Jenkins, Ant, and various databases and application servers.
Containers brought new approach for implementation of DevOps workflows. So our CEO, Ruslan Synytsky, devoted a speech to this topic during Madrid meetup and described in details how Java developers can get benefits from Docker containers in Jelastic Cloud.
The document discusses best practices for modern Java application deployment based on the 12 Factor App methodology. It covers topics like packaging applications as JAR files instead of WAR files, managing dependencies, separating configuration from code, building in an automated and isolated way, making processes stateless and portable, enabling concurrency, and achieving parity between development and production environments. The 12 factors of the methodology are also listed and described.
Enterprise Java Web Application Frameworks Sample Stack ImplementationMert Çalışkan
This document provides an overview of enterprise Java web application frameworks and sample stack implementations. It discusses choosing between various UI, controller, model, and integration frameworks like JSF, Spring, Hibernate, and Apache CXF. It then demonstrates a sample stack using these technologies along with Maven, Eclipse, and other tools. The aim is to provide a scalable and high-performance MVC architecture using proven open source solutions.
This document summarizes the AQAvit quality testing program for OpenJDK binaries distributed by Adoptium. It describes the three layers of automation: standalone testing using TestKitGen (TKG), continuous integration (CI) using Jenkins or GitHub Actions, and results aggregation using the Test Results Summary Service (TRSS). TKG standardizes test execution, CI runs tests in parallel across platforms, and TRSS provides a dashboard to analyze results across builds. The document also outlines plans to expand testing to additional categories and use machine learning to analyze results.
Kellyn Pot’Vin-Gorman discusses DevOps tools for winning agility. She emphasizes that while many organizations automate testing, the DevOps journey is longer and involves additional steps like orchestration between environments, security, collaboration, and establishing a culture of continuous improvement. She also stresses that organizations should not forget about managing their data as part of the DevOps process and advocates for approaches like database virtualization to help enhance DevOps initiatives.
Breathing New Life into Apache Oozie with Apache Ambari Workflow ManagerDataWorks Summit
The document discusses Apache Ambari Workflow Manager, a new Ambari View that provides a graphical user interface for visually designing and executing Apache Oozie workflows. It allows users to build workflows without having to write XML definitions. The Workflow Manager integrates with the Ambari file browser and dashboard to manage Oozie jobs. Examples shown include using workflows to perform HBase administrative tasks like table creation and compactions. The presentation concludes with information on Oozie and Ambari resources for learning more.
Slides for the Apache Geode Hands-on Meetup and Hackathon Announcement VMware Tanzu
This document provides an agenda for a hands-on introduction and hackathon kickoff for Apache Geode. The agenda includes details about the hackathon, an introduction to Apache Geode including its history and key features, a hands-on lab to build, run, and use Geode, and a Q&A session. It also outlines how to contribute to the Geode project through code, documentation, issue tracking, and mailing lists.
This document discusses various considerations and steps for migrating from an Oracle database to PostgreSQL. It begins by explaining some key differences between the two databases regarding transactions, schemas, views, and other concepts. It then outlines the main steps of the migration process: migrating the database schema, migrating the data, migrating stored code like PL/SQL, migrating SQL statements, and migrating the application itself. Specific challenges for each step are explored, such as data type translations, handling PL/SQL, and translating Oracle-specific SQL. Finally, several migration tools are briefly described.
Here are the steps to filter the resource properties in the example:
1. Define the my.filter.value property in a filter file (e.g. src/main/filters/filter.properties):
my.filter.value=hello
2. Define the command.line.prop property in the pom.xml:
<properties>
<command.line.prop>hello</command.line.prop>
</properties>
3. The settings.offline property will be filtered from the <offline>true</offline> value defined in settings.xml
4. Add filtering configuration to the pom.xml:
<build>
<filters>
<filter>src
Java Core | Java 8 and OSGi Modularisation | Tim Ellison & Neil BartlettJAX London
The talk will cover a bit of background first to set things up: what is a module, why do we need a module system, summary of Java's existing support for modularity. Then it will move on to give a comparison of OSGi's and Jigsaw's dependency models. Pros and cons of each model in different environments will be discussed. Finally, opportunities and challenges for interoperability: from the perspective of both application developers (who may need to integrate modules from both kinds) and from library module developers (who may need to target both module systems)
The document discusses modularization in Java 8 and OSGi. It describes what modules are and why they are needed, including for managing dependencies and versioning. It outlines the characteristics of a good module system and compares how Java 8's Project Jigsaw and OSGi handle modularization. Key points include how both aim to address issues like class loading performance and dependency management, but OSGi has existing tools and does not require language changes.
The document discusses using Composer and modules to better organize Magento projects. It recommends:
- Using Composer to install Magento core and modules separately from the project codebase.
- Treating modules as independent, reusable components with their own versioning and maintenance.
- Allowing multiple teams to collaborate on developing the same module for different projects.
- Managing module versions and dependencies flexibly between projects through Composer.
Abstract
The idea of this talk is to help development teams to make correct architectural decisions.
Andrei will highlight the basic architectural principles and show ways to achieve architecture that is good enough to cover the project requirements and evolve in the future.
He will also present several cases from real projects, where wrong, missing, or over-sophisticated architecture decisions really hurt the development teams:
- Painful sharing: do shared modules increase reusability or will be the source of problems?
- Microservices are the solution to every problem!
- Non-extensible extensibility: too sophisticated configuration hurts
- Over fine-grained: incorrect splitting to Microservices can make life even harder as with monolith
- Convey horizontal split: how organizational driven split can jeopardise the architecture
- Model-driven: central responsibility blocks and limits the team
- Cargo cult: blindly following patterns and rule can produce an unmaintainable system
- Freestyle architecture: what happens if teams completely ignore architecture
- Improve with less intelligence: smart endpoint and dumb pipes
Abstract
The idea of this talk is to help development teams to make correct architectural decisions.
Andrei will highlight the basic architectural principles and show ways to achieve architecture that is good enough to cover the project requirements and evolve in the future.
He will also present several cases from real projects, where wrong, missing, or over-sophisticated architecture decisions really hurt the development teams:
- Painful sharing: do shared modules increase reusability or will be the source of problems?
- Microservices are the solution to every problem!
- Non-extensible extensibility: too sophisticated configuration hurts
- Over fine-grained: incorrect splitting to Microservices can make life even harder as with monolith
- Convey horizontal split: how organizational driven split can jeopardise the architecture
- Model-driven: central responsibility blocks and limits the team
- Cargo cult: blindly following patterns and rule can produce an unmaintainable system
- Freestyle architecture: what happens if teams completely ignore architecture
- Improve with less intelligence: smart endpoint and dumb pipes
Organinzing Your PHP Projects (2010 Memphis PHP)Paul Jones
By using a single organizational principle, developers can easily make their project structure more predictable, extensible, and modular. The talk will discuss this one lesson, how it can be discovered from researching publicly available PHP projects, how to apply it, and how it is used (or not used) in well-known applications and frameworks.
Organizing Your PHP Projects (2010 ConFoo)Paul Jones
By using a few simple organizational principles, developers can make their project structure predictable, extensible, and modular. These techniques make it easy to de-conflict and share code between multiple projects. They also make it easy to automate project-support tasks such as testing, documentation, and distribution. This talk will discuss these principles, how they can be discovered from researching publicly available PHP projects, and how they are used (or not used) in popular applications and frameworks.
Platform Engineering for the Modern Oracle WorldSimon Haslam
DevOps has become the de facto approach for custom software delivery. Yet, if automation is claimed to be the answer to all ills, why do many organisations struggle to implement it well? This session reflects on experiences from the last decade or so of provisioning projects, highlighting lessons (and one or two regrets!) and considers how organisations building custom software should focus their Oracle platform engineering efforts to deliver better software to users, faster.
How to Build Composite Applications with PRISMDataLeader.io
Created by Emil Stoychev (The Silverlight Show) from Bulgaria at my Microsoft "Pre-MIX!!" ROCK! event.
Topics covered include design & technical concepts in PRISM, composite apps vs. monolithic apps, prism is a set of guidelines not a framework.
Technical Concepts:
1. Bootstrapper is responsible for app initialization
2. CAL includes UnityBootstrapper
3. XAML
4. Configure RegionAdapter Mappings
5. Creating the Shell
6. Initializing Modules
7. Windows Presentation Foundation (WPF)
8. Module Options
1. Design Concepts: modularity, dependency injection container, multi-targeting
2. UI Composition: commanding, eventing
3. View Composition = View Injection = View Discovery
Oracle ADF Architecture TV - Development - Version ControlChris Muir
Slides from Oracle's ADF Architecture TV series covering the Development phase of ADF projects, discussing SVN version control for your ADF projects.
Like to know more? Check out:
- Subscribe to the YouTube channel - http://bit.ly/adftvsub
- Development Playlist - http://www.youtube.com/playlist?list=PLJz3HAsCPVaQfFop-QTJUE6LtjkyP_SOp
- Read the episode index on the ADF Architecture Square - http://bit.ly/adfarchsquare
OSGi is a modular system for Java that allows software to be split into components called bundles that can be installed, started, stopped, updated dynamically without requiring a restart. Bundles define dependencies and versions, and services can be published and discovered within a Java Virtual Machine. OSGi aims to support component-based development and addresses issues with modularity in standard Java.
10 clues showing that you are doing OSGi in the wrong manner - Jerome Molieremfrancis
This presentation aims to show common pitfalls in OSGi architecture and development and how to avoid them. It involves concrete use cases and their solutions. Antipatterns, bad designs , bad tooling will be presented during this session... This session is user oriented and aimed to give concrete feedbacks and good practices...
This document introduces Continuuity Loom, a 100% open source, multi-tier application infrastructure provisioning and management system. It addresses challenges in provisioning complex multi-tier applications across public and private clouds, including lack of experience, decreased developer productivity, and no governance of reference architectures. Continuuity Loom uses templates to define reference architectures and automators like Chef to install and configure services. It provisions infrastructure using a solver and planner to optimize placement based on dependencies and constraints.
The document provides an overview of the Java Platform Module System (JPMS) introduced in Java 9. Key points include:
- JPMS addresses issues with strong encapsulation, reliable dependency management, and API evolution in Java applications and libraries.
- The module is a new abstraction that more finely controls access and dependencies through package exports and module declarations.
- The module path replaces the classpath, and the modularized JDK itself is composed of platform modules.
- Projects can begin adopting a modular structure immediately while the ecosystem transitions over time.
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...Martin Bergljung
In this talk you will learn how to set up an Alfresco SDK 3.0 multi module project that could be used in a larger consulting project context. Extension modules will be standalone and versioned and released independently in the Nexus 3 Repository Manager. The talk also includes a look at defining a Parent POM and an Aggregator POM for your SDK 3 project solution.
Similar to Calling All Modularity Solutions: A Comparative Study from eBay (20)
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
“An Outlook of the Ongoing and Future Relationship between Blockchain Technologies and Process-aware Information Systems.” Invited talk at the joint workshop on Blockchain for Information Systems (BC4IS) and Blockchain for Trusted Data Sharing (B4TDS), co-located with with the 36th International Conference on Advanced Information Systems Engineering (CAiSE), 3 June 2024, Limassol, Cyprus.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIVladimir Iglovikov, Ph.D.
Presented by Vladimir Iglovikov:
- https://www.linkedin.com/in/iglovikov/
- https://x.com/viglovikov
- https://www.instagram.com/ternaus/
This presentation delves into the journey of Albumentations.ai, a highly successful open-source library for data augmentation.
Created out of a necessity for superior performance in Kaggle competitions, Albumentations has grown to become a widely used tool among data scientists and machine learning practitioners.
This case study covers various aspects, including:
People: The contributors and community that have supported Albumentations.
Metrics: The success indicators such as downloads, daily active users, GitHub stars, and financial contributions.
Challenges: The hurdles in monetizing open-source projects and measuring user engagement.
Development Practices: Best practices for creating, maintaining, and scaling open-source libraries, including code hygiene, CI/CD, and fast iteration.
Community Building: Strategies for making adoption easy, iterating quickly, and fostering a vibrant, engaged community.
Marketing: Both online and offline marketing tactics, focusing on real, impactful interactions and collaborations.
Mental Health: Maintaining balance and not feeling pressured by user demands.
Key insights include the importance of automation, making the adoption process seamless, and leveraging offline interactions for marketing. The presentation also emphasizes the need for continuous small improvements and building a friendly, inclusive community that contributes to the project's growth.
Vladimir Iglovikov brings his extensive experience as a Kaggle Grandmaster, ex-Staff ML Engineer at Lyft, sharing valuable lessons and practical advice for anyone looking to enhance the adoption of their open-source projects.
Explore more about Albumentations and join the community at:
GitHub: https://github.com/albumentations-team/albumentations
Website: https://albumentations.ai/
LinkedIn: https://www.linkedin.com/company/100504475
Twitter: https://x.com/albumentations
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
National Security Agency - NSA mobile device best practices
Calling All Modularity Solutions: A Comparative Study from eBay
1. Calling All Modularity Solutions:
A Comparative Study from eBay
JavaOne 2011
Sangjin Lee, Tony Ng
eBay Inc.
2. Agenda
• What is modularity?
• Why modularity?
• Evaluation criteria
• Scorecard
• Summary
2
3. What is Modularity?
Dictionary says...
modular: employing or involving a module or modules as the basis of design
or construction: modular housing units.
Then what is a “module”?
module: each of a set of standardized parts or independent units that can be
used to construct a more complex structure, such as an item of furniture or a
building.
According to Wikipedia*:
modular design: an approach that subdivides a system into smaller parts
(modules) that can be independently created and then used in different
systems to drive multiple functionalities.
* http://en.wikipedia.org/wiki/Modular_design
3
5. Challenges for large enterprises
• Some stats on the eBay code base
– ~ 44 million of lines of code and growing
– Hundreds of thousands of classes
– Tens of thousands of packages
– ~ 4,000+ jars
• We have too many dependencies and tight coupling in our code
– Everyone sees everyone else
– Everyone affects everyone else
5
6. Challenges for large enterprises
• Developer productivity/agility suffers as the knowledge goes down
– Changes ripple throughout the system
– Fallouts from changes/features are difficult to resolve
– Developers slow down and become risk averse
– Everyone affects everyone else: invites even more dependencies
knowledge complexity
code size
6
7. Our goals with modularity efforts
• Tame complexity
• Organize our code base in loose coupling fashion
– Coarse-grained modules: number matters!
– Declarative coupling contract
– Ability to hide internals
• Establish clear code ownership, boundaries and dependencies
• Allow different components (and teams) evolve at different speeds
• Increase development agility
7
8. Considerations on any modularity solutions
• Scalability: enterprise software tends to be large scale
• We need to consider a large group of developers with varying skill
levels
• End-to-end development lifecycle is crucial
• Conversion/migration of existing code base is crucial
– We rarely start from vacuum
– We want to move over and modularize bulk of existing code
– It is imperative that we chart a realistic migration course that can be
achieved within a reasonable amount of time
– We cannot afford disruption to business meanwhile: “change parts
while the car is running”
8
9. Evaluation criteria
• Modularity concerns
– Hide internals (“reduce the surface area”)
– Enforce modularity
– Provision/assemble application easily
– Isolate and run two versions of the same class
9
10. Evaluation criteria
• End-to-end development lifecycle: IDE, command line build,
repository, server runtime, etc.
– Complete and mature tooling
– Integration and fidelity of tools across phases
pull/push SCM pull
Command line
IDE
build (CI)
consume publish/consume
Deployment Server runtime
Repository
packaging deploy
10
11. Evaluation criteria
• Migration concerns
– Ease of conversion
– Learning curve
• Adoption: user communities and knowledge
11
12. Evaluation candidates
• OSGi
• Maven
• Jigsaw
• JBoss modules
Disclaimer: this is not a comprehensive discussion of these technologies. We will
focus only on modularity aspects and it will not be an exhaustive evaluation.
12
13. OSGi
• Observations
– “The only game in town” (?)
– Strong modularity framework
– Focuses more on runtime than build time
– “All or nothing”: everything needs to be pretty much in an OSGi bundle
– Bundles and services are dynamic at runtime
13
15. OSGi
• Pros
– Enforces modularity strongly: it will let you know if you violate it
– Mature and comprehensive: covers pretty much all use cases regarding
modularity
– Open standard
– Services: the ultimate decoupling force
– Can run two versions of the same class easily
15
16. OSGi
• Cons
– Can run two versions of the same class easily, and run into trouble
– Some problems are nasty to troubleshoot (uses conflict anyone?)
– Still not many well-integrated tools across all phases: impedance
mismatches
– Compared to strong runtime model, build side story is weak
– Migration can be quite painful
– Learning curve is still fairly steep
16
17. OSGi
• Hide internals: A
– Declarative way to exclude module-private
packages
– It’s strictly enforced: won’t resolve if it is
violated
• Enforce modularity: A
– Requirements and capabilities declared in the
manifest are strongly enforced: runtime will
fail if violated
17
18. OSGi
• Assemble application easily: A
– Supported through subsystem provisioning (Karaf features, OSGi
application model, etc.)
– Works quite well because the underlying dependency metadata is high
quality
• Run two versions of the same class: B+
– Works great if consumers are well-separated
– Supports version range dependencies
– However, has a chance of introducing nasty problems if one is not
careful: uses conflicts, accidental wiring, and ClassCastExceptions
– Be careful what you wish for
18
19. OSGi
• Complete and mature tooling: B+
– IDE: PDE, bndtools, sigil, ...
– Command line build: maven + bundle plug-in, ant, tycho, ...
– Repository: OBR, target platform, maven repository
• Integration of tools: D
– Tools at different phases do not integrate too well
– Left to deal with a lot of little impedance mismatches
19
20. OSGi
• Ease of migration: D
– Binaries can be “wrapped” into OSGi bundles
– All bad practices must be addressed before they can be used, however:
split packages, Class.forName, thread context classloader, etc.
– Not all third-party libraries are available as OSGi bundles
– Need to take a continuous refactoring approach
• Learning curve: C
– The learning curve is fairly steep mainly because modularity is not
always easy to master
– Dynamic behavior of bundles/services introduces complexity
• Adoption: B-
– Fairly wide adoption, but less so in enterprise applications
20
21. OSGi: scorecard
Hide internals A
Enforce modularity A
Assemble application easily A
Run two versions of the same class B+
Complete and mature tooling B+
Integration of tools D
Ease of migration D
Learning curve C
Adoption B-
Overall B-
21
22. Maven
• Observations
– Normally not thought of as a “modularity solution”
– But has some characteristics of modularity through dependency
management
– More of a build time solution than runtime
22
24. Maven
• Pros
– Most developers are already familiar with maven
– Most third-party libraries are already available as maven artifacts
– Comes with a fairly comprehensive and mature tooling ecosystem
– You can extend the behavior easily with your own plug-ins
24
25. Maven
• Cons: it’s not really meant as a modularity framework
– It does not enforce modularity (either at build time or runtime)
– You cannot hide internals
– At runtime, the global classpath still rules
25
26. Maven
• Hide internals: F
– Nothing there
– Still the global classpath rules
• Enforce modularity: D-
– More of a build time concern than runtime
– No enforcement of dependencies: transitive build classpath!
– Not even an option of strict dependency build
– There is a dependency plugin that analyzes your dependencies
26
27. Maven
• Assemble application easily: B
– Definitely possible
– But it’s only as good as your POM dependencies
• Run two versions of the same class: F
– Nothing there
– Still the global classpath rules
– When there are version collisions, maven picks one for you J
27
28. Maven
• Complete and mature tooling: A
– Command line build, IDE (m2eclipse), and maven repo
• Integration of tools: A
• Ease of migration: B+
– Boils down to creating POMs for existing non-maven projects
– Third-party libs are pretty much maven artifacts these days
• Learning curve: B
– Most developers are already familiar with maven
– Maven has its own quirks
• Adoption: A
28
29. Maven: scorecard
Hide internals F
Enforce modularity D-
Assemble application easily B
Run two versions of the same class F
Complete and mature tooling A
Integration of tools A
Ease of migration B+
Learning curve B
Adoption A
Overall C+
29
30. Project Jigsaw overview
• Part of JDK 8
• JSR 277, JSR 294
• Key Features
– Static resolution
– Versioning
– Optional modules
– Permits
– Virtual modules
– Native packaging
– Module-private accessibility at language level
30
31. Jigsaw: module declaration (module-info)
• Source and binary form
module a.b @ 1.0 {
requires c.d @ [2.0,3.0); // dependencies
export e.f.*; // package exported
provide g.h @ 4.0; // virtual provider modules
permit i.j; // module friendship
class k.l; // main class
}
31
32. Jigsaw
• Pros
– Native support in JDK (e.g. javac) and language
– Covers build time, install-time, and runtime
– Static resolution may provide optimization & simplicity
• Cons
– Not ready to be used yet
– Less mature, lesser known
– Primary focus is to modularize JDK (but open to others)
– Pace has been slow
– Static resolution means less flexibility at runtime
32
33. Jigsaw
• Hide internals: A
• Enforce modularity: A
• Easy app provisioning & creation: A
• Run two versions of the same class: B
33
34. Jigsaw
• Complete and mature tooling: F
• Integration of tools: F
– Only OpenJDK tools support right now
• Migration concerns: B-
– Extra effort would be given to minimize migration pain since the plan
is to modularize JDK
– Some unknown on interoperability with OSGi
• Learning curve: B
– Not much info yet and still evolving (so far does not look too
complicated)
• Adoption: F
34
35. Jigsaw: scorecard
Hide internals A
Enforce modularity A
Assemble application easily A
Run two versions of the same class B
Complete and mature tooling F
Integration of tools F
Ease of migration B-
Learning curve B
Adoption F
Overall C
35
36. JBoss modules
• Basis for JBoss OSGi & app server
• No container required
• Features
– Exact version match only
– Transitive and non-transitive dependencies
– Optional dependencies
– Import/export filters
36
38. JBoss modules
• Pros
– Very simple
– Fast static resolution
– Lightweight (jboss-modules.jar ~240k)
• Cons
– Lacks (public) tools: IDE, command line builds, ...
– Lacks advanced features
– No version ranges: exact match only
– Non-standards based
38
39. JBoss modules
• Hide internals: A
– Can constrain exported packages easily
• Enforce modularity: A
• Easy app provisioning & creation: B
– It is possible by way of resolving and starting the first module
– It is unknown if there is a formal provisioning concept or framework/
library publicly available
• Run two versions of the same class: C
– No version ranges: exact match only
– Has potential to introduce multiple versions unintentionally
39
40. JBoss modules
• Complete and mature tooling: F
• Integration of tools: F
• Migration concerns: D
– Many of the OSGi bad practices would be issues with JBoss modules too
• Learning curve: B
– Relatively simple to learn
• Adoption: D-
– Little adoption outside JBoss itself?
40
41. JBoss modules: scorecard
Hide internals A
Enforce modularity A
Assemble application easily B
Run two versions of the same class C
Complete and mature tooling F
Integration of tools F
Ease of migration D
Learning curve B
Adoption D-
Overall C-
41
42. Scorecard
OSGi Maven Jigsaw JBoss
modules
Hide internals A F A A
Enforce modularity A D- A A
Assemble application easily A B A B
Run two versions of the same class B+ F B C
Complete and mature tooling B+ A F F
Integration of tools D A F F
Ease of migration D B+ B- D
Learning curve C B B B
Adoption B- A F D-
Overall B- C+ C C-
42
43. Summary
• OSGi is the only true modularity solution that is “ready” now
• OSGi has challenges in migration and learning curve
• Dearth of integrated tooling is an issue with OSGi
• Maven does not offer much in the way of modularity: no
enforcement
• Jigsaw will introduce language level modularity support
• Will there be interoperability between Jigsaw and OSGi?
• JBoss modules shares strong modularity traits with OSGi
• JBoss modules does not offer much tooling
43