The document discusses moving from distributed OSGi to pervasive OSGi. It describes how OSGi supports software modularity through modules called bundles that can export and import packages. Distributed OSGi allows bundles to access remote services by using proxies. Approaches like R-OSGi and Eclipse Communication Framework implement distributed OSGi. The document argues that software modularity through bundles can help address challenges in building distributed and cloud applications.
Distributed Services - OSGi 4.2 and possible future enhancementsDavid Bosschaert
In the first part of this talk David Bosschaert will explain the Distributed OSGi specification, which is new in OSGi 4.2. The talk will outline the design principles and also show how to distribute OSGi services in practise by a short demo. In the second part of this talk Marc Schaaf will present some preliminary results regarding research on how asynchronous messaging could be integrated into OSGi. The talk will discuss some possible integration approaches and will outline the current approach taken in this research project. A short demo is included showing how developers could use it.
OSGi-enabled Java EE Applications using GlassFishArun Gupta
The document discusses OSGi-enabled Java EE applications in GlassFish. It provides an overview of OSGi and how it is used in GlassFish to create modular applications. Key points include:
- OSGi allows applications to be broken into bundles that can be installed, uninstalled, started and stopped dynamically.
- GlassFish runs on top of OSGi and all GlassFish modules are OSGi bundles. This allows for a modular platform and custom application servers.
- OSGi specifications like Declarative Services allow OSGi services to be used in Java EE applications through JNDI lookups.
- Hybrid applications can be both OSGi bundles and Java EE archives, leveraging capabilities of both platforms.
The document provides an introduction to OSGi and its architecture, describing how OSGi bundles work as modular, reusable components and how they can publish and consume services through a service registry, with examples of how to program with the OSGi framework by using bundle activators, service listeners, and more. It also discusses OSGi adoption in Java platforms and how it addresses limitations of other modular systems.
This document summarizes the architecture of Quantum, the network service for OpenStack. It discusses the key components of Quantum including the Quantum server, plugins, agents, and databases. It describes the network models in Quantum including tenant networks, provider networks, and floating IPs. It also outlines the communication between Quantum components using AMQP messaging.
OSGi is a modular system for Java that allows software to be split into components called bundles that can be installed, started, stopped, updated dynamically without requiring a restart. Bundles define dependencies and versions, and services can be published and discovered within a Java Virtual Machine. OSGi aims to support component-based development and addresses issues with modularity in standard Java.
Trystakc.cn was announced in OpenStack Summit San Diego 2012(www.slideshare.net/openstack/trystack-introfinalpdf
).It was a Non-profit OpenStack community projects.
By Stackers, for stackers.Experience the latest OpenStack features.
Welcoming contributions and feedback, Join the fun !
The QualiPSo Factory provides a component model for developing collaborative services easily. It allows service developers to reuse core services for authentication, access control, and more. Developers can create new collaborative services and compose them with existing services. The factory also provides a methodology for developing user interface components in a similar way so that services and UIs can be assembled together uniformly.
Distributed Services - OSGi 4.2 and possible future enhancementsDavid Bosschaert
In the first part of this talk David Bosschaert will explain the Distributed OSGi specification, which is new in OSGi 4.2. The talk will outline the design principles and also show how to distribute OSGi services in practise by a short demo. In the second part of this talk Marc Schaaf will present some preliminary results regarding research on how asynchronous messaging could be integrated into OSGi. The talk will discuss some possible integration approaches and will outline the current approach taken in this research project. A short demo is included showing how developers could use it.
OSGi-enabled Java EE Applications using GlassFishArun Gupta
The document discusses OSGi-enabled Java EE applications in GlassFish. It provides an overview of OSGi and how it is used in GlassFish to create modular applications. Key points include:
- OSGi allows applications to be broken into bundles that can be installed, uninstalled, started and stopped dynamically.
- GlassFish runs on top of OSGi and all GlassFish modules are OSGi bundles. This allows for a modular platform and custom application servers.
- OSGi specifications like Declarative Services allow OSGi services to be used in Java EE applications through JNDI lookups.
- Hybrid applications can be both OSGi bundles and Java EE archives, leveraging capabilities of both platforms.
The document provides an introduction to OSGi and its architecture, describing how OSGi bundles work as modular, reusable components and how they can publish and consume services through a service registry, with examples of how to program with the OSGi framework by using bundle activators, service listeners, and more. It also discusses OSGi adoption in Java platforms and how it addresses limitations of other modular systems.
This document summarizes the architecture of Quantum, the network service for OpenStack. It discusses the key components of Quantum including the Quantum server, plugins, agents, and databases. It describes the network models in Quantum including tenant networks, provider networks, and floating IPs. It also outlines the communication between Quantum components using AMQP messaging.
OSGi is a modular system for Java that allows software to be split into components called bundles that can be installed, started, stopped, updated dynamically without requiring a restart. Bundles define dependencies and versions, and services can be published and discovered within a Java Virtual Machine. OSGi aims to support component-based development and addresses issues with modularity in standard Java.
Trystakc.cn was announced in OpenStack Summit San Diego 2012(www.slideshare.net/openstack/trystack-introfinalpdf
).It was a Non-profit OpenStack community projects.
By Stackers, for stackers.Experience the latest OpenStack features.
Welcoming contributions and feedback, Join the fun !
The QualiPSo Factory provides a component model for developing collaborative services easily. It allows service developers to reuse core services for authentication, access control, and more. Developers can create new collaborative services and compose them with existing services. The factory also provides a methodology for developing user interface components in a similar way so that services and UIs can be assembled together uniformly.
This document discusses isolating OSGi bundles into separate "jail cells" or regions to prevent conflicts when integrating existing bundles. It describes how OSGi 4.3 framework hooks can be used to create isolated regions and filter bundle wiring and collisions. The document provides a demo of a BundleJail implementation and discusses some open questions around using bundle jail cells with P2 installation and the Eclipse extension registry.
Am 04 track1--salvatore orlando--openstack-apac-2012-finalOpenCity Community
1) Quantum provides network services for OpenStack and allows tenants to control virtual networking in their cloud.
2) Quantum uses a plugin architecture that supports different networking technologies through plugins like Nicira NVP.
3) The Nicira NVP plugin uses network virtualization and overlay tunneling to decouple logical and physical network topology and provide flexible network designs.
The document discusses new features in Windows Server 2012 Hyper-V and System Center 2012 Virtual Machine Manager (VMM) SP1 for implementing private clouds, including increased scalability for VMs and hosts in a cluster, live storage migration capabilities, enhanced networking functionality through Hyper-V Network Virtualization, improved storage allocation and management, and expanded self-service user and delegated administration roles.
OSGi Applications Clustering using Distributed Shared MemoryAnthony Gelibert
This document discusses clustering OSGi applications using distributed shared memory. It proposes using distributed shared memory to replicate OSGi services across multiple platforms. This allows services to be clustered without reengineering. The approach is validated using several use cases including event propagation and state sharing for mobile games. Future work includes enhancing the Terracotta container and supporting dynamic updates of clustered services.
The document discusses modularization in Java 8 and OSGi. It describes what modules are and why they are needed, including for managing dependencies and versioning. It outlines the characteristics of a good module system and compares how Java 8's Project Jigsaw and OSGi handle modularization. Key points include how both aim to address issues like class loading performance and dependency management, but OSGi has existing tools and does not require language changes.
The document summarizes the OSGi 4.2 Enterprise Specification, which includes specifications for component models, distributed services, database access, web applications, and other supporting technologies. Key aspects include Blueprint for easier OSGi development, Remote Services for exposing and consuming services over the network, JPA and JDBC for database access, and integration with Java EE technologies like JNDI, JTA, and JMX. Examples of using these specifications include the Apache Aries Trader application and isolated examples from implementing projects. Future work may include specifications for subsystems, applications, package management, and asynchronous messaging.
Eclipse Swordfish is an open source SOA runtime framework based on Eclipse Equinox. It provides a framework for integrating additional open source components like a service registry, messaging system, and process engine to form a comprehensive SOA runtime environment. Swordfish supports relevant SOA standards including SCA, JBI, and OSGi. It adds functionality like policies, monitoring, and configuration to complement components like ServiceMix. The project has 5 committers working on it and version 1.0M3 has been released with the goal of inclusion in Eclipse Galileo in June 2009.
- CloudStack is an open-source cloud computing platform that provides infrastructure as a service. It supports various hypervisors and storage technologies.
- It has a flexible architecture with zones (availability zones), pods (racks), clusters (groups of machines with a common hypervisor), and hosts (single servers). Primary storage is shared across clusters while secondary storage is shared within a zone.
- CloudStack manages compute, storage, and networking resources. It provides a unified API and supports integration with various hypervisors, storage solutions, and physical network devices.
This document summarizes a presentation about maximizing the power of OSGi. It introduces Declarative Services, which allows defining components and services in a simple way using annotations. Configuration Admin allows configuring components through OSGi configurations. The HTTP Whiteboard allows exposing components as web services. The Coordinator Service allows grouping related operations together. Finally, OSGi Subsystems allow packaging multiple OSGi bundles together for deployment.
This document discusses polyglot programming using OSGi. It defines polyglot as using multiple programming languages and explains how OSGi allows different JVM languages to be used together through its modular architecture and service registry. Key OSGi concepts discussed include encapsulation, versioning, dynamism through its lifecycle model. Popular OSGi implementations like Equinox and tools like PaxConstruct, PaxRunner and PaxExam that facilitate OSGi development and testing are also summarized. Finally, benefits and challenges of using a polyglot approach with OSGi are outlined.
Presentation on OSGi Cloud Ecosystems (RFC 183) as given at EclipseCon Boston 2013. The RFC itself is available at http://www.osgi.org/Download/File?url=/download/osgi-early-draft-2013-03.pdf
This document summarizes a presentation on bringing together the NetBeans module system and OSGi module system. It discusses how both systems use modules and services, and describes a project called Netigso that allows NetBeans modules to interact with OSGi bundles and vice versa. It provides demos of creating modules and bundles that can depend on each other across the two systems. The goal is to make the NetBeans platform interchangeable with OSGi.
OSGi and Java EE in GlassFish - Tech Days 2010 IndiaArun Gupta
GlassFish v3 supports OSGi bundles and enables hybrid applications that can leverage both OSGi and Java EE. It implements Java EE services and APIs as OSGi services, allowing OSGi bundles to access Java EE functionality. This allows for improved modularity, reusability, and a faster development cycle compared to traditional Java EE applications. Going forward, GlassFish aims to better support OSGi-enabled Java EE applications and improve the underlying OSGi framework administration.
This document provides a comparative analysis of the Jetty and Tomcat web servers. It discusses their technical differences, such as architecture (Jetty uses a modular component approach while Tomcat is monolithic) and performance (Jetty scales better with many idle connections). It also covers non-technical comparisons like market share (Jetty is gaining on Tomcat), development community (Jetty's is more stable and collaborative), and how Jetty more closely follows web standards. The document concludes that while Tomcat is widely used, Jetty's flexibility and responsiveness to changes make it a preferable option.
The document discusses CompatibleOne, an open source "cloudware" that allows creation, deployment, and management of private, public, and hybrid cloud platforms. It promotes open standards like OVF, CDMI, and OCCI to achieve interoperability between clouds and freedom for users. CompatibleOne uses ACCORDS and CORDS to provide a common description schema and enable provisioning of resources across different cloud carriers through standards-based interfaces.
The document provides an overview and breakdown of the 70-536 .NET Application Development Foundation exam. It discusses exam basics such as objectives, format, and passing score. It also outlines exam tips and highlights important topics covered on the exam like .NET classes, security, serialization, and more. Specific areas are broken down by percentage of the exam. Resources for exam preparation are provided at the end.
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.
IBM Impact session CICS & java a tale of libertynick_garrod
It is well known that Java is one of the most popular programming languages in use. In this session we'll look at how CICS allows you to make use of OSGi, the service orientated approach to Java. We'll also look at the fast and lightweight Java web container that is provided in CICS TS V5. Liberty Profile technology in CICS provides the rich features of Java Servlet and JavaServer Pages specifications, and fast local access to your existing CICS applications and data. Add the CICS VUE and Java on CICS just makes sense!
Cloudy with a Chance of Bundles (and non java components) - R Nicholson & T Wardmfrancis
Maintainable, adaptive Systems must be modular in nature. Hence OSGi, the open industry standard for modularity, provides the ideal foundations upon which the next generation of lightweight, adaptive public and private Cloud platforms and hosted applications can be built.
The talk will explore some of the current OSGi Alliance activities with respect to distributed computing, Cloud runtimes and the extension of OSGi concepts to more traditional software artifacts; specifically dynamic resolution, requirements and capabilities, remote services and semantic versioning.
Consideration will be given to the Operational benefits that can be derived from from adopting a modular approach to Cloud rather than the typical virtual machine based solutions that do nothing to address the complexity and technical debt that has been accrued over the years.
The talk will conclude with a demonstration of the Service Fabric, the industries first distributed OSGi cloud runtime, where the above concepts will be demonstrated.
Bios:
Richard Nicholson
In 2004, Richard, as Founder and CEO of Paremus, set the goal of building a truly adaptive & robust "Cloud runtime". Focussing on modularity and dynamic assembly as fundamental requirements, OSGi was adopted and the Paremus Service Fabric was the result. Richard, a Physicist by training, maintains keen interest in a number of research areas including Complexity and Complexity Adaptive Systems and Recovery Oriented techniques and their implications for the design of distributed self-maintaining systems.
Prior to founding Paremus in 2001, Richard headed the European Engineering function for Salomon Smith Barney/Citigroup, and was responsible for the delivery of the IT infrastructure for the Citigroup Canary Wharf facility. Richard graduated from Manchester University with Honors in Physics and went on to gain an Astrophysics doctorate from the Royal Greenwich Observatory.
Tim Ward
Tim is a Senior Consulting Engineer and Trainer at Paremus, a co-author of Enterprise OSGi in Action, and has been actively working with OSGi for over six years. Tim has been a regular participant in the OSGi Core Platform and Enterprise Expert Groups, and led the development of several specifications, including OSGi Promises and Asynchronous Services. Tim is also an active Open Source committer and a PMC member in the Apache Aries project, which provides a container for enterprise OSGi applications.
Tim is a regular conference speaker, and can often be found at JavaOne, Devoxx, OSGi DevCon, OSGi Community Event, EclipseCon, Jazoon and JAX London
Presentation on OSGi Cloud Ecosystems as presented during EclipseCon Europe 2012 (http://www.eclipsecon.org/europe2012/sessions/osgi-and-cloud-computing)
This document discusses isolating OSGi bundles into separate "jail cells" or regions to prevent conflicts when integrating existing bundles. It describes how OSGi 4.3 framework hooks can be used to create isolated regions and filter bundle wiring and collisions. The document provides a demo of a BundleJail implementation and discusses some open questions around using bundle jail cells with P2 installation and the Eclipse extension registry.
Am 04 track1--salvatore orlando--openstack-apac-2012-finalOpenCity Community
1) Quantum provides network services for OpenStack and allows tenants to control virtual networking in their cloud.
2) Quantum uses a plugin architecture that supports different networking technologies through plugins like Nicira NVP.
3) The Nicira NVP plugin uses network virtualization and overlay tunneling to decouple logical and physical network topology and provide flexible network designs.
The document discusses new features in Windows Server 2012 Hyper-V and System Center 2012 Virtual Machine Manager (VMM) SP1 for implementing private clouds, including increased scalability for VMs and hosts in a cluster, live storage migration capabilities, enhanced networking functionality through Hyper-V Network Virtualization, improved storage allocation and management, and expanded self-service user and delegated administration roles.
OSGi Applications Clustering using Distributed Shared MemoryAnthony Gelibert
This document discusses clustering OSGi applications using distributed shared memory. It proposes using distributed shared memory to replicate OSGi services across multiple platforms. This allows services to be clustered without reengineering. The approach is validated using several use cases including event propagation and state sharing for mobile games. Future work includes enhancing the Terracotta container and supporting dynamic updates of clustered services.
The document discusses modularization in Java 8 and OSGi. It describes what modules are and why they are needed, including for managing dependencies and versioning. It outlines the characteristics of a good module system and compares how Java 8's Project Jigsaw and OSGi handle modularization. Key points include how both aim to address issues like class loading performance and dependency management, but OSGi has existing tools and does not require language changes.
The document summarizes the OSGi 4.2 Enterprise Specification, which includes specifications for component models, distributed services, database access, web applications, and other supporting technologies. Key aspects include Blueprint for easier OSGi development, Remote Services for exposing and consuming services over the network, JPA and JDBC for database access, and integration with Java EE technologies like JNDI, JTA, and JMX. Examples of using these specifications include the Apache Aries Trader application and isolated examples from implementing projects. Future work may include specifications for subsystems, applications, package management, and asynchronous messaging.
Eclipse Swordfish is an open source SOA runtime framework based on Eclipse Equinox. It provides a framework for integrating additional open source components like a service registry, messaging system, and process engine to form a comprehensive SOA runtime environment. Swordfish supports relevant SOA standards including SCA, JBI, and OSGi. It adds functionality like policies, monitoring, and configuration to complement components like ServiceMix. The project has 5 committers working on it and version 1.0M3 has been released with the goal of inclusion in Eclipse Galileo in June 2009.
- CloudStack is an open-source cloud computing platform that provides infrastructure as a service. It supports various hypervisors and storage technologies.
- It has a flexible architecture with zones (availability zones), pods (racks), clusters (groups of machines with a common hypervisor), and hosts (single servers). Primary storage is shared across clusters while secondary storage is shared within a zone.
- CloudStack manages compute, storage, and networking resources. It provides a unified API and supports integration with various hypervisors, storage solutions, and physical network devices.
This document summarizes a presentation about maximizing the power of OSGi. It introduces Declarative Services, which allows defining components and services in a simple way using annotations. Configuration Admin allows configuring components through OSGi configurations. The HTTP Whiteboard allows exposing components as web services. The Coordinator Service allows grouping related operations together. Finally, OSGi Subsystems allow packaging multiple OSGi bundles together for deployment.
This document discusses polyglot programming using OSGi. It defines polyglot as using multiple programming languages and explains how OSGi allows different JVM languages to be used together through its modular architecture and service registry. Key OSGi concepts discussed include encapsulation, versioning, dynamism through its lifecycle model. Popular OSGi implementations like Equinox and tools like PaxConstruct, PaxRunner and PaxExam that facilitate OSGi development and testing are also summarized. Finally, benefits and challenges of using a polyglot approach with OSGi are outlined.
Presentation on OSGi Cloud Ecosystems (RFC 183) as given at EclipseCon Boston 2013. The RFC itself is available at http://www.osgi.org/Download/File?url=/download/osgi-early-draft-2013-03.pdf
This document summarizes a presentation on bringing together the NetBeans module system and OSGi module system. It discusses how both systems use modules and services, and describes a project called Netigso that allows NetBeans modules to interact with OSGi bundles and vice versa. It provides demos of creating modules and bundles that can depend on each other across the two systems. The goal is to make the NetBeans platform interchangeable with OSGi.
OSGi and Java EE in GlassFish - Tech Days 2010 IndiaArun Gupta
GlassFish v3 supports OSGi bundles and enables hybrid applications that can leverage both OSGi and Java EE. It implements Java EE services and APIs as OSGi services, allowing OSGi bundles to access Java EE functionality. This allows for improved modularity, reusability, and a faster development cycle compared to traditional Java EE applications. Going forward, GlassFish aims to better support OSGi-enabled Java EE applications and improve the underlying OSGi framework administration.
This document provides a comparative analysis of the Jetty and Tomcat web servers. It discusses their technical differences, such as architecture (Jetty uses a modular component approach while Tomcat is monolithic) and performance (Jetty scales better with many idle connections). It also covers non-technical comparisons like market share (Jetty is gaining on Tomcat), development community (Jetty's is more stable and collaborative), and how Jetty more closely follows web standards. The document concludes that while Tomcat is widely used, Jetty's flexibility and responsiveness to changes make it a preferable option.
The document discusses CompatibleOne, an open source "cloudware" that allows creation, deployment, and management of private, public, and hybrid cloud platforms. It promotes open standards like OVF, CDMI, and OCCI to achieve interoperability between clouds and freedom for users. CompatibleOne uses ACCORDS and CORDS to provide a common description schema and enable provisioning of resources across different cloud carriers through standards-based interfaces.
The document provides an overview and breakdown of the 70-536 .NET Application Development Foundation exam. It discusses exam basics such as objectives, format, and passing score. It also outlines exam tips and highlights important topics covered on the exam like .NET classes, security, serialization, and more. Specific areas are broken down by percentage of the exam. Resources for exam preparation are provided at the end.
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.
IBM Impact session CICS & java a tale of libertynick_garrod
It is well known that Java is one of the most popular programming languages in use. In this session we'll look at how CICS allows you to make use of OSGi, the service orientated approach to Java. We'll also look at the fast and lightweight Java web container that is provided in CICS TS V5. Liberty Profile technology in CICS provides the rich features of Java Servlet and JavaServer Pages specifications, and fast local access to your existing CICS applications and data. Add the CICS VUE and Java on CICS just makes sense!
Cloudy with a Chance of Bundles (and non java components) - R Nicholson & T Wardmfrancis
Maintainable, adaptive Systems must be modular in nature. Hence OSGi, the open industry standard for modularity, provides the ideal foundations upon which the next generation of lightweight, adaptive public and private Cloud platforms and hosted applications can be built.
The talk will explore some of the current OSGi Alliance activities with respect to distributed computing, Cloud runtimes and the extension of OSGi concepts to more traditional software artifacts; specifically dynamic resolution, requirements and capabilities, remote services and semantic versioning.
Consideration will be given to the Operational benefits that can be derived from from adopting a modular approach to Cloud rather than the typical virtual machine based solutions that do nothing to address the complexity and technical debt that has been accrued over the years.
The talk will conclude with a demonstration of the Service Fabric, the industries first distributed OSGi cloud runtime, where the above concepts will be demonstrated.
Bios:
Richard Nicholson
In 2004, Richard, as Founder and CEO of Paremus, set the goal of building a truly adaptive & robust "Cloud runtime". Focussing on modularity and dynamic assembly as fundamental requirements, OSGi was adopted and the Paremus Service Fabric was the result. Richard, a Physicist by training, maintains keen interest in a number of research areas including Complexity and Complexity Adaptive Systems and Recovery Oriented techniques and their implications for the design of distributed self-maintaining systems.
Prior to founding Paremus in 2001, Richard headed the European Engineering function for Salomon Smith Barney/Citigroup, and was responsible for the delivery of the IT infrastructure for the Citigroup Canary Wharf facility. Richard graduated from Manchester University with Honors in Physics and went on to gain an Astrophysics doctorate from the Royal Greenwich Observatory.
Tim Ward
Tim is a Senior Consulting Engineer and Trainer at Paremus, a co-author of Enterprise OSGi in Action, and has been actively working with OSGi for over six years. Tim has been a regular participant in the OSGi Core Platform and Enterprise Expert Groups, and led the development of several specifications, including OSGi Promises and Asynchronous Services. Tim is also an active Open Source committer and a PMC member in the Apache Aries project, which provides a container for enterprise OSGi applications.
Tim is a regular conference speaker, and can often be found at JavaOne, Devoxx, OSGi DevCon, OSGi Community Event, EclipseCon, Jazoon and JAX London
Presentation on OSGi Cloud Ecosystems as presented during EclipseCon Europe 2012 (http://www.eclipsecon.org/europe2012/sessions/osgi-and-cloud-computing)
Lessons learned from a large scale OSGii web app - P Bakker & J de Vreedemfrancis
Building a large scale, cloud hosted, multi device product that changes the way students are taught in high schools, turns out to be not entirely trivial. We have been building PulseOn for the last two years. We faced many technical challenges, and have tried many different technologies. Some ideas turned out to be extremely helpful, some other ideas that looked promising turned out to be bad practices. In this talk we will discuss what we have learned about building modular, scalable web applications. We will go into different areas of the technology stack, from storage and (nosql) databases to a modular RESTful backend and a multi device HTML5 based frontend. We will also go into the cloud, and discuss topics such as auto scaling and failover. We will discuss what works and what doesn’t, and hopefully help other to make the right decisions.
Some topics that we will touch upon:
- Modular architecture with OSGi
- Failing at linked data and semantic databases
- Using MongoDB from OSGi
- Release process and semantic versioning
- Continuous deployment
- JavaScript frameworks
Bios:
Paul Bakker
Paul is a software architect for Luminis Technologies and the author of “Building Modular Cloud Apps With OSGi”. He believes that modularity and the cloud are the two main challenges we have to deal with to bring technology to the next level, and is working on making this possible for mainstream software development. Today he is working on educational software focussed on personalised learning for high school students in the Netherlands. Paul is an active contributor on open source projects such as Amdatu, Apache ACE and BndTools.
He has a background as a trainer on Java related technology and is a regular speaker on conferences such as JavaOne, Devoxx and JFokus.
Jago de Vreede
Jago is a software engineer at Luminis Technologies, as a software engineer he has seen a broad-spectrum of projects and he has been working on a large OSGi project for the last year. His work is not exclusive to java development but also does front-end development, and the integration between these. Performance tuning and optimizations are also part of his work.
Creating an all-purpose REST API for Cloud services using OSGi and Sling - C ...mfrancis
OSGi Community Event 2014
Abstract:
Let's say you need to provide an internet service to your users. Chances are that your service should be available via REST. Let's say your service should both provide data to users as well as accept data posted by users, and possibly some logic. Now let's assume your service turns out to become incredibly popular, with lots and lots of users. Sounds like you need Sling and OSGi in the cloud.
In this talk Carsten and David will go through the OSGi and Sling architecture to achieve this. The talk outlines how the OSGi Cloud Ecosystems RFC is used in combination with Apache jclouds to achieve vendor independence. It also discusses how automatic scaling depending on measured load is achieved to ensure responsiveness. The resulting system is a dynamic cloud application handling any REST API, which can scale up and down depending on the need.
Speaker Bios:
David Bosschaert
David Bosschaert works for Adobe Research and Development. He spends the much of his time on technology relating to OSGi in Apache and other open source projects. He is also co-chair of the OSGi Enterprise Expert Group and an active participant in the OSGi Cloud efforts.
Before joining Adobe, David worked for Red Hat/JBoss and IONA Technologies in Dublin, Ireland.
Carsten Ziegeler
Carsten Ziegeler is senior developer at Adobe Research Switzerland and spends most of his time on architectural and infrastructure topics. Working for over 25 years in open source projects, Carsten is a member of the Apache Software Foundation and heavily participates in several Apache communities including Sling, Felix and ACE. He is a frequent speaker on technology and open source conferences and participates in the OSGi Core Platform and Enterprise expert groups.
Robust collaboration services with OSGi - Satya Maheshwarimfrancis
The document discusses how Adobe Connect, Adobe's web conferencing platform, uses the OSGi framework to create a modular architecture. This allows individual components like audio conferencing to be updated independently without disrupting the entire application. It also avoids single points of failure by distributing components across multiple OSGi bundles. The speaker describes how audio conferencing is implemented using different OSGi bundles for the telephony manager, adaptors for each conferencing service, and asynchronous communication between bundles using event handlers.
Cloud & OSGi - The Dawn of Composite Clouds (Now with demo videos)mfrancis
Presentation by Richard Nicholson (Paremus) from OSGi DevCon / EclipseCon 2011.
Now with demo videos.
Despite the element of novelty and fashion, there is little doubt that Cloud Computing will have a fundamental and long lasting influence on the technology landscape. Yet virtual machine based Cloud Compute offerings, which attempt to maximise resource utilisation and minimise operational management of those resources, have nothing to say about the dominant contributor to an organisations IT OPEX. Application maintainability accounts for approximately 70% of an applications TCO. To increase application maintainability, one must modularise and preferably modularise using an industry standard. Hence, for organisations with large in-house development teams, it is predicted that OSGi will have equivalent or greater impact than Cloud Computing! This presentation will look at the intersect of Cloud Computing and OSGi based Composite Applications. Areas explored will include the importance of dynamic dependency management, the anatomy of cloud enabled composite applications and the role of the PaaS in an OSGi enabled Cloud. Relevant OSGi standards will be reviewed along with how these may be used to address the configuration and management of distributed Cloud hosted composite applications. The presentation will conclude by demonstrating a distributed Cloud / OSGi runtime that demonstrates the concepts discussed
Better WebApp Development using OSGi - Raymond Augemfrancis
OSGi Community Event 2015
Webapp development still proliferates the software industry and is becoming more complex every day. This talk will look at modern Webapp programming practices made possible by OSGi specifications to empower developers while simplifying things.
Cloud and OSGi at eBay - OSGi Cloud Workshop March 2012mfrancis
PaaS stands for Platform as a Service and provides an orchestration layer between front end applications and backend services. It allows for software deployment, application monitoring, topology provisioning, and SLA management. PaaS leverages IaaS resources and provides a standardized way to build, deploy, and manage applications independently of underlying infrastructure.
Using OSGi as a Cloud Platform - Jan Rellermeyermfrancis
This document discusses using OSGi as a platform for cloud computing. It addresses challenges like lack of elasticity in traditional software stacks and dependence on external platforms for computation. OSGi's modularity features like loose coupling, encapsulation and substitutability help address these issues by allowing independent scaling of components. The document proposes building on existing OSGi standards like ConfigAdmin and Remote Service Admin to provide services like state management and service discovery in distributed deployments. It outlines a potential REST API and architecture for managing OSGi framework instances in the cloud.
This document discusses OSGi and private clouds. It provides an overview of cloud computing today and the benefits of private clouds over public clouds in terms of data ownership and control. The document then discusses how OSGi, with its modularity and dynamic features, is well-suited for cloud platforms and provides benefits like customization, dynamism, and lightweight architectures. It acknowledges challenges with OSGi and cloud integration like complexity, classloading issues, and metadata handling. The document describes an OSGi-based cloud platform called Nimble and Service Fabric that provides repositories, provisioning, and management features. It concludes with a demonstration of deploying an OSGi application to a single VM and scaling it using this platform.
OSGi PaaS+ building a modular and secure cloud platform with OSGi - A Grzesikmfrancis
This talks gives an introduction to our open PaaS+ Cloud Platform for modular OSGi applications based on OpenShift [1]. Extending OpenShift by an OSGi service framework results in a modular and scalable Java PaaS (Platform as a Service) that features a modular build and deployment mechanism and helps to speed up application development while also making it more robust. The platform comes with a build in Apache Karaf server runtime enhanced by OSGi enabled base services such as Authentication, Rules Engine, Business Process Engine, Polyglot Persistence, Search and Indexing and an integrated OBR. These services are available through a consistent API and are orchestrated by the integrated OSGi framework.
We will show how the OSGi PaaS+ platform supports application developers in the complete application lifecycle from development to production to achieve a faster time to market. It will also cover an example of a domain specific API in the healthcare sector, where special requirements on data security during storage and transfer will be met to secure sensitive data in the cloud. With sight on the healthcare and other sectors handling sensitive data, the cloud is challenged with special requirements on data security during storage and transfer. Thus leading to the need to address customer concerns respecting privacy in much more detail than in other areas. We will also describe how to extend the platform for other domains.
The OSGi PaaS+ platform is based on research results from the TRESOR - Trusted Ecosystem for Standardized and Open cloud-based Resources – project to provide an open ecosystem for cloud applications for the health care sector [2]. TRESOR is part of the Trusted Cloud initiative [3], funded by the German Federal Ministry of Economics and Technology.
Bio:
Alexander is the head of development of medisite Systemhaus GmbH and responsible for the development of the the PaaS+ cloud platform the clinical information system m.life and software architect for the TRESOR Project.
He has 15 years of work experience in medical Software development as team leader and software architect.
Expert for Software Architecture, OSGi, Java and Java EE.
Alexander has been a speaker at several conferences including EclipseCon Europe and the OpenShift Community Day.
Java EE 6 is an awesome platform, but how do you design a system that can evolve for many years in production? And how do we run this stuff in the cloud?
Designing a system that can evolve without creating a maintenance nightmare is far from trivial. A service oriented, modular architecture will help a lot to replace parts of a system without breaking others. The only mature modularity approach for Java is OSGi - a framework that enables low-level modularity and services, but you still need APIs to create web applications, use transactions, access data sources etc. Without these APIs you will have a hard time building applications. Unfortunately OSGi and Java EE did not interoperate well in the past; But what if we want modularity in our architecture but also the ease-of-use of Java EE 6?
In this university you will:
1. Understand the benefits of a modular code base
2. Learn how to mix OSGi and Java EE
3. Manage modular cloud deployments using Apache ACE
..and of course there will be lots of live coding!
The document discusses complexity, components, and clouds as they relate to distributed systems. It defines complexity and discusses accidental versus necessary complexity. Components are described as a way to abstract and isolate complexity through modularity. Several characteristics of clouds are outlined, including elasticity, abstraction, robustness through agility and lack of single points of failure, understanding composite systems, multi-tenancy, and architectural invisibility. The Paremus Service Fabric is introduced as a model-driven runtime that can deploy systems according to models and monitor them.
Modular JavaScript in an OSGi World - S Makmfrancis
What percentage of your web-app is written in JavaScript? Don’t be surprised if it’s more than half of your codebase. With the advent of HTML5 and single-page-applications driven by RESTful backends, the amount of JavaScript keeps growing. On the Java side, OSGi allows us to create modular, flexible applications. But how does this translate to the client-side? Isn’t a ‘single-page-application’ fundamentally at odds with modularity?
In this session we take a look at the currently available tools for modularity in JavaScript. There are several ways you can combine existing JavaScript module systems with OSGi-based development on the backend. We discuss tradeoffs between these different approaches based on real-world experience with large JavaScript front-ends and OSGi back-ends. In particular an example combining OSGi, RequireJS and AngularJS is presented. Along with practical advice based on current technology, we also look forward at relevant upcoming standards such as Web Components. After this session you’ll have a solid grasp of modular JavaScript development in an OSGi world.
Bio:
After getting his master's degree in Software Technology, Sander became a software developer/architect. Currently he works as Senior Software Engineer for Luminis Technologies, specializing in modular Java and JavaScript development. Additionally, data analysis and machine learning are part of his ever growing list of interests. Sander loves sharing knowledge, for example through his blog (at http://branchandbound.net) and by writing for the Dutch Java Magazine. He speaks regularly at various international developer conferences (including JavaOne, J-Fall, JEEConf), sharing his passion for Java, alternative JVM languages and related technologies.
Modern applications and software solutions increasingly center around loosely coupled and extensible architectures. Component or Service orientation is applied in almost all areas of application development including distributed systems, ubiquitous computing, embedded systems, and client-side applications.
The Java based OSGi framework specification lends itself well as a platform for loosely coupled and extensible applications and is rapidly gaining ground as the de-facto plugin solution for Java based applications. It allows for lightweight implementations that limit themselves to the CDC profile and are ideally suited as embedded plugin frameworks.
One of the main drawbacks of dynamically extensible applications, however, are the potential security issues that arise due to executing untrusted code without appropriated safety-measures in place. Secure sandboxes and their restrictions are difficult to get right and often hard to deal with in the development of applications. The OSGi specifications have an extensive and very powerful security model that eases this difficult task.
This presentation focuses on embedding various OSGi framework implementations namely, Eclipse Equinox and Apache Felix, into applications as a means of plugin mechanism while taking advantage of the often overlooked benefits of this solution: security.
Deploying Heterogeneous Artifacts to the Cloud with OSGi - Neil Bartlettmfrancis
OSGi DevCon 2013
OSGi is a wonderful platform for cloud deployment... but modern software stacks are increasingly heterogeneous in nature. This means that alongside our OSGi bundles we must be able to deploy non-OSGi artifacts such as monolithic Java applications or even native libraries and executables. Furthermore the platforms onto which we deploy may be heterogeneous, i.e. having different operating systems, processors, memory, GPU etc.
Nevertheless we would still like to enjoy the benefits of OSGi's lifecycle model, its resolver, strong version support, configuration system, and service publication. Can we get the best of both worlds?
In this talk we will demonstrate how arbitrary artifacts can be deployed and managed across a cloud environment using Paremus Packager and the latest OSGi specifications. The demo will start from a simple blog application developed as pure OSGi bundles, then proceed to mix in a choice of databases (MongoDB or Apache Derby), a messaging server (Mosquitto or RabbitMQ), and a web UI (Ruby on Rails). All these artifacts are resolved automatically from an OSGi R5 repository, provisioned onto the correct node according to platform requirements, and configured from a single operations-friendly source. Once running they discover and connect to each other without intervention.
The talk concludes with a brief overview of how the artifact packaging works, and how an arbitrary artifact can be wrapped for use with OSGi.
Using OSGi technology in Eclipse - BJ Hargrave, IBM, for Jeff McAffer, IBMmfrancis
This document discusses using OSGi technology in Eclipse. It provides an overview of Eclipse and how it is being used as a rich client platform. The document then discusses how OSGi technology is being used to replace Eclipse's runtime with an OSGi framework. This maps Eclipse plug-ins to OSGi bundles. It also discusses some pressures on OSGi technology from wider usage scenarios and how the Eclipse and OSGi Service Platform specification are working to address challenges for the next release.
OSGi helps SOA by providing modularity, services, and dynamic loading capabilities at the JVM level. WSO2 Carbon uses OSGi as its core technology, allowing new functions to be plugged in modular bundles and providing a consistent platform for building a distributed SOA infrastructure from reusable components. While OSGi provides benefits like classloading management and proper modularity, there are also challenges to address like handling existing code and managing bundle start levels and patches.
This document summarizes the OSGi DevCon 2009 conference. The key themes discussed were: increased ubiquity and adoption of OSGi, the use of OSGi for enterprise applications and services, distributed OSGi capabilities, tooling updates, and modernizing OSGi APIs. Distributed OSGi allows services to be published and accessed remotely in a transparent manner between JVMs. The Enterprise Profile and tools like Blueprint provide integration with Java EE. There was also discussion of JSR 294 to add module support to Java and the relationship with OSGi and Jigsaw.
The presentation discusses the 7-layer Open Systems Interconnect (OSI) model. The OSI model divides the tasks involved in moving data between networked computers into seven layers, with each layer performing a specific function. The seven layers are the physical, data link, network, transport, session, presentation, and application layers. The physical layer deals with bit transmission and cable characteristics. The data link layer handles framing and addressing. The network layer focuses on routing between networks. The transport layer manages error checking and reassembly. The session layer controls dialogs and checkpoints. The presentation layer performs encoding and encryption. The application layer provides network services to users.
This document provides an overview of the FusionInventory project. It discusses that FusionInventory is an open source inventory and asset management solution that integrates with the GLPI asset management platform. It allows for network discovery, inventory collection, Wake-on-LAN functionality, software deployment, and VMware ESXi inventory via APIs. The document outlines the project timeline, contributors, supported operating systems, information gathered, statistics on code size and tests, roadmap, and a use case of how FusionInventory has helped consolidate inventory needs for a school district.
Object Oriented Methodology (OOM) is a system development approach encouraging and facilitating re-use of software components. We enforce our concern on components re-usability of existing component using Java Language .
Vulnerability Exploitation in Docker Container EnvironmentsFlawCheck
Docker container environments face security risks from vulnerabilities and malware. While containers isolate processes, compromised web applications could still exfiltrate data. Many pre-built containers from Docker Hub contain known vulnerabilities, as Docker does not inspect images for security. Enterprises have been slow to adopt containers due to these cybersecurity concerns over vulnerabilities, malware, and lack of policy enforcement and auditability within containers.
An operational view into docker registry with scalability, access control and...Conference Papers
This document discusses improvements to the Docker registry to address scalability, access control, and image vulnerability assessment. It proposes:
1) Using a proxy like NGINX in front of the registry to load balance requests and scale the registry across multiple servers.
2) Adding user authentication and authorization to the registry to restrict access to images based on user permissions.
3) Integrating the Anchore image scanning tool to analyze images pushed to the registry for vulnerabilities before use.
Together these changes aim to make the Docker registry more scalable, secure, and provide visibility into image vulnerabilities.
This document provides an overview of a lecture on computer networks and wireless networks. It begins with an agenda that covers fundamentals of computer networks, basics of wireless networks including physical layer transmission, medium access control, and cognitive radio. It then discusses general communication models, networking concepts such as point-to-point communication and centralized switching networks. It also covers the ISO OSI reference model, networking standards, transmission vs switching, wireless signal propagation, modulation techniques, and multiple access protocols.
This document discusses the OSI model, which defines 7 layers of network communication. It defines each layer, their functions, and the encapsulation process between layers. Key points covered include defining the 7 layers and their functions, comparing TCP and UDP protocols, and stating that OSI model allows different hardware/software to communicate by organizing networks into well-defined modules. The purpose of OSI is to represent a perfect network and organize it into functional layers to allow troubleshooting and different technologies to work together across networks.
Berlin Devops: Managing systems with Marionette CollectiveAndreas Schmidt
This document provides an overview of Marionette Collective, a framework for managing large systems. It discusses the speaker's background in software development and infrastructure. Marionette Collective allows broadcasting commands to multiple systems using messaging middleware like ActiveMQ or RabbitMQ. It works by having client requests sent to a middleware topic, then hosts with matching facts execute the command. A demo is shown of using it for backups. Security features include an AES plugin for encrypting payloads and authorization/auditing plugins. Version 2.0 added improvements like direct addressing, message TTLs, discovery statements and a pluggable discovery system. The presentation concludes with asking for any questions.
This document discusses how aspect-oriented programming (AOP) enables modular reasoning in the presence of crosscutting concerns. It introduces key concepts, including aspect-aware interfaces that describe how aspects cut new interfaces through the primary decomposition of a system. The document argues that while this dependency on system configuration seems anti-modular, it is an inherent property of crosscutting concerns, and AOP makes the requirements for modular reasoning more explicit. It presents an example to illustrate aspect-aware interfaces and discusses how interfaces in AOP systems depend on the complete deployment configuration. The document concludes that with aspect-aware interfaces, modular reasoning is possible once the deployment configuration is known.
Open Services Gateway Initiative (OSGI)Peter R. Egli
OSGi is a component-based technology and was developed to provide a software platform that allows modularization and dynamic linking of application components.
OSGi components are called bundles and can be exported and imported by application bundles.
OSGi implementations like Apache Felix or Eclipse Equinox provide a runtime container which controls the lifecycle of bundles.
Even though OSGi is hardware independent, it is based on the Java Virtual Machine and as such extends the concepts of the underlying Java language.
An OSGi bundle's capabilities and properties are defined in a manifest file that is packed together with the bundle's Java class files. The manifest file allows compatibility checks by the OSGi runtime between the exporting bundle and the importing bundle.
This export and import mechanism allows highly flexible and dynamic application environments where applications and components are installed, linked and started at runtime without the need to restart the entire system.
This document contains an interview transcript with Bjarne Stroustrup, the creator of the C++ programming language. In the interview, Stroustrup discusses various aspects of the new C++0x standard, including its improved support for concurrency, threads, avoiding data races, and passing values between threads. He emphasizes C++'s role as a general purpose language suitable for systems programming that combines low-level machine efficiency with flexible abstraction mechanisms.
This document summarizes a research paper that proposes a defense system for peer-to-peer (P2P) content distribution networks using network coding. The system aims to (1) detect polluted data blocks early, (2) identify the exact location of colluding malicious peers, and (3) reduce verification costs to prevent propagation of malicious blocks. It introduces mechanisms for peers to cooperate in both distributing content and protecting against malicious peers by alerting others about detected malicious blocks. The proposed system introduces less communication and computation overhead than other state-of-the-art defense schemes for P2P networks.
This document summarizes a research paper that proposes a defense system for peer-to-peer (P2P) networks using network coding to distribute content. The system aims to (1) detect polluted blocks early, (2) identify the exact location of colluding malicious peers, and (3) reduce verification costs to prevent propagation of malicious blocks. It introduces a cooperative model where well-behaved peers help protect the network by alerting others about malicious blocks. The system uses techniques like homomorphic message authentication codes (MACs) and batch verification to reduce cryptographic overhead compared to other state-of-the-art defense schemes for P2P networks.
OSHI - Open Source Hybrid IP/SDN networking @EWSDN14Stefano Salsano
The introduction of SDN in IP backbones requires the coexistence of regular IP forwarding and SDN based forwarding. The former is typically applied to best effort Internet traffic, the latter can be used for different types of advanced services (VPNs, Virtual Leased Lines, Traffic Engineering…). In this paper we first introduce the architecture and the services of an “hybrid” IP/SDN networking scenario. Then we describe the design and implementation of an Open Source Hybrid IP/SDN (OSHI) node. It combines Quagga for OSPF routing and Open vSwitch for OpenFlow based switching on Linux. The availability of tools for experimental validation and performance evaluation of SDN solutions is fundamental for the evolution of SDN. We provide a set of open source tools that allow to facilitate the design of hybrid IP/SDN experimental networks, their deployment on Mininet or on distributed SDN research testbeds and their test. Finally, using the provided tools, we evaluate key performance aspects of the proposed solutions. The OSHI development and test environment is available in a VirtualBox VM image that can be downloaded.
Similar to From Distributed to Pervasive OSGi (20)
Top mailing list providers in the USA.pptxJeremyPeirce1
Discover the top mailing list providers in the USA, offering targeted lists, segmentation, and analytics to optimize your marketing campaigns and drive engagement.
At Techbox Square, in Singapore, we're not just creative web designers and developers, we're the driving force behind your brand identity. Contact us today.
How to Implement a Strategy: Transform Your Strategy with BSC Designer's Comp...Aleksey Savkin
The Strategy Implementation System offers a structured approach to translating stakeholder needs into actionable strategies using high-level and low-level scorecards. It involves stakeholder analysis, strategy decomposition, adoption of strategic frameworks like Balanced Scorecard or OKR, and alignment of goals, initiatives, and KPIs.
Key Components:
- Stakeholder Analysis
- Strategy Decomposition
- Adoption of Business Frameworks
- Goal Setting
- Initiatives and Action Plans
- KPIs and Performance Metrics
- Learning and Adaptation
- Alignment and Cascading of Scorecards
Benefits:
- Systematic strategy formulation and execution.
- Framework flexibility and automation.
- Enhanced alignment and strategic focus across the organization.
Best practices for project execution and deliveryCLIVE MINCHIN
A select set of project management best practices to keep your project on-track, on-cost and aligned to scope. Many firms have don't have the necessary skills, diligence, methods and oversight of their projects; this leads to slippage, higher costs and longer timeframes. Often firms have a history of projects that simply failed to move the needle. These best practices will help your firm avoid these pitfalls but they require fortitude to apply.
3 Simple Steps To Buy Verified Payoneer Account In 2024SEOSMMEARTH
Buy Verified Payoneer Account: Quick and Secure Way to Receive Payments
Buy Verified Payoneer Account With 100% secure documents, [ USA, UK, CA ]. Are you looking for a reliable and safe way to receive payments online? Then you need buy verified Payoneer account ! Payoneer is a global payment platform that allows businesses and individuals to send and receive money in over 200 countries.
If You Want To More Information just Contact Now:
Skype: SEOSMMEARTH
Telegram: @seosmmearth
Gmail: seosmmearth@gmail.com
The APCO Geopolitical Radar - Q3 2024 The Global Operating Environment for Bu...APCO
The Radar reflects input from APCO’s teams located around the world. It distils a host of interconnected events and trends into insights to inform operational and strategic decisions. Issues covered in this edition include:
B2B payments are rapidly changing. Find out the 5 key questions you need to be asking yourself to be sure you are mastering B2B payments today. Learn more at www.BlueSnap.com.
Event Report - SAP Sapphire 2024 Orlando - lots of innovation and old challengesHolger Mueller
Holger Mueller of Constellation Research shares his key takeaways from SAP's Sapphire confernece, held in Orlando, June 3rd till 5th 2024, in the Orange Convention Center.
The Genesis of BriansClub.cm Famous Dark WEb PlatformSabaaSudozai
BriansClub.cm, a famous platform on the dark web, has become one of the most infamous carding marketplaces, specializing in the sale of stolen credit card data.
The 10 Most Influential Leaders Guiding Corporate Evolution, 2024.pdfthesiliconleaders
In the recent edition, The 10 Most Influential Leaders Guiding Corporate Evolution, 2024, The Silicon Leaders magazine gladly features Dejan Štancer, President of the Global Chamber of Business Leaders (GCBL), along with other leaders.
Unveiling the Dynamic Personalities, Key Dates, and Horoscope Insights: Gemin...my Pandit
Explore the fascinating world of the Gemini Zodiac Sign. Discover the unique personality traits, key dates, and horoscope insights of Gemini individuals. Learn how their sociable, communicative nature and boundless curiosity make them the dynamic explorers of the zodiac. Dive into the duality of the Gemini sign and understand their intellectual and adventurous spirit.
Understanding User Needs and Satisfying ThemAggregage
https://www.productmanagementtoday.com/frs/26903918/understanding-user-needs-and-satisfying-them
We know we want to create products which our customers find to be valuable. Whether we label it as customer-centric or product-led depends on how long we've been doing product management. There are three challenges we face when doing this. The obvious challenge is figuring out what our users need; the non-obvious challenges are in creating a shared understanding of those needs and in sensing if what we're doing is meeting those needs.
In this webinar, we won't focus on the research methods for discovering user-needs. We will focus on synthesis of the needs we discover, communication and alignment tools, and how we operationalize addressing those needs.
Industry expert Scott Sehlhorst will:
• Introduce a taxonomy for user goals with real world examples
• Present the Onion Diagram, a tool for contextualizing task-level goals
• Illustrate how customer journey maps capture activity-level and task-level goals
• Demonstrate the best approach to selection and prioritization of user-goals to address
• Highlight the crucial benchmarks, observable changes, in ensuring fulfillment of customer needs
Structural Design Process: Step-by-Step Guide for BuildingsChandresh Chudasama
The structural design process is explained: Follow our step-by-step guide to understand building design intricacies and ensure structural integrity. Learn how to build wonderful buildings with the help of our detailed information. Learn how to create structures with durability and reliability and also gain insights on ways of managing structures.
HOW TO START UP A COMPANY A STEP-BY-STEP GUIDE.pdf46adnanshahzad
How to Start Up a Company: A Step-by-Step Guide Starting a company is an exciting adventure that combines creativity, strategy, and hard work. It can seem overwhelming at first, but with the right guidance, anyone can transform a great idea into a successful business. Let's dive into how to start up a company, from the initial spark of an idea to securing funding and launching your startup.
Introduction
Have you ever dreamed of turning your innovative idea into a thriving business? Starting a company involves numerous steps and decisions, but don't worry—we're here to help. Whether you're exploring how to start a startup company or wondering how to start up a small business, this guide will walk you through the process, step by step.
Discover timeless style with the 2022 Vintage Roman Numerals Men's Ring. Crafted from premium stainless steel, this 6mm wide ring embodies elegance and durability. Perfect as a gift, it seamlessly blends classic Roman numeral detailing with modern sophistication, making it an ideal accessory for any occasion.
https://rb.gy/usj1a2
Brian Fitzsimmons on the Business Strategy and Content Flywheel of Barstool S...Neil Horowitz
On episode 272 of the Digital and Social Media Sports Podcast, Neil chatted with Brian Fitzsimmons, Director of Licensing and Business Development for Barstool Sports.
What follows is a collection of snippets from the podcast. To hear the full interview and more, check out the podcast on all podcast platforms and at www.dsmsports.net
3. Software Modules
Structured Programming
Encapsulation David Parnas, 1972
Information Hiding
Coupling vs. Cohesion Larry Constantine, 1974
Separation of Concerns Edsger W. Dijkstra, 1974
Reuse
Web services, OSGi
Orchestration
Software Design Principle
Base unit for adding orthogonal concerns The Future?
Tuesday, June 23, 2009 Jan S. Rellermeyer, ETH Zürich 3
4. Module Management in Java
Traditional Java: The mystical class path
java –cp commons-X.jar foo.jar bar.jar
my.application.MainClass
Which module contains the main class?
What are the dependencies between foo.jar and bar.jar?
What happens if bar.jar is upgraded to bar-1.01.jar?
Tuesday, June 23, 2009 Jan S. Rellermeyer, ETH Zürich 4
5. The OSGi Framework
Export-Package: Package 1 Export-Package: Package I, Package II
Import-Package: Package 1
Exported Package Exported Package
Package 1 Package I
Bundle B
Bundle A
Import Package II
Package 2
Package 3
Private Package
OSGi Framework
Explicit dependencies
Explicit, yet declarative
Runtime
Dynamic
Events, Introspection
Tuesday, June 23, 2009 Jan S. Rellermeyer, ETH Zürich 5
6. Modularity: Coupling vs. Cohesion
Two components are loosely coupled, when changes in one never or rarely
necessitate a change in the other
A component exhibits high cohesion when all its functions/methods are
strongly related in terms of function
Tuesday, June 23, 2009 Jan S. Rellermeyer, ETH Zürich 6
7. OSGi Services: Reducing Coupling
Bundles are Modules
encapsulate functionality
deployment unit
Enable reuse, extension, and dynamic composition
But: Package dependencies are explicit. Interface
Can lead to all or nothing
Limits the modularity!
Implementation
Solution: Services
Separate the interface from the implementation
Tuesday, June 23, 2009 Jan S. Rellermeyer, ETH Zürich 7
8. The Service Registry
The OSGi framework maintains a central service registry
Bundles can register their own services and retrieve
services provided by other bundles
Services can be registered with a set of properties
Additional description of the service, can be used to model
constraints or do “best fit matching”
Registry
Services are identified by their name
Tuesday, June 23, 2009 Jan S. Rellermeyer, ETH Zürich 8
9. Distributed OSGi
General idea: use services provided by a remote machine
Loose coupling
Remote can be
Separate machine, connected through a network
Separate JVM, different address space
(Different language, different address space)
Why would you want this?
Isolation
Redundancy
Problem is inherently distributed
Tuesday, June 23, 2009 Jan S. Rellermeyer, ETH Zürich 9
10. Preview: OSGi 4.2 Remote Services
Service Hooks
Distribution Software can intercept service requests
Proxies
Import a service into the local framework
Intents
Denotes an abstract distribution capability
Requires mutual agreement
Derived from SCA
Tuesday, June 23, 2009 Jan S. Rellermeyer, ETH Zürich 10
11. Example: Eclipse Communication Framework
Application Container Adapters
Eclipse, RCP, Equinox Server
Shared Editing Call
3 Jingle
1 2 Datashare Remote
Services Discovery
container
Datashare File Transfer
ECF Core Presence Shared Object
XMPP (e.g.)
OSGi/Equinox
API Provider IAdaptable
Tuesday, June 23, 2009 Jan S. Rellermeyer, ETH Zürich 11
12. ECF Remote Services
Can do RFC 119 Remote Service Provider
Will be made compliant with the 4.2 specs
Can use different distribution systems as backend
R-OSGi
ECF generic DSOs
Can do more
Proxy service has a distinct property service.imported set
In ECF, this is set to an IRemoteService instance
One-Shot, fireAsync
Futures, callAsync/1
Async with Listener, callAsync/2
Non-transparent access
Tuesday, June 23, 2009 Jan S. Rellermeyer, ETH Zürich 12
13. R-OSGi
Preserves the expressiveness of OSGi
Every Java class can be a service
Runs with every OSGi framework
Consistently maps network failures to module lifecycle
events
Proxy service provided by proxy bundle
Life-cycle, consistent behavior
Is flexible, yet competitive in terms of performance
[J. S. Rellermeyer, G. Alonso, T. Roscoe: R- OSGi: Distributed Applications through Software Modularization.
In: Middleware 2007]
Tuesday, June 23, 2009 Jan S. Rellermeyer, ETH Zürich 13
14. Dynamic Proxy Generation
Service: Interface + Implementation
Shared Knowledge: Interface
public class MyServiceProxy implements MyService {
public interface MyService {
public String callMe(Integer i) {
// generic remote service call public String callMe(Integer i);
}
}
}
Peer A Peer B
Tuesday, June 23, 2009 Jan S. Rellermeyer, ETH Zürich 14
16. Type Injection: Dealing with Coupling
public interface MyService { Bundle
void enqueue(QueueItem item);
Queue getQueue();
} MyService
Proxy
Bundle
MyService
Tuesday, June 23, 2009 Jan S. Rellermeyer, ETH Zürich 16
17. DISTRIBUTED OSGI
Location-transparency for services
Point to point
Not a single system image
Not a distributed module runtime
PERVASIVE OSGI
Tuesday, June 23, 2009 Jan S. Rellermeyer, ETH Zürich 17
18. The Cloud(s)
Amazon EC2 Yahoo Pipes
Infrastructure as a service Agility
Pay as you go Permanently available
Horizontal Scale out
Tuesday, June 23, 2009 Jan S. Rellermeyer, ETH Zürich 18
19. The Fabric of the Cloud: Distributed Systems
Under the hood:
Potentially
unreliable hardware
unreliable network
Virtualized environment
Little to no control
Tuesday, June 23, 2009 Jan S. Rellermeyer, ETH Zürich 19
20. Distributed Systems Are Still Challenging
Architecture
Complexity
Parallelization
Debugging, Testing
Deployment
Management
Tuesday, June 23, 2009 Jan S. Rellermeyer, ETH Zürich 20
21. Software Modules as an Application Model
Composable
Reusable
Manageable
Focus on functional aspects
Encourage to think about interfaces
Tool support
Building distributed systems without thinking of distribution
Think of R-OSGi
Tuesday, June 23, 2009 Jan S. Rellermeyer, ETH Zürich 21
22. R-OSGi: A First Step Into The Cloud
Services facilitate loose coupling and high cohesion
Instrumental for parallelization, think about Map-Reduce!
R-OSGi preserves the expressiveness of OSGi services
Every Java class can be a service
With R-OSGi, almost every OSGi service can be a remote service
Generality
Provides location transparency
“Where” has a different meaning in a data center
Consistently maps network failures to module lifecycle
events
Node and network failures happen often!
[J. S. Rellermeyer, M. Duller, G. Alonso: Engineering the Cloud from Software Modules. In: ICSE-Cloud 2009]
Tuesday, June 23, 2009 Jan S. Rellermeyer, ETH Zürich 22
23. Example: R-OSGi Deployment Tool
[J. S. Rellermeyer, G. Alonso, T. Roscoe: Ready for Distribution? Turning Modular into Distributed
Applications with the R- OSGi Deployment Tool . Demo at OOPSLA 2007]
Tuesday, June 23, 2009 Jan S. Rellermeyer, ETH Zürich 23
24. Modules for the Cloud
Distribution can be added as an orthogonal concern
R-OSGi turns OSGi modules into a distributed system
So can replication
Instrumentation of the modules
Middleware support
Elasticity through redundancy and redeployment
Module
Module Module
Module
Module
Tuesday, June 23, 2009 Jan S. Rellermeyer, ETH Zürich 24
26. A Virtual Runtime for Modules
“Hypovisor” for OSGi Modules
Instruments Bundles
For paravirtualization
For state capturing
Shares internal state
Shared service registry
Shared bundle registry
Shares bundle state
Replication, migration
Tuesday, June 23, 2009 Jan S. Rellermeyer, ETH Zürich 26
27. The Model of State
The fields of a service instance are “state”
The fields of “state” are “state”
“State” is replicated (and treated as “by reference”)
Everything else is local to the node (no state leakage)
Tuesday, June 23, 2009 Jan S. Rellermeyer, ETH Zürich 27
28. Code Analysis: Symbolic Execution
private int state;
add(I)I
L0 int add(int i) {
ALOAD 0 state += i;
DUP return state;
GETFIELD test/Simple.state : I }
ILOAD 1
IADD
Initialize the slots of the call stack
PUTFIELD test/Simple.state : I with symbols
L1 0 = “this”, 1 = arg0, 2 = local0
ALOAD 0
Initialize the fields with relative
GETFIELD test/Simple.state : I
IRETURN symbols
L2 test/Simple.state = “Simple.state”
LOCALVARIABLE this Ltest/Simple; L0
L2 0
Execute the code symbolically
LOCALVARIABLE i I L0 L2 1 Execution stack becomes symbolic
MAXSTACK = 3
Non-linear control flow leads to Phi-
MAXLOCALS = 2
Symbols
Tuesday, June 23, 2009 Jan S. Rellermeyer, ETH Zürich 28
29. Instrumentation for Replication
private int state;
int add(int i) {
TransactionContext.BOT(“Simple.add”, i);
private int state;
TransactionContext.read(“Simple.state”);
state += i;
int add(int i) { TransactionContext.write(“Simple.state”,
state += i; i);
return state; return state; Simplication, it’s
TransactionContext.EOT(); top of stack
}
}
TransactionContext binds free variables at runtime and puts fields into
context
Similar: Instrumentation for thread migration
Tuesday, June 23, 2009 Jan S. Rellermeyer, ETH Zurich 29
30. A Virtual Module Runtime
+ non-functional requirements
+ orthogonal concerns
Tuesday, June 23, 2009 Jan S. Rellermeyer, ETH Zürich 30
31. CONCLUSIONS
OSGi is a very interesting platform for building dynamic modular
applications for Java.
Distribution software like R-OSGi facilitate remote access to OSGi
services. The 4.2 specs will bring this to the mainstream.
The OSGi model is a perfect match for dynamic environments such as
cloud computing
The Cirrostratus prototype enables adding even more sophisticated
properties to modules than distribution, such as state replication, service
migration, hardening policies.
It can thereby facilitate the even more pervasive usage of OSGi.
Questions?
Tuesday, June 23, 2009 Jan S. Rellermeyer, ETH Zürich 31