This document discusses migrating to OSGi and modularity through a services-first approach. It presents a five stage modularity maturity model moving from ad hoc to optimized modularity. It discusses how popular instantiation patterns like Class.forName cause tight couplings that prevent modularity. Microservices primitives like a broker are presented as an alternative to break dependencies. An example is provided of extending Ant tasks using this approach to demonstrate migrating existing applications without fences by exploiting OSGi concepts. The conclusion is that a services-first approach enables modularity without fences, making a future migration to OSGi bundles easier.
The next release of the OSGi specifications are planned for publication at EclipseCon 2011. So what is new? This presentation will provide an overview of the new features in the spec including Java 5 generics for the Framework and ServiceTracker, modern replacement for PackageAdmin and StartLevel, generic capabilities and requirements, resolver hooks, bytecode weaving and many more improvements and new features. The presentation assumes the audience has a basic understanding of OSGi and will focus on the changes in 4.3.
The OSGi R5 Enterprise release is available now from www.osgi.org (at this moment as a draft, final soon). This presentation walks through what's new in this specification, what to use it for and where to get it.
Field injection, type safe configuration, and more new goodies in Declarative...bjhargrave
In the recently published Release 6 specifications, OSGi provides a significant update to the already awesome Declarative Services (DS) specification. DS is _the_ way to write and use OSGi services since it handles the details and lets you, the developer, declare what you want. The DS 1.3 specification in Release 6 includes a number of new features to make using DS even better. This talk will go over the new features to help you better understand how to use them in your bundles.
The document discusses why OSGi is important for developing software. It notes that the amount of software is doubling every 7 years, making modularity and flexibility more critical. OSGi aims to provide a better way to develop software that is adaptive, flexible, uses contracts and services, supports evolution and distribution. It discusses the history of concepts like subroutines, modules, objects, and packages that aimed to improve modularity. OSGi bundles take this further by allowing modularization at the package and service level. This achieves the dream of fully decoupled modules through the use of APIs and services. OSGi is presented as an important investment to support modularity as software growth continues exponentially.
OSGi Community Event 2016 Presentation by Balázs Zsoldos (Everit Kft.)
Have you ever felt that your system could collapse like the house of cards? Has it ever happened to you that an OSGi component got unsatisfied and that caused a chain reaction? It can be hard to find the root cause when you see 50+ non-active components. In this talk, we will show, how these issues can be solved quickly so programming can be fun again.
In the first part of the talk we will introduce our component model that is based on the concept of Declarative Services. There are minor changes, the ones that allow us to handle large set of component graphs easily.
In the second part
we will play a short game with the audience. One must cause a mistake in a large system while another developer (who did not see the change) must fix it.
there will be a demo where we set up a complex Servlet Container with multiple Servlet Contexts, Servlets, and Filters via configuration.
The Internet of Things is rising fast, but how to run it safely and efficiently using standards?
OMA Lightweight M2M is the brand new IoT protocol for managing smart objects. It provides answers to the typical IoT needs: monitoring, configuring, securing and upgrading devices.
It’s bandwidth efficient and fits in constrained embedded environments while providing friendly and discoverable RESTful API.
This tutorial aims at giving you a hands-on experience with Lightweight M2M by showing you the power and simplicity of the Eclipse Leshan library for managing real world IoT application.
Agenda:
- Introduction to CoAP and Lightweight M2M
- Demo and live discovery of a connected smartwatch
- Presentation of Eclipse Leshan, a lightweight M2M implementation for Java
- Code your own Java server, and start managing fleet of smartwatches!
- Presentation of more advanced lightweight M2M topic: firmware upgrade, security, bootstrap, Wakaama and Tinydtls
- Code a smartwatch application using Lightweight M2M
The document discusses three puzzles related to OSGi concepts. The first puzzle involves determining which bundle fragments attach to host bundles based on their version ranges. The second puzzle involves a potential race condition between threads when using wait/notify to signal the availability of a service. The third puzzle involves determining what is printed by an activation method in a component implementation, based on the accessibility of the method and DS specification version. Each puzzle includes multiple choice answers and an explanation of the correct answer.
The next release of the OSGi specifications are planned for publication at EclipseCon 2011. So what is new? This presentation will provide an overview of the new features in the spec including Java 5 generics for the Framework and ServiceTracker, modern replacement for PackageAdmin and StartLevel, generic capabilities and requirements, resolver hooks, bytecode weaving and many more improvements and new features. The presentation assumes the audience has a basic understanding of OSGi and will focus on the changes in 4.3.
The OSGi R5 Enterprise release is available now from www.osgi.org (at this moment as a draft, final soon). This presentation walks through what's new in this specification, what to use it for and where to get it.
Field injection, type safe configuration, and more new goodies in Declarative...bjhargrave
In the recently published Release 6 specifications, OSGi provides a significant update to the already awesome Declarative Services (DS) specification. DS is _the_ way to write and use OSGi services since it handles the details and lets you, the developer, declare what you want. The DS 1.3 specification in Release 6 includes a number of new features to make using DS even better. This talk will go over the new features to help you better understand how to use them in your bundles.
The document discusses why OSGi is important for developing software. It notes that the amount of software is doubling every 7 years, making modularity and flexibility more critical. OSGi aims to provide a better way to develop software that is adaptive, flexible, uses contracts and services, supports evolution and distribution. It discusses the history of concepts like subroutines, modules, objects, and packages that aimed to improve modularity. OSGi bundles take this further by allowing modularization at the package and service level. This achieves the dream of fully decoupled modules through the use of APIs and services. OSGi is presented as an important investment to support modularity as software growth continues exponentially.
OSGi Community Event 2016 Presentation by Balázs Zsoldos (Everit Kft.)
Have you ever felt that your system could collapse like the house of cards? Has it ever happened to you that an OSGi component got unsatisfied and that caused a chain reaction? It can be hard to find the root cause when you see 50+ non-active components. In this talk, we will show, how these issues can be solved quickly so programming can be fun again.
In the first part of the talk we will introduce our component model that is based on the concept of Declarative Services. There are minor changes, the ones that allow us to handle large set of component graphs easily.
In the second part
we will play a short game with the audience. One must cause a mistake in a large system while another developer (who did not see the change) must fix it.
there will be a demo where we set up a complex Servlet Container with multiple Servlet Contexts, Servlets, and Filters via configuration.
The Internet of Things is rising fast, but how to run it safely and efficiently using standards?
OMA Lightweight M2M is the brand new IoT protocol for managing smart objects. It provides answers to the typical IoT needs: monitoring, configuring, securing and upgrading devices.
It’s bandwidth efficient and fits in constrained embedded environments while providing friendly and discoverable RESTful API.
This tutorial aims at giving you a hands-on experience with Lightweight M2M by showing you the power and simplicity of the Eclipse Leshan library for managing real world IoT application.
Agenda:
- Introduction to CoAP and Lightweight M2M
- Demo and live discovery of a connected smartwatch
- Presentation of Eclipse Leshan, a lightweight M2M implementation for Java
- Code your own Java server, and start managing fleet of smartwatches!
- Presentation of more advanced lightweight M2M topic: firmware upgrade, security, bootstrap, Wakaama and Tinydtls
- Code a smartwatch application using Lightweight M2M
The document discusses three puzzles related to OSGi concepts. The first puzzle involves determining which bundle fragments attach to host bundles based on their version ranges. The second puzzle involves a potential race condition between threads when using wait/notify to signal the availability of a service. The third puzzle involves determining what is printed by an activation method in a component implementation, based on the accessibility of the method and DS specification version. Each puzzle includes multiple choice answers and an explanation of the correct answer.
Intro to OSGi – the Microservices kernel - P Kriens & T Wardmfrancis
If you are new to OSGi, or have heard about it or experienced (good or bad) a little of OSGi then this is the talk for you.
Peter Kriens, the OSGi Alliance Evangelist and Tim Ward, co-author of Enterprise OSGi in Action will provide a high level technical introduction to OSGi, covering the core concepts that make up this standard.
OSGi has been around since 1998 and was formerly JSR8. Today its one of the only Java standards that exist outside of the JCP and this talk will explore the original objectives of OSGi and how they have remained true while being extended to apply across many vertical markets including enterprise, embedded / IoT, etc.
Microservices and OSGi. From the outset OSGi promoted a ‘services-first’ approach, initially within the JVM, and in the last few years, across JVM’s with the Distributed OSGi specifications. The Microservices approach has been gaining industry traction over the last 12 months and Peter and Tim will explain how OSGi provides you with a standards-based solution to Microservices, how simple it is to take advantage of, and the benefits that you can achieve by adopting OSGi to realize it.
They will also highlight some of the common misconceptions and challenges that people have when starting out with OSGi, just so you have a full and frank understanding of the many benefits and some of the hurdles you may encounter as you start down the OSGi path. As they say there is no such thing as a free lunch, however it tastes mighty fine once you get there!
Bios:
Peter Kriens
Peter Kriens is an independent consultant since 1990.He currently works for the OSGi Alliance and Paremus. During the eighties he developed advanced distributed systems for newspapers based on microcomputers based on, at the time very novel, object oriented technologies. For this experience in Objects he was hired by a number of international companies, including Adobe, Intel, Ericsson, IBM, and many others. During his work at Ericsson Research in 1998 he got involved with the OSGi specification; Later he became the primary editor for these specifications. In 2005 he was awarded the OSGi Fellows title. After taking a sabbatical in 2012 to develop jpm4j he returned to the OSGi Alliance to help increasing adoption. He is Dutch but decided to live in France.
Tim Ward
Tim is a Senior Consulting Engineer and Trainer at Paremus, a co-author of Enterprise OSGi in Action, and has been actively working with OSGi for over six years. Tim has been a regular participant in the OSGi Core Platform and Enterprise Expert Groups, and led the development of several specifications, including OSGi Promises and Asynchronous Services. Tim is also an active Open Source committer and a PMC member in the Apache Aries project, which provides a container for enterprise OSGi applications.
Tim is a regular conference speaker, and can often be found at JavaOne, Devoxx, OSGi DevCon, OSGi Community Event, EclipseCon, Jazoon and JAX London.
This document provides an overview of design patterns including the Gang of Four (GoF) patterns. It discusses creation patterns like abstract factory and singleton that deal with object creation. Structural patterns like adapter, decorator, and composite that deal with class and object structure. Behavioral patterns like strategy and state that deal with object interaction and behavior. Examples of each pattern type are provided.
Presentation at IBM IOD 2011 by Larry Bob, BI Architect at The Boeing Company about what a skilled Framework Manager modeler can do in a large environment to advance both simplicity and excellence at the same time.
Subsystems: For those occasions where bundles are just too small... - Graham ...mfrancis
Enterprise OSGi 4.2 standardized the use of a number of component models for developing Enterprise OSGi applications: Servlet, JSP, Blueprint, and JPA. Implementations of these specifications have since become available in many open source projects and products such as Apache Aries, Eclipse Gemini/Virgo, GlassFish, JBoss Application Server and WebSphere Application Server. Looking at a number of these environments, it's clear that when it comes to assembly and deployment there's still something missing, namely something to represent a collection of bundles (e.g. an Application). Eclipse Virgo has "PARs" and "Plans", Apache Aries has "Applications", and WebSphere Application Server has “Applications” and “Composites”. Looking further afield to kernel projects, other bundle collection concepts exist, such as Apache Karaf "Features". Each model has concepts in common, such as identity, versioning and content, but also differences like isolation and format. It is clear that this is an area of Enterprise OSGi that could benefit from standardization and hence the Subsystems specification is being created. Subsystems is currently a draft specification which is standardizing artefacts representing collections of bundles, such as an Application. This presentation will introduce the current Subsystems design. It will describe how Subsystems can be used for development and deployment of bundle collections with different isolation semantics, to address the application, composite and feature use cases seen in the OSGi community today.
The Spring framework packs a lot of punch, out of the box! The surface-level component model's extraordinarily flexible, and works well with in most situations, but the real power of Spring lays just underneath, in the numerous SPIs that Spring exposes, so that you can tailor the component model to your own use cases. Spring's SPI's are a great example of what Bob Martin describes as the open-closed principle, and it provides the solid underpinnings upon which the other Spring frameworks, including Spring Integration, Spring MVC and Spring Batch are built. In this talk, Josh Long, the Spring developer advocate from SpringSource, provides a walking tour of Spring's extension points.
OSGi made simple - Fuse Application BundlesRob Davies
FuseSource introduces Fabric Application Bundles (FABs) which make deploying applications in OSGi containers simpler. FABs allow developers to deploy Java applications packaged with Maven dependencies as single deployment units. When installed, FuseSource's Fuse ESB automatically installs all transitive dependencies of a FAB. This provides an easier deployment model than traditional OSGi bundles while still allowing developers to benefit from OSGi features like dynamic updates and versioning when needed. FABs also provide options for configuring shared dependencies across multiple applications to gain code sharing benefits of OSGi.
The OSS Forge Ecosystem: Today and Tomorrowoostendo
The document discusses open source software forges and their ecosystem. It describes the core functions of forges, including source code control, documentation management, and distribution of software and project resources. It outlines different types of forges, including freemium, technology-focused, and community-focused forges. The document also examines challenges facing forge vendors and differences between using a forge and self-hosting.
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.
This document provides an overview of Git and transitioning to Git. It discusses pros and cons of Git including that it works offline, is flexible, reliable, and fast. It provides high-level advice such as getting experts on the team, using a proven workflow, peer review, and mentoring. Technical advice includes using short-lived branches, branching per feature/task, focused commits, and unit tests. Benefits of Git discussed are that it is efficient with text, works around policies, and makes developers stronger. The document also compares Git to SVN.
IBM SONAS and the Cloud Storage TaxonomyTony Pearson
This document discusses IBM's Scale Out Network Attached Storage (SONAS) solution. SONAS provides a global namespace and can scale to support large amounts of unstructured file data across various cloud environments. The document outlines how SONAS utilizes IBM's General Parallel File System (GPFS) and provides features such as high performance, data replication, backups, antivirus integration, and information lifecycle management through migration to tape storage.
This document discusses OSGi and its implementation in JBoss Application Server 7 (AS7). It provides an overview of OSGi core concepts like modularity, services, and dynamic updating. It then discusses how AS7 fully implements the OSGi core specification and allows for integration between OSGi and enterprise Java components. The document outlines both current and future support for enterprise OSGi specifications in AS7 and demonstrates OSGi capabilities with examples.
A classification framework for component modelsIvica Crnkovic
In the last decade a large number of different software component models have been developed, with different aims and using different principles and technologies. This has resulted in a number of models which have many similarities, but also principal differences, and in many cases unclear concepts. Component-based development has not succeeded in providing standard principles, as has, for example, object-oriented development. In order to increase the understanding of the concepts, and to differentiate component models more easily, this paper identifies, discusses and characterises fundamental principles of component models, and provides a Component Model Classification Framework based on these principles. Further, the paper classifies a large number of component models using this 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.
FTSProc: a Process to Alleviate the Challenges of Projects that Use the Follo...Estevão Hess
The document describes a proposed process called FTSProc to help alleviate challenges for projects using the follow-the-sun (FTS) strategy. FTSProc focuses on handoffs between development teams in different time zones. It involves: 1) Daily planning meetings, 2) Assigning tasks based on previous work, 3) Coding tasks, 4) Checking in code, and 5) Completing a handoff form for the next team. An experiment found FTSProc helped make projects using FTS more efficient.
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.
Services first migration to osgi - osgi users forum uk 16-nov2011mfrancis
Presentation by Peter Kriens at OSGi Users' Forum UK meeting on Nov 16, 2011 in London.
Abstract: The OSGi Service Platform is a standard that specifies a comprehensive model of modules that communicate through a powerful, no overhead, Inter Module Communication mechanism: OSGi Services. OSGi enforces module-level isolation that forbids ad hoc cross-module class loading but this conflicts with prevalent Java software patterns that assume application-wide class visibility. OSGi Connect proposes the OSGi programming model without the module-level isolation. This presentation will show you how you can use OSGi Connect to begin to modularize your existing applications with the OSGi programming model with a minimal upfront investment.
Bytecode Weaving in OSGi – Enhance Your Classes, Not Your Dependency graph! ...mfrancis
For a long time bytecode weaving in OSGi has been a cumbersome process. Using it's internal hooks Equinox has supported basic transformation since version 3.2, but there has still been no simple, standard way to enhance classes and add new dependencies to the bundle that contains them. The new OSGi WeavingHook whiteboard pattern, which allows any OSGi bundle, not just an Equinox framework extension, to weave classes from, and add dependencies to, other OSGi bundles. Also new in OSGi is the opportunity to scan the classpath of an OSGi bundle. Whilst the isolated, modular classpath of an OSGi bundle provides an excellent system for building Java applications, many extenders and libraries need to be able to search for classes or resources within the bundle. This function further aids weaving implementations by allowing them to search for resources, class and package name patterns, and other configuration without requiring specific metadata to be present. As the lead author for the Bytecode weaving design within the OSGi Alliance, and a committer in the Apache Aries project, Tim will use his expertise to demonstrate the power and flexibility of WeavingHooks, particularly in conjunction with the latest OSGi updates for classpath scanning. Drawing on real-world examples from the Apache Aries project Tim will use real-world examples to prove that first-class weaving support is now available in OSGi.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
Intro to OSGi – the Microservices kernel - P Kriens & T Wardmfrancis
If you are new to OSGi, or have heard about it or experienced (good or bad) a little of OSGi then this is the talk for you.
Peter Kriens, the OSGi Alliance Evangelist and Tim Ward, co-author of Enterprise OSGi in Action will provide a high level technical introduction to OSGi, covering the core concepts that make up this standard.
OSGi has been around since 1998 and was formerly JSR8. Today its one of the only Java standards that exist outside of the JCP and this talk will explore the original objectives of OSGi and how they have remained true while being extended to apply across many vertical markets including enterprise, embedded / IoT, etc.
Microservices and OSGi. From the outset OSGi promoted a ‘services-first’ approach, initially within the JVM, and in the last few years, across JVM’s with the Distributed OSGi specifications. The Microservices approach has been gaining industry traction over the last 12 months and Peter and Tim will explain how OSGi provides you with a standards-based solution to Microservices, how simple it is to take advantage of, and the benefits that you can achieve by adopting OSGi to realize it.
They will also highlight some of the common misconceptions and challenges that people have when starting out with OSGi, just so you have a full and frank understanding of the many benefits and some of the hurdles you may encounter as you start down the OSGi path. As they say there is no such thing as a free lunch, however it tastes mighty fine once you get there!
Bios:
Peter Kriens
Peter Kriens is an independent consultant since 1990.He currently works for the OSGi Alliance and Paremus. During the eighties he developed advanced distributed systems for newspapers based on microcomputers based on, at the time very novel, object oriented technologies. For this experience in Objects he was hired by a number of international companies, including Adobe, Intel, Ericsson, IBM, and many others. During his work at Ericsson Research in 1998 he got involved with the OSGi specification; Later he became the primary editor for these specifications. In 2005 he was awarded the OSGi Fellows title. After taking a sabbatical in 2012 to develop jpm4j he returned to the OSGi Alliance to help increasing adoption. He is Dutch but decided to live in France.
Tim Ward
Tim is a Senior Consulting Engineer and Trainer at Paremus, a co-author of Enterprise OSGi in Action, and has been actively working with OSGi for over six years. Tim has been a regular participant in the OSGi Core Platform and Enterprise Expert Groups, and led the development of several specifications, including OSGi Promises and Asynchronous Services. Tim is also an active Open Source committer and a PMC member in the Apache Aries project, which provides a container for enterprise OSGi applications.
Tim is a regular conference speaker, and can often be found at JavaOne, Devoxx, OSGi DevCon, OSGi Community Event, EclipseCon, Jazoon and JAX London.
This document provides an overview of design patterns including the Gang of Four (GoF) patterns. It discusses creation patterns like abstract factory and singleton that deal with object creation. Structural patterns like adapter, decorator, and composite that deal with class and object structure. Behavioral patterns like strategy and state that deal with object interaction and behavior. Examples of each pattern type are provided.
Presentation at IBM IOD 2011 by Larry Bob, BI Architect at The Boeing Company about what a skilled Framework Manager modeler can do in a large environment to advance both simplicity and excellence at the same time.
Subsystems: For those occasions where bundles are just too small... - Graham ...mfrancis
Enterprise OSGi 4.2 standardized the use of a number of component models for developing Enterprise OSGi applications: Servlet, JSP, Blueprint, and JPA. Implementations of these specifications have since become available in many open source projects and products such as Apache Aries, Eclipse Gemini/Virgo, GlassFish, JBoss Application Server and WebSphere Application Server. Looking at a number of these environments, it's clear that when it comes to assembly and deployment there's still something missing, namely something to represent a collection of bundles (e.g. an Application). Eclipse Virgo has "PARs" and "Plans", Apache Aries has "Applications", and WebSphere Application Server has “Applications” and “Composites”. Looking further afield to kernel projects, other bundle collection concepts exist, such as Apache Karaf "Features". Each model has concepts in common, such as identity, versioning and content, but also differences like isolation and format. It is clear that this is an area of Enterprise OSGi that could benefit from standardization and hence the Subsystems specification is being created. Subsystems is currently a draft specification which is standardizing artefacts representing collections of bundles, such as an Application. This presentation will introduce the current Subsystems design. It will describe how Subsystems can be used for development and deployment of bundle collections with different isolation semantics, to address the application, composite and feature use cases seen in the OSGi community today.
The Spring framework packs a lot of punch, out of the box! The surface-level component model's extraordinarily flexible, and works well with in most situations, but the real power of Spring lays just underneath, in the numerous SPIs that Spring exposes, so that you can tailor the component model to your own use cases. Spring's SPI's are a great example of what Bob Martin describes as the open-closed principle, and it provides the solid underpinnings upon which the other Spring frameworks, including Spring Integration, Spring MVC and Spring Batch are built. In this talk, Josh Long, the Spring developer advocate from SpringSource, provides a walking tour of Spring's extension points.
OSGi made simple - Fuse Application BundlesRob Davies
FuseSource introduces Fabric Application Bundles (FABs) which make deploying applications in OSGi containers simpler. FABs allow developers to deploy Java applications packaged with Maven dependencies as single deployment units. When installed, FuseSource's Fuse ESB automatically installs all transitive dependencies of a FAB. This provides an easier deployment model than traditional OSGi bundles while still allowing developers to benefit from OSGi features like dynamic updates and versioning when needed. FABs also provide options for configuring shared dependencies across multiple applications to gain code sharing benefits of OSGi.
The OSS Forge Ecosystem: Today and Tomorrowoostendo
The document discusses open source software forges and their ecosystem. It describes the core functions of forges, including source code control, documentation management, and distribution of software and project resources. It outlines different types of forges, including freemium, technology-focused, and community-focused forges. The document also examines challenges facing forge vendors and differences between using a forge and self-hosting.
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.
This document provides an overview of Git and transitioning to Git. It discusses pros and cons of Git including that it works offline, is flexible, reliable, and fast. It provides high-level advice such as getting experts on the team, using a proven workflow, peer review, and mentoring. Technical advice includes using short-lived branches, branching per feature/task, focused commits, and unit tests. Benefits of Git discussed are that it is efficient with text, works around policies, and makes developers stronger. The document also compares Git to SVN.
IBM SONAS and the Cloud Storage TaxonomyTony Pearson
This document discusses IBM's Scale Out Network Attached Storage (SONAS) solution. SONAS provides a global namespace and can scale to support large amounts of unstructured file data across various cloud environments. The document outlines how SONAS utilizes IBM's General Parallel File System (GPFS) and provides features such as high performance, data replication, backups, antivirus integration, and information lifecycle management through migration to tape storage.
This document discusses OSGi and its implementation in JBoss Application Server 7 (AS7). It provides an overview of OSGi core concepts like modularity, services, and dynamic updating. It then discusses how AS7 fully implements the OSGi core specification and allows for integration between OSGi and enterprise Java components. The document outlines both current and future support for enterprise OSGi specifications in AS7 and demonstrates OSGi capabilities with examples.
A classification framework for component modelsIvica Crnkovic
In the last decade a large number of different software component models have been developed, with different aims and using different principles and technologies. This has resulted in a number of models which have many similarities, but also principal differences, and in many cases unclear concepts. Component-based development has not succeeded in providing standard principles, as has, for example, object-oriented development. In order to increase the understanding of the concepts, and to differentiate component models more easily, this paper identifies, discusses and characterises fundamental principles of component models, and provides a Component Model Classification Framework based on these principles. Further, the paper classifies a large number of component models using this 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.
FTSProc: a Process to Alleviate the Challenges of Projects that Use the Follo...Estevão Hess
The document describes a proposed process called FTSProc to help alleviate challenges for projects using the follow-the-sun (FTS) strategy. FTSProc focuses on handoffs between development teams in different time zones. It involves: 1) Daily planning meetings, 2) Assigning tasks based on previous work, 3) Coding tasks, 4) Checking in code, and 5) Completing a handoff form for the next team. An experiment found FTSProc helped make projects using FTS more efficient.
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.
Services first migration to osgi - osgi users forum uk 16-nov2011mfrancis
Presentation by Peter Kriens at OSGi Users' Forum UK meeting on Nov 16, 2011 in London.
Abstract: The OSGi Service Platform is a standard that specifies a comprehensive model of modules that communicate through a powerful, no overhead, Inter Module Communication mechanism: OSGi Services. OSGi enforces module-level isolation that forbids ad hoc cross-module class loading but this conflicts with prevalent Java software patterns that assume application-wide class visibility. OSGi Connect proposes the OSGi programming model without the module-level isolation. This presentation will show you how you can use OSGi Connect to begin to modularize your existing applications with the OSGi programming model with a minimal upfront investment.
Bytecode Weaving in OSGi – Enhance Your Classes, Not Your Dependency graph! ...mfrancis
For a long time bytecode weaving in OSGi has been a cumbersome process. Using it's internal hooks Equinox has supported basic transformation since version 3.2, but there has still been no simple, standard way to enhance classes and add new dependencies to the bundle that contains them. The new OSGi WeavingHook whiteboard pattern, which allows any OSGi bundle, not just an Equinox framework extension, to weave classes from, and add dependencies to, other OSGi bundles. Also new in OSGi is the opportunity to scan the classpath of an OSGi bundle. Whilst the isolated, modular classpath of an OSGi bundle provides an excellent system for building Java applications, many extenders and libraries need to be able to search for classes or resources within the bundle. This function further aids weaving implementations by allowing them to search for resources, class and package name patterns, and other configuration without requiring specific metadata to be present. As the lead author for the Bytecode weaving design within the OSGi Alliance, and a committer in the Apache Aries project, Tim will use his expertise to demonstrate the power and flexibility of WeavingHooks, particularly in conjunction with the latest OSGi updates for classpath scanning. Drawing on real-world examples from the Apache Aries project Tim will use real-world examples to prove that first-class weaving support is now available in OSGi.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
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.
Full-RAG: A modern architecture for hyper-personalizationZilliz
Mike Del Balso, CEO & Co-Founder at Tecton, presents "Full RAG," a novel approach to AI recommendation systems, aiming to push beyond the limitations of traditional models through a deep integration of contextual insights and real-time data, leveraging the Retrieval-Augmented Generation architecture. This talk will outline Full RAG's potential to significantly enhance personalization, address engineering challenges such as data management and model training, and introduce data enrichment with reranking as a key solution. Attendees will gain crucial insights into the importance of hyperpersonalization in AI, the capabilities of Full RAG for advanced personalization, and strategies for managing complex data integrations for deploying cutting-edge AI solutions.
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Speck&Tech
ABSTRACT: A prima vista, un mattoncino Lego e la backdoor XZ potrebbero avere in comune il fatto di essere entrambi blocchi di costruzione, o dipendenze di progetti creativi e software. La realtà è che un mattoncino Lego e il caso della backdoor XZ hanno molto di più di tutto ciò in comune.
Partecipate alla presentazione per immergervi in una storia di interoperabilità, standard e formati aperti, per poi discutere del ruolo importante che i contributori hanno in una comunità open source sostenibile.
BIO: Sostenitrice del software libero e dei formati standard e aperti. È stata un membro attivo dei progetti Fedora e openSUSE e ha co-fondato l'Associazione LibreItalia dove è stata coinvolta in diversi eventi, migrazioni e formazione relativi a LibreOffice. In precedenza ha lavorato a migrazioni e corsi di formazione su LibreOffice per diverse amministrazioni pubbliche e privati. Da gennaio 2020 lavora in SUSE come Software Release Engineer per Uyuni e SUSE Manager e quando non segue la sua passione per i computer e per Geeko coltiva la sua curiosità per l'astronomia (da cui deriva il suo nickname deneb_alpha).
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.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceIndexBug
Imagine a world where machines not only perform tasks but also learn, adapt, and make decisions. This is the promise of Artificial Intelligence (AI), a technology that's not just enhancing our lives but revolutionizing entire industries.
Infrastructure Challenges in Scaling RAG with Custom AI modelsZilliz
Building Retrieval-Augmented Generation (RAG) systems with open-source and custom AI models is a complex task. This talk explores the challenges in productionizing RAG systems, including retrieval performance, response synthesis, and evaluation. We’ll discuss how to leverage open-source models like text embeddings, language models, and custom fine-tuned models to enhance RAG performance. Additionally, we’ll cover how BentoML can help orchestrate and scale these AI components efficiently, ensuring seamless deployment and management of RAG systems in the cloud.
5. 1. Ad Hoc
• Flat, manual class path
• Single name space
• Full visibility and normal
accessibility
• Monolithic
• Highly coupled
• Split Packages
• Add/Shuffle JARs until it works
6. 1. Ad Hoc
• Flat, manual class path
• Single name space
e l l
H
• Full visibility and normal
accessibility
• Monolithic
AR
•
•
Highly coupled
Split Packages J
• Add/Shuffle JARs until it works
7. 2. Managed
• Treat JARs as a module
• JAR Identity
• Naming
• Versioning
• Dependencies
• Repositories
8. 2. Managed
a d
• Treat JARs as a module
n l o
w he t
• JAR Identity
• Naming
D o t
• Versioning
r n e
• Dependencies
n t e
• Repositories
i
9. 3. Contracts
• Interface based design,
POJOs
• Provide contracts for
each connection
between JARs
• Implementation details
inside the JAR
• Versioning on contracts
10. 3. Contracts
•
d e r
a
Interface based design,
o
POJOs
• Provide contracts for
l s
s k
s c
a a
each connection
l h
between JARs
• Implementation details
inside the JAR c
• Versioning on contracts
12. 4. Fences
• Explicitly Import/Export
packages
• Explicitly specify
requirements and capabilities
o d!
•
•
Enforce the module
boundaries
Semantic Versioning
Go
• Side-by-side versioning
supported
13. 5. Optimize
• Exploit concepts for
modules and contracts
• Delegated Control
• Optimize the code base to
leverage new patterns:
• Extender
• Whiteboard
• Repeat
14. 5. Optimize
• Exploit concepts for
modules and contracts
• Delegated Control
• Optimize the code base to
leverage new patterns:
• Extender
• Whiteboard
• Repeat
15. Today
1.
Ad Hoc
2. 3.
Managed Contracts
4.
Fences
5.
Optimize
16. Today
1.
Ad Hoc Enterprise
DI
vn ,C
m ice ing
2. 3.
Ivy Managed Contracts
gu r
saw sp
jig
4.
Fences
5.
Optimize
17. Today
1.
Ad Hoc Enterprise
DI
vn ,C
m ice ing
2. 3.
Ivy Managed Contracts
gu r OSGi
saw s p
jig
4.
Fences
5.
Optimize
18. Today
1.
Ad Hoc Enterprise
DI
vn ,C
m ice ing
2. 3.
Ivy Managed Contracts
gu r OSGi
saw s p
jig
4.
Fences
5.
Optimize
57. So we need a broker
that runs without
fences...
58. So we need a Broker
that runs without
Fences...SR
o j o
P
59. POJOSR
• Developed by Karl Pauls
• JavaOne presentation 24811
• http://pojosr.googlecode.com
• Based on Apache Felix
60. Gain
• Existing libraries and many bundles work without
modification
• Bundle (JAR) activation (have their own local main)
• µServices
• Dynamicity (in µServices)
• Extender pattern (react on JAR content)
• Migration path to Fences (OSGi)
• Existing OSGi and non-OSGi tooling can be used
61. Loss
• No dynamic install/uninstall/update
• No side-by-side versioning
• No module privacy
• No explicit dependencies
• No Lazy activation
• No Bundle classpath
• No Native Code support
62. Migrating
• Example: extend ant … the tool we all
(sometimes) love and (sometimes) hate
• We make different <helloXXX/> tasks
64. Ant Your Service
• Base ant pojosr
ant
• Activator
• Extender
ant
...
...
65. Ant Your Service
• Base ant pojosr
ant
• Activator
• Extender
ant
...
...
66. Ant Your Service
Class<Task>
• Base ant pojosr
ant
• Activator
• Extender
ant
...
...
67. Ant Your Service
Class<Task>
hello
activator
• Base ant pojosr
ant
• Activator
• Extender
ant
...
...
68. Ant Your Service
Class<Task>
hello
activator
• Base ant pojosr
ant
• Activator
• Extender
ant
...
...
69. Ant Your Service
<project name="master">
<path id="bundles">
<fileset dir="bundles">
<include name="*.jar" />
</fileset>
</path>
<taskdef name="auto"
classname="aQute.ant.connect.AutoTask" classpathref="bundles" />
<auto />
<helloActivator />
</project>
70. Ant Your Service
public class Activator implements BundleActivator {
public void start(BundleContext context) throws Exception {
Properties props = new Properties();
props.put("ant", "helloActivator");
context.registerService(Class.class.getName(),
HelloTask.class, props);
}
public void stop(BundleContext context) throws Exception {
}
}
public class HelloTask extends Task {
String message = "Hello Activator";
public void execute() { System.out.println(message); }
public void setMessage(String m) { this.message = m; }
}
71. Ant Your Service
public class Activator implements BundleActivator {
t
public void start(BundleContext context) throws Exception {
f
Properties props = new Properties();
u
props.put("ant", "helloActivator");
r
context.registerService(Class.class.getName(),
c
HelloTask.class, props);
}
public void stop(BundleContext context) throws Exception {
}
}
public class HelloTask extends Task {
String message = "Hello Activator";
public void execute() { System.out.println(message); }
public void setMessage(String m) { this.message = m; }
}
72. Ant Your Service
Class<Task>
hello
activator
• Base ant pojosr
pojo
ant
• Activator
• Extender
ant
...
...
73. Ant Your Service
Class<Task>
hello
activator
• Base ant pojosr
pojo
ant
hello
extendee
• Activator
• Extender
ant
...
...
74. Ant Your Service
Class<Task>
hello
activator
• Base ant pojosr
pojo
ant
hello
extendee
• Activator
Manifest-Version: 1.0
• ant Ant-Task: helloExtender=HelloTask
Extender
...
...
75. Ant Your Service
public class HelloTask extends Task {
String message = "Hello Extender";
public void execute() { System.out.println(message); }
public void setMessage(String m) { this.message = m; }
}
76. Ant Your Service
public class HelloTask extends Task {
String message = "Hello Extender";
public void execute() { System.out.println(message); }
public void setMessage(String m) { this.message = m; }
}
u ft
c r
N O
77. Conclusion
• Moving to Fences is hard because popular
instance creation patterns are
fundamentally not modular
• Services-First approach works without
Fences
• After completion, moving to Fences is
much easier