The OSGi R5 Enterprise release is available now from www.osgi.org (at this moment as a draft, final soon). This presentation walks through what's new in this specification, what to use it for and where to get it.
The next release of the OSGi specifications are planned for publication at EclipseCon 2011. So what is new? This presentation will provide an overview of the new features in the spec including Java 5 generics for the Framework and ServiceTracker, modern replacement for PackageAdmin and StartLevel, generic capabilities and requirements, resolver hooks, bytecode weaving and many more improvements and new features. The presentation assumes the audience has a basic understanding of OSGi and will focus on the changes in 4.3.
Jug Poitou Charentes - Apache, OSGi and KarafGuillaume Nodet
The document discusses Apache Karaf, OSGi, Blueprint and related topics. It provides an overview of the Apache Software Foundation and its role in open source projects like OSGi. It then summarizes OSGi and how it addresses modularity challenges in Java. Finally, it introduces Blueprint for dependency injection in OSGi and Apache Karaf as an OSGi-based runtime.
Apache, osgi and karaf par Guillaume NodetNormandy JUG
Vous avez entendu parler de OSGi (ou pas d’ailleurs), vous aimeriez que l’on vous explique ce que c’est et à quoi cela sert ?
Vous voudriez savoir comment on participe à des projets Open-Source, comment on devient acteur au sein de la fondation Apache ?
Vous avez lu l’excellent article d’Octo de la semaine dernière sur Camel, mais vous n’avez pas tout compris ou voulez en savoir plus ?
Ou tout simplement vous voudriez avoir une présentation de la solution OSGi d’Apache : Karaf ?
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application DevelopmentSanjeeb Sahoo
The document discusses using OSGi and Java EE together for enterprise application development. It provides an overview of OSGi including modules, services, and lifecycle. OSGi allows Java EE applications to be built as bundles that can leverage Java EE services. Specifications integrate technologies like JPA, JTA, and web applications. A demo shows lazy loading with JPA, EJB as a service, and security/transaction context propagation. More advanced topics include CDI injection of OSGi services and demos. The hybrid approach provides modularity, dynamism, and ease of deployment benefits for enterprise applications.
This document provides an introduction to OSGi using Apache Karaf. It discusses the problems that OSGi and Karaf aim to solve regarding dependency management, dynamic behavior, and modularity. It then summarizes OSGi's architecture including modules, lifecycles, and services. Finally, it outlines key aspects of Apache Karaf like its shell, deployer, features concept, security, and logging service.
Oracle SOA Suite 11g Mediator vs. Oracle Service Bus (OSB)Guido Schmutz
With Oracle SOA Suite 11g the old Oracle ESB become the Mediator component. With that only one "real" service bus resides, the Oracle Serivce Bus (OSB), which has been taken over from BEA (used to be Aqualogic Service Bus).
Mediator and OSB have some overlapping funcitonality, like transformation, routing and filtering. The question automatically raised is of course when to use which component. This presentation shows the difference between the components, the functionality they provide and some typical use cases for both.
This document provides an overview of Apache Camel, an open source framework for integration. It discusses key Camel concepts like routes, endpoints, components, messages and integration patterns. It provides examples of routing messages between different endpoints using the Java and XML domain specific languages.
The OSGi R5 Enterprise release is available now from www.osgi.org (at this moment as a draft, final soon). This presentation walks through what's new in this specification, what to use it for and where to get it.
The next release of the OSGi specifications are planned for publication at EclipseCon 2011. So what is new? This presentation will provide an overview of the new features in the spec including Java 5 generics for the Framework and ServiceTracker, modern replacement for PackageAdmin and StartLevel, generic capabilities and requirements, resolver hooks, bytecode weaving and many more improvements and new features. The presentation assumes the audience has a basic understanding of OSGi and will focus on the changes in 4.3.
Jug Poitou Charentes - Apache, OSGi and KarafGuillaume Nodet
The document discusses Apache Karaf, OSGi, Blueprint and related topics. It provides an overview of the Apache Software Foundation and its role in open source projects like OSGi. It then summarizes OSGi and how it addresses modularity challenges in Java. Finally, it introduces Blueprint for dependency injection in OSGi and Apache Karaf as an OSGi-based runtime.
Apache, osgi and karaf par Guillaume NodetNormandy JUG
Vous avez entendu parler de OSGi (ou pas d’ailleurs), vous aimeriez que l’on vous explique ce que c’est et à quoi cela sert ?
Vous voudriez savoir comment on participe à des projets Open-Source, comment on devient acteur au sein de la fondation Apache ?
Vous avez lu l’excellent article d’Octo de la semaine dernière sur Camel, mais vous n’avez pas tout compris ou voulez en savoir plus ?
Ou tout simplement vous voudriez avoir une présentation de la solution OSGi d’Apache : Karaf ?
OSGi and Java EE: A Hybrid Approach to Enterprise Java Application DevelopmentSanjeeb Sahoo
The document discusses using OSGi and Java EE together for enterprise application development. It provides an overview of OSGi including modules, services, and lifecycle. OSGi allows Java EE applications to be built as bundles that can leverage Java EE services. Specifications integrate technologies like JPA, JTA, and web applications. A demo shows lazy loading with JPA, EJB as a service, and security/transaction context propagation. More advanced topics include CDI injection of OSGi services and demos. The hybrid approach provides modularity, dynamism, and ease of deployment benefits for enterprise applications.
This document provides an introduction to OSGi using Apache Karaf. It discusses the problems that OSGi and Karaf aim to solve regarding dependency management, dynamic behavior, and modularity. It then summarizes OSGi's architecture including modules, lifecycles, and services. Finally, it outlines key aspects of Apache Karaf like its shell, deployer, features concept, security, and logging service.
Oracle SOA Suite 11g Mediator vs. Oracle Service Bus (OSB)Guido Schmutz
With Oracle SOA Suite 11g the old Oracle ESB become the Mediator component. With that only one "real" service bus resides, the Oracle Serivce Bus (OSB), which has been taken over from BEA (used to be Aqualogic Service Bus).
Mediator and OSB have some overlapping funcitonality, like transformation, routing and filtering. The question automatically raised is of course when to use which component. This presentation shows the difference between the components, the functionality they provide and some typical use cases for both.
This document provides an overview of Apache Camel, an open source framework for integration. It discusses key Camel concepts like routes, endpoints, components, messages and integration patterns. It provides examples of routing messages between different endpoints using the Java and XML domain specific languages.
This document provides an overview of a presentation on middleware security for Apache CXF, Camel, ActiveMQ and Karaf. It discusses various security concepts like authentication, authorization, auditing and encryption. It then goes into more details on implementing security for specific middleware like 2-way SSL for ActiveMQ, JAAS for authentication and authorization, password masking. It also discusses security implementations and examples for Camel, CXF, Karaf container and integration with other security frameworks like PicketLink, Spring Security and Shiro. The presentation will include demonstrations of web console security and securing ActiveMQ broker, producers and consumers using SSL.
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
OSGi ecosystems compared on Apache Karaf - Christian Schneidermfrancis
OSGi Community Event 2015
A look at three competing OSGi ecosystems (Declarative Services, Blueprint, CDI). Capabilities of each DI framework. Comparison of support for EE technologies like JPA, Security, SOAP and REST services, UIs. Looking into some of the recent advancements like Aries JPA 2 featuring closure based transactions, JAAS Security, JSP and JSF on OSGi. Attendees will get a good overview about the stacks as well as recommendations where each is most applicable.
JAX-RS is a Java API that allows developers to easily build RESTful web services. It uses annotations to define resources, HTTP methods, request and response content types. Resources are identified by URIs and linked together through hypermedia. The API supports content negotiation, multiple representations, and stateless communication as defined by the REST architectural style. Jersey is a popular open source JAX-RS implementation that also provides a client API for consuming RESTful services.
When building and maintaining large applications in a world that is rapidly evolving, keeping up with changing requirements and non-functionals over time is a huge challenge. Architecting your application in a modular way and loosely coupling modules using micro services provides you with a nicely decoupled system that still works very efficiently. Designing, evolving and versioning a micro service architecture is not easy, and over time, several design patterns and best practices have evolved that help you. Code examples can be found here: https://bitbucket.org/marrs/javaone-2014-microservices
WebLogic Event Server - Alexandre Alves, BEAmfrancis
The document outlines an agenda for a WebLogic Event Server event discussing the problem domain, why OSGi technology was used for WL-EvS, the WL-EvS architecture and programming model using OSGi, lessons learned, and next steps. Key points include that WL-EvS uses OSGi to improve modularization, service orientation, extensibility, and portability of the event processing system. The WL-EvS architecture is implemented as OSGi bundles and uses an event processing network model and Spring-based programming model. Lessons learned emphasize opportunities for reuse within and across organizations.
Spring Dynamic Modules for OSGi by Example - Martin Lippert, Consultantmfrancis
This document outlines the agenda for a presentation on Spring Dynamic Modules. The presentation introduces the Spring framework and how it simplifies enterprise application development. It then discusses Spring Dynamic Modules (Spring DM), which allows Spring applications to be implemented on OSGi frameworks. Spring DM exports Spring beans as OSGi services and imports OSGi services as beans, without dependencies on OSGi APIs. Examples are provided of Spring DM's support for web applications. The presentation concludes with an outlook on future Spring DM developments and links for more information.
In this Presentation, we have provided step by step Installation guide and error free solution for developers which helps in time efficient and user friendly installation of theme in Liferay 7.
Apache Camel: The Swiss Army Knife of Open Source Integrationprajods
The Camel project from Apache(camel.apache.org), is a very popular, light weight, open source integration framework.
This presentation shows some interesting features of Camel and the unique advantages that Camel brings to your integration projects. Some business
use cases are shown to explain how Camel makes open source integration a cakewalk.
Table of contents:
1. An overview of Apache Camel
2. Integration architecture explained
3. Using Camel in different integration architectures
3.a. In the Securities domain
3.b. In the Travel domain
4. High Availability and Load Balancing with Camel
This document provides an overview of integrating microservices with Apache Camel and JBoss Fuse. It introduces Apache Camel as a lightweight integration library that uses enterprise integration patterns and domain-specific languages to define integration "flows" and "routes". It describes how Camel supports features like dynamic routing, REST APIs, backpressure, load balancing, and circuit breakers that are useful for building microservices. The document also introduces JBoss Fuse as a development and runtime platform for microservices that provides tooling, frameworks, management capabilities and container support using technologies like Apache Camel, CXF, ActiveMQ and Karaf.
Batch Applications for Java Platform 1.0: Java EE 7 and GlassFishArun Gupta
The document discusses Java batch processing and Java EE 7's standardization of batch applications for Java. Key points include that batch processing is non-interactive, long-running data or computationally intensive tasks that can run sequentially or in parallel. The Java EE 7 specification includes standards for chunked processing using readers, processors and writers along with checkpointing and exception handling.
This document provides an overview of building RESTful web services using JSON format and the JAX-RS standard with Apache CXF on JBoss Fuse. It discusses RESTful concepts, JSON and XML formats, request-response examples, commonly used HTTP methods and status codes, and how to develop RESTful services with or without Apache Camel in JBoss Fuse using the CXF component. It also provides examples of creating RESTful services using JAX-RS annotations and the OSGi blueprint configuration file.
Cloud standards interoperability: status update on OCCI and CDMI implementationsFlorian Feldhaus
This document provides a status update on implementations of the Open Cloud Computing Interface (OCCI) and Cloud Data Management Interface (CDMI) standards. It discusses several active OCCI and CDMI client and server implementations from various organizations. It also describes the SNIA Cloud Plugfest events which bring together vendors to test interoperability between their OCCI and CDMI implementations. The document outlines the goals of further advancing the standards based on implementation experience and expanding testing of combined OCCI, CDMI, and OVF capabilities.
OSGi modularity provides benefits like encapsulated modules, explicit dependencies, and loose coupling via services. However, adopting OSGi also incurs costs like learning a new runtime, designing bundles and services, and debugging class loading issues. Case studies found that for some projects like the vSphere Web Client and Croatian Telecom systems, the benefits of OSGi modularity outweighed the costs. However, for other simpler projects, the costs may not be worth it compared to the benefits.
Talk given at JavaOne 2009 discussing how to build web applications using OSGi. The source for the demo found at http://github.com/mrdon/jforum-plugins/tree/master
Session Abstract: Enterprise Web applications tend to grow like weeds in monolithic complexity. OSGi, although more often associated with Java™ technology-based clients and application servers, can bring a new level of modularity, uptime, and stability that is needed with today's always-on hosted Web applications. OSGi gets really interesting when the pretty architecture diagrams meet the real world, because it consists of various deployment platforms, development environments, and application architectures. This presentation, for Java 2 Platform, Enterprise Edition (J2EE™ platform)-savvy architects and senior developers, provides a practical guide to the Web on OSGi, from integration approach to bundle development, to real-world code you can use today.
The session discusses
• What benefits OSGi brings to the J2EE platform
• Three integration strategies
• How to use Spring DM and Maven to ease development
• Lessons learned from Atlassian's recent OSGi deployment
• A production-ready example to use immediately
JBoss Fuse - Fuse workshop EAP containerChristina Lin
JBoss Fuse allow you to have flexibility to deploy your Camel application on two most popular java container standards, OSGi and JavaEE, this workshop walks you through how to develop your application on JBoss EAP
The document discusses MySQL's new component infrastructure introduced in version 8.0. It aims to simplify and modularize MySQL's codebase through better isolation, encapsulation and explicit dependencies between components. The architecture utilizes core components like a registry and dynamic loader to manage other components at runtime. The document outlines concepts like components, services, and implementations, and provides guidance on how to create new components and services that integrate with the component infrastructure.
Integration of Web Service Stacks in an EsbWen Zhu
This document discusses integrating web services with an enterprise service bus (ESB). It provides background on ESB and web service integration approaches. It then demonstrates integrating different web service stacks like Metro, CXF, and JBossWS with ESB products like OpenESB, ServiceMix, and JBossESB. It discusses challenges like transaction management and separating concerns. The document concludes with a demo of a model-driven architecture approach using standards like SoaML to address technology changes while preserving investments.
WEB BUSINESS PLATFORMS ON
THE ‘CLOUD’ – AN ENGINEERING
PERSPECTIVE
Harshavardhan “Harsh” Jegadeesan
Business Suite Core
SAPLabs, India
As part of cloud symposium, at ACM Bangalore Compute 2009
This document provides an overview of a presentation on middleware security for Apache CXF, Camel, ActiveMQ and Karaf. It discusses various security concepts like authentication, authorization, auditing and encryption. It then goes into more details on implementing security for specific middleware like 2-way SSL for ActiveMQ, JAAS for authentication and authorization, password masking. It also discusses security implementations and examples for Camel, CXF, Karaf container and integration with other security frameworks like PicketLink, Spring Security and Shiro. The presentation will include demonstrations of web console security and securing ActiveMQ broker, producers and consumers using SSL.
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
OSGi ecosystems compared on Apache Karaf - Christian Schneidermfrancis
OSGi Community Event 2015
A look at three competing OSGi ecosystems (Declarative Services, Blueprint, CDI). Capabilities of each DI framework. Comparison of support for EE technologies like JPA, Security, SOAP and REST services, UIs. Looking into some of the recent advancements like Aries JPA 2 featuring closure based transactions, JAAS Security, JSP and JSF on OSGi. Attendees will get a good overview about the stacks as well as recommendations where each is most applicable.
JAX-RS is a Java API that allows developers to easily build RESTful web services. It uses annotations to define resources, HTTP methods, request and response content types. Resources are identified by URIs and linked together through hypermedia. The API supports content negotiation, multiple representations, and stateless communication as defined by the REST architectural style. Jersey is a popular open source JAX-RS implementation that also provides a client API for consuming RESTful services.
When building and maintaining large applications in a world that is rapidly evolving, keeping up with changing requirements and non-functionals over time is a huge challenge. Architecting your application in a modular way and loosely coupling modules using micro services provides you with a nicely decoupled system that still works very efficiently. Designing, evolving and versioning a micro service architecture is not easy, and over time, several design patterns and best practices have evolved that help you. Code examples can be found here: https://bitbucket.org/marrs/javaone-2014-microservices
WebLogic Event Server - Alexandre Alves, BEAmfrancis
The document outlines an agenda for a WebLogic Event Server event discussing the problem domain, why OSGi technology was used for WL-EvS, the WL-EvS architecture and programming model using OSGi, lessons learned, and next steps. Key points include that WL-EvS uses OSGi to improve modularization, service orientation, extensibility, and portability of the event processing system. The WL-EvS architecture is implemented as OSGi bundles and uses an event processing network model and Spring-based programming model. Lessons learned emphasize opportunities for reuse within and across organizations.
Spring Dynamic Modules for OSGi by Example - Martin Lippert, Consultantmfrancis
This document outlines the agenda for a presentation on Spring Dynamic Modules. The presentation introduces the Spring framework and how it simplifies enterprise application development. It then discusses Spring Dynamic Modules (Spring DM), which allows Spring applications to be implemented on OSGi frameworks. Spring DM exports Spring beans as OSGi services and imports OSGi services as beans, without dependencies on OSGi APIs. Examples are provided of Spring DM's support for web applications. The presentation concludes with an outlook on future Spring DM developments and links for more information.
In this Presentation, we have provided step by step Installation guide and error free solution for developers which helps in time efficient and user friendly installation of theme in Liferay 7.
Apache Camel: The Swiss Army Knife of Open Source Integrationprajods
The Camel project from Apache(camel.apache.org), is a very popular, light weight, open source integration framework.
This presentation shows some interesting features of Camel and the unique advantages that Camel brings to your integration projects. Some business
use cases are shown to explain how Camel makes open source integration a cakewalk.
Table of contents:
1. An overview of Apache Camel
2. Integration architecture explained
3. Using Camel in different integration architectures
3.a. In the Securities domain
3.b. In the Travel domain
4. High Availability and Load Balancing with Camel
This document provides an overview of integrating microservices with Apache Camel and JBoss Fuse. It introduces Apache Camel as a lightweight integration library that uses enterprise integration patterns and domain-specific languages to define integration "flows" and "routes". It describes how Camel supports features like dynamic routing, REST APIs, backpressure, load balancing, and circuit breakers that are useful for building microservices. The document also introduces JBoss Fuse as a development and runtime platform for microservices that provides tooling, frameworks, management capabilities and container support using technologies like Apache Camel, CXF, ActiveMQ and Karaf.
Batch Applications for Java Platform 1.0: Java EE 7 and GlassFishArun Gupta
The document discusses Java batch processing and Java EE 7's standardization of batch applications for Java. Key points include that batch processing is non-interactive, long-running data or computationally intensive tasks that can run sequentially or in parallel. The Java EE 7 specification includes standards for chunked processing using readers, processors and writers along with checkpointing and exception handling.
This document provides an overview of building RESTful web services using JSON format and the JAX-RS standard with Apache CXF on JBoss Fuse. It discusses RESTful concepts, JSON and XML formats, request-response examples, commonly used HTTP methods and status codes, and how to develop RESTful services with or without Apache Camel in JBoss Fuse using the CXF component. It also provides examples of creating RESTful services using JAX-RS annotations and the OSGi blueprint configuration file.
Cloud standards interoperability: status update on OCCI and CDMI implementationsFlorian Feldhaus
This document provides a status update on implementations of the Open Cloud Computing Interface (OCCI) and Cloud Data Management Interface (CDMI) standards. It discusses several active OCCI and CDMI client and server implementations from various organizations. It also describes the SNIA Cloud Plugfest events which bring together vendors to test interoperability between their OCCI and CDMI implementations. The document outlines the goals of further advancing the standards based on implementation experience and expanding testing of combined OCCI, CDMI, and OVF capabilities.
OSGi modularity provides benefits like encapsulated modules, explicit dependencies, and loose coupling via services. However, adopting OSGi also incurs costs like learning a new runtime, designing bundles and services, and debugging class loading issues. Case studies found that for some projects like the vSphere Web Client and Croatian Telecom systems, the benefits of OSGi modularity outweighed the costs. However, for other simpler projects, the costs may not be worth it compared to the benefits.
Talk given at JavaOne 2009 discussing how to build web applications using OSGi. The source for the demo found at http://github.com/mrdon/jforum-plugins/tree/master
Session Abstract: Enterprise Web applications tend to grow like weeds in monolithic complexity. OSGi, although more often associated with Java™ technology-based clients and application servers, can bring a new level of modularity, uptime, and stability that is needed with today's always-on hosted Web applications. OSGi gets really interesting when the pretty architecture diagrams meet the real world, because it consists of various deployment platforms, development environments, and application architectures. This presentation, for Java 2 Platform, Enterprise Edition (J2EE™ platform)-savvy architects and senior developers, provides a practical guide to the Web on OSGi, from integration approach to bundle development, to real-world code you can use today.
The session discusses
• What benefits OSGi brings to the J2EE platform
• Three integration strategies
• How to use Spring DM and Maven to ease development
• Lessons learned from Atlassian's recent OSGi deployment
• A production-ready example to use immediately
JBoss Fuse - Fuse workshop EAP containerChristina Lin
JBoss Fuse allow you to have flexibility to deploy your Camel application on two most popular java container standards, OSGi and JavaEE, this workshop walks you through how to develop your application on JBoss EAP
The document discusses MySQL's new component infrastructure introduced in version 8.0. It aims to simplify and modularize MySQL's codebase through better isolation, encapsulation and explicit dependencies between components. The architecture utilizes core components like a registry and dynamic loader to manage other components at runtime. The document outlines concepts like components, services, and implementations, and provides guidance on how to create new components and services that integrate with the component infrastructure.
Integration of Web Service Stacks in an EsbWen Zhu
This document discusses integrating web services with an enterprise service bus (ESB). It provides background on ESB and web service integration approaches. It then demonstrates integrating different web service stacks like Metro, CXF, and JBossWS with ESB products like OpenESB, ServiceMix, and JBossESB. It discusses challenges like transaction management and separating concerns. The document concludes with a demo of a model-driven architecture approach using standards like SoaML to address technology changes while preserving investments.
WEB BUSINESS PLATFORMS ON
THE ‘CLOUD’ – AN ENGINEERING
PERSPECTIVE
Harshavardhan “Harsh” Jegadeesan
Business Suite Core
SAPLabs, India
As part of cloud symposium, at ACM Bangalore Compute 2009
This document provides an overview of enterprise integration with WSO2 ESB. It discusses WSO2 as a company and their open source products. It then describes why an enterprise service bus (ESB) is useful for integration in modern enterprises. The rest of the document explains what an ESB is and what functions it performs, including message routing, protocol switching, transformations, exposing services, handling versioning, policy enforcement, auditing and more. It also introduces some common integration patterns supported by WSO2 ESB like content-based routing, dynamic routing, splitter, aggregator, and publish/subscribe.
The document discusses different styles of implementing service-oriented architectures (SOA). It describes SOA implementation using REST, JAX-WS, messaging, enterprise service buses (ESB), and Java/JEE with JMS. Key implementation styles include: SOA with REST which is lightweight and uses HTTP; SOA with JAX-WS which supports distributed transactions; and SOA with messaging like JMS which enables asynchronous and reliable communication. Implementing SOA through an ESB provides routing, transformation and management capabilities but can be complex. Elastic data fabrics can help SOA implementations by providing in-memory data storage for low latency and high throughput.
Integrating WebSphere Service Registry and Repository V8 with Process ServerGaneshNagalingam1
This article shows you how to perform dynamic endpoint lookup by integrating WebSphere
Service Registry and Repository V8 (WSRR) with Process Server, using the Endpoint Lookup
and Custom Mediation primitives. This integration solution has important advantages over hardcoded endpoint URLs.
The document discusses the evolution from local objects to distributed objects and web services. It covers reasons for using web services like reusability across platforms. While web services reduce coupling, some coupling still exists, like function coupling through service logic and data structure coupling through data formats. The document also defines service-oriented architecture as a design approach for creating and managing business services throughout their lifecycle.
Enhancing The Role Of A Large Us Federal Agency As An Intermediary In The Fed...Wen Zhu
The document discusses enhancing the role of a large US federal agency as an intermediary in the federal supply chain through the use of a service registry and a JBI-based ESB. It provides context on the environment and challenges, defines key terms like service registry and JBI, and describes the agency's experience implementing a service registry and how it can better function as a broker of services between providers and consumers in the federal supply chain.
This document provides a summary of 39 questions that are commonly asked during interviews for Oracle SOA Suite 11g positions. The questions cover topics like the differences between SOA Suite 10g and 11g, definitions of core SOA concepts like SOA, SCA, mediators and ESBs, how to implement various integration patterns in Oracle Service Bus, and details about developing and deploying BPEL processes.
This document presents an integrated approach for semi-automated service composition including three main components: a template generator, composer, and optimizer. The template generator discovers relevant templates from past executions to avoid starting composition from scratch. The composer further details the generated templates. The optimizer aims to maximize the quality of compositions by considering semantic and non-functional properties. The approach is validated through an e-commerce example and experiments demonstrate scalability. Future work includes improving template relevance and adapting the approach based on contextual information.
The document discusses Enterprise Service Bus (ESB) and Java Business Integration (JBI). It defines ESB as middleware that acts as a mediator between different protocols and products. JBI is a specification that defines a standard architecture and container for pluggable integration components. OpenESB is an open source implementation of an ESB runtime based on JBI. It provides tools for developing, deploying, and managing composite applications. The document presents examples of how OpenESB and GlassFish can be used to implement a loan processing application using components like BPEL, JavaEE, and XSLT within a JBI architecture.
This document provides an overview of Oracle Service Bus. It discusses key SOA concepts like service enablement, mediation, and orchestration that can be addressed using a service bus. It describes the target audience for learning about OSB and provides a roadmap for the course content, which will cover the OSB architecture, proxy service development, and service management and monitoring capabilities. It also gives examples of how a service bus can provide location transparency, backwards compatibility, message enrichment, and service orchestration.
Keynote-Service Orientation – Why is it good for your businessWSO2
Service orientation provides benefits for businesses by enabling them to move from brittle, hardwired application silos to shared, reusable business and infrastructure components. This eliminates application redundancy and complexity, enabling business agility, innovation and operational excellence. The document discusses service orientation at eBay, where over 300 services have been developed to organize the enterprise as reusable business functions and reduce costs of new features and applications. Challenges of service orientation include technical issues like latency and security as well as ensuring developer adoption and effective governance processes.
Use of SOA and Web Services Technologies for EA Migration - Lessons Learned o...Nathaniel Palmer
SOA and Web Services technologies can provide powerful tools and capabilities to effect migration towards an Enterprise Architecture (EA), but what are the challenges to such an exercise, and how can they be overcome? Based on a case study at the Department of Housing and Urban Development (HUD), the first effort in HUD to analyze and design the replacement of several legacy systems with an integrated and services-based
system, this presentation will provide a technical overview of SOA and Web Services, and lessons learned from the project. These lessons will cover methodologies and modeling artifacts that were developed for the effort, the use of BPM based on the Business Process Execution Language (BPEL) and system adapters to provide an abstraction layer for system integration, an example of how Web Services can directly support EA migration, and final considerations to pass onto similar projects.
Validation of Service Oriented Computing DEVS Simulation ModelsDaniele Gianni
Presentation at the 2nd International Workshop on Model-driven Approaches for Simulation Engineering
(held within the SCS/IEEE Symposium on Theory of Modeling and Simulation part of SpringSim 2012)
Please see: http://www.sel.uniroma2.it/mod4sim12/ for further details
This document provides an overview of service-oriented architecture (SOA) and related concepts. It discusses components of SOA like services, principles, patterns and roadmaps. It also explains SOA-enabled applications, different types of services and how SOA can be mapped. Finally, it discusses tools from IBM and Oracle for SOA implementation and gives examples of atomic and composite services.
This document provides an overview of service-oriented architecture (SOA) and related concepts. It discusses the components, benefits, and patterns of SOA, as well as how SOA can be mapped and enabled through applications. The document also examines SOA concepts like services, principles, and meta-models. It provides examples of SOA from IBM, Oracle, and other vendors and frameworks.
This document provides an overview of service-oriented architecture (SOA) and related concepts. It discusses the components, benefits, and patterns of SOA, as well as how SOA can be mapped and enabled in applications. The document also examines SOA reference architectures from IBM and Oracle and how SOA can be implemented using tools from IBM, including WebSphere, WebSphere Integration Developer, and WebSphere Business Monitor.
The document discusses Service Oriented Architecture (SOA) and the Business Process Execution Language (BPEL). It defines SOA as an architectural style that allows for interoperability and flexibility. BPEL is introduced as an XML-based language used to specify business processes composed of discrete web services. Key concepts covered include the need for SOA to address heterogeneous systems and changing business needs, the role of services, and how BPEL allows the orchestration of services to create composite applications and implement business processes.
The document discusses Service Oriented Architecture (SOA) and the role of the Business Process Execution Language (BPEL). It defines SOA as an architectural style that allows components to work together through standardized interfaces. BPEL is presented as an XML-based language used to specify business processes composed of discrete web services. BPEL allows the orchestration of services by defining message sequences and processing logic. It bridges the bottom-up exposure of services and the top-down definition of business processes in SOA.
Support de cours pour la formation de Miage M2 Option Energie (https://sites.google.com/site/m2miageenergie/)
Cours de 3h qui a pour objet une réflexion sur les mutations actuelles du monde de l'énergie
Monde de l'énergie & informatique, la mutation industrielleVelossity
Présentation des facteurs clés de l'évolution de l'informatique dans le monde de l'énergie ou comment le monde de l'énergie devient un monde informatisé
M2 Le monde de l'énergie, un monde dynamiqueVelossity
Support de cours pour la formation de Miage M2 Option Energie (https://sites.google.com/site/m2miageenergie/)
Cours de 3h qui a pour objet une réflexion sur les mutations actuelles du monde de l'énergie
This document discusses OSGi logging and describes:
1) The separation of concerns between client bundles that log and backend services that manage logs.
2) The basic logging API that clients use to log messages and the interfaces backend services implement to handle logs.
3) Examples of logging backends like Pax Logging that provide bridges to common logging frameworks.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Speck&Tech
ABSTRACT: A prima vista, un mattoncino Lego e la backdoor XZ potrebbero avere in comune il fatto di essere entrambi blocchi di costruzione, o dipendenze di progetti creativi e software. La realtà è che un mattoncino Lego e il caso della backdoor XZ hanno molto di più di tutto ciò in comune.
Partecipate alla presentazione per immergervi in una storia di interoperabilità, standard e formati aperti, per poi discutere del ruolo importante che i contributori hanno in una comunità open source sostenibile.
BIO: Sostenitrice del software libero e dei formati standard e aperti. È stata un membro attivo dei progetti Fedora e openSUSE e ha co-fondato l'Associazione LibreItalia dove è stata coinvolta in diversi eventi, migrazioni e formazione relativi a LibreOffice. In precedenza ha lavorato a migrazioni e corsi di formazione su LibreOffice per diverse amministrazioni pubbliche e privati. Da gennaio 2020 lavora in SUSE come Software Release Engineer per Uyuni e SUSE Manager e quando non segue la sua passione per i computer e per Geeko coltiva la sua curiosità per l'astronomia (da cui deriva il suo nickname deneb_alpha).
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Driving Business Innovation: Latest Generative AI Advancements & Success StorySafe Software
Are you ready to revolutionize how you handle data? Join us for a webinar where we’ll bring you up to speed with the latest advancements in Generative AI technology and discover how leveraging FME with tools from giants like Google Gemini, Amazon, and Microsoft OpenAI can supercharge your workflow efficiency.
During the hour, we’ll take you through:
Guest Speaker Segment with Hannah Barrington: Dive into the world of dynamic real estate marketing with Hannah, the Marketing Manager at Workspace Group. Hear firsthand how their team generates engaging descriptions for thousands of office units by integrating diverse data sources—from PDF floorplans to web pages—using FME transformers, like OpenAIVisionConnector and AnthropicVisionConnector. This use case will show you how GenAI can streamline content creation for marketing across the board.
Ollama Use Case: Learn how Scenario Specialist Dmitri Bagh has utilized Ollama within FME to input data, create custom models, and enhance security protocols. This segment will include demos to illustrate the full capabilities of FME in AI-driven processes.
Custom AI Models: Discover how to leverage FME to build personalized AI models using your data. Whether it’s populating a model with local data for added security or integrating public AI tools, find out how FME facilitates a versatile and secure approach to AI.
We’ll wrap up with a live Q&A session where you can engage with our experts on your specific use cases, and learn more about optimizing your data workflows with AI.
This webinar is ideal for professionals seeking to harness the power of AI within their data management systems while ensuring high levels of customization and security. Whether you're a novice or an expert, gain actionable insights and strategies to elevate your data processes. Join us to see how FME and AI can revolutionize how you work with data!
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
Best 20 SEO Techniques To Improve Website Visibility In SERPPixlogix Infotech
Boost your website's visibility with proven SEO techniques! Our latest blog dives into essential strategies to enhance your online presence, increase traffic, and rank higher on search engines. From keyword optimization to quality content creation, learn how to make your site stand out in the crowded digital landscape. Discover actionable tips and expert insights to elevate your SEO game.
GraphRAG for Life Science to increase LLM accuracyTomaz Bratanic
GraphRAG for life science domain, where you retriever information from biomedical knowledge graphs using LLMs to increase the accuracy and performance of generated answers
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
1. OSGi Patterns v. 1.0.11
OSGi, Maven, Hudson
Best practises
2012/1.0.11 C. St-Marcel - @VELOSSITY
2. Introduction
Velossity proposes a family of well known OSGi
patterns*
Velossity is a small French company focusing on
OSGi since many years
It is specialized on industrial projects for embedded
platforms (Home automation, energy gateways)
This work is part of trainings called:
“Embedding OSGi in your Devices, Continuous
Integration with Maven”
2 * Naming and classification are our own view 2012/1.0.11 C. St-Marcel - @VELOSSITY
3. Continuous Integration
OSGi pattern build chain reference is
maintained at Sourceforge:
svn co https://osgipatterns.svn.sourceforge.net/svnroot/osgipatterns/multi-
modules/tags/patterns.aggregator-1.0.11 osgipatterns
Continuous Integration is done with Jenkins:
http://velossity.zapto.org:8080/
OSGi bundles are deployed in the Maven
central under the groupId “fr.velossity.osgi”
3 2012/1.0.11 C. St-Marcel - @VELOSSITY
4. The basics of OSGi
Motivation
The strength of OSGi is to merge OO concepts generally used for reuse in a unique
manner which is the service. Lot of solutions were emerging to deal with service
communication and low coupling, trying to answer to the question: “How can I
connect my services?”.
Solution
Provide & Request patterns exchange services, that is functions or some processing
logic or business processing offered by a Service Provider and used by a Service
Requester. Examples of services are monitoring, posting, logging, etc. In OSGi the
service is represented by a POJI (a Plain Old Java Interface).
Produce & Consume patterns exchange data, that is information created and
published by a Data Producer and read by a Data Consumer. Examples of data
are measures, letters, logs, etc. In OSGi a data is represented by a POJO (a Plain
Old Java Object).
4 2012/1.0.11 C. St-Marcel - @VELOSSITY
5. Provide & Request family
Provide & Request Pattern
Instantiation
Instantiation Instantiation
Inversion Of
Control
Extender Pattern Service Model Pattern White Board Pattern
Factory Pattern Listener Pattern
Refinement Transformation
Refinement
Eclipse Extension Dynamic Binding Framework
Service Deployment Pattern
(A. Bottaro / Fred Rivard)
5 2012/1.0.11 C. St-Marcel - @VELOSSITY
6. Requester “Which service(s) do I require?”
Service Model Provider “Which service(s) do I provide?”
The service is defined by a contract
(the Service API)
The Provider publishes the Service Component Java Interface
in the registry
The service has its own lifecycle,
e.g. it can come and go Service registry
The Requester is requesting the Service API
registry for the existing service, it
can also be notified when the Publishes
Notifies
Requests
service is appearing Binds
Service Service
The requester binds to the provider, Provider Requester
it invokes the service at the end Invoke
6 2012/1.0.11 C. St-Marcel - @VELOSSITY
7. Requester “Which service(s) do I handle?”
White Board Provider “Who is interested by my service(s)?”
The White Board pattern is just an
inversion of control
The Requester is now publishing a Component Java Interface
handler of service and the Provider
is requesting it
The Provider can bind to the Service registry
Requester, it invokes the handle
ServiceHandler API
method with the service as
parameter Requests Publishes
Notifies
Binds
Service Service
Provider Requester
Handle(ServiceAPI)
7 2012/1.0.11 C. St-Marcel - @VELOSSITY
8. Service Deployment
The Service Deployment pattern strengthens the Service Model pattern as it defines
constraints on the deployment itself. It guaranties a strict separation of service
interfaces and service implementations using three isolate bundles, one for the API and
two for the implementations of the Requester and the Provider
8
From F. Rivard and A. Bottaro at OSGi Community Event - 2010
2012/1.0.11 C. St-Marcel - @VELOSSITY
9. “How may I be extended, what are my
Requester
extensions points?”
Extender Provider “What will I extend?”
The Extender Pattern main idea is
to extend the semantics of bundles
by adding custom manifest headers
Component Java Interface
Extended bundles can react if
bundles with these headers come
and go dynamically
Service registry
In our case, the Requester is
viewed as an extension for the BundleListener ServiceAPI
Provider
Publishes Implements
Service Load Service
Provider Requester
9 2012/1.0.11 C. St-Marcel - @VELOSSITY
10. Extensions or services
The Extender pattern is designed for extensions. The requester point of view is
privileged, it is one-to-many relationship between a requester and many
providers. In Eclipse this relation is private, i.e. you develop extensions for a
unique extension point. This is a natural way of thinking for this platform which ,
incidentally, provides an extensible container supporting new views, new
projects, new languages, etc.
The Service Model and White Board are designed for a truly service approach
where the contract is public and is not privileging any point of view. It is
potentially a many-to-many relationship between requesters and providers
The Extender Pattern is very useful and natural
for extension (quite natural for an extender)
whereas two others are powerful for reuse of
services. That is why they are complementary.
10 2012/1.0.11 C. St-Marcel - @VELOSSITY
11. Produce & Consume Patterns
Produce & Consume Pattern
Instantiation
Instantiation
Instantiation
Event Admin Pattern White Board Pattern Wire Admin Pattern
11 2012/1.0.11 C. St-Marcel - @VELOSSITY
12. Consumer “Which type of data(s) do I subscribe?”
Event Admin
Producer “Which type of data(s) do I publish?”
The Event Admin Service provides
a standard way for working with
events in the OSGi Environment Component Java Interface
using the publish/subscribe model.
It was introduced in the R4
specifications
the EventAdmin is like a mediator Service registry
between producers and consumers EventAdmin EventHandler
of events. It is using itself the
White-Board pattern to transfer
Requests
events to components which have Publishes
Requests Publishes
registered Binds
Data Data
The graph of dependencies Producer
EventAdminImpl
Consumer
between producers and consumers postEvent(Event) handleEvent(Event)
is more difficult to maintain when
using the Event Admin. You have to
define and manage a strict policy of
events
12 2012/1.0.11 C. St-Marcel - @VELOSSITY
13. Consumer “Which type of data(s) do I handle?”
White Board Producer “Who is interested by my data(s)?”
The whiteboard approach means
that a consumer registers itself
when it wants to consume. It will be Component Java Interface
notified by the producers when new
data are available. Producers know
all their consumers, but consumers
have no connection with producers. Service registry
Do not use the Listener pattern DataHandler API
anymore, apply the White Board
Requests Publishes
pattern instead Notifies
Binds
Data Data
Producer Consumer
NewData(Data)
13 2012/1.0.11 C. St-Marcel - @VELOSSITY
14. Consumer “Which type of data(s) do I consume?”
Wire Admin
Producer “Which type of data(s) do I produce?”
Release 3 of OSGi introduced a
very flexible way to connect Component Java Interface
producers and consumers to
each other.
It can be viewed as “The Service registry
optimal low coupling scenario
… when the consumer only Producer Consumer
knows what type of data it
Publishes Requests Publishes
wants to consume, the producer Requests
knows what type of data it Data Data
WireAdminImpl
produces, but neither of them Producer Consumer
know anything about the consumersConnected( Wire[] wires ) producersConnected( Wire[] wires )
other”*.
*in the paper proposed at OOPSLA 2003 by N. Nilson, a great source of inspiration
14 for our works on Produce & Consume
2012/1.0.11 C. St-Marcel - @VELOSSITY
15. A story of control
Use the White Board wherever you usually used a Listener.
Use the Event Admin when you want to
distribute your producers and consumers on several platforms.
Reserve the Wire Admin usage to a single layer. Originally, the Wire Admin was
designed for sensors layer, it could be a good solution to manage them on your
platforms in a coherent and flexible way.
Let producers choose their consumers: the
White board pattern
Let consumers choose their producers: the
Event Admin pattern
Let a third party choose for you: the Wire
15 Admin pattern
2012/1.0.11 C. St-Marcel - @VELOSSITY
16. Produce & Consume Anti-Patterns
Produce & Consume Anti-Pattern
Instantiation Instantiation
Polling Pattern Event Listener Pattern
16 2012/1.0.11 C. St-Marcel - @VELOSSITY
17. Event Listener
The Event Listener is the original
java way to handle producer data
(pattern introduced by the gang of
4) Service registry
As demonstrated*, this pattern “is Observable Observer
considered harmful” in OSGi
Publishes Tracks Implements
Data AddListener Data
Producer Consumer
NewData(Data)
*Listeners Considered Harmful: The “Whiteboard” Pattern, Peter Kriens BJ Hargrave
17 2012/1.0.11 C. St-Marcel - @VELOSSITY
18. Adapter [GOF]
The adapter pattern originally proposed by the gang of four can be easily
realized using the OSGi principles
The main motivation is to wrap a low OSGi service to a high level one.
This pattern is very useful when working with drivers and devices: a new low-
end device is adapted to an abstract device hiding field bus dependencies.
Component Java Interface
Two implementations proposed, one with iPOJO
and the other with the native OSGi API. Service registry
The native solution is an adapter of the one Adapted Adaptee
originally proposed in:
http://njbartlett.name/2010/08/05/when-
servicetrackers-trump-ds.html Publishes Tracks Publishes
Adapter Adaptee provider
18 2012/1.0.11 C. St-Marcel - @VELOSSITY
19. Maven multi-modules organization
| aggregator -- Run multi-modules build
| parent -- Parent of all modules
| distribution -- Generation of a zip containing all patterns
| tests
| -- integration -- Integration tests with Pax-Exam
| step-3-notifications
| -- ServiceModelPattern -- Service Model
| -- WhiteBoardPattern -- White Board
| step-1-provide-request
| -- ExtenderPattern -- Extender
| step-4-produce-consume
| -- WhiteBoardPattern -- White Board
| -- EventAdminPattern -- Event Admin
| -- WireAdminPattern -- Wire Admin
| adapter
| -- native -- Adapter implementation using native OSGi
| -- iPOJO -- Adapter implementation with iPOJO
svn co https://osgipatterns.svn.sourceforge.net/svnroot/osgipatterns/multi-
modules/tags/patterns.aggregator-1.0.11 osgipatterns
19 2012/1.0.11 C. St-Marcel - @VELOSSITY
21. Functional component
Bundle Service API
Layers Pattern Dependency
Layer 1 Layer 2
Layer 2
compendium
Service 1 API Service 2 API Service m API Layer n
Layer n compendium
Service 1 Service 2 Service m
EventAdmin LogService ConfigAdmin OSGi Services Layer
OSGi services compendium
Knopflerfish Felix Felix
LogService EventAdmin ConfigAdmin
21 2012/1.0.11 C. St-Marcel - @VELOSSITY