The document summarizes a presentation on distributed eventing and jobs using Apache Sling and OSGi technologies. It discusses how OSGi event publishing works, Apache Sling discovery and job handling capabilities, and how events can be used to trigger and distribute jobs across multiple instances in a clustered environment. Key points include how Sling identifies instances, clusters, and topologies, manages job queues and consumers, and distributes jobs based on enabled topics and instance availability.
Inter-Sling communication with message queueTomasz Rękawek
Sling instances tend to live in herds. Synchronizing content among them is quite easy, as the whole repository is available via the REST API. However, sending control messages ("create a user", "give me a list of modified pages") may be tricky. There is a better way than implementing dozens of servlets or event listeners: it is a message queue. During the presentation we will show how to integrate ActiveMQ with Sling and how to use it to exchange messages between instances. We will also present some real-world use cases.
Spring Framework Petclinic sample applicationAntoine Rey
Spring Petclinic is a sample application that has been designed to show how the Spring Framework can be used to build simple but powerful database-oriented applications.
The fork named Spring Framework Petclinic maintains a version both with a plain old Spring Framework configuration and a 3-layer architecture (i.e. presentation --> service --> repository).
Presentation sur la contrainte d'architecture HATEOAS et comment le framework Spring nous facilite son implementation.
Source code : https://github.com/YoannBuch/simple-spring-restbucks
Fait par l'equipe de http://findtheflow.io, un outil qui permet d'analyser et visualiser des executions d'applications Java.
Today enterprise solutions adopt products and services from multiple cloud providers in order to accomplish various business requirements. This means that it is no longer sufficient to maintain user identities only in corporate LDAP. In most cases, SaaS providers also need dedicated user accounts created for the cloud service users, which raises the need of identity provisioning mechanisms to be in place.
Inter-Sling communication with message queueTomasz Rękawek
Sling instances tend to live in herds. Synchronizing content among them is quite easy, as the whole repository is available via the REST API. However, sending control messages ("create a user", "give me a list of modified pages") may be tricky. There is a better way than implementing dozens of servlets or event listeners: it is a message queue. During the presentation we will show how to integrate ActiveMQ with Sling and how to use it to exchange messages between instances. We will also present some real-world use cases.
Spring Framework Petclinic sample applicationAntoine Rey
Spring Petclinic is a sample application that has been designed to show how the Spring Framework can be used to build simple but powerful database-oriented applications.
The fork named Spring Framework Petclinic maintains a version both with a plain old Spring Framework configuration and a 3-layer architecture (i.e. presentation --> service --> repository).
Presentation sur la contrainte d'architecture HATEOAS et comment le framework Spring nous facilite son implementation.
Source code : https://github.com/YoannBuch/simple-spring-restbucks
Fait par l'equipe de http://findtheflow.io, un outil qui permet d'analyser et visualiser des executions d'applications Java.
Today enterprise solutions adopt products and services from multiple cloud providers in order to accomplish various business requirements. This means that it is no longer sufficient to maintain user identities only in corporate LDAP. In most cases, SaaS providers also need dedicated user accounts created for the cloud service users, which raises the need of identity provisioning mechanisms to be in place.
ModSecurity and NGINX: Tuning the OWASP Core Rule SetNGINX, Inc.
On demand recording: nginx.com/watch-on-demand/?id=modsecurity-and-nginx-tuning-the-owasp-core-rule-set
In this webinar we discuss how to install the OWASP Core Rule Set (CRS) with NGINX and ModSecurity, as well as how to tune it. The CRS protects against many types of attack, including SQL Injection (SQLi), Local File Inclusion (LFI), and Remote Code Execution (RCE). Watch this webinar to learn:
- How to install the OWASP Core Rule Set (CRS) with ModSecurity
- About the types of attacks the CRS blocks, such SQLi, RFI, and LFI
- How to tune the CRS to minimize false positives
- What it looks like when ModSecurity blocks an attack (in a live demo), and how to interpret the audit log
By Michael Hackstein (@mchacki)
The complexity and amount of data rises. Modern graph databases are designed to handle the complexity but still not for the amount of data. When hitting a certain size of a graph many dedicated graph databases reach their limits in vertical or most common horizontal scalability. In this talk I´ll provide a brief overview about current approaches and their limits towards scalability. Dealing with complex data in a complex system doesn't make things easier... but more fun finding a solution. Join me on my journey to handle billions of edges in a graph database.
Attack and Mitigation for Insecure DeserializationSukhpreet Singh
The slides present attack and mitigation for OWASP 2017 Top Ten Insecure Deserializaiton. This vulnerability was implemented in python2.
Helpful links:
https://www.youtube.com/watch?v=YuQ86AvsPGU
https://www.youtube.com/watch?v=Oqtvg-mDLjg
https://www.youtube.com/watch?v=47PxsGp2NTw
Java EE _ JSTL (1).pdfJava EE _ JSTL (1).pdfJava EE _ JSTL (1).pdfJava EE _ JSTL (1).pdfJava EE _ JSTL (1).pdfJava EE _ JSTL (1).pdfJava EE _ JSTL (1).pdfJava EE _ JSTL (1).pdfJava EE _ JSTL (1).pdfJava EE _ JSTL (1).pdfJava EE _ JSTL (1).pdfJava EE _ JSTL (1).pdfJava EE _ JSTL (1).pdfJava EE _ JSTL (1).pdfJava EE _ JSTL (1).pdfJava EE _ JSTL (1).pdfJava EE _ JSTL (1).pdfJava EE _ JSTL (1).pdf
Serialization & De-serialization in JavaInnovationM
When you create a class, you may create an object for that particular class and once we execute/terminate the program, the object is destroyed by itself (Garbage Collector thread).
A reflection-oriented program component can monitor the execution of an enclosure of code and can modify itself according to a desired goal related to that enclosure.
Reflection is one of those things like multi-threading where everyone with experience of it says “Don’t use it unless you absolutely have to”.
Arquitetura orientada a eventos em ambientes complexos tdcPaula Santana
Um pouco do que é a arquitetura orientada a eventos e pontos que devem ser analisado antes de decidir implementar uma ferramenta de mercado muito utilizada e quais impactos disso e benefícios em ambientes complexos.
Applet Basics,
Applet Organization and Essential Elements,
The Applet Architecture,
A Complete Applet Skeleton,
Applet Initialization and Termination,
Requesting Repainting
The update() Method,
Using the Status Window
Passing parameters to Applets
The Applet Class
Event Handling The Delegation Event Model
Events,
Using the Delegation Event Model,
More Java Keywords.
Presentation from OSGi Community Event / EclipseCon Europe 2013
One of the major topics the OSGi alliance is working on is a proposal for distributed eventing especially in the cloud. This session starts with an overview of the current state in the alliance and then shows already available solutions from the Apache Sling open source project. This includes distributing events through event admin and controlled processing of events by exactly one processor in distributed installations. The current implementations will be set in context to the ongoing activations in the alliance.
ModSecurity and NGINX: Tuning the OWASP Core Rule SetNGINX, Inc.
On demand recording: nginx.com/watch-on-demand/?id=modsecurity-and-nginx-tuning-the-owasp-core-rule-set
In this webinar we discuss how to install the OWASP Core Rule Set (CRS) with NGINX and ModSecurity, as well as how to tune it. The CRS protects against many types of attack, including SQL Injection (SQLi), Local File Inclusion (LFI), and Remote Code Execution (RCE). Watch this webinar to learn:
- How to install the OWASP Core Rule Set (CRS) with ModSecurity
- About the types of attacks the CRS blocks, such SQLi, RFI, and LFI
- How to tune the CRS to minimize false positives
- What it looks like when ModSecurity blocks an attack (in a live demo), and how to interpret the audit log
By Michael Hackstein (@mchacki)
The complexity and amount of data rises. Modern graph databases are designed to handle the complexity but still not for the amount of data. When hitting a certain size of a graph many dedicated graph databases reach their limits in vertical or most common horizontal scalability. In this talk I´ll provide a brief overview about current approaches and their limits towards scalability. Dealing with complex data in a complex system doesn't make things easier... but more fun finding a solution. Join me on my journey to handle billions of edges in a graph database.
Attack and Mitigation for Insecure DeserializationSukhpreet Singh
The slides present attack and mitigation for OWASP 2017 Top Ten Insecure Deserializaiton. This vulnerability was implemented in python2.
Helpful links:
https://www.youtube.com/watch?v=YuQ86AvsPGU
https://www.youtube.com/watch?v=Oqtvg-mDLjg
https://www.youtube.com/watch?v=47PxsGp2NTw
Java EE _ JSTL (1).pdfJava EE _ JSTL (1).pdfJava EE _ JSTL (1).pdfJava EE _ JSTL (1).pdfJava EE _ JSTL (1).pdfJava EE _ JSTL (1).pdfJava EE _ JSTL (1).pdfJava EE _ JSTL (1).pdfJava EE _ JSTL (1).pdfJava EE _ JSTL (1).pdfJava EE _ JSTL (1).pdfJava EE _ JSTL (1).pdfJava EE _ JSTL (1).pdfJava EE _ JSTL (1).pdfJava EE _ JSTL (1).pdfJava EE _ JSTL (1).pdfJava EE _ JSTL (1).pdfJava EE _ JSTL (1).pdf
Serialization & De-serialization in JavaInnovationM
When you create a class, you may create an object for that particular class and once we execute/terminate the program, the object is destroyed by itself (Garbage Collector thread).
A reflection-oriented program component can monitor the execution of an enclosure of code and can modify itself according to a desired goal related to that enclosure.
Reflection is one of those things like multi-threading where everyone with experience of it says “Don’t use it unless you absolutely have to”.
Arquitetura orientada a eventos em ambientes complexos tdcPaula Santana
Um pouco do que é a arquitetura orientada a eventos e pontos que devem ser analisado antes de decidir implementar uma ferramenta de mercado muito utilizada e quais impactos disso e benefícios em ambientes complexos.
Applet Basics,
Applet Organization and Essential Elements,
The Applet Architecture,
A Complete Applet Skeleton,
Applet Initialization and Termination,
Requesting Repainting
The update() Method,
Using the Status Window
Passing parameters to Applets
The Applet Class
Event Handling The Delegation Event Model
Events,
Using the Delegation Event Model,
More Java Keywords.
Presentation from OSGi Community Event / EclipseCon Europe 2013
One of the major topics the OSGi alliance is working on is a proposal for distributed eventing especially in the cloud. This session starts with an overview of the current state in the alliance and then shows already available solutions from the Apache Sling open source project. This includes distributing events through event admin and controlled processing of events by exactly one processor in distributed installations. The current implementations will be set in context to the ongoing activations in the alliance.
Distributed Eventing in OSGi - Carsten Ziegelermfrancis
OSGi Community Event 2013 (http://www.osgi.org/CommunityEvent2013/Schedule)
ABSTRACT
One of the major topics the OSGi alliance is working on is a proposal for distributed eventing especially in the cloud. This session starts with an overview of the current state in the alliance and then shows already available solutions from the Apache Sling open source project. This includes distributing events through event admin and controlled processing of events by exactly one processor in distributed installations. The current implementations will be set in context to the ongoing activations in the alliance.
SPEAKER BIO
Carsten Ziegeler is senior developer at Adobe Research Switzerland and spends most of his time on architectural and infrastructure topics. Working for over 25 years in open source projects, Carsten is a member of the Apache Software Foundation and heavily participates in several Apache communities including Sling, Felix and ACE. He is a frequent speaker on technology and open source conferences and participates in the OSGi Core Platform and Enterprise expert groups.
CIRCUIT 2015 - 10 Things Apache Sling Can DoICF CIRCUIT
Presented by Carsten Ziegeler & David Bosschaert from Adobe
Apache Sling is the underlying web framework for Adobe AEM. While the main concept of resource handling is well known, the project contains some hidden gems. Learn some fun facts about the open source project together with very valuable insight into important bits and pieces making the life of an application developer easier. This is a developer focused journey into the "secrets" of Apache Sling.
Tracing the Breadcrumbs: Apache Spark Workload DiagnosticsDatabricks
Have you ever hit mysterious random process hangs, performance regressions, or OOM errors that leave barely any useful traces, yet hard or expensive to reproduce? No matter how tricky the bugs are, they always leave some breadcrumbs along the way.
This talk (delivered at QConLondon 2016) covers the evolution of Coursera's nearline architecture, delves into our latest generation system, and then covers the flagship application of the architecture (evaluating programming assignments).
How Netflix run Apache Flink at very large scale in these two scenarios. (1) Thousands of stateless routing jobs in the context of Keystone data pipeline (2) single large state job with many TBs of state and parallelism at a couple thousands
Managing big data stored on ADLSgen2/Databricks may be challenging. Setting up security, moving or copying the data of Hive tables or their partitions may be very slow, especially when dealing with hundreds of thousands of files.
A key feature when monitoring and debugging any Cloud infrastructure is to provide the ability to trace, track, and collate all the individual, discrete steps that compose an event. A typical resource action in OpenStack is often a combination of smaller tasks -- which given the distributed nature of OpenStack -- can fail at unpredictable points in the workflow. By collecting the appropriate events, operators can view all events within Ceilometer, filter on a failed action and trace back the history of related events to spot anomalies or errors. In this talk, we provide an overview of the recent enhancements made in Ceilometer to support the collection of event notifications from OpenStack services. We will describe: how events are processed, transformed and stored in Ceilometer; how you can derive metrics from events; and how it’s possible to track the events of a resource and analyse where errors occur.
The Possibilities and Pitfalls of Writing Your Own State Stores with Daan GertisHostedbyConfluent
The Possibilities and Pitfalls of Writing Your Own State Stores. Building an event-driven system will inevitably lead you to exposing your data through APIs to make your data accessible to non-streaming solutions. At first glance, Kafka Streams provides statestores which we could use to build our APIs directly onto Kafka. But all store implementations are key/value based which is fine when you only retrieve information by key. API’s however require a bit more “searchability”.
Writing your own state store is certainly possible, but it is challenging. At KOR, we went through this process and implemented a state store on top of Nitrite Database, an embedded document database. This allows you not only to retrieve your documents using a key, but also to search through the values in the store using a MongoDB-like API. On the surface, state stores seem straightforward, but the devil is certainly in the details. How does partitioning fit into this story and how do you make sure everything keeps running smooth, even after restarting or scaling your applications?
We made the project open source for everyone out there wanting to try this approach, but most of all we want to tell you about the dragons we encountered. Join me in a journey of ups and downs that starts with a simple requirement (host an API), through implementing a custom state store and finishes off by describing the challenges we encountered getting our APIs deployed. Don’t expect all “roses and sunshine”. While hosting APIs on Kafka is possible, there are some consequences that we just couldn’t overcome … yet.
Similar to Apache Sling - Distributed Eventing, Discovery, and Jobs (adaptTo 2013) (20)
Use Case: Building OSGi Enterprise Applications (QCon 14)Carsten Ziegeler
Use Case presentation from QCon 14. It presents the migration of Adobe's Experience Manager (formerly Communique) to OSGi. Common pitfalls and solutions are presented based on open source solutions from the Apache Software Foundation
Presentation from OSGi Community Event / EclipseCon Europe 2013
Together with David Bosschaert
Carsten and David will look at new and updated OSGi specs that are in the works. Developing components has never been easier. Learn more about the new Prototype Service Factory, OSGi/CDI integration and the improved annotation support for Declarative Services.
Many people are realizing that OSGi is a great foundation technology for fluid cloud-computing architectures where the deployments change dynamically and applications don't simply scale by duplicating the entire VMs but by providing extra capacity exactly to those components that need it. Work is being done to create standards that facilitate such a portable OSGi cloud in ‘Cloud Ecosystems’ and the REST API specs. Learn more about these and other upcoming specs during this talk.
Monitoring OSGi Applications with the Web ConsoleCarsten Ziegeler
Presentation from the OSGi Community Event / EclipseCon Europe 2013
This session introduces the latest version of the famous Apache Felix web console which allows to monitor and inspect OSGi web applications through the browser. The web console is based on a flexible plugin mechanism to add custom information and functionality. Learn how to write your own extensions and how to leverage the available functionality for monitoring and troubleshooting OSGi installations.
My presentation from ApacheCon Europe 2009 in Amsterdam. It's a introduction into the core concepts of OSGi and provides at the same time usefull information for getting started.
Presentation from the ApacheCon EU 2008 in Amsterdam.
JCR In Action - Content-based Applications with Apache Jackrabbit.
The Java Content Repository API (JCR) is the ideal solution to store hierarchical structured content and develop content-oriented applications. To demonstrate the basic architecture of such applications, an example content management application will be developed during the session. Basic techniques will be explained including navigation, searching and observations by using the Apache Jackrabbit project.
Presentation from the ApacheCon EU 2008 in Amsterdam.
The SCR plugin for Maven from the Apache Felix project is a simple but powerful tool. In just 15min you'll learn how to develop services in Java to be used in an OSGi environment and how to package and deploy them. You should have knowledge about component oriented development for Java; the talk will also cover the bare minimum OSGi knowledge, but this is not an OSGi introduction.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Welocme to ViralQR, your best QR code generator.ViralQR
Welcome to ViralQR, your best QR code generator available on the market!
At ViralQR, we design static and dynamic QR codes. Our mission is to make business operations easier and customer engagement more powerful through the use of QR technology. Be it a small-scale business or a huge enterprise, our easy-to-use platform provides multiple choices that can be tailored according to your company's branding and marketing strategies.
Our Vision
We are here to make the process of creating QR codes easy and smooth, thus enhancing customer interaction and making business more fluid. We very strongly believe in the ability of QR codes to change the world for businesses in their interaction with customers and are set on making that technology accessible and usable far and wide.
Our Achievements
Ever since its inception, we have successfully served many clients by offering QR codes in their marketing, service delivery, and collection of feedback across various industries. Our platform has been recognized for its ease of use and amazing features, which helped a business to make QR codes.
Our Services
At ViralQR, here is a comprehensive suite of services that caters to your very needs:
Static QR Codes: Create free static QR codes. These QR codes are able to store significant information such as URLs, vCards, plain text, emails and SMS, Wi-Fi credentials, and Bitcoin addresses.
Dynamic QR codes: These also have all the advanced features but are subscription-based. They can directly link to PDF files, images, micro-landing pages, social accounts, review forms, business pages, and applications. In addition, they can be branded with CTAs, frames, patterns, colors, and logos to enhance your branding.
Pricing and Packages
Additionally, there is a 14-day free offer to ViralQR, which is an exceptional opportunity for new users to take a feel of this platform. One can easily subscribe from there and experience the full dynamic of using QR codes. The subscription plans are not only meant for business; they are priced very flexibly so that literally every business could afford to benefit from our service.
Why choose us?
ViralQR will provide services for marketing, advertising, catering, retail, and the like. The QR codes can be posted on fliers, packaging, merchandise, and banners, as well as to substitute for cash and cards in a restaurant or coffee shop. With QR codes integrated into your business, improve customer engagement and streamline operations.
Comprehensive Analytics
Subscribers of ViralQR receive detailed analytics and tracking tools in light of having a view of the core values of QR code performance. Our analytics dashboard shows aggregate views and unique views, as well as detailed information about each impression, including time, device, browser, and estimated location by city and country.
So, thank you for choosing ViralQR; we have an offer of nothing but the best in terms of QR code services to meet business diversity!
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™UiPathCommunity
In questo evento online gratuito, organizzato dalla Community Italiana di UiPath, potrai esplorare le nuove funzionalità di Autopilot, il tool che integra l'Intelligenza Artificiale nei processi di sviluppo e utilizzo delle Automazioni.
📕 Vedremo insieme alcuni esempi dell'utilizzo di Autopilot in diversi tool della Suite UiPath:
Autopilot per Studio Web
Autopilot per Studio
Autopilot per Apps
Clipboard AI
GenAI applicata alla Document Understanding
👨🏫👨💻 Speakers:
Stefano Negro, UiPath MVPx3, RPA Tech Lead @ BSP Consultant
Flavio Martinelli, UiPath MVP 2023, Technical Account Manager @UiPath
Andrei Tasca, RPA Solutions Team Lead @NTT Data
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Apache Sling - Distributed Eventing, Discovery, and Jobs (adaptTo 2013)
1. APACHE SLING & FRIENDS TECH MEETUP
BERLIN, 23-25 SEPTEMBER 2013
Distributed Eventing and Jobs
Carsten Ziegeler | Adobe Research Switzerland
1
2. About
2
§ RnD Team at Adobe Research Switzerland
§ Co-founder Adobe Granite
§ OSGi Core Platform and Enterprise Expert
Groups
§ Member of the ASF
§ Current PMC Chair of Apache Sling
§ Apache Sling, Felix, ACE
§ Conference Speaker
§ Technical Reviewer
§ Article/Book Author
5. OSGi Event Admin
Publish Subscribe Model
5
OSGi
Event
Admin
Component
A
publish
deliver
Component
X
Component
Y
6. OSGi Event Admin
Publish Subscribe Model
6
§ OSGi event is a data object with
§ Topic (hierarchical namespace)
§ Properties (key-value-pairs)
§ Resource Event
§ Topic:
org/apache/sling/api/resource/Resource/ADDED
§ Properties: path, resource type etc.
7. OSGi Event Admin
Publish Subscribe Model
7
§ Publisher creates event object
§ Sends event through EventAdmin service
§ Either sync or async delivery
§ Subscriber is an OSGi service
(EventHandler)
§ Service registration properties
§ Interested topic(s)
§ org/apache/sling/api/resource/Resource/*
§ Additional filters (optional)
§ (path=/libs/*)
8. OSGi Event Admin
Publish Subscribe Model
8
§ Immediate delivery to available
subscribers
§ No guarantee of delivery
§ No distributed delivery
9. OSGi Event Admin
Publish Subscribe Model
9
§ Immediate delivery to available
subscribers
§ No guarantee of delivery
§ No distributed delivery
Discovery
Sling
Job
Distribu3on
13. Topologies I
Apache Sling Discovery
13
Clustered
JCR
JCR
ID
:
A
ID
:
X
ID
:
42
ID
:
1
Single
Instance
Instance
1
Instance
2
Instance
3
§ Instance: Unique Id (Sling ID)
14. Topologies I
Apache Sling Discovery
14
§ Instance: Unique Id (Sling ID)
§ Cluster: Unique Id and leader
Cluster
99
Cluster
35
Clustered
JCR
JCR
ID
:
A
ID
:
X
ID
:
42
ID
:
1
Single
Instance
Instance
1
Instance
2
Instance
3
Leader
Leader
15. Topologies I
Apache Sling Discovery
15
§ Topology: Set of clusters
Cluster
99
Cluster
35
Clustered
JCR
JCR
ID
:
A
ID
:
X
ID
:
42
ID
:
1
Single
Instance
Instance
1
Instance
2
Instance
3
Leader
Leader
Topology
Topology
16.
Cluster
99
Cluster
35
Topologies I
Apache Sling Discovery
16
Clustered
JCR
JCR
ID
:
A
ID
:
X
ID
:
42
ID
:
1
Single
Instance
Instance
1
Instance
2
Instance
3
Leader
Leader
Topology
§ Topology: Set of clusters
17. Topologies II
Apache Sling Discovery
17
§ Instance
§ Sling ID
§ Optional:
Name and description
§ Belongs to a cluster
§ Might
be
the
cluster
leader
§ Additional distributed properties
§ Extensible
through
own
services
(PropertyProvider)
§ E.g.
data
center,
region
or
enabled
job
topics
Cluster
99
ID
:
42
Instance
3
Topology
Lead
er
18. Topologies II
Apache Sling Discovery
18
§ Cluster
§ Elects (stable) leader
§ Stable instance ordering
Cluster
99
ID
:
42
Instance
3
Topology
Lead
er
19. Topologies II
Apache Sling Discovery
19
§ TopologyEventListener
§ Receives events on
topology changes
§ Topology is changing
§ Topology changed
§ Properties changed
Cluster
99
ID
:
42
Instance
3
Topology
Lead
er
21. Job Handling I
Apache Sling Job Handling
21
§ Job : Guaranteed processing,
exactly once
§ Exactly one job consumer
§ Started by client code, e.g. for
replication, workflow...
§ Job topic
§ Payload is a serializable map
22. Job Handling I
Apache Sling Job Handling
22
§ Sling Job Manager handles and
distributes jobs
§ Delivers job to a job consumer…
§ …and waits for response
§ Retry and failover
§ Notification listeners (fail, retry,
success)
23. Starting / Processing a Job I
Apache Sling Job Handling
23
public interface JobConsumer {
String PROPERTY_TOPICS = "job.topics";
enum JobResult {
OK,
FAILED,
CANCEL,
ASYNC
}
JobResult process(Job job);
}
public interface JobManager {
Job addJob(String topic, String optionalName, Map<String, Object> properties);
…
}
Star3ng
a
job
Processing
a
job
Note:
Star3ng/processing
of
jobs
through
Event
Admin
is
deprecated
but
s3ll
supported
24. Starting / Processing a Job II
Apache Sling Job Handling
24
@Component
@Service(value={JobConsumer.class})
@Property(name=JobConsumer.PROPERTY_TOPICS, value="org/apache/sling/jobs/backup")
public class BackupJobConsumer
implements JobConsumer {
@Override
public JobResult process(final Job job) {
// do backup
return JobResult.OK;
}
}
25. Job Handling I
Apache Sling Job Handling
25
• New jobs are immediately persisted
• Jobs are “pushed” to the processing
instance
• Processing instances use different
queues
• Associated with job topic(s)
• Main queue
• 0..n custom queues
26. Job Queue I
Apache Sling Job Handling
26
• Queue is configurable
• Queue is started on demand in own
thread
• And stopped if unused for some time
27. Job Queue II
Apache Sling Job Handling
27
• Queue Types
• Ordered queue
• Parallel queues: Plain and Topic Round
Robin
28. Job Queue III
Apache Sling Job Handling
28
• Limit for parallel threads per queue
• Number of retries (-1 = endless)
• Retry delay
• Thread priority
29. Additional Configurations
Apache Sling Job Handling
29
• Job Manager Configuration = Main
Queue Configuration
• Maximum parallel jobs (15)
• Retries (10)
• Retry Delay
• Eventing Thread Pool Configuration
• Used by all queues
• Pool size (35) = Maximum parallel jobs for
a single instance
32. Job Distribution I
Apache Sling Job Distribution
32
• Each instance determines enabled job
topics
• Derived from Job Consumers (new API
required)
• Can be whitelisted/blacklisted (in Job
Consumer Manager)
• Announced through Topology
33. Job Distribution II
Apache Sling Job Distribution
33
• Job Distribution depends on enabled
job topics and queue type
• Potential set of instances derived from
topology (enabled job topics)
• Ordered: processing on leader only, one job
after the other
• Parallel: Round robin distribution on all
potential instances
§ Local
cluster
instances
have
preference
34. Job Distribution III
Apache Sling Job Distribution
34
• Failover
• Instance crash: leader redistributes jobs to
available instances
§ Leader
change
taken
into
account
• On enabled job topics changes:
potential redistribution
43. Job Progress Tracking
Apache Sling Job Processing
43
§ Jobs can inform about
§ Progress (percentage)
§ ETA
§ Additional informational messages
§ All information is persisted
NEW
44. Improved Failure Handling I
Apache Sling Job Processing
44
§ Currently, no history of jobs
§ Immediately removed once
§ Job succeeds
§ Job is cancelled
§ What happened?
§ What did go wrong?
45. Improved Failure Handling II
Apache Sling Job Processing
45
§ Cancelled jobs are kept
§ With a reason and log
§ Can be retried
§ Successful jobs can be kept
§ With a message and log
NEW