This document provides an overview of Naive OSGi, which aims to implement the Java OSGi specifications in C and C++ to enable modular software development for native languages. It discusses the motivations for Naive OSGi, including leveraging the benefits of OSGi for C/C++ applications. The current state of various OSGi-like implementations for C/C++ is examined, including the CTK Plugin Framework, Apache Celix, nOSGi, and the Service Oriented Framework. The document also covers the history of efforts toward a "Universal OSGi" and highlights some of the challenges involved in building a native OSGi framework.
Going Native With The OSGi Service Layer - Sascha Zelzermfrancis
OSGi Community Event 2013 (http://www.osgi.org/CommunityEvent2013/Schedule)
ABSTRACT
OSGi is a dynamic module system for Java, supporting the development of highly modular applications. However, many concepts and design choices in the OSGi specifications are language neutral and can, for example, also be applied to native C++ application development. In fact, a vast amount of applications in many different domains (embedded, desktop, server, distributed, etc.) are still written in native languages like C++, for various reasons. In turn, many of these applications are in need of a light-weight modular architecture, fostering a service oriented design to minimize coupling between components and to maximize their re-usability.
The C++ Micro Services project (http://cppmicroservices.org) is a pure C++ implementation of the OSGi service layer, bringing a dynamic and service oriented framework inspired by OSGi to native application developers. Its scope is similar to the PojoSR project, a Java implementation of the OSGi service layer only. By only implementing the OSGi service layer, the complexity and foot-print of such an implementation is drastically reduced and its usage heavily simplified. Additionally, incrementally modifying an existing project to make use of the OSGi service layer can be viewed as an easy migration path to using a full-blown native OSGi implementation later on.
In this talk, the challenges of mapping the Java OSGi service layer API (based on OSGi R4.3 and Java generics) to an intuitive and easy-to-use C++ API are presented. Further, the properties of the native linkers of the major operating systems (Windows, Linux, MacOS) and how they effectively already implement parts of the OSGi module layer are discussed. These concepts will then be illustrated by looking at how a big C++ toolkit related to medical image processing makes use of the C++ Micro Services project and its OSGi-based service layer implementation. Furthermore, the relationship of the C++ Micro Services project to the recently initiated "Native OSGi" efforts, the related OSGi RFP 156, and other native OSGi implementations like Apache Celix will be discussed.
SPEAKER BIO
Sascha Zelzer studied Theoretical Physics in Austria and has been working with Java and C++ for the last ten years. While working on his Ph.D. at the German Cancer Research Center, he is also deeply involved in developing and maintaining a large C++ software stack primarily focused on medical imaging platforms. His current interests include modularized and distributed systems in C++, especially how to leverage the benefits of OSGi technology in a native environment.
SOLID Programming with Portable Class LibrariesVagif Abilov
Developers often don't pay attention to code portability until they need to target multiple platforms. However, large amount of non-portable code often hints about violation of clean code principles, so it is worth investigating which part of the source code base are platform-specific and for what reasons.
In this session we will give an overview of portable class libraries, show how to extract PCL components from a real-world application and go through typical challenges that are faced when writing portable code. We will present the original tool that analyzes assemblies for portability compliance and can be used as a guard to prevent mixing business logic with infrastructure-specific functionality. Finally we will demonstrate how PCLs help targeting platforms such as Windows Store, Android and iOS.
MyFaces CODI and JBoss Seam3 become Apache DeltaSpikeos890
These slides show how to use type-safe mechanisms provided by MyFaces CODI for developing JSF applications which are more type-safe and easier to maintain as well as common pitfalls. Beyond that there is an basic overview of Apache DeltaSpike.
Make JSF more type-safe with CDI and MyFaces CODIos890
These slides show how to use type-safe mechanisms provided by MyFaces CODI for developing JSF applications which are more type-safe and easier to maintain.
http://2012.con-fess.com/sessions/-/details/136/MyFaces-CODI-and-JBoss-Seam3-become-Apache-DeltaSpike is the next part with more details about MyFaces CODI and Apache DeltaSpike at
Going Native With The OSGi Service Layer - Sascha Zelzermfrancis
OSGi Community Event 2013 (http://www.osgi.org/CommunityEvent2013/Schedule)
ABSTRACT
OSGi is a dynamic module system for Java, supporting the development of highly modular applications. However, many concepts and design choices in the OSGi specifications are language neutral and can, for example, also be applied to native C++ application development. In fact, a vast amount of applications in many different domains (embedded, desktop, server, distributed, etc.) are still written in native languages like C++, for various reasons. In turn, many of these applications are in need of a light-weight modular architecture, fostering a service oriented design to minimize coupling between components and to maximize their re-usability.
The C++ Micro Services project (http://cppmicroservices.org) is a pure C++ implementation of the OSGi service layer, bringing a dynamic and service oriented framework inspired by OSGi to native application developers. Its scope is similar to the PojoSR project, a Java implementation of the OSGi service layer only. By only implementing the OSGi service layer, the complexity and foot-print of such an implementation is drastically reduced and its usage heavily simplified. Additionally, incrementally modifying an existing project to make use of the OSGi service layer can be viewed as an easy migration path to using a full-blown native OSGi implementation later on.
In this talk, the challenges of mapping the Java OSGi service layer API (based on OSGi R4.3 and Java generics) to an intuitive and easy-to-use C++ API are presented. Further, the properties of the native linkers of the major operating systems (Windows, Linux, MacOS) and how they effectively already implement parts of the OSGi module layer are discussed. These concepts will then be illustrated by looking at how a big C++ toolkit related to medical image processing makes use of the C++ Micro Services project and its OSGi-based service layer implementation. Furthermore, the relationship of the C++ Micro Services project to the recently initiated "Native OSGi" efforts, the related OSGi RFP 156, and other native OSGi implementations like Apache Celix will be discussed.
SPEAKER BIO
Sascha Zelzer studied Theoretical Physics in Austria and has been working with Java and C++ for the last ten years. While working on his Ph.D. at the German Cancer Research Center, he is also deeply involved in developing and maintaining a large C++ software stack primarily focused on medical imaging platforms. His current interests include modularized and distributed systems in C++, especially how to leverage the benefits of OSGi technology in a native environment.
SOLID Programming with Portable Class LibrariesVagif Abilov
Developers often don't pay attention to code portability until they need to target multiple platforms. However, large amount of non-portable code often hints about violation of clean code principles, so it is worth investigating which part of the source code base are platform-specific and for what reasons.
In this session we will give an overview of portable class libraries, show how to extract PCL components from a real-world application and go through typical challenges that are faced when writing portable code. We will present the original tool that analyzes assemblies for portability compliance and can be used as a guard to prevent mixing business logic with infrastructure-specific functionality. Finally we will demonstrate how PCLs help targeting platforms such as Windows Store, Android and iOS.
MyFaces CODI and JBoss Seam3 become Apache DeltaSpikeos890
These slides show how to use type-safe mechanisms provided by MyFaces CODI for developing JSF applications which are more type-safe and easier to maintain as well as common pitfalls. Beyond that there is an basic overview of Apache DeltaSpike.
Make JSF more type-safe with CDI and MyFaces CODIos890
These slides show how to use type-safe mechanisms provided by MyFaces CODI for developing JSF applications which are more type-safe and easier to maintain.
http://2012.con-fess.com/sessions/-/details/136/MyFaces-CODI-and-JBoss-Seam3-become-Apache-DeltaSpike is the next part with more details about MyFaces CODI and Apache DeltaSpike at
Spring Framework 4.0 is the latest generation of the popular open source framework for Enterprise Java developers, focusing on the future with support for Java SE 8 and Java EE 7. In this presentation core Spring committer Sam Brannen will provide attendees an overview of the new enterprise features in the framework as well as new programming models made possible with the adoption of JDK 8 language features and APIs.
Specifically, this talk will cover support for lambda expressions and method references against Spring callback interfaces, JSR-310 Date-Time value types for Spring data binding and formatting, Spring's new @Conditional mechanism for activation of bean definitions, and a new WebSocket endpoint model. The presentation also provides an overview of Spring 4.0's updated support for enterprise APIs such as JMS 2.0, JPA 2.1, Bean Validation 1.1, Servlet 3.1, and JCache. Last but not least, Sam will highlight some of the major themes for the upcoming Spring Framework 4.1 release such as support for JCache 1.0 annotations, annotation-driven JMS listeners, and testing improvements.
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...J V
Alfresco Summit 2014 (London)
Though best practice is to leverage Alfresco through the well defined API's, it can be useful to understand the internals of the repository so that your development efforts are the most effective. A deep understanding of the repository will help you to evaluate performance bottlenecks, look for bugs, or make contributions. This session provides an overview of the repository internals, including the major components, the key services, subsystems, and database. We then provide an example where we leverage the repository in a micro-service architecture while building Alfresco's future cloud products and show how the different parts of the repository interact to fulfill requests.
http://summit.alfresco.com/london/sessions/diving-deep-alfresco-repository
https://www.youtube.com/watch?v=TAE9UjC0xxc
Eclipse JDT Embraces Java 9 – An Insider’s ViewDev_Events
Manoj Palat, IBM Cloud and Sasikanth Bharadwaj, Developer, Eclipse JDT Core
Eclipse Java Development Tooling or JDT has its own Java compiler at its core, aptly called the JDT Core
consisting of the Java compiler and various tools including java model, search infrastructure, content
assist, Abstract Syntax Tree Tools etc. Java 9 is the latest entry in the Java world bringing along-with it a
“module” of changes – so to speak. Any change in the language standards affects JDT directly. While
some of the earlier language specification changes affected only the compiler, Java 9, in contrast, has a
direct impact on user who uses Eclipse IDE for creating and managing Java Projects. Java 9 introduces
the concept of “Modules” which affects JDT from the compiler level to the project dependency layer
affecting a normal user. Support for this feature will be dealt with, in detail, in this talk.
Symbio, a leading software foundry, provides software product engineering and R&D co-creation services to the world's technology innovators. With offices in Finland, Sweden, USA and China, Symbio serves such world-leading companies like China Mobile, Google, Nokia, PayPal and ST-Ericsson. www.symbio.com.
Presentation on OSGi Cloud Ecosystems as presented during EclipseCon Europe 2012 (http://www.eclipsecon.org/europe2012/sessions/osgi-and-cloud-computing)
Overview of the new .NET Core and .NET Platform StandardAlex Thissen
Microsoft is working hard to modernize the .NET Platform. There are great new frameworks and tools coming, such as .NET Core and ASP.NET Core. The amount of new things is overwhelming, with multiple .NET Platforms (.NET Framework, Unified Windows Platform, .NET Core), multiple runtimes (CoreCLR, CLR, CoreRT), multiple compilers (Roslyn, RyuJIT, .NET Native and LLILC) and much more. This session will bring you up to speed on all this new Microsoft technology, focusing on .NET Core.
An introduction to the Java Platform Module System (JPMS). This talk is from April 2017, before the Java SE 9 release, so the final details may be subtly different, particularly once a standard becomes established for module names.
In this session you will learn:
1. Introduction to Struts Framework
2. Features
3. Evolution
4. Struts Demo
5. Declarative validation
6. Architecture
7. Validators
8. Interceptors
Spring Framework 4.0 is the latest generation of the popular open source framework for Enterprise Java developers, focusing on the future with support for Java SE 8 and Java EE 7. In this presentation core Spring committer Sam Brannen will provide attendees an overview of the new enterprise features in the framework as well as new programming models made possible with the adoption of JDK 8 language features and APIs.
Specifically, this talk will cover support for lambda expressions and method references against Spring callback interfaces, JSR-310 Date-Time value types for Spring data binding and formatting, Spring's new @Conditional mechanism for activation of bean definitions, and a new WebSocket endpoint model. The presentation also provides an overview of Spring 4.0's updated support for enterprise APIs such as JMS 2.0, JPA 2.1, Bean Validation 1.1, Servlet 3.1, and JCache. Last but not least, Sam will highlight some of the major themes for the upcoming Spring Framework 4.1 release such as support for JCache 1.0 annotations, annotation-driven JMS listeners, and testing improvements.
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...J V
Alfresco Summit 2014 (London)
Though best practice is to leverage Alfresco through the well defined API's, it can be useful to understand the internals of the repository so that your development efforts are the most effective. A deep understanding of the repository will help you to evaluate performance bottlenecks, look for bugs, or make contributions. This session provides an overview of the repository internals, including the major components, the key services, subsystems, and database. We then provide an example where we leverage the repository in a micro-service architecture while building Alfresco's future cloud products and show how the different parts of the repository interact to fulfill requests.
http://summit.alfresco.com/london/sessions/diving-deep-alfresco-repository
https://www.youtube.com/watch?v=TAE9UjC0xxc
Eclipse JDT Embraces Java 9 – An Insider’s ViewDev_Events
Manoj Palat, IBM Cloud and Sasikanth Bharadwaj, Developer, Eclipse JDT Core
Eclipse Java Development Tooling or JDT has its own Java compiler at its core, aptly called the JDT Core
consisting of the Java compiler and various tools including java model, search infrastructure, content
assist, Abstract Syntax Tree Tools etc. Java 9 is the latest entry in the Java world bringing along-with it a
“module” of changes – so to speak. Any change in the language standards affects JDT directly. While
some of the earlier language specification changes affected only the compiler, Java 9, in contrast, has a
direct impact on user who uses Eclipse IDE for creating and managing Java Projects. Java 9 introduces
the concept of “Modules” which affects JDT from the compiler level to the project dependency layer
affecting a normal user. Support for this feature will be dealt with, in detail, in this talk.
Symbio, a leading software foundry, provides software product engineering and R&D co-creation services to the world's technology innovators. With offices in Finland, Sweden, USA and China, Symbio serves such world-leading companies like China Mobile, Google, Nokia, PayPal and ST-Ericsson. www.symbio.com.
Presentation on OSGi Cloud Ecosystems as presented during EclipseCon Europe 2012 (http://www.eclipsecon.org/europe2012/sessions/osgi-and-cloud-computing)
Overview of the new .NET Core and .NET Platform StandardAlex Thissen
Microsoft is working hard to modernize the .NET Platform. There are great new frameworks and tools coming, such as .NET Core and ASP.NET Core. The amount of new things is overwhelming, with multiple .NET Platforms (.NET Framework, Unified Windows Platform, .NET Core), multiple runtimes (CoreCLR, CLR, CoreRT), multiple compilers (Roslyn, RyuJIT, .NET Native and LLILC) and much more. This session will bring you up to speed on all this new Microsoft technology, focusing on .NET Core.
An introduction to the Java Platform Module System (JPMS). This talk is from April 2017, before the Java SE 9 release, so the final details may be subtly different, particularly once a standard becomes established for module names.
In this session you will learn:
1. Introduction to Struts Framework
2. Features
3. Evolution
4. Struts Demo
5. Declarative validation
6. Architecture
7. Validators
8. Interceptors
Presentación esquemática de cómo debe de estudiarse un enfermo de la piel, haciendo énfasis en las lesiones elementales, las cuales se ejemplifican con imágenes clínicas
Understanding Telecom SIM and USIM/ISIM for LTEntel
SIM cards have been witnessing increasing adoption with the growing use of smartphones and other devices requiring always-on connectivity. SIM cards represent a key platform for value added services and applications, and are a core element in providing interoperability among the telecom industry players while ensuring security and safe authentication.
Key Features:
Form factors: mini-SIM (2FF), micro-SIM (3FF) and nano-SIM (4FF)
Memory size: from 32k up to 256k
High security standards and strong authentication algorithms
Over-The-Air (OTA) content management
Wide range of Value Added Services applications
Browser-based Secure Remote Access for the Internet of ThingsGünter Obiltschnig
Secure remote access to the built-in web server of a device is one of the fundamental building blocks for the Internet of Things. my-devices.net enables easy and secure remote access, even if the device is located behind a NAT router or a firewall and does not have a public IP address.
teléfono 9. Currículo Nisán parte ambiental residual pasta coloide web 10. Fl...Maxwell Altamirano
12. Diseño de evapocristalizadores (Tachos)
13. Diseño de equipos de transferencia de calor (intercambiadores de placas, tubo y coraza y de espiral)
14. Diseño de clarificadores.
15. Tratamiento de agua de calderas.
16. Tratamiento de aguas industriales.
17. Manejo de sólido.
18. Consultoría en contaminación del aire.
19. Asesoría en soldadura.
20. Contraparte en proyectos de instalación.
21. Transferencia de masa (equipos de destilación, adsorción, osmosis inversa, etc.)
22. Maquinaria minera pesa (trituración)
23. Electroquímica
24. Curtiembre
25. Formulación de insecticidas
26. Diseño de extrusores.
27. Análisis de capacidad de producción en la industria alimenticia.
28. Balance y economía del agua.
29. Elaboración de productos en laboratorios farmacéuticos
30. Industria farmacéutica.
31. Alcohol –química (productos derivados del alcohol)
We are the top limo company in Southern California and look forward to providing you with exceptional transportation.We have been providing outstanding services to thousands of clients since 1988.
http://www.alexislimo.com
ANDS Webinar. Data Management Policies and PeopleJulia Gross
Over nine months in 2011 Edith Cowan University Library successfully completed an ANDS funded Seeding the Commons project. The project team were tasked with developing a data management plan and policy, identifying and describing a selection of datasets and producing training for researchers at the university. As part of the project, the library team learned new skills, including conducting data interviews, describing data using RIF-CS, and understanding the many issues surrounding the management of research data. In this webinar Constance and Julia will discuss how they approached the project, the lessons learned along the way, and how the benefits are being taken forward in 2012
The Apereo OAE Bootcamp offers an introduction into back-end and front-end development for the Apereo OAE project.
The back-end development part focuses on learning the different extension points behind the scenes in the service layer of OAE. A back-end component for OAE that exposes a REST API is built from scratch.
Back-end development topics include:
- Node.js NPM module system
- OAE back-end application life-cycle
- Data-modelling with Apache Cassandra and writing CQL queries from Node.js
- Using the OAE APIs to expose back-end functionality for the web VIA RESTful APIs
- Writing back-end unit tests using Grunt and Mocha. If time permits, the following will also be covered:
- Integrating with OAE's ElasticSearch query and index functionality
- Integrating with OAE's Activity and Notifications functionality
- Integration with OAE's Admin Configuration functionality
The front-end development part focuses on writing a UI widget using the REST APIs developed in the back-end development part.
Front-end development topics include:
- Integrating with the OAE Widget loading system
- Writing internationalizable templates with TrimPath and the widget i18n and l10n functionality
- Interacting with the core OAE UI APIs
- Using bootstrap 3 to design responsive UI layouts for your widgets
- Writing front-end unit tests using Grunt and CasperJS
Slides from Houston Xamarin C# Developers Group in Houston Texas on December 16th 2013:
PCL Deep Dive: With a single solution in Visual Studio, build native cross-platform apps for iOS, Android, and Windows all in C#. Dive into platform specific code with Service Locators (IoC) an PCL support
Android development changed significantly in 2017 (Kotlin, Architecture Components and much more). Some of the most tricky and debatable questions now are: how to start a scalable project from scratch? How to decide which technology/library to use?
The HERE WeGo App team has worked for years to define a sophisticated release and development process, with a high level of automation that allowed to quickly followup on user issues and actively develop features. But legacy code and a large framework made it difficult to move even faster.
Lessons learned? We will discuss how to start over with all the learnings on a greenfield project.
Technologies that will be covered: Kotlin, Jenkins, JobDsl, Architecture Components, GraphQL, gRPC and more.
When Google released the first SDK for Android, which was way before the first mobile phones running it were released, Karl and Marcel decided to try and see what it would take to get Apache Felix running OSGi on Android.
This presentation introduces the Android platform, OSGi, and demonstrates how to run Apache Felix on Android. It builds on an earlier blog article that was published on this subject, an article that inspired many other OSGi implementations to try the same.
Native App Development for iOS, Android, and Windows with Visual StudioXamarin
With a single solution in Visual Studio, build native cross-platform apps for iOS, Android, and Windows all in C#.
James Montemagno, Developer Evangelist at Xamarin, as he shows you how Xamarin and Visual Studio 2013 give you the best environment for developing native cross-platform apps.
Lessons learned from building Eclipse-based add-ons for commercial modeling t...IncQuery Labs
In this presentation, we summarize the lessons we have learned during the MagicDraw adaptation of VIATRA, Eclipse’s open source framework for scalable reactive model transformations. We have built V4MD, an open source extension for MagicDraw that others can freely reuse and build on, and IncQuery for MagicDraw, a commercial add-on that provides powerful yet user-friendly querying and validation capabilities.
We are on the cusp of a new era of application development software: instead of bolting on operations as an after-thought to the software development process, Kubernetes promises to bring development and operations together by design.
Composable Software Architecture with SpringSam Brannen
What does the architecture of a modern enterprise Java application look like? What have we as a community learned from our past? What does it mean to design a composable architecture? And how can Spring help developers meet the needs of enterprise applications in 2013 and beyond?
In this keynote presentation at Java Breeze, core Spring Framework committer Sam Brannen invites the audience to explore what it means to design, develop, and test modern enterprise Java applications following a composable software architecture model. Along the way, Sam will show how the Spring ecosystem and programming model fit into the larger picture of modern enterprise Java applications.
SSDN Technology is a training institute located in Delhi Gurgaon, NCR & India which offer best DotNet Training by our experienced trainer. We are providing live project training with full lab facility. For more details for a bright future call us at +91-9999-111-686.
http://www.ssdntech.com/dotnet-training.aspx
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
OSGi Community Event 2018 Presentation by Paul Fraser (A2Z Living)
Abstract: This talk will demonstrate how easy it is to create great web user interfaces using the OSGi Service registry and Declarative Services.
OSGi has developed to the point that much can be achieved with much reduced code complexity. Forget all the past OSGi techniques and see how it can be done now.
A short introduction will introduce OSGi in general and even if beginners do not fully understand the finer details of the talk, they will be amazed at what can be achieved using the OSGi service registry.
Do not be frightened by the terminology, come along and experience the magic of OSGi modularity.
User interfaces do not seem to get much attention in the OSGi community, it is time for a change.
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruumfrancis
OSGi Community Event 2018 Presentation by Frank Lyaruu
Abstract: OSGi offers an excellent service discovery mechanism, it is limited to services inside the JVM. That limits us in two ways: It limits us to Java services, and it limits us to one single machine, and neither are acceptable in this day and age. Can we connect our OSGi runtime to a cluster orchestration manager like Kubernetes so our runtime can interact with the cluster and allow us to respond to changes in the cluster as dynamically as we are used to in OSGi itself. I think we can.
Notes:
I will show how to discover Kubernetes services (and their pods) in a cluster, and inject those as configuration objects into an OSGi runtime. That allows us to monitor the Kubernetes cluster and dynamically have our OSGi services respond to (Kubernetes) service changes.
In general I hope to nudge the OSGi community to be more focused on connecting to other technologies rather than trying to stay in the OSGi walled garden. A well engineered OSGi application is perfectly suited to the dynamic nature of the cloud native world, but if we can't easily integrate with other services, well, nobody will care.
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
OSGi Community Event 2018 Presentation by Jörn Tümmler (SMA Solar Technology)
Abstract: SMA is a leading global specialist in photovoltaic system technology with more than 3,000 SMA employees in 20 countries.
In 2015 SMA decided to develop the ennexOS platform - a cross-sector platform for holistic, intelligent energy management. An important part of this platform is the data-manager - an IoT gateway that acquires information from various energy generators, storages and loads and performs commissioning and management tasks.
This new generation of data-managers demanded for new approaches in software-architecture to:
run on a broad range of hardware platforms, and
be extendible e.g. to support different protocols for easy integration, and
to enable a broad range of applications in the energy-management field that may be customized by apps installed during runtime
After an exhaustive investigation on existing solutions, OSGi was chosen as the key technology for this new generation of devices - a quite challenging decision, because at this point there was only limited experience in Java and OSGi development in the company.
This talk will present the key factors that lead to this decision, how we very carefully build up Java and OSGi knowledge, and started with an initial design. OSGi enRoute and the support of OSGi experts helped us to accelerate our development and become familiar with OSGi - although we also had times when we were struggling because of the new technology.
The talk will demonstrate what we have reached until now and we will tell you if OSGi has kept it's promise ...
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
OSGi Community Event 2018 Presentation by Christian Schneider (Adobe)
Abstract: We will look at common cloud and design patterns and see how the special properties of the OSGi environment allows us to rethink these patterns. The talk shows some well known patterns like the service registry and the whiteboard but also some unique patterns like out of band circuit breaker or graceful degregation.
The patterns are shown with some examples using declarative services(DS). So some basic OSGi and DS knowledge is of advantage but not required.
For OSGi beginners the well established OSGi patterns will help getting started the right way. Experienced OSGi developers will find some new patterns to think about. Cloud or enterprise developers will get a new approach to some patterns they are used to which hopefully inspires them to take another look at the current state of 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.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Let's dive deeper into the world of ODC! Ricardo Alves (OutSystems) will join us to tell all about the new Data Fabric. After that, Sezen de Bruijn (OutSystems) will get into the details on how to best design a sturdy architecture within ODC.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
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
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
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
I have heard many times that architecture is not important for the front-end. Also, many times I have seen how developers implement features on the front-end just following the standard rules for a framework and think that this is enough to successfully launch the project, and then the project fails. How to prevent this and what approach to choose? I have launched dozens of complex projects and during the talk we will analyze which approaches have worked for me and which have not.
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.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Native OSGi, Modular Software Development in a Native World - Alexander Broekhuis, Sascha Zelzer
1. Na#ve
OSGi
Modular
So1ware
Development
in
a
Na#ve
World
Alexander
Broekhuis
alexander.broekhuis@luminis.eu
Sascha
Zelzer
s.zelzer@dkfz-‐heidelberg.de
3. Alexander
Broekhuis
• So1ware
Developer
• Started
as
a
Java
Engineer
• Programming
C
since
2010
• At
Luminis
since
2008
• So1ware
House
• Research
and
innova#on
oriented
• Involved
in
Open
Source
(Apache)
• Apache
commiXer
since
2010
4. Sascha
Zelzer
• So1ware
Developer
• 15
years
of
experience
with
Java,
Eclipse,
C++
• Current
focus
on
modular
C++
systems
• For
research
environments
• Since
2005
at
the
German
Cancer
Research
Center
(DKFZ)
• Large
mul#-‐disciplinary
research
environment
• Mainly
cancer
research
and
medical
imaging
• Long
open-‐source
history
within
the
department
5. OSGi
is:
• component
based
framework
• allows
dynamic
assembly
of
components
• Java,
so
independent
of
opera#ng
system
OSGi
technology
is
the
dynamic
module
system
for
Java™
OSGi
technology
is
Universal
Middleware.
OSGi
technology
provides
a
service-‐oriented,
component-‐based
environment
for
developers
and
offers
standardized
ways
to
manage
the
so@ware
lifecycle.
These
capabiliBes
greatly
increase
the
value
of
a
wide
range
of
computers
and
devices
that
use
the
Java™
plaForm.
10. Benefits
• Making
products
with
many
varia#ons
• Improving
quality
through
re-‐use
• Speed:
#me
to
market
11. Na#ve
OSGi
"The
Na#ve
OSGi
project
is
a
collabora#ve
effort
to
write,
test,
and
implement
the
Java
OSGi
specifica#ons
in
C
and
C++
with
a
focus
on
interoperability
between
C,
C++
and
Java"
12. Mo#va#on
-‐
Why?
• C
and
C++
are
NOT
obsolete
• C++11
is
a
big
step
forward
• Tradi#onal
Applica#on
Domains
• Embedded
Devices
• Medical
Imaging
• Sensor
Networks
• Lightweight
Na#ve
Module
System
• Benefits
na#ve
developers
13. C/C++
Modulariza#on
• Examples
• CORBA
and
CCM:
Portable,
heavy-‐weight
• Service
Component
Architecture
(SCA)
• Problems
• Find
a
C/C++
implementa#on
with
an
appropriate
license
• Scope
can
be
too
broad/overwhelming
14. Benefits
• Mature
API
• OSGi
is
around
since
1999
• Core
Specifica#ons
are
small
• Enables
hybrid
Java/C/C++
solu#ons
• as
an
alterna#ve
to
JNI
• Eases
migra#on
• From
Na#ve
to
Java
• Embedded
Performance
16. History
-‐
Universal
OSGi
• RFP-‐89
• Proposed
to
the
mailing
in
2007
• Since
then
remained
silent
• Ongoing
(slow)
effort
to
pick
up
again
• Focused
on
• Suppor#ng
different
languages
in
OSGi
• Suppor#ng
framework
in
different
languages
• Languages
men#oned:
• Na#ve
(C
and
C++),
.NET
(C#),
Scrip#ng
(Javascript/Ac#onscript)
17. History
-‐
Universal
OSGi
• Completely
Different
Languages
• Na#ve,
Managed,
Scrip#ng
• Limit
Scope
• Focus
on
C/C++
• Makes
it
easier
to
progress
• Keeps
Focus
on
Common
Run#me
“Na$ve-‐OSGi”
18. Current
State
• OSGi-‐like
Implementa#ons
• CTK
Plugin
Framework
• Apache
Celix
• nOSGi
• Service
Oriented
Framework
(SOF)
19. Current
State
• Small
Communi#es
• No
Interoperability
• Different
bundle
format
• API
differences
• Wiring
solved
differently
• Module
layer
20. CTK
Plugin
Framework
Largest
biomedical
research
ins#tute
in
Germany
Founded
in
1964,
~2200
employees
Developed
at
the
German
Cancer
Research
Center
(DKFZ)
21. CTK
Plugin
Framework
• Part
of
“Common
Toolkit”
• Large
interna#onal
ini#a#ve
(medical
imaging)
• C++
API
is
very
close
to
the
OSGi
Specifica#on
• Provides
Implementa#ons
• Log
• Configura#on
Admin
• Metatype
• Event
Admin
• Runs
on:
Windows,
Linux,
MacOS
23. Apache
Celix
• Development
started
at
Thales
Netherlands
• Open
Sourced
/
Donated
by
Luminis
to
Apache
• Embedded
distributed
systems
• Dynamic
(Re)Configura#on
• Used
as
middleware
in
large
research
project
24. Apache
Celix
• Implemented
in
C
• API
close
to
the
specifica#on
• Adapted
to
Non-‐Object
Oriented
use
• Donated
to
the
Apache
Incubator
• Provides
• Log
Service
Remote
Service
Admin
• Devices
Access
Deployment
Admin
• Shell
25. nOSGi
• Research
project
at
University
of
Ulm
• Steffen
Kächele
• Very
lightweight
and
fast
implementa#on
(only
requires
c++
run#me
and
unzip)
• Runs
on
POSIX
systems
• Features
• Wiring
of
shared
objects
for
code-‐sharing
• Service
registry
with
filters
• Supports
source
bundles
(compiled
at
run#me)
• Comes
with
a
Shell
implementa#on
26. Service
Oriented
Framework
(SOF)
• Mature
open-‐source
project
(BSD)
• MaXhias
Grosam
• Shared
libraries
model
bundles
• Runs
on
Windows
and
Linux
• Features
• Service
registry,
trackers
and
listeners
• Provides
a
command
shell
• Remo#ng
capabili#es
(using
CORBA)
• Remote
services
and
service
listeners
• Command
shell
for
each
process
27. Specifica#on
• Members
• Goal
• Bundle
Format
• Module
Layer
• Life
Cycle
Layer
• Service
Layer
• C
and
C++
Interoperability
28. Members
• CTK
Plugin
Framework
• Apache
Celix
• nOSGi
Ini#al/startup
mee#ng
took
place
in
Hengelo
in
May
this
year
29. Goal
• Follow
OSGi
Specifica#on
• Allow
Interoperability
• Bundles
• Remote
Services
• Seamless
C
and
C++
Interoperability
• E.g.
provide
a
C
service,
consume
via
C++
interface
30. Goal
• Grow
Communi#es
• Combine
where
possible
• Channel
efforts
• Write
Open
Source
reference
• All
feedback
is
welcome!
32. Bundle
Format
• Like
Java
Archives
(JAR)
• Using
ZIP
format
• Bundle
Manifest
• .cmf
vs
.mf
• Headers
• Op#onals
• Libraries
• Resources
Layout:
-‐META-‐INF/
-‐MANIFEST.CMF
-‐OSGI-‐OPT
-‐share/
-‐include/
-‐src/
-‐lib/
-‐resources/
33. Module
Layer
• Shared
Libraries
model
Java
Packages
• Allows
Code
Sharing
• Mul#ple
Libraries
per
Bundle
• Symbols
must
be
exported
explicitly
• Addi#onal
visibility
control
• Symbol
Searching
Handled
by
Linker
• Meta-‐data
• Import/Export
Headers
• Execu#on
Environment
for
Addi#onal
Requirements
34. “Package”
Wiring
• Mechanism
from
nOSGi
• Library
Dependencies
Patched
at
Run#me
• To
match
with
available
exports
• Allows
Mul#ple
Versions
• Of
the
same
package
• Allows
Bundle
Updates
37. Service
Layer
• Na#ve
API
Close
to
the
Specifica#on
• Especially
C++
• C
API
is
adapted
to
Non-‐Object
Oriented
use
• Requirements
for
C++
• Be
Type-‐Safe
• Avoid
exposing
void*
where
possible
• Do
not
require
a
Service
base
class
• Allow
mul#ple
inheritance
of
Service
interfaces
38. Service
Layer
• Requirements
for
C
• Use
Struct
with
Func#on
pointers
for
Services
• Components
are
represented
as
void*
• Return
value
only
used
for
error
codes
• Return
values
via
arguments
39. C
/
C++
Interoperability
• Na#ve-‐OSGi
• Provides
both
C
and
C++
headers
• Provide
thin
bi-‐direc#onal
wrapping
• Service
Interfaces
• Should
provide
C
and
C++
• C++
Services
implemented
using
Interfaces
• C
Services
implemented
using
Structs
and
Func#on
Pointers
40. C
/
C++
Interoperability
• Service
Interfaces
• Provide
bindings
for
C
-‐>
C++
and
C++
-‐>
C
• IDL
for
Service
descrip#on
and
code
genera#on
• Service
Provider
• Implement
either
the
C
or
C++
header
• Service
Consumer
• Use
either
the
C
or
C++
API
41. C
/
C++
Interoperability
Native OSGi
C Framework Impl
C API
Headers & Utilities
C++ to C Wrapper
C++ API
CBundle
C++Bundle
C++Bundle
Native OSGi
C++ Framework Impl
C++ API
Headers & Utilities
C to C++ Wrapper
C API
CBundle
45. Outlook
• Write
Specifica#on
• Test
ideas/solu#ons
• As
part
of
the
OSGi
Alliance
• Define
Reference
Implementa#on
• Look
into
Compendium
Services
• Remote
Service
as
alterna#ve
to
JNI
• Adapt
other
Services
to
Na#ve-‐OSGi
• Community!