The document discusses why OSGi is dynamic. OSGi allows bundles and services to be installed, started, stopped, updated, and uninstalled without requiring a reboot. Services can be registered and deregistered at runtime, and bundles can detect when services are added or removed to adapt accordingly. However, the dynamic nature of OSGi also means that service references can become invalid at any time and services are not guaranteed to be available, so applications need to be coded defensively to handle potential failures.
Indagine sui visitatori del carnevale di putignano 2005Gianclaudio Pinto
Indagine sui visitatori del Carnevale di Putignano - Commissionata dalla Fondazione Carnevale di Putignano nel 2005 a Turismo & Sviluppo - Ideata e realizzata da Gianclaudio Pinto
Indagine sui visitatori del carnevale di putignano 2005Gianclaudio Pinto
Indagine sui visitatori del Carnevale di Putignano - Commissionata dalla Fondazione Carnevale di Putignano nel 2005 a Turismo & Sviluppo - Ideata e realizzata da Gianclaudio Pinto
Eclipse Con2009 Practical Process OrchestrationDietmar Schmidt
The Business Process Execution Language for Web Services (BPEL) is frequently used to implement business processes on a technical level. BPEL allows describing long-running workflows using graphical editors to present workflows on human-friendly diagrams.
Recently open source implementations like the Orchestration Director Engine (ODE) developed from the Apache Foundation and the Eclipse BPEL project have reached a maturity level which enables their use in a productive environment.
Advanced integration features like dynamic endpoint resolution or policy driven configuration require a SOA runtime framework. We present the integration of ODE and the Eclipse BPEL editor with Eclipse Swordfish. Our extensions to the eclipse BPEL editor support the whole process development cycle including both visual and textual process design, deployment and testing. Web service meta data can be imported from the Swordfish service registry, orchestrated services can directly be registered as service providers and used by other services. Sample projects and wizards reduce the required familiarization effort.
Equinox -The adoption of the OSGi standard in enterprise solutions SpagoWorld
The presentation supported Antonietta Miele's speech at ECLIPSE-IT (30th Sept - 1st Oct 2010 - Savona, Itay), the fifth yearly meeting of the Eclipse Italian Community which includes both Universities and Industries.
Best Practices for (Enterprise) OSGi applications - Tim Wardmfrancis
OSGi DevCon 2012
Since the first release of the OSGi Enterprise specification in March 2010 the use of OSGi in the enterprise has increased dramatically. Moving traditional Java EE applications to an OSGi stack is intentionally as easy as possible, however there are a number of common mistakes that can make it feel very hard. This session will describe some best practices for developing Enterprise OSGi applications and OSGi bundles, allowing developers to utilise the power of OSGi in a painless way.
Whilst this session is primarily aimed at enterprise developers new to OSGi, much of the content is equally applicable to OSGi development in general, and is definitely recommended to anyone looking to brush up on their OSGi principles!
Java EE 6 is an awesome platform, but how do you design a system that can evolve for many years in production? And how do we run this stuff in the cloud?
Designing a system that can evolve without creating a maintenance nightmare is far from trivial. A service oriented, modular architecture will help a lot to replace parts of a system without breaking others. The only mature modularity approach for Java is OSGi - a framework that enables low-level modularity and services, but you still need APIs to create web applications, use transactions, access data sources etc. Without these APIs you will have a hard time building applications. Unfortunately OSGi and Java EE did not interoperate well in the past; But what if we want modularity in our architecture but also the ease-of-use of Java EE 6?
In this university you will:
1. Understand the benefits of a modular code base
2. Learn how to mix OSGi and Java EE
3. Manage modular cloud deployments using Apache ACE
..and of course there will be lots of live coding!
Presentation supporting the speech of Andrea Zoppello, Spagic Architect, at EclipseCon 2010. The speech was centred around the integration of the Open Source BPEL engine Apache ODE with OSGi services, within the embedded container Equinox. The presentation refers to the core of Spagic platform, with a particular focus on the new orchestration features for OSGi services and connectors and on the support offered to the governance of SOA projects through the web console Spagic Monitor.
Le standard Service Component Architecture (SCA) du consortium OASIS est un modèle de programmation d'applications SOA à base de composants logiciels. L'intérêt principal de SCA est d'être agnostique par rapport aux technologies de mise en oeuvre. SCA supporte 1) différents langages/modèles de programmation des composants métiers d'une application tels que Composite, Java, Spring, BPEL, C, COBOL, etc., 2) différents langages de description des interfaces fonctionnelles d'un composant métier tels que Java, WSDL, WADL, etc., 3) différents protocoles d'interaction avec les services d'une application tels que SOAP, REST, JMS, Java RMI/IIOP, etc., 4) différentes politiques non-fonctionnelles comme la sécurité, les transactions, etc., 5) différentes technologies de conditionnement des applications telles que de simples JAR, composants JBI, bundles OSGi, WAR, etc., 6) différents environnements d'exécution des applications comme J2SE, OSGi, JBI, serveur Web, etc. Ainsi SCA favorise la construction, l'interopérabilité et l'intégration de systèmes orientés services. FraSCAti est une implantation open source du standard SCA à laquelle nous avons ajouté des capacités réflexives de reconfiguration à grain fin des applications SOA. Dans cet exposé, nous présentons nos travaux en cours sur l'interopérabilité et l'intégration entre FraSCAti et OSGi.
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.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
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.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
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.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
3. OSGi is ...
... a module system and service platform for
the Java programming language that implements a
complete and dynamic component model.
Applications or components (coming in the form of
bundles for deployment) can be installed, started,
stopped, updated, and uninstalled without requiring a
reboot.
The service registry allows bundles to detect the
addition of new services, or the removal of services,
and adapt accordingly.
*Wikipedia 2012
compeople AG | EclipseCon Europe 2012 | Why are OSGi dynamic ? | 12.09.2012 | 3
4. OSGi is ...
Bundle Service Extension
started started installed
stopped stopped uninstalled
installed
uninstalled
compeople AG | EclipseCon Europe 2012 | Why are OSGi dynamic ? | 12.09.2012 | 4
5. OSGi Lifecycle ...
Bundle
Service
stopped
started
Extension
uninstalled
installed
uninstalled
stopped
started
compeople AG | EclipseCon Europe 2012 | Why are OSGi dynamic ? | 12.09.2012 | 5
6. OSGi Service Usage ...
Bundle
IService
started
Bundle Bundle
Service MyComponent
?
stopped
started serviceRef
stopped
started started
compeople AG | EclipseCon Europe 2012 | Why are OSGi dynamic ? | 12.09.2012 | 6
7. Extensions
ExtPoint
?
Bundle Bundle
Extension MyComponent
createExecRef
uninstalled
installed
uninstalled
stopped
started started
compeople AG | EclipseCon Europe 2012 | Why are OSGi dynamic ? | 12.09.2012 | 7
8. Lazy activation
Bundle
IService
started
stopped
Bundle Bundle
Service MyComponent
stopped serviceRef
stopped started
stopped
Who starts this bundle so the Service can be
accessed ?
compeople AG | EclipseCon Europe 2012 | Why are OSGi dynamic ? | 12.09.2012 | 8
9. Which means ...
• A service references can become invalid anytime during
runtime
• Services are uncoupled from their consumer (no
dependency)
• Services need to be started before the lookup
• Bundles are started lazy by default
› you cannot rely on a bundle being active
compeople AG | EclipseCon Europe 2012 | Why are OSGi dynamic ? | 12.09.2012 | 9
10. Sample
Bundle
ISearchService
started
Bundle Bundle
SearchService MySearch
started search
started started
compeople AG | EclipseCon Europe 2012 | Why are OSGi dynamic ? | 12.09.2012 | 10
11. Which means ... (API approach)
MySearch
ref = context.getServiceReference(ISearchService.class.getName());
if (ref!=null) {
ISearchService search = (ISearchService)context.getService(ref);
if (search!=null) {
search.findByName("Bill");
...
...
// is search still valid here ???
}
context.ungetService(ref);
}
compeople AG | EclipseCon Europe 2012 | Why are OSGi dynamic ? | 12.09.2012 | 11
12. Which means .... (ServiceTracker)
MySearch
ServiceTracker tracker =
new ServiceTracker(ctx, ISearchService.class.getName(), null);
tracker.open();
ISearchService search = ((ISearchService )tracker.getService());
if (search!=null) {
search.findByName("Bill");
...
...
// is search still valid here ???
}
compeople AG | EclipseCon Europe 2012 | Why are OSGi dynamic ? | 12.09.2012 | 12
13. Which means ... (Declaritive approach)
<component name= "MySearch">
<implementation class="org.example.MySearch"/>
<reference bind="setCustomerSearch"
cardinality="1..1"
interface="org.eclipse.search.ISearchService"
name="Search"
policy="dynamic"
unbind="unsetCustomerSearch"/>
</component>
Note: The declarative approach requires that DS controls the lifecyle
of the target component. (MySearch).
If that lifecycle is out of your control, you need an API.
Both components should be DS to make sense.
compeople AG | EclipseCon Europe 2012 | Why are OSGi dynamic ? | 12.09.2012 | 13
14. Which means ... (Declaritive approach)
public class MySearch {
public void setCustomerSearch(ISearchService search) {
this.search = search;
}
public Customer[] listCustomer(String name) {
return search.findByName(name);
}
public Customer findCustomer(String number) {
return search.findByNumber(number);
}
public void unsetCustomerSearch(ISearchService search) {
this.search = null;
}
}
compeople AG | EclipseCon Europe 2012 | Why are OSGi dynamic ? | 12.09.2012 | 14
15. Which means ... (e4 approach)
public class MySearch {
@Inject
private ISearchService search;
public Customer[] listCustomer(String name) {
return search.findByName(name);
}
public Customer findCustomer(String number) {
return search.findByNumber(number);
}
}
compeople AG | EclipseCon Europe 2012 | Why are OSGi dynamic ? | 12.09.2012 | 15
16. That things can break ...
• NPE when accessing service that are injected
› Service was not started
› Service was stopped
› No bundle in the setup implements the Service
• Service instance exists, but Service-Bundle is stopped
• Lazy activation does not work once a bundle is stopped
• At startup no way to check that all dependencies are there.
compeople AG | EclipseCon Europe 2012 | Why are OSGi dynamic ? | 12.09.2012 | 16
17. Are you ready ... ?
• Is our code always ready that a reference to a service
instance is no longer valid ?
• In your RCP application, do you often stop and start
bundles ?
• Do you swap-in a new Service implementation at runtime ?
OR do you need that dynamic ?
compeople AG | EclipseCon Europe 2012 | Why are OSGi dynamic ? | 12.09.2012 | 17
18. Eclipse IDE...
• A typical usecase for dynamic OSGi is installation of
bundles in the Eclipse IDE
• Did you notice that the "Apply changes" option from
Eclipse 3.7 is gone in 3.8 and 4.2 ?
• Did it ever work for you ?
• Test with Eclipse IDE
› install bundle in 3.7 and in 4.2 (no apply in 4.2)
› stop a bundle in the console and see how the Eclipse
IDE reacts
compeople AG | EclipseCon Europe 2012 | Why are OSGi dynamic ? | 12.09.2012 | 18
20. Not everyone wants/needs dynamic ...
• Often there is nothing reasonable to do when an injected
service is not there.
› SearchDialog without SearchService
› SearchService without DatabaseConnectorService
› Car without BrakeService
compeople AG | EclipseCon Europe 2012 | Why are OSGi dynamic ? | 12.09.2012 | 20
21. Work-arounds
• Frameworks on top of OSGi implement their own way of
starting bundles EAGER
• OSGi based servers want to start everything immediately
• Applications manually start all necessary bundles and
service at startup and never stop them
compeople AG | EclipseCon Europe 2012 | Why are OSGi dynamic ? | 12.09.2012 | 21
22. The advantage ...
• A missing service is not "normal", don't try to handle it.
• Detect missing components at startup and fail instantly
• Services don't appear at some time. They are either there
or not.
• A Service cannot disappear while you are using it.
compeople AG | EclipseCon Europe 2012 | Why are OSGi dynamic ? | 12.09.2012 | 22
23. There are exceptions...
• Some Services need the dynamic (=flexibility)
› i.e. change ServiceImplementation if you switch from
online to offline
• So document that decision and add the additional checks
compeople AG | EclipseCon Europe 2012 | Why are OSGi dynamic ? | 12.09.2012 | 23
24. Which means ... (API approach)
ref = context.getServiceReference(ICustomerSearch.class.getName());
if (ref!=null) {
ICustomerSearch search = (ICustomerSearch)context.getService(ref);
// if (search!=null) {
search.findByName("Bill");
...
...
// is search is valid here !!!
// }
context.ungetService(ref); // ???
}
compeople AG | EclipseCon Europe 2012 | Why are OSGi dynamic ? | 12.09.2012 | 24
25. Which means ... (e4 approach)
public class MySearch {
@Inject
private ISearchService search;
public Customer[] listCustomer(String name) {
return search.findByName(name);
}
public Customer findCustomer(String number) {
return search.findByNumber(number);
}
}
compeople AG | EclipseCon Europe 2012 | Why are OSGi dynamic ? | 12.09.2012 | 25
26. Others ...
OSGi != !=
no dynamic lifecycle per component
compeople AG | EclipseCon Europe 2012 | Why are OSGi dynamic ? | 12.09.2012 | 26
27. OSGi
• Modules as Bundles cool
• Bundles /w public API & private Impl cool
cool
• OSGi Service
• Extensions cool
• Lazy Activation be careful
• Start / Stop Services on condition use with care
• Ability to stop Bundles at Runtime avoid
• Ability to replace Bundles at Runtime avoid
compeople AG | EclipseCon Europe 2012 | Why are OSGi dynamic ? | 12.09.2012 | 27
28. Q&A
compeople AG | EclipseCon Europe 2012 | Why are OSGi dynamic ? | 12.09.2012 | 28