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 OSGi Subsystems specification is now published. Subsystems provide a way of structuring large systems comprising many OSGi bundles - a "no brainer" for architects who want to build a modular system. But what are the practical considerations when using Subsystems? We'll look at the trade-offs involved and indicate some patterns and anti-patterns.
Eclipse Virgo was one of the technologies that provided input to the Subsystem specification. We'll use Virgo as a source of examples in discussing the practical trade-offs in the use of Subsystems.
This presentation was given at the OSGi DevCon at EclipseCon Europe 2012.
This document discusses modularity in Java and OSGi, focusing on multi-bundle modules and scoping mechanisms. It describes how modules are represented in Java through classes, packages, JAR files, and classloaders. In OSGi, bundles provide modularity, and the document explores approaches to multi-bundle modules like composite bundles, framework hooks, and region digraphs. It introduces subsystems as a proposed OSGi standard for defining and scoping multi-bundle modules.
OSGi was adopted to enable dynamic installation and updating of components in a telecommunications system. The system was gradually modularized using OSGi services and bundles over time. This improved extensibility, reduced coupling between layers, and made the code base significantly cleaner and easier to maintain. OSGi enforces better modular design and the use of services improves loose coupling between components.
This document provides an overview of using Varnish to cache content and improve website performance. It discusses how Varnish works, integrating it with TYPO3, strategies for caching content like ESI and purging, and best practices for the Varnish configuration. It also describes how to get the MOC Varnish extension for TYPO3, which includes a sample Varnish configuration file.
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.
Siebel Server Cloning available in 8.1.1.9 / 8.2.2.2Jeroen Burgers
Installation Cloning
Siebel server cloning
Enterprise cloning
Patch Deployment
Capture installation changes
Apply changes to target environments
Server Configuration Deployment
Extract server configuration settings
Migrate server configurations to target environments
Thousands of customers have stepped up to the next generation of Novell GroupWise. Why? They're plugging in and turning on in this highly connected workspace that leverages Web resources to enhance collaboration. Attend this session to hear from some of the experienced partners who sell and support Novell GroupWise. They'll share a look at recent customer successes with the product and provide you with details on the real-world collaboration challenges it solves.
The OSGi Subsystems specification is now published. Subsystems provide a way of structuring large systems comprising many OSGi bundles - a "no brainer" for architects who want to build a modular system. But what are the practical considerations when using Subsystems? We'll look at the trade-offs involved and indicate some patterns and anti-patterns.
Eclipse Virgo was one of the technologies that provided input to the Subsystem specification. We'll use Virgo as a source of examples in discussing the practical trade-offs in the use of Subsystems.
This presentation was given at the OSGi DevCon at EclipseCon Europe 2012.
This document discusses modularity in Java and OSGi, focusing on multi-bundle modules and scoping mechanisms. It describes how modules are represented in Java through classes, packages, JAR files, and classloaders. In OSGi, bundles provide modularity, and the document explores approaches to multi-bundle modules like composite bundles, framework hooks, and region digraphs. It introduces subsystems as a proposed OSGi standard for defining and scoping multi-bundle modules.
OSGi was adopted to enable dynamic installation and updating of components in a telecommunications system. The system was gradually modularized using OSGi services and bundles over time. This improved extensibility, reduced coupling between layers, and made the code base significantly cleaner and easier to maintain. OSGi enforces better modular design and the use of services improves loose coupling between components.
This document provides an overview of using Varnish to cache content and improve website performance. It discusses how Varnish works, integrating it with TYPO3, strategies for caching content like ESI and purging, and best practices for the Varnish configuration. It also describes how to get the MOC Varnish extension for TYPO3, which includes a sample Varnish configuration file.
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.
Siebel Server Cloning available in 8.1.1.9 / 8.2.2.2Jeroen Burgers
Installation Cloning
Siebel server cloning
Enterprise cloning
Patch Deployment
Capture installation changes
Apply changes to target environments
Server Configuration Deployment
Extract server configuration settings
Migrate server configurations to target environments
Thousands of customers have stepped up to the next generation of Novell GroupWise. Why? They're plugging in and turning on in this highly connected workspace that leverages Web resources to enhance collaboration. Attend this session to hear from some of the experienced partners who sell and support Novell GroupWise. They'll share a look at recent customer successes with the product and provide you with details on the real-world collaboration challenges it solves.
Provisioning with OSGi Subsystems and Repository using Apache Aries and FelixDavid Bosschaert
This presentation takes a closer look at deploying OSGi-based applications using OSGi Subsystems and OSGi Repositories. You will see how you to package multi-bundle applications as a subsystem, deploy them and use repositories to handle dependencies. A large part of the presentation is a demo that shows it all in action using open source technology.
Note that in the screenshots Apache Aries Subsystems Core is using a pre-release version. This bundle is now released under 1.1.0.
See here in Maven Central: http://search.maven.org/#artifactdetails%7Corg.apache.aries.subsystem%7Corg.apache.aries.subsystem.core%7C1.1.0%7Cbundle
This document discusses combining OSGI modularity with Java EE functionality using Apache Karaf. It provides an overview of OSGI and modularity concepts. It then discusses how the Apache Karaf container can be used to build modular applications and how features like JPA, EJB, and CDI can be incorporated through projects like Aries and OpenEJB. An example architecture is shown using Karaf with Java EE components like JPA and EJB. The presentation concludes that Karaf allows leveraging both OSGI and Java EE technologies for modular application development.
When dispatcher caching is not enough... (extended version)Jakub Wadolowski
Content distribution for worldwide audience is not a trivial task. Most of the time the goal is very well known - keep your users happy and deliver them content they need as fast as you can.
There are at least two ways you can achieve that. You can build (and manage!) your own solution (AEM/dispatcher farms spread across the globe) or put a CDN in front of your application stack. The first one may sound tempting, but on second thought you quickly realize it's too much hassle and you would rather go for CDN. Regardless of the solution a set of problems stays the same.
Back in the old days you could just cache (almost) everything, as your website was pretty much static, but currently it's much more complicated. Your AEM stack is built from dynamic components that fetch data from 3rd party apps, there's a search engine under the hood and all crucial content is available for logged-in users only. To be even worse your resources are updated multiple times a day. Is it even possible to leverage CDN for that type of websites?
Have you ever tried to cache customized content that is available for authenticated users? Or authorize them at the edge? Or maybe you were crazy enough to implement CDN, not only for content served from AEM publish, but also in front of your authoring? In my talk I'd like to present you how we integrated AEM app that serves content to users distributed all over the world with heavily customizable content delivery network (Fastly).
This will be an extended version of the talk I gave at ConnectCon conference this June. Expect more details and a rich live demo on stage!
David Bosschaert & Carsten Ziegelar - Adobe
"The OSGi platform powering AEM provides a dynamic module system and enables component oriented development. Besides serving the as foundation for AEM, there are benefits for application developers.
This talk outlines the ease of use of OSGi in application code and shows how to master development tasks by using the right APIs and tools. Learn about the latest in component development, asynchronous processing, configuration management and deploying your application code in larger modules, so-called subsystems. A subsystem allows to package a set of bundles and configurations. The subsystem can run isolated from other bundles or other applications.
Learn how to leverage the latest OSGi tech for your own projects. All of the functionality discussed works directly with in AEM 6.1, GA now.
Make the most of the power of OSGi.
Even basic AEM deployment involves some network communication. All services need to be aware of each other to make the entire AEM stack usable for both content editors and end users.
The truth is, basic AEM deployments are not that common these days. In many cases it's much more complex - there's plenty of services around you (search engines, caching servers, data feeds, etc) and you need to talk to them in this way or another. Even though that's not the case in your project, most probably you have more than one environment to deal with (unless you're Facebook, as they run just production). All in all it makes perfect sense to run service discovery tool in your AEM infrastructure, as in a long term it gets really painful to manage all these communication channels by hand.
During my talk I'd present how Cognifide combined Consul and Chef to:
- make sure AEM always talk to correct endpoint, no matter how many instances of given service we run
- no longer worry about hardcoded IP addresses in AEM configs or Chef cookbooks
- automatically pick up new services as they go online
- enable even faster, zero-downtime deployments
- orchestrate the entire AEM infrastructure
An interesting fact is that we were able to achieve all of these without a single change in our AEM app!
This document discusses Sling Models in AEM, including what they are, why they are useful, how to use them, and examples of Sling Model annotations. Sling Models allow mapping of Sling objects like resources and requests to plain Java objects using annotations. They reduce coding efforts and make code more maintainable by avoiding redundant code. The document covers the necessary dependencies, common annotations like @Model, @Inject, @Optional, and examples of injecting resources, child resources, and properties into Sling Models.
This document discusses client-side libraries in AEM and best practices for their use. It explains that clientlibs allow logical organization of JavaScript and CSS files and avoid duplicate includes. Key points covered include using cq:ClientLibraryFolders to define libraries, including them via cq:includeClientLib, dependencies vs embedding, debugging tools, themes, and minification. Best practices include placing component code in clientlibs, embedding to reduce requests, requesting from /etc, defining dependencies, and minification on publish.
REST in AEM is not because it builds Web implementations or uses Web architecture. REST is an architectural style for network-based applications that induces the same properties as the World Wide Web through the use of design constraints. Specifically, REST constrains applications through five uniform interface constraints that induce properties like simple, visible, reusable, stateless communication and representations exchanged through self-descriptive messages.
Version 6 of Adobe Experience Manager (AEM 6) is a major release that introduces significant innovations. Sightly is a new template system to be used in place of (or together with) JSP. Along with Sling Models, SIghtly strongly improves the separation between the logic and presentation. The development effort is reduced because a Sightly template is an HTML 5 document, easily maintainable even by front-end developers.
The presentation provides an overview of the basic features of Sightly and introduces the fundamentals of the new development model with the support of tools released release together with AEM 6.
This document provides an overview of how to customize the user interface in AEM 6, including extending administration pages, creating custom admin screens, and extending the page authoring interface. It discusses using the Sling Resource Merger to override and extend existing UI components. It also covers creating custom toolbar actions, inplace editors, layers, and asset groups. The document aims to explain the key extension points and objects involved in customizing different aspects of the AEM UI.
AEM (CQ) Dispatcher Security and CDN+Browser CachingAndrew Khoury
This presentation cover Adobe AEM Dispatcher security and CDN and browser caching.
This presentation is the second part of a webinar on AEM Dispatcher:
http://dev.day.com/content/ddc/en/gems/dispatcher-caching---new-features-and-optimizations.html
Visit url above to view the whole presentation. Domique Pfister the primary engineer developing AEM Dispatcher covers the first part on new features.
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructuresFrançois Le Droff
ConnectCon 2014 presentation
Francois and Nicolas share their latest experiment coding AEM 6 infrastructure with Chef. Learn how to start from bare metal - virtual, physical or cloud - servers and turn them, in matter of minutes, into a production ready AEM 6 infrastructure. Think author and publish farms, optional SSL, dispatcher, and clustering with MongoDB) Meanwhile you’ll be given a comprehensive overview of Chef resources and techniques enabling you to accelerate, scale, simplify and secure your development and release workflow.
AEM Apps Enhanced: In-app Messaging and Beacons by John FaitAEM HUB
This document summarizes a presentation about enhancing mobile apps with messaging and beacon capabilities using AEM Apps. It discusses trends in mobile consumption, the challenges of mobile development, and how AEM Apps can help make mobile app development and management easier. It then demonstrates how AEM Apps allows adding in-app messaging and managing beacons to trigger messages and content. Key takeaways are that AEM Apps can help with app development, messaging can retain and engage users, and beacons can merge digital and physical experiences.
This document discusses new features in Adobe Experience Manager (AEM) 6, including the new Oak content repository which provides improved scalability, performance, and distributed capabilities. Oak is based on Apache Jackrabbit and uses a microkernel architecture with pluggable node and data storage options like TarMK and MongoMK. It also covers new search capabilities via pluggable index providers like Lucene and Solr. The presentation demonstrates improvements in areas like operations dashboarding, one-click setup, developer mode, and Eclipse tooling. It provides a sneak peek at the new Granite.JS micro engine for building lightweight Node.js-based server applications on AEM.
AEM Best Practices for Component DevelopmentGabriel Walt
This presentation describes how to easily get started with an efficient development workflow with Adobe Experience Manager 6.1.
The tools and technologies presented are:
* Project Archetype – https://github.com/Adobe-Marketing-Cloud/aem-project-archetype
* AEM Eclipse Extension – https://docs.adobe.com/docs/en/dev-tools/aem-eclipse.html
* AEM Brackets Extension – https://docs.adobe.com/docs/en/dev-tools/aem-brackets.html
* Sightly Template Language – http://www.slideshare.net/GabrielWalt/component-development
* Sightly REPL Tool – https://github.com/Adobe-Marketing-Cloud/aem-sightly-repl
* Sightly TodoMVC Example – https://github.com/Adobe-Marketing-Cloud/aem-sightly-sample-todomvc
The Role of Enterprise Integration in Digital TransformationKasun Indrasiri
The document discusses how digital transformation is driving changes in enterprise integration needs, moving from centralized integration middleware towards decentralized microservices and micro-integrations. It introduces Ballerina, a new programming language from WSO2 that can be used to build independent, lightweight integration microservices visually or textually. WSO2's next generation integration platform will use Ballerina to replace the ESB and address modern integration requirements around agility, orchestration, APIs, microservices, performance and scalability.
IBM Sponsorship Keynote: Towards a Modularity Maturity Model - Graham Chartersmfrancis
For those in the thick of OSGi, it is easy to forget what it was like to get started, and what benefits are achieved at each stage. Drawing inspiration from the various SOA maturity models, I thought it would be an interesting exercise to try to put together a modularity equivalent, and so the Modularity Maturity Model (M3) was born. The title says "Towards" because this is an initial proposal and so input from the audience (rocks, rotten vegetables, and maybe even faint praise) would be welcome.
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
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.
Subsystems for those occasions where bundles are just too small... - Tom Watsonmfrancis
Presentation by Tom Watson (IBM) at OSGi DevCon 2012 BOF (22 March, 2012)
Video recording of presentation is available at http://youtu.be/3uq729vFQEc
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 for the Enterprise OSGi 5.0 specification.
Subsystems is an OSGi specification which standardizes artifacts representing collections of bundles, such as an Application. This presentation will introduce the 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 OSGi framework provides a powerful runtime for the Java platform, which promotes strong modularity, versioning and dynamic management of bundles. Bundles installed in the framework are expected to collaborate and live together sharing the same service registry and public class space. Until now there was no standard way to provide additional isolation and lifecycle to a collection of bundles installed in a single framework. This presentation will discuss how the subsystems specification can be used to provide additional isolation to a collection of bundles or applications installed into the framework.
Provisioning with OSGi Subsystems and Repository using Apache Aries and FelixDavid Bosschaert
This presentation takes a closer look at deploying OSGi-based applications using OSGi Subsystems and OSGi Repositories. You will see how you to package multi-bundle applications as a subsystem, deploy them and use repositories to handle dependencies. A large part of the presentation is a demo that shows it all in action using open source technology.
Note that in the screenshots Apache Aries Subsystems Core is using a pre-release version. This bundle is now released under 1.1.0.
See here in Maven Central: http://search.maven.org/#artifactdetails%7Corg.apache.aries.subsystem%7Corg.apache.aries.subsystem.core%7C1.1.0%7Cbundle
This document discusses combining OSGI modularity with Java EE functionality using Apache Karaf. It provides an overview of OSGI and modularity concepts. It then discusses how the Apache Karaf container can be used to build modular applications and how features like JPA, EJB, and CDI can be incorporated through projects like Aries and OpenEJB. An example architecture is shown using Karaf with Java EE components like JPA and EJB. The presentation concludes that Karaf allows leveraging both OSGI and Java EE technologies for modular application development.
When dispatcher caching is not enough... (extended version)Jakub Wadolowski
Content distribution for worldwide audience is not a trivial task. Most of the time the goal is very well known - keep your users happy and deliver them content they need as fast as you can.
There are at least two ways you can achieve that. You can build (and manage!) your own solution (AEM/dispatcher farms spread across the globe) or put a CDN in front of your application stack. The first one may sound tempting, but on second thought you quickly realize it's too much hassle and you would rather go for CDN. Regardless of the solution a set of problems stays the same.
Back in the old days you could just cache (almost) everything, as your website was pretty much static, but currently it's much more complicated. Your AEM stack is built from dynamic components that fetch data from 3rd party apps, there's a search engine under the hood and all crucial content is available for logged-in users only. To be even worse your resources are updated multiple times a day. Is it even possible to leverage CDN for that type of websites?
Have you ever tried to cache customized content that is available for authenticated users? Or authorize them at the edge? Or maybe you were crazy enough to implement CDN, not only for content served from AEM publish, but also in front of your authoring? In my talk I'd like to present you how we integrated AEM app that serves content to users distributed all over the world with heavily customizable content delivery network (Fastly).
This will be an extended version of the talk I gave at ConnectCon conference this June. Expect more details and a rich live demo on stage!
David Bosschaert & Carsten Ziegelar - Adobe
"The OSGi platform powering AEM provides a dynamic module system and enables component oriented development. Besides serving the as foundation for AEM, there are benefits for application developers.
This talk outlines the ease of use of OSGi in application code and shows how to master development tasks by using the right APIs and tools. Learn about the latest in component development, asynchronous processing, configuration management and deploying your application code in larger modules, so-called subsystems. A subsystem allows to package a set of bundles and configurations. The subsystem can run isolated from other bundles or other applications.
Learn how to leverage the latest OSGi tech for your own projects. All of the functionality discussed works directly with in AEM 6.1, GA now.
Make the most of the power of OSGi.
Even basic AEM deployment involves some network communication. All services need to be aware of each other to make the entire AEM stack usable for both content editors and end users.
The truth is, basic AEM deployments are not that common these days. In many cases it's much more complex - there's plenty of services around you (search engines, caching servers, data feeds, etc) and you need to talk to them in this way or another. Even though that's not the case in your project, most probably you have more than one environment to deal with (unless you're Facebook, as they run just production). All in all it makes perfect sense to run service discovery tool in your AEM infrastructure, as in a long term it gets really painful to manage all these communication channels by hand.
During my talk I'd present how Cognifide combined Consul and Chef to:
- make sure AEM always talk to correct endpoint, no matter how many instances of given service we run
- no longer worry about hardcoded IP addresses in AEM configs or Chef cookbooks
- automatically pick up new services as they go online
- enable even faster, zero-downtime deployments
- orchestrate the entire AEM infrastructure
An interesting fact is that we were able to achieve all of these without a single change in our AEM app!
This document discusses Sling Models in AEM, including what they are, why they are useful, how to use them, and examples of Sling Model annotations. Sling Models allow mapping of Sling objects like resources and requests to plain Java objects using annotations. They reduce coding efforts and make code more maintainable by avoiding redundant code. The document covers the necessary dependencies, common annotations like @Model, @Inject, @Optional, and examples of injecting resources, child resources, and properties into Sling Models.
This document discusses client-side libraries in AEM and best practices for their use. It explains that clientlibs allow logical organization of JavaScript and CSS files and avoid duplicate includes. Key points covered include using cq:ClientLibraryFolders to define libraries, including them via cq:includeClientLib, dependencies vs embedding, debugging tools, themes, and minification. Best practices include placing component code in clientlibs, embedding to reduce requests, requesting from /etc, defining dependencies, and minification on publish.
REST in AEM is not because it builds Web implementations or uses Web architecture. REST is an architectural style for network-based applications that induces the same properties as the World Wide Web through the use of design constraints. Specifically, REST constrains applications through five uniform interface constraints that induce properties like simple, visible, reusable, stateless communication and representations exchanged through self-descriptive messages.
Version 6 of Adobe Experience Manager (AEM 6) is a major release that introduces significant innovations. Sightly is a new template system to be used in place of (or together with) JSP. Along with Sling Models, SIghtly strongly improves the separation between the logic and presentation. The development effort is reduced because a Sightly template is an HTML 5 document, easily maintainable even by front-end developers.
The presentation provides an overview of the basic features of Sightly and introduces the fundamentals of the new development model with the support of tools released release together with AEM 6.
This document provides an overview of how to customize the user interface in AEM 6, including extending administration pages, creating custom admin screens, and extending the page authoring interface. It discusses using the Sling Resource Merger to override and extend existing UI components. It also covers creating custom toolbar actions, inplace editors, layers, and asset groups. The document aims to explain the key extension points and objects involved in customizing different aspects of the AEM UI.
AEM (CQ) Dispatcher Security and CDN+Browser CachingAndrew Khoury
This presentation cover Adobe AEM Dispatcher security and CDN and browser caching.
This presentation is the second part of a webinar on AEM Dispatcher:
http://dev.day.com/content/ddc/en/gems/dispatcher-caching---new-features-and-optimizations.html
Visit url above to view the whole presentation. Domique Pfister the primary engineer developing AEM Dispatcher covers the first part on new features.
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructuresFrançois Le Droff
ConnectCon 2014 presentation
Francois and Nicolas share their latest experiment coding AEM 6 infrastructure with Chef. Learn how to start from bare metal - virtual, physical or cloud - servers and turn them, in matter of minutes, into a production ready AEM 6 infrastructure. Think author and publish farms, optional SSL, dispatcher, and clustering with MongoDB) Meanwhile you’ll be given a comprehensive overview of Chef resources and techniques enabling you to accelerate, scale, simplify and secure your development and release workflow.
AEM Apps Enhanced: In-app Messaging and Beacons by John FaitAEM HUB
This document summarizes a presentation about enhancing mobile apps with messaging and beacon capabilities using AEM Apps. It discusses trends in mobile consumption, the challenges of mobile development, and how AEM Apps can help make mobile app development and management easier. It then demonstrates how AEM Apps allows adding in-app messaging and managing beacons to trigger messages and content. Key takeaways are that AEM Apps can help with app development, messaging can retain and engage users, and beacons can merge digital and physical experiences.
This document discusses new features in Adobe Experience Manager (AEM) 6, including the new Oak content repository which provides improved scalability, performance, and distributed capabilities. Oak is based on Apache Jackrabbit and uses a microkernel architecture with pluggable node and data storage options like TarMK and MongoMK. It also covers new search capabilities via pluggable index providers like Lucene and Solr. The presentation demonstrates improvements in areas like operations dashboarding, one-click setup, developer mode, and Eclipse tooling. It provides a sneak peek at the new Granite.JS micro engine for building lightweight Node.js-based server applications on AEM.
AEM Best Practices for Component DevelopmentGabriel Walt
This presentation describes how to easily get started with an efficient development workflow with Adobe Experience Manager 6.1.
The tools and technologies presented are:
* Project Archetype – https://github.com/Adobe-Marketing-Cloud/aem-project-archetype
* AEM Eclipse Extension – https://docs.adobe.com/docs/en/dev-tools/aem-eclipse.html
* AEM Brackets Extension – https://docs.adobe.com/docs/en/dev-tools/aem-brackets.html
* Sightly Template Language – http://www.slideshare.net/GabrielWalt/component-development
* Sightly REPL Tool – https://github.com/Adobe-Marketing-Cloud/aem-sightly-repl
* Sightly TodoMVC Example – https://github.com/Adobe-Marketing-Cloud/aem-sightly-sample-todomvc
The Role of Enterprise Integration in Digital TransformationKasun Indrasiri
The document discusses how digital transformation is driving changes in enterprise integration needs, moving from centralized integration middleware towards decentralized microservices and micro-integrations. It introduces Ballerina, a new programming language from WSO2 that can be used to build independent, lightweight integration microservices visually or textually. WSO2's next generation integration platform will use Ballerina to replace the ESB and address modern integration requirements around agility, orchestration, APIs, microservices, performance and scalability.
IBM Sponsorship Keynote: Towards a Modularity Maturity Model - Graham Chartersmfrancis
For those in the thick of OSGi, it is easy to forget what it was like to get started, and what benefits are achieved at each stage. Drawing inspiration from the various SOA maturity models, I thought it would be an interesting exercise to try to put together a modularity equivalent, and so the Modularity Maturity Model (M3) was born. The title says "Towards" because this is an initial proposal and so input from the audience (rocks, rotten vegetables, and maybe even faint praise) would be welcome.
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
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.
Subsystems for those occasions where bundles are just too small... - Tom Watsonmfrancis
Presentation by Tom Watson (IBM) at OSGi DevCon 2012 BOF (22 March, 2012)
Video recording of presentation is available at http://youtu.be/3uq729vFQEc
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 for the Enterprise OSGi 5.0 specification.
Subsystems is an OSGi specification which standardizes artifacts representing collections of bundles, such as an Application. This presentation will introduce the 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 OSGi framework provides a powerful runtime for the Java platform, which promotes strong modularity, versioning and dynamic management of bundles. Bundles installed in the framework are expected to collaborate and live together sharing the same service registry and public class space. Until now there was no standard way to provide additional isolation and lifecycle to a collection of bundles installed in a single framework. This presentation will discuss how the subsystems specification can be used to provide additional isolation to a collection of bundles or applications installed into the framework.
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.
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.
Many people are drawn into OSGi because it provides class loaders on steroids, however, one of the often overlooked feature of OSGi is the Service Registry and the (µ)service model. µServices provide a much more powerful alternative to the traditional Java factories and listeners in your code or xml, which are the usual culprits for class loading headaches. Alas, you need to migrate your application to OSGi first in order to take advantage of µServices which would make it so much easier to migrate your application to OSGi in the first place. The idea of PojoSR (a.k.a OSGi Lite) is to remedy this situation by providing OSGi without the module layer. PojoSR is based on Apache Felix and runs in any standard Java environment: from the class path, inside a WAR, wherever your current Java runs because it never touches a class loader. It allows any application built in Java to reap the benefits of service-based modularity without first having to rid existing code of any class loader tricks. This approach also allows, many existing bundles work out of the box - just by adding them to the class path (PojoSR will detect bundles on the class path and execute their activators). It works so well that OSGi is thinking of standardizing this approach. This talk will show you how you can take advantage of µServices using PojoSR and present some examples where µServices and PojoSR wore used to modularize and OSGi'fy an existing application.
Enterprise Applications With OSGi and SpringSource dm ServerSam Brannen
This talk covers the benefits of OSGi in Enterprise Java as well as the concrete challenges and solutions to them. The focus is on SpringSource dm Server which represents a complete OSGi environment and solves many of the issues in this area. Throughout the talk demos and code samples will demonstrate the practical application of the discussed principles. This includes the stepwise migration of a (legacy) WAR based web application to a fully modularized OSGi-based web application.
The document proposes a 6-level Modularity Maturity Model that describes an organization's ability to produce modular systems. Level 1 represents ad hoc development with no modularity. Level 2 introduces formal module identities. Level 3 adds declared module contracts. Level 4 achieves loose coupling through services. Level 5 involves modularity-aware code repositories. Level 6 allows dynamic updating of running systems. The model is intended to help organizations understand current practices and prioritize improvements to increase modular design and development.
Towards a modularity maturity model - osgi users forum uk 16-nov2011mfrancis
Presentation by Graham Charters at OSGi Users' Forum UK meeting on Nov 16, 2011 in London.
Abstract: For those in the thick of OSGi, it is easy to forget what it was like to get started, and what benefits are achieved at each stage. Drawing inspiration from the various SOA maturity models, I thought it would be an interesting exercise to try to put together a modularity equivalent, and so the Modularity Maturity Model (M3) was born. The title says "Towards" because this is an initial proposal and so input from the audience (rocks, rotten vegetables, and maybe even faint praise) would be welcome.
Subsystems is an OSGi Alliance specification that standardizes the development and deployment of bundle collections. The specification was motivated by the need for bundle collections exhibited by many existing products & projects, including: Apache Karaf, Apache Aries, Eclipse Virgo, WebSphere Application Server, etc.
Three different types of collections are defined in the specification: feature, composite & application, each having different rules covering sharing of packages and services, and each being designed with different use cases in mind. Subsystems was first introduced in OSGi Enterprise R5 and since then work has continued on further enhancements. This talk will introduce the Subsystems specification, describe some practical use cases, provide demonstrations based on the Apache Aries Reference Implementation, and finally talk a bit about what's coming in the next version.
Bio:
Graham Charters is a Senior Technical Staff Member in the IBM WebSphere Application Server development organization. He is responsible for the OSGi Applications feature of the Application Server and a committer and PMC member of the Apache Aries OSGi programming model project. He is also the IBM technical lead in the OSGi Alliance Enterprise Expert Group.
The document provides an overview of basic Java programming concepts. It discusses how Java enables software portability across different hardware systems and operating systems through the use of bytecode and the Java Virtual Machine (JVM). It also covers Java language fundamentals like data types, packages, I/O, and garbage collection. The document includes examples and exercises for attendees to practice writing, compiling and running simple Java programs.
As presented by Ralf Dossmann and Ajay Patel at OTN Architect Day in Pasadena, July 9, 2009.
Find an OTN Architect Day event near you: http://www.oracle.com/technology/architect/archday.html
Interact with Architect Day presenters and participants on Oracle Mix: https://mix.oracle.com/groups/15511
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.
UShareSoft presented in OW2 track @ Solutions Linux 2012UShareSoft
This document discusses building dynamic app stores for cloud providers and enterprises. It outlines how app stores can help federate ecosystems, provide new business opportunities, and offer flexible pricing models. The key is using model-driven templates to generate images that are OS-agnostic and can deploy to any hypervisor or cloud. This allows building multi-cloud app stores that facilitate collaboration and software governance.
With the release of OSGi Enterprise 4.2, the role of OSGi has been extended into the enterprise, alongside what has traditionally been developed using JEE. This session will cover the best practices for developing OSGi Enterprise applications and OSGi bundles in order to utilise the full power of OSGi technology, followed by a demo of using these best practices to assembly an OSGi application. At the end of the session, you will be able to learn how to use OSGi in a recommended way.
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...
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
Link Samba to Cloud Storage provides a solution to link cloud storage to Samba using FUSE. It allows sharing information through distributed sites on different locations while reducing costs. Components include FUSE, Samba, and backup tools to sync data from the cloud storage to local drives accessible over SMB/CIFS.
The document discusses CMIS (Content Management Interoperability Services), a new standard for allowing interoperability between different content management systems. CMIS aims to provide a common language for querying, managing and collaborating on content across multiple repositories through a RESTful web services interface, similar to how SQL allows interaction with different databases. The presentation outlines the goals of CMIS in creating a new ecosystem for enterprise content management, as well as use cases like collaborative authoring, portals and e-discovery that can be built on it. Alfresco is highlighted as the first company to provide an implementation of the CMIS standard in its open source content services platform.
Similar to Subsystems: For those occasions where bundles are just too small... - Graham Charters (20)
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...mfrancis
OSGi Community Event 2018 Presentation by Mark Hoffmann (Data In Motion)
Abstract: This talk will show you how the EMF framework can be used in pure OSGi environments other than Equinox. We will introduce you into free configurable ResourceSets and the principle of a ResourceSetFactory. This enables your application to have multiple tenants with different model visibillity. The profit of OSGi services provides a behavior where even models can come and go all the time.
We will also give you look inside, how easy it is to extend the default code generation process of EMF to generate OSGi service component that handle the model registration in an OSGi way.
OSGi Community Event 2018 Presentation by BJ Hargrave (IBM)
Abstract: Java 9 introduced the Java Platform Module System (JPMS) as a way to modularize the Java platform and it can be also be used by developers to modularize their own applications, although JPMS lack a number of important features for software running on the Java platform.
As people look to support the latest versions of the Java platform, changes introduced in Java 9 related to JPMS led to the needs for some features in the OSGi Core specification. OSGi framework implementations like Eclipse Equinox and Apache Felix and tools like Bnd were updated to support these new features.
This session will explore the Java 9+ support added to OSGi Core R7 and Bnd and help you learn how to navigate the world of Java 9+ and OSGi.
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)mfrancis
This document discusses simplifying web UX using OSGi modularity. It mentions coding tasks becoming quicker and easier using OSGi and controlling OSGi DS component instances. It provides links to GitHub pages for the Open Security Controller project and a blog post about controlling OSGi components. It concludes by thanking the audience and reminding them they are being watched.
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruumfrancis
This document discusses connecting the OSGi framework to Kubernetes for managing applications in container-based environments. It raises questions about building systems that can update while running and whether years spent on this have been wasted. It also briefly mentions a demo of OSGi and Kubernetes integration and asks why a load balancer wouldn't work instead. The document calls for feedback on sessions and ideas about OSGi, Kubernetes, immutable vs mutable systems, and J2EE versus OSGi.
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...mfrancis
OSGi Community Event 2018 Presentation by Tim Verbelen (imec) & Jan S. Rellermeyer (TU Delft)
Abstract: With the proliferation of cloud computing and more recently mobile and edge computing, there is a increasing demand to build flexible and robust distributed applications. The OSGi service and module technology is a key enabler for such deployment. Recent additions to the OSGi standards provide a set of services that provide interfaces for managing distributed instances of OSGi frameworks. The REST Service (added in R6 compendium) offers an easy and language-independent way to manage bundes and introspect services from outside the network. The Cluster Information specifications (added in R7 compendium) provide means for applications to manage and monitor the deployment intrinsically, building on top of the Remote Service specifications. In the Eclipse Concierge project, we have provided the reference implementations of both specifications. In this talk, we will show how the services can be used to build distributed applications that benefit from the OSGi modularity.
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...mfrancis
OSGi Community Event 2018 Presentation by Udo Hafermann (Software AG)
Abstract: In this talk we will share our experiences in developing a tool chain from classes, to bundles, to containers, to systems.
OSGi and Docker come together in a compelling way where the former provides modularity "in the small" and the latter "modularity in the large". We discover how the unique characteristics of OSGi enable a smooth transition from small to large.
The resulting environment enables developers to grow distributed systems on their local machine and test them with plain JUnit at all levels of granularity - classes to systems. During development OSGi enables the tool chain to update the system without container rebuilds.
While an increase in productivity is one benefit of such an environment, an arguably more important benefit is the way it empowers developers to gain new insights.
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...mfrancis
OSGi Community Event 2018 Presentation by Jurgen Albert (Data In Motion Consulting GmbH)
Abstract: OSGi is often conceived as a tool to write efficient Java Applications for resource limited Devices or If resources are a real issue in complex applications. On the other hand Microservices became the buzzword of the cloud and is often implemented using Spring or other Programming languages. OSGi carries the concept of microservices in its core and is therefore much better suited to the task then most other approaches. This talk will show you how a service can be built with a real-worldish use case, leveraging the power of OSGi R7. It will show the combined usage of PushsStreams, the JaxRS Whiteboard, the configurator, remote deployment and a lot of the other cool things OSGi has to offer.
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)mfrancis
OSGi Community Event 2018 Presentation by David Bosschaert (Adobe)
Abstract: OSGi lends itself well to develop extensible applications assembled from reusable modules, where a set of bundles together with a set of configurations deployed to a provisioned OSGi framework is the application.
While this works very well for the originally intended use-cases, maintaining and building large applications developed by multiple teams often requires to assemble multiple larger components for which there is limited support in OSGi as of today. This is especially true in cases where multiple groups of bundles, configuration, metadata, and other artifacts need to be combined.
In this talk we will introduce you to OSGi RFP-188, named OSGi Features, which defines the requirements on providing a solution. We'll establish a shared understanding of the problem space and how it relates to already available mechanisms in OSGi (like e.g. subsystems, deploymentadmin, startlevels, etc.) and will subsequently, review it in the context of some of the current (open source) solutions like Apache Karaf Features and Apache Sling Features and Bnd.
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...mfrancis
OSGi Community Event 2018 Presentation by Amit Kumar Mondal (Deutsche Telekom AG) & Jochen Hiller (Deutsche Telekom AG)
Abstract: QIVICON is an Eclipse SmartHome based solution from Deutsche Telekom AG. It utilises OSGi to provide a modular Java runtime.
Since the beginning, QIVICON leveraged Eclipse PDE with Maven & Eclipse Tycho as its build technology but over the time, the complexity increased. It became hard to get an overview and manage the runtime and build dependencies. Especially maintaining target configurations for IDE and CI/CD build, having different embedded gateways for installation increased complexity significantly.
Bndtools is the 'swiss army knife' in the context of OSGi development since it takes the nitty-gritty pains and loads off the developer's chest. And that's why we decided to avail the benefits of Bndtools.
But, many other OSGi-based projects still cannot avail the benefits as they are very tightly coupled with Eclipse PDE. Want to make a switch from your existing PDE source base to Bndtools? This talk would give you an overview to proceed towards this.
We would like to further demonstrate in this talk how to set up a Bndtools workspace from an existing PDE workspace, convert all current projects to Bnd projects and embrace the OSGi-way of developing bundles.
Since QIVICON containing more than 350 projects utilised this solution to move to a higher modularity maturity level, this talk would, therefore, outline the pros, cons and the learnings using Bndtools in such a big OSGi project for embedded development.
OSGi CDI Integration Specification - Ray Augé (Liferay)mfrancis
OSGi Community Event 2018 Presentation by Ray Augé (Liferay)
Abstract: This talk discusses the upcoming OSGi CDI Integration Specification and demonstrates common usage patterns and its component model that brings OSGi dynamics; like services and configuration, to CDI and provides for an ecosystem of CDI portable extentions.
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...mfrancis
SMA is an energy equipment supplier that was seeking a solution for cross-sector energy management. They evaluated OSGi and decided to develop their own framework based on OSGi. They encountered several problems initially but overcame them by improving API design, avoiding dependencies, and using helper classes. They have now successfully applied OSGi in their products and find that it defines clean module deployment and versioning while supporting dynamic updates.
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...mfrancis
OSGi Community Event 2018 Presentation by Lukasz Dywicki (Code-House)
Abstract: During this short presentation I will revisit existing mechanisms and approach towards OSGi and JEE development. I will show how many manual steps can be avoided and how to maintain project in effective manner. I will try to find a balance between execution environment requirements and programmer happines at same time.
I believe that OSGi and Eclipse ecosystem experience troubles gaining people from outside for few reasons. Beside overall impression of OSGi complexity there is equally old and invalid complain about quaility of developer tooling. Since invention of BND development experience can be really pleasant and independent of text editor/IDE preferences. Sadly lots of people still rely on former experiences spreading black/bad PR. I would like to clarify their point.
After this presentation attendees will learn:
How to use Maven to build OSGi projects (without Tycho).
How to automate manual tasks.
How to build custom software distributions with Maven artifacts and run it with Apache Karaf.
That OSGi development doesn't differ much from regular day-to-day usage of application servers or microservice runtimes.
This talk is intended for people who know basics of OSGi as it will show few basic technics towards better developer productivity.
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...mfrancis
OSGi Community Event 2018 Presentation by Christer Larsson (Makewave)
Abstract: OSGi was originally designed for Smart Homes and Residential Gateways almost 20 years ago.
This talk will present how the OSGi specifications have evolved over the years, and how you today, in 2018, design an OSGi based Smart Home System.
A real world use case of a Swedish Smart Home start-up company will be used to illustrate different design principles and how OSGi remains as relevant today as it was when it started.
Popular patterns revisited on OSGi - Christian Schneider (Adobe)mfrancis
This document discusses how various software design patterns can be applied within the OSGi runtime environment. It describes patterns like Observer/Listener, OSGi Whiteboard, Dependency Injection, Circuit Breaker, and Domain-Driven Design and how they differ or are adapted when used with OSGi. For example, the OSGi Whiteboard pattern allows services and listeners to be loosely coupled without direct dependencies, and OSGi's declarative services specification provides a way to perform dependency injection and manage component lifecycles. The document argues that applying patterns like having microservices per bounded context can help match the original ideas of microservices while minimizing remote communication when using OSGi.
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)mfrancis
OSGi Community Event 2018 Presentation by BJ Hargrave (IBM)
Abstract: OSGi Compendium R7 provides a major update to the OSGi LogService specification. A new logging API is added which supports logging levels and dynamic logging administration. A new Push Stream-based means of receiving log entries is also added. But it is quite often the case you need to use other code such as open source projects which are using slf4j for their logging API. This session will explore the new OSGi LogService changes and how you can integrate code using both slf4j logging and OSGi LogService logging.
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)mfrancis
OSGi Community Event 2018 Presentation by Tim Verbelen (imec)
Abstract: Nowadays AI is reaching new heights on the hype cycle, especially due to recent advances in deep learning techniques. A lot of deep learning frameworks exist for creating and training deep neural networks, the most popular ones being PyTorch and TensorFlow. However, how to integrate, deploy and manage these neural networks in complex software systems is often overlooked. In this talk we show how OSGi can be used as a modular runtime for deep learning models. We embed those models inside OSGi bundles, and use the extender pattern to make these available as OSGi services. You can then use your favorite OSGi specs such as DS and PushStreams to integrate these into your application.
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...mfrancis
OSGi Community Event 2018 Presentation by Tony Walsh (ESA) & Hristo Indzhov (Telespazio Vega)
Abstract: The European Space Operations Centre (ESOC) is the main operations center for the European Space Agency (ESA), operating a number of earth observation and scientific missions. Monitoring and control functions needed by spacecraft operators are provided by software systems which are reused across missions, but tailored and extended for mission specific needs. The current generation of monitoring and control systems are becoming obsolete and a European wide initiative called the European Ground Systems Common Core (EGS-CC) (http://www.egscc.esa.int) has been started to develop the next generation.
This talk will explain why OSGi was chosen and how it is used in the development of next generation of monitoring and control software. It will describe how OSGi provides the necessary framework that enables the software to be extended for the different space systems it is expected to support. The overall software architecture will be discussed, some of the challenges faced and the benefits gained by using OSGi. The first target mission for the system is JUICE (http://sci.esa.int/juice) which will explore the moons of Jupiter and which is scheduled for launch in 2022.
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)mfrancis
OSGi Community Event 2018 Presentation by Ray Augé (Liferay)
Abstract: The craze is fully on. The past couple of years have seem micro services grow from next _flava_ to fully consuming of the software industry. The Eclipse micorprofile.io project is tackling the issue putting common usage patterns together over a foundation of CDI. What better assembly driver is there than OSGi to put it all together. This talk will demonstrate building your own MicroProfile using OSGi and the OSGi enRoute packaging model.
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...mfrancis
OSGi Community Event 2018 Presentation by Bruce Jackson (Myriad)
Abstract: Node-RED is often used as a protyping tool for IoT systems. However, there are also a large number of OSGi components that have already been built to interface to devices, sensors and systems. In this talk I will show how two completely different runtime environments (OSGi and Node-RED) can be combined into a single platform for prototyping (and more) combining the strengths of both languages and systems.
Being able to quickly and simply prototype IoT application is extremely useful, and to this end many people have adopted Node-Red, a Node.js based runtime with extensive support for plugins to interface to various IoT hardware and protocols. However, this requires these services/protocols to be developed in Javascript, and there is already a significant body of code developed in Java/OSGi that it would be desirable to re-use.
The talk will explain how it is possible to:
Create and manage a Node-Red runtime from within an OSGi bundle
Share OSGi components and object into the Node-Red runtime
Interact and build Node-Red flows that exchange data and call methods between Node.js and OSGi
This is obviously useful for the original purpose: prototyping IoT systems, but also demonstrates some interesting techniques for bridging between different languages and runtimes.
How to connect your OSGi application - Dirk Fauth (Bosch)mfrancis
OSGi Community Event 2018 Presentation by Dirk Fauth (Bosch)
Abstract: In todays connected world the requirement to connect applications across network boundaries has become a common requirement. With OSGi there are several ways to accomplish this, as there are different specifications to achieve this. In this talk we will look at some of these specifications to show what options there are and which might fit your requirements. Starting from an architecture that makes use of the HTTP Whiteboard pattern, over Remote Services to finally showing the usage of the JAX-RS Whiteboard specification introduced with R7. We will show the general usage of these specifications and explaining the advantages and disadvantages of each solution.
AppSec PNW: Android and iOS Application Security with MobSFAjin Abraham
Mobile Security Framework - MobSF is a free and open source automated mobile application security testing environment designed to help security engineers, researchers, developers, and penetration testers to identify security vulnerabilities, malicious behaviours and privacy concerns in mobile applications using static and dynamic analysis. It supports all the popular mobile application binaries and source code formats built for Android and iOS devices. In addition to automated security assessment, it also offers an interactive testing environment to build and execute scenario based test/fuzz cases against the application.
This talk covers:
Using MobSF for static analysis of mobile applications.
Interactive dynamic security assessment of Android and iOS applications.
Solving Mobile app CTF challenges.
Reverse engineering and runtime analysis of Mobile malware.
How to shift left and integrate MobSF/mobsfscan SAST and DAST in your build pipeline.
Must Know Postgres Extension for DBA and Developer during MigrationMydbops
Mydbops Opensource Database Meetup 16
Topic: Must-Know PostgreSQL Extensions for Developers and DBAs During Migration
Speaker: Deepak Mahto, Founder of DataCloudGaze Consulting
Date & Time: 8th June | 10 AM - 1 PM IST
Venue: Bangalore International Centre, Bangalore
Abstract: Discover how PostgreSQL extensions can be your secret weapon! This talk explores how key extensions enhance database capabilities and streamline the migration process for users moving from other relational databases like Oracle.
Key Takeaways:
* Learn about crucial extensions like oracle_fdw, pgtt, and pg_audit that ease migration complexities.
* Gain valuable strategies for implementing these extensions in PostgreSQL to achieve license freedom.
* Discover how these key extensions can empower both developers and DBAs during the migration process.
* Don't miss this chance to gain practical knowledge from an industry expert and stay updated on the latest open-source database trends.
Mydbops Managed Services specializes in taking the pain out of database management while optimizing performance. Since 2015, we have been providing top-notch support and assistance for the top three open-source databases: MySQL, MongoDB, and PostgreSQL.
Our team offers a wide range of services, including assistance, support, consulting, 24/7 operations, and expertise in all relevant technologies. We help organizations improve their database's performance, scalability, efficiency, and availability.
Contact us: info@mydbops.com
Visit: https://www.mydbops.com/
Follow us on LinkedIn: https://in.linkedin.com/company/mydbops
For more details and updates, please follow up the below links.
Meetup Page : https://www.meetup.com/mydbops-databa...
Twitter: https://twitter.com/mydbopsofficial
Blogs: https://www.mydbops.com/blog/
Facebook(Meta): https://www.facebook.com/mydbops/
Introduction of Cybersecurity with OSS at Code Europe 2024Hiroshi SHIBATA
I develop the Ruby programming language, RubyGems, and Bundler, which are package managers for Ruby. Today, I will introduce how to enhance the security of your application using open-source software (OSS) examples from Ruby and RubyGems.
The first topic is CVE (Common Vulnerabilities and Exposures). I have published CVEs many times. But what exactly is a CVE? I'll provide a basic understanding of CVEs and explain how to detect and handle vulnerabilities in OSS.
Next, let's discuss package managers. Package managers play a critical role in the OSS ecosystem. I'll explain how to manage library dependencies in your application.
I'll share insights into how the Ruby and RubyGems core team works to keep our ecosystem safe. By the end of this talk, you'll have a better understanding of how to safeguard your code.
The Department of Veteran Affairs (VA) invited Taylor Paschal, Knowledge & Information Management Consultant at Enterprise Knowledge, to speak at a Knowledge Management Lunch and Learn hosted on June 12, 2024. All Office of Administration staff were invited to attend and received professional development credit for participating in the voluntary event.
The objectives of the Lunch and Learn presentation were to:
- Review what KM ‘is’ and ‘isn’t’
- Understand the value of KM and the benefits of engaging
- Define and reflect on your “what’s in it for me?”
- Share actionable ways you can participate in Knowledge - - Capture & Transfer
Skybuffer SAM4U tool for SAP license adoptionTatiana Kojar
Manage and optimize your license adoption and consumption with SAM4U, an SAP free customer software asset management tool.
SAM4U, an SAP complimentary software asset management tool for customers, delivers a detailed and well-structured overview of license inventory and usage with a user-friendly interface. We offer a hosted, cost-effective, and performance-optimized SAM4U setup in the Skybuffer Cloud environment. You retain ownership of the system and data, while we manage the ABAP 7.58 infrastructure, ensuring fixed Total Cost of Ownership (TCO) and exceptional services through the SAP Fiori interface.
In the realm of cybersecurity, offensive security practices act as a critical shield. By simulating real-world attacks in a controlled environment, these techniques expose vulnerabilities before malicious actors can exploit them. This proactive approach allows manufacturers to identify and fix weaknesses, significantly enhancing system security.
This presentation delves into the development of a system designed to mimic Galileo's Open Service signal using software-defined radio (SDR) technology. We'll begin with a foundational overview of both Global Navigation Satellite Systems (GNSS) and the intricacies of digital signal processing.
The presentation culminates in a live demonstration. We'll showcase the manipulation of Galileo's Open Service pilot signal, simulating an attack on various software and hardware systems. This practical demonstration serves to highlight the potential consequences of unaddressed vulnerabilities, emphasizing the importance of offensive security practices in safeguarding critical infrastructure.
Fueling AI with Great Data with Airbyte WebinarZilliz
This talk will focus on how to collect data from a variety of sources, leveraging this data for RAG and other GenAI use cases, and finally charting your course to productionalization.
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor IvaniukFwdays
At this talk we will discuss DDoS protection tools and best practices, discuss network architectures and what AWS has to offer. Also, we will look into one of the largest DDoS attacks on Ukrainian infrastructure that happened in February 2022. We'll see, what techniques helped to keep the web resources available for Ukrainians and how AWS improved DDoS protection for all customers based on Ukraine experience
High performance Serverless Java on AWS- GoTo Amsterdam 2024Vadym Kazulkin
Java is for many years one of the most popular programming languages, but it used to have hard times in the Serverless community. Java is known for its high cold start times and high memory footprint, comparing to other programming languages like Node.js and Python. In this talk I'll look at the general best practices and techniques we can use to decrease memory consumption, cold start times for Java Serverless development on AWS including GraalVM (Native Image) and AWS own offering SnapStart based on Firecracker microVM snapshot and restore and CRaC (Coordinated Restore at Checkpoint) runtime hooks. I'll also provide a lot of benchmarking on Lambda functions trying out various deployment package sizes, Lambda memory settings, Java compilation options and HTTP (a)synchronous clients and measure their impact on cold and warm start times.
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving
Manufacturing custom quality metal nameplates and badges involves several standard operations. Processes include sheet prep, lithography, screening, coating, punch press and inspection. All decoration is completed in the flat sheet with adhesive and tooling operations following. The possibilities for creating unique durable nameplates are endless. How will you create your brand identity? We can help!
"Scaling RAG Applications to serve millions of users", Kevin GoedeckeFwdays
How we managed to grow and scale a RAG application from zero to thousands of users in 7 months. Lessons from technical challenges around managing high load for LLMs, RAGs and Vector databases.
"Choosing proper type of scaling", Olena SyrotaFwdays
Imagine an IoT processing system that is already quite mature and production-ready and for which client coverage is growing and scaling and performance aspects are life and death questions. The system has Redis, MongoDB, and stream processing based on ksqldb. In this talk, firstly, we will analyze scaling approaches and then select the proper ones for our system.
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving
What began over 115 years ago as a supplier of precision gauges to the automotive industry has evolved into being an industry leader in the manufacture of product branding, automotive cockpit trim and decorative appliance trim. Value-added services include in-house Design, Engineering, Program Management, Test Lab and Tool Shops.
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsDianaGray10
Join us to learn how UiPath Apps can directly and easily interact with prebuilt connectors via Integration Service--including Salesforce, ServiceNow, Open GenAI, and more.
The best part is you can achieve this without building a custom workflow! Say goodbye to the hassle of using separate automations to call APIs. By seamlessly integrating within App Studio, you can now easily streamline your workflow, while gaining direct access to our Connector Catalog of popular applications.
We’ll discuss and demo the benefits of UiPath Apps and connectors including:
Creating a compelling user experience for any software, without the limitations of APIs.
Accelerating the app creation process, saving time and effort
Enjoying high-performance CRUD (create, read, update, delete) operations, for
seamless data management.
Speakers:
Russell Alfeche, Technology Leader, RPA at qBotic and UiPath MVP
Charlie Greenberg, host
Main news related to the CCS TSI 2023 (2023/1695)Jakub Marek
An English 🇬🇧 translation of a presentation to the speech I gave about the main changes brought by CCS TSI 2023 at the biggest Czech conference on Communications and signalling systems on Railways, which was held in Clarion Hotel Olomouc from 7th to 9th November 2023 (konferenceszt.cz). Attended by around 500 participants and 200 on-line followers.
The original Czech 🇨🇿 version of the presentation can be found here: https://www.slideshare.net/slideshow/hlavni-novinky-souvisejici-s-ccs-tsi-2023-2023-1695/269688092 .
The videorecording (in Czech) from the presentation is available here: https://youtu.be/WzjJWm4IyPk?si=SImb06tuXGb30BEH .