In a tutorial style, this detailed presentation covers all the major aspects of p2. It ranges from the simple usage of product delivery to an in-depth presentation of the p2 concepts.
API Gateways are the well suited service for microservices architecture. It provides many security and performance related features along with reliability of the system. These slides explains what is API Gateway. What is microservices architecture, its benefits and how API Gateway empower this architecture. Further more API Gateway aggregation is explained with an example.
VMware Outlines Its Own Journey to the CloudVMware
See how VMware, pioneers of the software-defined data center, are implementing their own IT transformation to take advantage of the benefits provided by an SDDC architecture.
Case Study: How to move from a Monolith to Cloud, Containers and MicroservicesKai Wähner
This session shows a case study about successfully moving from a very complex monolith system to a cloud-native architecture. The architecture leverages containers and Microservices to solve issues such as high efforts for extending the system, and a very slow deployment process. The old system included a few huge Java applications and a complex integration middleware deployment.
The new architecture allows flexible development, deployment and operations of business and integration services. Besides, it is vendor-agnostic so that you can leverage on-premise hardware, different public cloud infrastructures, and cloud-native PaaS platforms.
The session will describe the challenges of the existing monolith system, the step-by-step procedure to move to the new cloud-native Microservices architecture, and why containers such as Docker play a key role in this scenario.
A live demo shows how container solutions such as Docker, PaaS cloud platforms such as CloudFoundry, cluster managers such as Kubernetes or Mesos, and different programming languages are used to implement, deploy and scale cloud-native Microservices in a vendor-agnostic way.
Key takeaways for the audience:
- Best practices for moving to a cloud-native architecture
- How to leverage microservices and containers for flexible development, deployment and operations
- How to solve challenges in real world projects
- Understand key technologies, which are recommended
- How to stay vendor-agnostic
- See a live demo of how cloud-native applications respectively services differ from monolith applications regarding development and runtime
GitLab CI/CD is a built-in continuous integration and delivery tool in GitLab. It allows for automated testing, building, and deploying of applications. It supports various languages and tools through configuration files. Pipelines can be triggered on code pushes or manually to run tests and deploy code. The tool aims to speed up development workflows through automation while providing visibility into builds.
This document introduces Quarkus, an open source Java framework for building container-native microservices. Quarkus uses GraalVM to compile Java code ahead-of-time, resulting in applications that are up to 10x smaller and 100x faster to start than traditional Java applications. It is optimized for Kubernetes and serverless workloads. Quarkus achieves these benefits through ahead-of-time compilation using GraalVM, which analyzes code statically and removes unused classes and code to generate efficient native executables.
This document discusses and compares low-code development platforms Nintex and PowerApp. It provides an overview of programming language generations and how business application development has evolved from pre-packaged software to low-code platforms. Low-code platforms allow for rapid application development with minimal coding through visual interfaces and drag-and-drop functionality. The document reviews what distinguishes low-code from no-code platforms and provides details on Nintex's products, versions, and components before concluding with a demo of Nintex and PowerApp.
Virtualization has its origins in mainframe computing from the 1960s. It allows a single physical server to run multiple virtual machines, each with its own operating system and applications. This addresses challenges from the 1990s and 2000s as companies had many single-purpose physical servers with low utilization rates, high costs, and management complexity. Virtualization software introduces a hypervisor layer that partitions resources and isolates virtual machines so multiple operating systems can run independently on the same physical hardware. Today virtualization delivers benefits like server consolidation, high availability, disaster recovery, and rapid provisioning to improve efficiency and reduce costs.
Helm - the Better Way to Deploy on Kubernetes - Reinhard Nägele - Codemotion...Codemotion
Helm is the official package manager for Kubernetes. This session introduces Helm and illustrates its advantages over "kubectl" with plain Kubernetes manifests. We will learn about its architecture and features, such as lifecycle management, parameterizability using Go templating, chart dependencies, etc. Demos will explain how all the bits and pieces work together.
Azure Redis Cache is a cache service by Microsoft that uses Redis, an open-source in-memory data structure store. It provides caching that can increase performance and availability by temporarily copying frequently accessed data to fast storage close to applications. Redis can be used as a database, cache, and message broker. Azure Redis Cache handles authentication, SSL, monitoring, alerts and integrates with the Azure ecosystem. It allows caching without persistence, but Redis also supports append-only files and snapshots for data persistence. The document outlines how to connect to Azure Redis Cache from an application and consider patterns like cache-aside for unpredictable workloads. It also discusses cache invalidation, scaling Redis, and troubleshooting issues like missing keys.
Red Hat Ceph Storage is a massively scalable, software-defined storage platform that provides block, object, and file storage using a single, unified storage infrastructure. It offers several advantages over traditional proprietary storage, including lower costs, greater scalability, simplified maintenance, and an open source development model. Red Hat Ceph Storage 2 includes new capabilities like enhanced object storage integration, multi-site replication, and a new storage management console.
Node.Js: Basics Concepts and Introduction Kanika Gera
Node.js is a JavaScript runtime built on Chrome's V8 engine that allows JavaScript to run on the server side. It uses asynchronous and event-driven programming to handle thousands of concurrent connections with minimal overhead. The presentation introduces Node.js and its architecture, explaining how it uses a single thread with non-blocking I/O and an event loop to handle asynchronous operations efficiently. Examples are provided to illustrate synchronous vs asynchronous code. Common use cases for Node.js include real-time applications, chat/messaging, and high concurrency applications, while it is less suitable for heavy computation or large web apps.
source : http://www.opennaru.com/cloud/ci-cd/
CI/CD는 애플리케이션 개발 단계를 자동화하여 애플리케이션을 보다 짧은 주기로 고객에게 제공하는 방법입니다. CI/CD의 기본 개념은 지속적인 통합, 지속적인 서비스 제공, 지속적인 배포입니다. CI/CD는 새로운 코드 통합으로 인해 개발 및 운영팀에 발생하는 문제(일명 "인테그레이션 헬(integration hell)")을 해결하기 위한 솔루션입니다.
특히, CI/CD는 애플리케이션의 통합 및 테스트 단계에서부터 제공 및 배포에 이르는 애플리케이션의 라이프사이클 전체에 걸쳐 지속적인 자동화와 지속적인 모니터링을 제공합니다. 이러한 구축 사례를 일반적으로 "CI/CD 파이프라인"이라 부르며 개발 및 운영팀의 애자일 방식 협력을 통해 지원됩니다.
Introduction of the Red Hat OpenShift Service Mesh. What are service meshes? What is the difference between the Red Hat OpenShift Service Mesh and Istio?
Google Cloud Platform provides infrastructure and platform services including Compute Engine (IaaS), App Engine (PaaS), and storage and database services. The document provides an overview of these services, how they compare to traditional infrastructure approaches, and how to get started with Google Cloud Platform. Key services highlighted include Compute Engine for virtual machines, App Engine for scalable hosting of applications, BigQuery for big data analytics, and Cloud Storage for file storage.
This document provides an overview of Red Hat's OpenShift Platform-as-a-Service (PaaS). OpenShift simplifies and automates the development, deployment and scaling of applications. It allows developers to focus on coding instead of managing infrastructure. OpenShift runs applications securely in isolated containers (gears) on top of Red Hat Enterprise Linux. Developers can use integrated tools or a web console to develop, build and deploy applications. OpenShift then automatically scales applications based on demand. The open source OpenShift Origin project allows organizations to run their own private PaaS or contribute to the community.
introduction to flutter ppt - free downloadRajatPalankar2
Flutter is an open-source framework that allows for fast development through features like hot reload and hot restart that cut compilation time to under 30 seconds. It is easy to learn and use for anyone with basic OOPS and UI skills thanks to readily available widgets and a growing community providing support. Flutter's stateful widgets also enable highly productive iterative coding.
Inter-Process Communication in Microservices using gRPCShiju Varghese
This document discusses inter-process communication in microservices architectures using gRPC and Protocol Buffers. It begins with an overview of moving from a monolithic to a microservices architecture and the challenges of communication between independent services. It then covers considerations for building high performance APIs and why gRPC and Protocol Buffers are well-suited for microservices. The remainder details what gRPC is, how Protocol Buffers work, and how gRPC uses Protocol Buffers to provide a framework for remote procedure calls between services.
This document discusses OpenShift Container Platform, a platform as a service (PaaS) that provides a full development and deployment platform for applications. It allows developers to easily manage application dependencies and development environments across basic infrastructure, public clouds, and production servers. OpenShift provides container orchestration using Kubernetes along with developer tools and a user experience to support DevOps practices like continuous integration/delivery.
The document provides an overview of WebLogic Server topology, configuration, and administration. It describes key concepts such as domains, servers, clusters, Node Manager, and machines. It also covers configuration files, administration tools like the Administration Console and WLST, and some sample configuration schemes for development, high availability, and simplified administration.
Azure backup Disaster Recovery Business ContinuityMike Resseler
The document discusses various Azure storage options including Standard Storage Accounts, Azure Files, Azure Premium Storage Disks, and StorSimple. It also covers disaster recovery solutions like Azure Site Recovery and Windows Azure Backup. Key points covered include the differences between Azure disk and file storage, replication across Azure datacenters, using StorSimple for backup storage and disaster recovery, and third party hosting and replication solutions.
Microservices, Kubernetes and Istio - A Great Fit!Animesh Singh
Microservices and containers are now influencing application design and deployment patterns. Sixty percent of all new applications will use cloud-enabled continuous delivery microservice architectures and containers. Service discovery, registration, and routing are fundamental tenets of microservices. Kubernetes provides a platform for running microservices. Kubernetes can be used to automate the deployment of Microservices and leverage features such as Kube-DNS, Config Maps, and Ingress service for managing those microservices. This configuration works fine for deployments up to a certain size. However, with complex deployments consisting of a large fleet of microservices, additional features are required to augment Kubernetes.
Quarkus offers a great development experience. In this session, I’ll introduce you to the power of Quarkus Live Coding and tools that are useful to developers for debugging, deploying, and testing Quarkus applications.
Docker allows building, shipping, and running applications in portable containers. It packages an application with all its dependencies into a standardized unit for software development. Major cloud providers and companies support and use Docker in production. Containers are more lightweight and efficient than virtual machines, providing faster launch times and allowing thousands to run simultaneously on the same server. Docker simplifies distributing applications and ensures a consistent environment.
p2 is an extensible provisioning platform for OSGi systems that helps manage all aspects of software installation, deployment, updating, and servicing from build time to runtime. It provides a model where all installable software units are treated uniformly, along with tools for building, deploying, and managing software repositories. p2 decouples decision making from content to provide a flexible solution that can be used for provisioning in various environments and configurations.
After a brief recap of what p2 is and depicting the overall vision, the presenter will show how this vision is realized and how the improvements made to both the runtime (core and UI) and the tooling in Galileo pave the way for a better provisioning solution at Eclipse.
This document discusses and compares low-code development platforms Nintex and PowerApp. It provides an overview of programming language generations and how business application development has evolved from pre-packaged software to low-code platforms. Low-code platforms allow for rapid application development with minimal coding through visual interfaces and drag-and-drop functionality. The document reviews what distinguishes low-code from no-code platforms and provides details on Nintex's products, versions, and components before concluding with a demo of Nintex and PowerApp.
Virtualization has its origins in mainframe computing from the 1960s. It allows a single physical server to run multiple virtual machines, each with its own operating system and applications. This addresses challenges from the 1990s and 2000s as companies had many single-purpose physical servers with low utilization rates, high costs, and management complexity. Virtualization software introduces a hypervisor layer that partitions resources and isolates virtual machines so multiple operating systems can run independently on the same physical hardware. Today virtualization delivers benefits like server consolidation, high availability, disaster recovery, and rapid provisioning to improve efficiency and reduce costs.
Helm - the Better Way to Deploy on Kubernetes - Reinhard Nägele - Codemotion...Codemotion
Helm is the official package manager for Kubernetes. This session introduces Helm and illustrates its advantages over "kubectl" with plain Kubernetes manifests. We will learn about its architecture and features, such as lifecycle management, parameterizability using Go templating, chart dependencies, etc. Demos will explain how all the bits and pieces work together.
Azure Redis Cache is a cache service by Microsoft that uses Redis, an open-source in-memory data structure store. It provides caching that can increase performance and availability by temporarily copying frequently accessed data to fast storage close to applications. Redis can be used as a database, cache, and message broker. Azure Redis Cache handles authentication, SSL, monitoring, alerts and integrates with the Azure ecosystem. It allows caching without persistence, but Redis also supports append-only files and snapshots for data persistence. The document outlines how to connect to Azure Redis Cache from an application and consider patterns like cache-aside for unpredictable workloads. It also discusses cache invalidation, scaling Redis, and troubleshooting issues like missing keys.
Red Hat Ceph Storage is a massively scalable, software-defined storage platform that provides block, object, and file storage using a single, unified storage infrastructure. It offers several advantages over traditional proprietary storage, including lower costs, greater scalability, simplified maintenance, and an open source development model. Red Hat Ceph Storage 2 includes new capabilities like enhanced object storage integration, multi-site replication, and a new storage management console.
Node.Js: Basics Concepts and Introduction Kanika Gera
Node.js is a JavaScript runtime built on Chrome's V8 engine that allows JavaScript to run on the server side. It uses asynchronous and event-driven programming to handle thousands of concurrent connections with minimal overhead. The presentation introduces Node.js and its architecture, explaining how it uses a single thread with non-blocking I/O and an event loop to handle asynchronous operations efficiently. Examples are provided to illustrate synchronous vs asynchronous code. Common use cases for Node.js include real-time applications, chat/messaging, and high concurrency applications, while it is less suitable for heavy computation or large web apps.
source : http://www.opennaru.com/cloud/ci-cd/
CI/CD는 애플리케이션 개발 단계를 자동화하여 애플리케이션을 보다 짧은 주기로 고객에게 제공하는 방법입니다. CI/CD의 기본 개념은 지속적인 통합, 지속적인 서비스 제공, 지속적인 배포입니다. CI/CD는 새로운 코드 통합으로 인해 개발 및 운영팀에 발생하는 문제(일명 "인테그레이션 헬(integration hell)")을 해결하기 위한 솔루션입니다.
특히, CI/CD는 애플리케이션의 통합 및 테스트 단계에서부터 제공 및 배포에 이르는 애플리케이션의 라이프사이클 전체에 걸쳐 지속적인 자동화와 지속적인 모니터링을 제공합니다. 이러한 구축 사례를 일반적으로 "CI/CD 파이프라인"이라 부르며 개발 및 운영팀의 애자일 방식 협력을 통해 지원됩니다.
Introduction of the Red Hat OpenShift Service Mesh. What are service meshes? What is the difference between the Red Hat OpenShift Service Mesh and Istio?
Google Cloud Platform provides infrastructure and platform services including Compute Engine (IaaS), App Engine (PaaS), and storage and database services. The document provides an overview of these services, how they compare to traditional infrastructure approaches, and how to get started with Google Cloud Platform. Key services highlighted include Compute Engine for virtual machines, App Engine for scalable hosting of applications, BigQuery for big data analytics, and Cloud Storage for file storage.
This document provides an overview of Red Hat's OpenShift Platform-as-a-Service (PaaS). OpenShift simplifies and automates the development, deployment and scaling of applications. It allows developers to focus on coding instead of managing infrastructure. OpenShift runs applications securely in isolated containers (gears) on top of Red Hat Enterprise Linux. Developers can use integrated tools or a web console to develop, build and deploy applications. OpenShift then automatically scales applications based on demand. The open source OpenShift Origin project allows organizations to run their own private PaaS or contribute to the community.
introduction to flutter ppt - free downloadRajatPalankar2
Flutter is an open-source framework that allows for fast development through features like hot reload and hot restart that cut compilation time to under 30 seconds. It is easy to learn and use for anyone with basic OOPS and UI skills thanks to readily available widgets and a growing community providing support. Flutter's stateful widgets also enable highly productive iterative coding.
Inter-Process Communication in Microservices using gRPCShiju Varghese
This document discusses inter-process communication in microservices architectures using gRPC and Protocol Buffers. It begins with an overview of moving from a monolithic to a microservices architecture and the challenges of communication between independent services. It then covers considerations for building high performance APIs and why gRPC and Protocol Buffers are well-suited for microservices. The remainder details what gRPC is, how Protocol Buffers work, and how gRPC uses Protocol Buffers to provide a framework for remote procedure calls between services.
This document discusses OpenShift Container Platform, a platform as a service (PaaS) that provides a full development and deployment platform for applications. It allows developers to easily manage application dependencies and development environments across basic infrastructure, public clouds, and production servers. OpenShift provides container orchestration using Kubernetes along with developer tools and a user experience to support DevOps practices like continuous integration/delivery.
The document provides an overview of WebLogic Server topology, configuration, and administration. It describes key concepts such as domains, servers, clusters, Node Manager, and machines. It also covers configuration files, administration tools like the Administration Console and WLST, and some sample configuration schemes for development, high availability, and simplified administration.
Azure backup Disaster Recovery Business ContinuityMike Resseler
The document discusses various Azure storage options including Standard Storage Accounts, Azure Files, Azure Premium Storage Disks, and StorSimple. It also covers disaster recovery solutions like Azure Site Recovery and Windows Azure Backup. Key points covered include the differences between Azure disk and file storage, replication across Azure datacenters, using StorSimple for backup storage and disaster recovery, and third party hosting and replication solutions.
Microservices, Kubernetes and Istio - A Great Fit!Animesh Singh
Microservices and containers are now influencing application design and deployment patterns. Sixty percent of all new applications will use cloud-enabled continuous delivery microservice architectures and containers. Service discovery, registration, and routing are fundamental tenets of microservices. Kubernetes provides a platform for running microservices. Kubernetes can be used to automate the deployment of Microservices and leverage features such as Kube-DNS, Config Maps, and Ingress service for managing those microservices. This configuration works fine for deployments up to a certain size. However, with complex deployments consisting of a large fleet of microservices, additional features are required to augment Kubernetes.
Quarkus offers a great development experience. In this session, I’ll introduce you to the power of Quarkus Live Coding and tools that are useful to developers for debugging, deploying, and testing Quarkus applications.
Docker allows building, shipping, and running applications in portable containers. It packages an application with all its dependencies into a standardized unit for software development. Major cloud providers and companies support and use Docker in production. Containers are more lightweight and efficient than virtual machines, providing faster launch times and allowing thousands to run simultaneously on the same server. Docker simplifies distributing applications and ensures a consistent environment.
p2 is an extensible provisioning platform for OSGi systems that helps manage all aspects of software installation, deployment, updating, and servicing from build time to runtime. It provides a model where all installable software units are treated uniformly, along with tools for building, deploying, and managing software repositories. p2 decouples decision making from content to provide a flexible solution that can be used for provisioning in various environments and configurations.
After a brief recap of what p2 is and depicting the overall vision, the presenter will show how this vision is realized and how the improvements made to both the runtime (core and UI) and the tooling in Galileo pave the way for a better provisioning solution at Eclipse.
Extend Eclipse p2 framework capabilities: Add your custom installation stepsDragos_Mihailescu
This document discusses extending the capabilities of the Eclipse p2 framework by adding custom installation steps. It describes implementing a custom p2 touchpoint and action for the CodeWarrior IDE to provide a "Multi User Install" capability. This allows installing Eclipse files in both administrator-level and user-level locations to support multiple users accessing the same installation. The goal is to continue enhancing the p2 updater functionality to better manage external Eclipse files, include uninstall support for external files, and synchronize with new p2 releases from the Eclipse project.
The document discusses simplifying update and extension installation for RCP applications. It describes improvements made in Eclipse 3.6 to make the update process simpler using the p2 provisioning system. These include a declarative API, branding and metadata enhancements, moving Mylyn Discovery to p2, and enhancing the self-update experience for RCP applications. Examples are provided of implementing self-update and extension installation using these new p2 capabilities.
Automating the consumption of Eclipse for internal usePascal Rapicault
Supporting a large user base implies catering to a lot of different needs.
In Ericsson's case this means building over 20 different eclipse distributions and creating a corporate wide p2 repository to make it easy for our users to get all the plugins they need.
To achieve the necessary customization of each eclipse distro with a high degree of automation, a wide variety of technologies has been used: product files, jenkins, tycho, jbehave, p2 tools, etc.
In this talk, we give an overview of our semi-automated workflow, where each technology fits and give you our tips and tricks.
In its 3.4 release, Eclipse introduced a new installation / update mechanism called p2. Beyond its Eclipse specific appearance, p2 is a modular provisioning platform for OSGi based systems (currently focused on Equinox) addressing the wide spectrum of provisioning needs from small devices to servers through desktops. In this talk, p2 key concepts and architecture will be introduced, and p2's flexibility will also be demonstrated. As importantly as the actual technology, this talk will also discuss how p2 and the various tools help throughout the software lifecycle from development to serviceability.
This presentation shows how Eclipse plug-ins are developed. It has two purposes:
Introduce you to the architecture and techniques of a major component based application
Introduce you to basic Eclipse plug-in development – this will hopefully ease the needed programming in the rest of the course
This presentation is developed for MDD 2010 course at ITU, Denmark.
Lars Vogel gives a presentation on the state of Eclipse. He discusses his background with Linux and Eclipse. The presentation covers the Eclipse ecosystem, including the Eclipse Foundation and projects. Vogel describes how Eclipse is highly modular and extensible via plugins. He discusses Eclipse 4.0 and the move to a more flexible and model-driven architecture. In conclusion, Vogel recommends resources for learning more about Eclipse plugin and RCP development.
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Mack Hardy
Mack Hardy, Dave Tarc, Damien Norris of Affinity Bridge presenting at Pacific Northwest Drupal Summit in Vancouver, October 5th, 2013. The presentation walks through management of releases, deployment strategies and build strategies with drupal features, git, and make files. Performance and caching is also covered, as well as specific tips and tricks for configuring apache and managing private files.
eXo Platform SEA - Play Framework Introductionvstorm83
Play is a web framework for Java that aims to increase developer productivity. It uses a convention over configuration approach and includes features like hot code reloading, an integrated testing framework, and database support via Hibernate. Play lifts constraints of traditional Java web development by providing an easy to use full stack framework for building web applications.
Power Apps Component Framework - Dynamics Power! 365 Paris 2019 Allan De Castro
This presentation was presented at the Dynamics Power! 365 event in Paris in 2019.
For more information: https://www.365portal.org
Personal Blog : https://www.blog.allandecastro.com/
The document provides instructions for setting up Titanium Studio and the Titanium Mobile SDK to develop Android applications using Fastdev for live updates. It describes installing prerequisites, starting the Fastdev server, restarting the app to see changes, and supported Fastdev commands. Changes requiring a full rebuild are also outlined.
The document provides an overview of plugin development for Lotus Notes, Domino and Sametime applications using the Lotus Expeditor Toolkit. It discusses what plugins can do, how to install the Expeditor Toolkit plugin in Eclipse, the basic anatomy of a plugin, key extension points, and how to build user interfaces with SWT and jobs. The presentation also demonstrates how to create a sample plugin that reads data from a web service and displays it in a sidebar panel.
This document provides an introduction and agenda for a seminar on plugin development for Lotus Notes, Domino and Sametime. It discusses what plugins are, why develop them, and provides an overview of the key Eclipse extension points and APIs that can be used to build plugins that extend the functionality of Lotus applications. The agenda includes topics like the Eclipse and Lotus Expeditor Toolkit, plugin basics, building UIs with SWT and JFace, threading with Jobs, logging, debugging and deployment.
This document provides an overview of plugin development for Lotus Notes, Domino and Sametime. It discusses the speaker's background in plugin development and the various capabilities and advantages of developing plugins. The agenda outlines topics like the Eclipse architecture, installing the Lotus Expeditor Toolkit, plugin basics, UI development using SWT and JFace, using jobs for threading, logging APIs, debugging, and deployment. Code examples are provided for many of these concepts.
The document discusses Alfresco architecture and content management systems. It describes Alfresco as an open source content management system built on Java. It details Alfresco's architecture including its use of Spring framework, repository services, and web architecture with applications built on top of the repository. It also discusses plug-in development in Eclipse.
The document discusses the core components of an Android application including activities, services, broadcast receivers, and content providers. It describes how these components are declared in the manifest file and how they are activated via intents. The document also covers the application resources, project structure, and security model of Android applications.
- Eclipse is an open-source integrated development environment originally developed by IBM. It started in 2001 and was released as open source software.
- The Eclipse platform consists of three main components: the runtime platform, the Java development toolkit (JDT), and the plug-in development environment.
- Plugins can be used to extend Eclipse's functionality and are available through the Eclipse marketplace. Common plugins include support for web development, UML modeling, and log viewing.
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxJustin Reock
Building 10x Organizations with Modern Productivity Metrics
10x developers may be a myth, but 10x organizations are very real, as proven by the influential study performed in the 1980s, ‘The Coding War Games.’
Right now, here in early 2025, we seem to be experiencing YAPP (Yet Another Productivity Philosophy), and that philosophy is converging on developer experience. It seems that with every new method we invent for the delivery of products, whether physical or virtual, we reinvent productivity philosophies to go alongside them.
But which of these approaches actually work? DORA? SPACE? DevEx? What should we invest in and create urgency behind today, so that we don’t find ourselves having the same discussion again in a decade?
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfSoftware Company
Explore the benefits and features of advanced logistics management software for businesses in Riyadh. This guide delves into the latest technologies, from real-time tracking and route optimization to warehouse management and inventory control, helping businesses streamline their logistics operations and reduce costs. Learn how implementing the right software solution can enhance efficiency, improve customer satisfaction, and provide a competitive edge in the growing logistics sector of Riyadh.
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Impelsys Inc.
Impelsys provided a robust testing solution, leveraging a risk-based and requirement-mapped approach to validate ICU Connect and CritiXpert. A well-defined test suite was developed to assess data communication, clinical data collection, transformation, and visualization across integrated devices.
Procurement Insights Cost To Value Guide.pptxJon Hansen
Procurement Insights integrated Historic Procurement Industry Archives, serves as a powerful complement — not a competitor — to other procurement industry firms. It fills critical gaps in depth, agility, and contextual insight that most traditional analyst and association models overlook.
Learn more about this value- driven proprietary service offering here.
Technology Trends in 2025: AI and Big Data AnalyticsInData Labs
At InData Labs, we have been keeping an ear to the ground, looking out for AI-enabled digital transformation trends coming our way in 2025. Our report will provide a look into the technology landscape of the future, including:
-Artificial Intelligence Market Overview
-Strategies for AI Adoption in 2025
-Anticipated drivers of AI adoption and transformative technologies
-Benefits of AI and Big data for your business
-Tips on how to prepare your business for innovation
-AI and data privacy: Strategies for securing data privacy in AI models, etc.
Download your free copy nowand implement the key findings to improve your business.
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc
Most consumers believe they’re making informed decisions about their personal data—adjusting privacy settings, blocking trackers, and opting out where they can. However, our new research reveals that while awareness is high, taking meaningful action is still lacking. On the corporate side, many organizations report strong policies for managing third-party data and consumer consent yet fall short when it comes to consistency, accountability and transparency.
This session will explore the research findings from TrustArc’s Privacy Pulse Survey, examining consumer attitudes toward personal data collection and practical suggestions for corporate practices around purchasing third-party data.
Attendees will learn:
- Consumer awareness around data brokers and what consumers are doing to limit data collection
- How businesses assess third-party vendors and their consent management operations
- Where business preparedness needs improvement
- What these trends mean for the future of privacy governance and public trust
This discussion is essential for privacy, risk, and compliance professionals who want to ground their strategies in current data and prepare for what’s next in the privacy landscape.
Big Data Analytics Quick Research Guide by Arthur MorganArthur Morgan
This is a Quick Research Guide (QRG).
QRGs include the following:
- A brief, high-level overview of the QRG topic.
- A milestone timeline for the QRG topic.
- Links to various free online resource materials to provide a deeper dive into the QRG topic.
- Conclusion and a recommendation for at least two books available in the SJPL system on the QRG topic.
QRGs planned for the series:
- Artificial Intelligence QRG
- Quantum Computing QRG
- Big Data Analytics QRG
- Spacecraft Guidance, Navigation & Control QRG (coming 2026)
- UK Home Computing & The Birth of ARM QRG (coming 2027)
Any questions or comments?
- Please contact Arthur Morgan at [email protected].
100% human made.
Role of Data Annotation Services in AI-Powered ManufacturingAndrew Leo
From predictive maintenance to robotic automation, AI is driving the future of manufacturing. But without high-quality annotated data, even the smartest models fall short.
Discover how data annotation services are powering accuracy, safety, and efficiency in AI-driven manufacturing systems.
Precision in data labeling = Precision on the production floor.
Dev Dives: Automate and orchestrate your processes with UiPath MaestroUiPathCommunity
This session is designed to equip developers with the skills needed to build mission-critical, end-to-end processes that seamlessly orchestrate agents, people, and robots.
📕 Here's what you can expect:
- Modeling: Build end-to-end processes using BPMN.
- Implementing: Integrate agentic tasks, RPA, APIs, and advanced decisioning into processes.
- Operating: Control process instances with rewind, replay, pause, and stop functions.
- Monitoring: Use dashboards and embedded analytics for real-time insights into process instances.
This webinar is a must-attend for developers looking to enhance their agentic automation skills and orchestrate robust, mission-critical processes.
👨🏫 Speaker:
Andrei Vintila, Principal Product Manager @UiPath
This session streamed live on April 29, 2025, 16:00 CET.
Check out all our upcoming Dev Dives sessions at https://community.uipath.com/dev-dives-automation-developer-2025/.
Artificial Intelligence is providing benefits in many areas of work within the heritage sector, from image analysis, to ideas generation, and new research tools. However, it is more critical than ever for people, with analogue intelligence, to ensure the integrity and ethical use of AI. Including real people can improve the use of AI by identifying potential biases, cross-checking results, refining workflows, and providing contextual relevance to AI-driven results.
News about the impact of AI often paints a rosy picture. In practice, there are many potential pitfalls. This presentation discusses these issues and looks at the role of analogue intelligence and analogue interfaces in providing the best results to our audiences. How do we deal with factually incorrect results? How do we get content generated that better reflects the diversity of our communities? What roles are there for physical, in-person experiences in the digital world?
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPathCommunity
Join this UiPath Community Berlin meetup to explore the Orchestrator API, Swagger interface, and the Test Manager API. Learn how to leverage these tools to streamline automation, enhance testing, and integrate more efficiently with UiPath. Perfect for developers, testers, and automation enthusiasts!
📕 Agenda
Welcome & Introductions
Orchestrator API Overview
Exploring the Swagger Interface
Test Manager API Highlights
Streamlining Automation & Testing with APIs (Demo)
Q&A and Open Discussion
Perfect for developers, testers, and automation enthusiasts!
👉 Join our UiPath Community Berlin chapter: https://community.uipath.com/berlin/
This session streamed live on April 29, 2025, 18:00 CET.
Check out all our upcoming UiPath Community sessions at https://community.uipath.com/events/.
Semantic Cultivators : The Critical Future Role to Enable AIartmondano
By 2026, AI agents will consume 10x more enterprise data than humans, but with none of the contextual understanding that prevents catastrophic misinterpretations.
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...Alan Dix
Talk at the final event of Data Fusion Dynamics: A Collaborative UK-Saudi Initiative in Cybersecurity and Artificial Intelligence funded by the British Council UK-Saudi Challenge Fund 2024, Cardiff Metropolitan University, 29th April 2025
https://alandix.com/academic/talks/CMet2025-AI-Changes-Everything/
Is AI just another technology, or does it fundamentally change the way we live and think?
Every technology has a direct impact with micro-ethical consequences, some good, some bad. However more profound are the ways in which some technologies reshape the very fabric of society with macro-ethical impacts. The invention of the stirrup revolutionised mounted combat, but as a side effect gave rise to the feudal system, which still shapes politics today. The internal combustion engine offers personal freedom and creates pollution, but has also transformed the nature of urban planning and international trade. When we look at AI the micro-ethical issues, such as bias, are most obvious, but the macro-ethical challenges may be greater.
At a micro-ethical level AI has the potential to deepen social, ethnic and gender bias, issues I have warned about since the early 1990s! It is also being used increasingly on the battlefield. However, it also offers amazing opportunities in health and educations, as the recent Nobel prizes for the developers of AlphaFold illustrate. More radically, the need to encode ethics acts as a mirror to surface essential ethical problems and conflicts.
At the macro-ethical level, by the early 2000s digital technology had already begun to undermine sovereignty (e.g. gambling), market economics (through network effects and emergent monopolies), and the very meaning of money. Modern AI is the child of big data, big computation and ultimately big business, intensifying the inherent tendency of digital technology to concentrate power. AI is already unravelling the fundamentals of the social, political and economic world around us, but this is a world that needs radical reimagining to overcome the global environmental and human challenges that confront us. Our challenge is whether to let the threads fall as they may, or to use them to weave a better future.
AI and Data Privacy in 2025: Global TrendsInData Labs
In this infographic, we explore how businesses can implement effective governance frameworks to address AI data privacy. Understanding it is crucial for developing effective strategies that ensure compliance, safeguard customer trust, and leverage AI responsibly. Equip yourself with insights that can drive informed decision-making and position your organization for success in the future of data privacy.
This infographic contains:
-AI and data privacy: Key findings
-Statistics on AI data privacy in the today’s world
-Tips on how to overcome data privacy challenges
-Benefits of AI data security investments.
Keep up-to-date on how AI is reshaping privacy standards and what this entails for both individuals and organizations.
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025BookNet Canada
Book industry standards are evolving rapidly. In the first part of this session, we’ll share an overview of key developments from 2024 and the early months of 2025. Then, BookNet’s resident standards expert, Tom Richardson, and CEO, Lauren Stewart, have a forward-looking conversation about what’s next.
Link to recording, transcript, and accompanying resource: https://bnctechforum.ca/sessions/standardsgoals-for-2025-standards-certification-roundup/
Presented by BookNet Canada on May 6, 2025 with support from the Department of Canadian Heritage.
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveScyllaDB
Want to learn practical tips for designing systems that can scale efficiently without compromising speed?
Join us for a workshop where we’ll address these challenges head-on and explore how to architect low-latency systems using Rust. During this free interactive workshop oriented for developers, engineers, and architects, we’ll cover how Rust’s unique language features and the Tokio async runtime enable high-performance application development.
As you explore key principles of designing low-latency systems with Rust, you will learn how to:
- Create and compile a real-world app with Rust
- Connect the application to ScyllaDB (NoSQL data store)
- Negotiate tradeoffs related to data modeling and querying
- Manage and monitor the database for consistently low latencies
Heap, Types of Heap, Insertion and DeletionJaydeep Kale
Ad
Understanding and extending p2 for fun and profit
1. Using p2 for fun and profit Pascal Rapicault* Ian Bull** Andrew Niefer* Jeff McAffer** * IBM Rational ** EclipseSource
2. Provision what – where Engineers Users Test Automated Builds Test source code open source licensed software in-house built applications tools runtimes
3. Packaged applications – source code Strict policy control – full flexibility Approved repositories – any repository Fixed configuration – dynamic configuration Fully automatic – user driven – (headless) U pdate to latest – update to policy controlled (downgrade) Wide range of requirements
4. An extensible provisioning platform Install and update technology in the SDK since 3.4 New UI, simplified workflow Manage Eclipse, RCP and more exe, ini, bundles, registry keys, native code, … Shared bundles across Eclipse-based products A provisioning solution for OSGi™ systems Managing non-running instance Start level, framework extension Fine-grained dependency management p2 is about installing!
5. Eclipse proves the power of componentization Componentization naturally spreads More components -> more management Management is hard It’s all about the Contract Defining Instantiating Executing Maintaining Trends in Eclipse
6. How does p2 help? Manages the contract Dependencies Code Settings Integrations Non-Eclipse parts Extensible GUI and Headless One consistent model
7. From Install to Service Installing and Updating are the same operations Installed shape same as zip shape Flexibility in delivery Programmatic API for all operations p2 offers a continuum from initial installation to serviceability
8. p2 in wild Installer for products (EPP Wizard, WindRiver, Motorola, IBM Rational, etc.) Server managed deployment solution and distros (Genuitec, EclipseSource) Remote management of device (EclipseSource) Dynamic builder – Buckminster (Cloudsmith) Provisioning of server side (EclipseSource) Cloud provisioning (EclipseSource)
9. Outline p2 by example Integrating p2 in a feature based RCP application p2 concepts and architecture Layout of our application on disk and additional p2 concepts Creating and delivering an update Creating and delivering an extension Automated build and repo management Repo management Metadata publication (source and product) Categorizing content Deeper in p2 Additional p2 constructs From plug-ins and feaures to metadata Plug-ins map Reusing and tweaking the UI Advanced concepts
10. p2 by example Integrating p2 in a feature based RCP application p2 concepts and architecture Layout of our application on disk and additional p2 concepts Creating and delivering an update Creating and delivering an extension Build and repo management Deeper in p2
11. What is RCP? Rich Client Platform The minimal set of plug-ins needed to build a Rich Client Application Clients are free to use other plug-ins Help p2 GEF / Draw2D Birt … Integrate p2 in an RCP Application Publish the application to a repository Install the application using p2 Update an existing install Add new functionality to the RCP application
12. What is a Product? An application-specific branding on top of a configuration of Eclipse plug-ins Application icon Splash screen Help -> About information Platform specific launcher
13. Creating a feature based product Integrate p2 in an RCP Application Publish the application to a repository Install the application using p2 Update an existing install Add new functionality to the RCP application In the following example we are using a feature based product. However plug-in based product is supported Create a Bundle for y our mail application Every bundle needs a name and version with a qualifier Let's call ours: org.example.mail
14. Creating a feature based product Integrate p2 in an RCP Application Publish the application to a repository Install the application using p2 Update an existing install Add new functionality to the RCP application Every bundle needs a name and version with a qualifier Of course we want a Rich Client Application
15. Creating a feature based product PDE contains all sorts of examples, templates and documentation
16. Creating a feature for our plug-in Features have a name and version too Let's create a Feature
17. A feature for the p2 parts In order to keep things separated in the application, we create a feature that contains the p2 plug-ins we need. For this example, it does not include the support for legacy sites nor drop-ins.
18. Creating the product file Let's create a Product Let's base our product off features On the dependencies tab we add the features that constitute the product
20. The running product In self-hosting mode, the application being launched is not p2-enabled, as such the p2 dialogs can not be brought up. We can only update if we have a profile. This problem will unlikely be addressed in 3.5.
22. The result of the export The export produced the application in a runnable form and also repositories. The application in a runnable form is *not* p2-enabled and will fail to open the p2 dialogs. This should be fixed for 3.5. Notice the file extensions on the artifacts and content file! What's in these JAR files? p2 repositories.
23. p2 by example Integrating p2 in a feature based RCP application p2 concepts and architecture Layout of our application on disk and additional p2 concepts Creating and delivering an update Creating and delivering an extension Build and repo management Deeper in p2
24. One construct to rule them all Decouple decision making from the actual content Everything is an IU Everything is installable It is also referred to as “metadata” IU (id, ver)
25. Anatomy of an IU Provided Capabilities Required Capabilities Properties Artifact reference Actions Class: IInstallableUnit IU (id, ver)
26. Anatomy of an IU, more Update description This allows to control of which IU and IU is an update of Applicability filter This allows for an IU to express when it is only applicable to a particular environment.
27. Anatomy of an IU, requirements / capabilities Capabilities and requirements are the mechanism by which an IU express what it provides and what needs. A capability is composed of a: Namespace (string), name (string) and version A requirement is composed of a: Namespace, name and version range Namespace, name and version are open ended. The requirements and capabilities expressed by IUs can be arbitrary and don’t have to all be in the same namespace. Resources – RPMs, .exes, docs, … Virtual – if you can define a capability, I can depend on it
28. Separation of concerns Installable Unit Exists independently of the repository Metadata Repository Store only Installable Units Artifact Repository Store only Artifacts Metadata Artifacts
29. Artifacts Bytes/content to be installed Any form JARs (e.g., bundles, features, …) Binary executables RPM, MSI, … Defined, maintained, loaded and used separately from the metadata
30. Repositories p2 does not force a serialization format for repositories Defined as an interface, IRepository All repositories have Identity Version Description Repos can be queried Allows for delayed loading Captures standard questions
31. Metadata Repository Defined as an interface, IMetadataRepository Add/remove installable units Add references to other repos Created by factories Looked up in an IMetadataRepositoryManager service
32. Built-in metadata repositories URL and Local based Simple XML format on disk ( content.jar / content.xml ) Write (re)writes the entire structure Update site repo site.xml and features are auto-published into local repo Bundle IUs published as partial IUs and filled in on demand
33. Artifact Repository Defined as an interface, IArtifactRepository Add/remove descriptors Test content Access artifacts by descriptor Created by factories Looked up in an IArtifactRepositoryManager service
34. Artifact Repository An artifact can be stored in multiple forms IArtifactKey, is the artifact identifier independently of its form A key is made of: Classifier, name, version The key is what an installable unit refers to IArtifactDescriptor identifies actual content in a particular form Location of actual artifact (can be independent of repository location) Processing steps necessary to recreate the artifact in the expected form (e.g. unpack for pack200’ed jars) Download size, on-disk size, MD5, etc..
35. Id + version == unique content For artifacts and IUs: Id + version == unique content Failing this could result in problems: [1] Your user does not run the content it should MD5 or signature verification error at install time PDE and p2 help avoid these problems with comparison tools [1] Andrew’s short talk.
36. Built-in artifact repositories SimpleArtifactRepository Simple XML format on disk ( artifacts.jar / artifacts.xml ) Write (re)writes the entire structure
37. p2 Architecture Metadata Artifacts Runtimes Profiles OS Eclipse Engine Eclipse Classic Eclipse for C++ Other Director Repositories Touchpoints
38. The Director Application A command line app to perform basic provisioning operations (install / uninstall) The director is capable of provisioning a complete installation from scratch or simply extending your application Can provision into self or another application http://wiki.eclipse.org/Equinox_p2_director_application
40. p2 in Action Transports Http/Https File system Volume Director Profiles Runtimes Provisioning operation requested Metadata fetched and constraints analyzed IU install, uninstall, update operations Artifact availability and mirroring Mirroring Data transfer IUs configured into runtimes Profile updated Repositories p2 Update Site Engine Eclipse/OSGi Native/OS
41. p2 by example Integrating p2 in a feature based RCP application p2 concepts and architecture Layout of our application on disk and additional p2 concepts Creating and delivering an update Creating and delivering an extension Build and repo management Deeper in p2
42. A p2-enabled application Because we installed our product, we have a profile and the p2 dialog can come up
44. Layout of an installation Configuration area p2 data area Artifact repository index. This allows the plug-ins to be served to other instances.
45. Configuration data detailed Simple configurator provides the OSGi framework the list of bundles to run. The information stored in bundles.info is Location, id, version, start level, started state Configuration area Simple configurator data
46. p2 data area Download cache, where non-eclipse pieces are mirrored before being installed. Profile registry Storage for the profile Lock file created when the profile is being modified Current and previous state of the system MailApp.profile
47. Profile and profile registry A profile is the complete description in terms of IU of what is installed A profile contains Properties defining the “environment” such as os, ws, arch, install location, bundle pool location The list of IUs Properties associated with each IUs Profiles are held by a profile registry A profile registry can hold on to several profiles Class: *.p2.engine.IProfile, IProfileRegistry
48. Management modes and profile registry External mode The p2 plug-ins are external to the application (e.g an installer) Co-hosted mode The p2 plug-ins are in your application (e.g. the Eclipse SDK). This mode still allows the application to be externally managed. For each case, the profile registry (in fact the p2 data area) can be hosted either in the application being managed or in the managing application.
49. Changing a profile A profile is usually created during the initial installation It is changed by provisioning operations performed using: The director application The API The UI …
50. p2 by example Integrating p2 in a feature based RCP application p2 concepts and architecture Layout of our application on disk and additional p2 concepts Creating and delivering an update Creating and delivering an extension Build and repo management Deeper in p2
51. Creating an update Let's make a small change to our product and update the version
52. Version Numbers p2 relies heavily on version numbers major.minor.service.qualifier Semantics of segment changes Major – Breaking API changes Minor – New API Service – Bug fixes and minor enhancements Qualifier – Build id, source control tag Qualifier is a string Typically source control tag IU versions should be monotonically increasing
56. p2 by example Integrating p2 in a feature based RCP application p2 concepts and architecture Layout of our application on disk and additional p2 concepts Creating and delivering an update Creating and delivering an extension Build and repo management Deeper in p2
57. Creating a new plug-in to install Don’t forget to specify .qualifier.
58. Create a feature to deliver our plug-ins By default p2 UI is not configured to show plug-ins in “ Install new software view ”. You need to use a feature.
59. Exporting the feature How do you create a repository for your exported bundles / features ? You set the option to that effect in the “options” tab.
60. The publisher The publisher is responsible for creating (publishing) repositories from different types of sources Bundles and Features Publisher UpdateSite Publisher Product Publisher Category Publisher
61. Features and Bundles Publisher ./eclipse -console -consolelog -application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher -metadataRepository file:c:/mail/repository -artifactRepository file:c:/mail/repository -source c:/staging -append -publishArtifacts This will generate metadata for the plug-ins and features found in source. Note that PDE has an option to do it automatically.
64. p2 by example Build and repo management Repo management Metadata publication (source and product) Categorizing content Deeper in p2
65. Import Existing Projects into Workspace Select the org.eclipse.pde.build.examples.rcp.cloud.releng.zip archive Choose the org.eclipse.pde.build.examples.rcp.cloud.releng project. Import Plugins and Fragments Import org.eclipse.pde.build as a binary project Running the Example Run buildProduct.xml as Ant Build using the same JRE as the workspace Example: Building with p2
66. Slicing repositories The p2.mirror task can easily slice repositories into subset based on given Ius. The example requires p2 bundles, as a demonstration we create a new repository containing the contents of the org.eclipse.equinox.p2.user.ui feature, along with a few other bundles. Specify IUs to mirror into new location Set Slicing Options to include the desired dependencies: includeOptional : whether to include optional dependencies followStrict: only follow strict dependencies (eq: [1.0.0.v2009, 1.0.0.v2009] platformFilter: only mirror Ius matching the given platform filter includeNonGreedy: mirror non-greedy dependencies <p2.mirror source= "${Eclipse.Repo-3.5M6}" destination= "${p2Repo}" > <slicingOptions followStrict= "true" /> <iu id= "org.eclipse.equinox.p2.user.ui.feature.group" /> <iu id= "org.eclipse.ecf" /> <iu id= "org.eclipse.ecf.filetransfer" /> .... <iu id= "org.apache.ant" /> <iu id= "org.eclipse.core.runtime.compatibility.registry" /> </p2.mirror> The <iu> elements also support a “version” attribute, if this attribute is not specified, the highest version found is mirrored. [org.eclipse.pde.build.examples.rcp.cloud.releng/buildProduct.xml createP2Repo]
67. Transforming repositories Some bundles must be transformed into folder shape before we can compile against them. p2 provides a task that tranforms bundles into their installed shape. PDE Build has built in support for this using the properties: repoBaseLocation : a folder on disk containing repositories to transform transformedRepoLocation : the destination repository <p2.repo2runnable destination= "${transformedRepoLocation}" > <source dir= "${repoBaseLocation}/" includes= "*" /> </p2.repo2runnable> <source> elements Nested <source> elements are ant filesets that support an extra attribute “ location ” The “ location ” attribute specifies a URL to a repository used for both metadata and artifacts If no “ location ” attribute is specified: folders matched by the fileset are loaded as repositories Files ending in “.zip” are loaded as zipped repositories <iu> elements Nested <iu> elements specify specific IUs to transform If no <iu> elements are specified, the entire repository is transformed [org.eclipse.pde.build/scripts/genericTargets.xml transformRepos]
68. p2 by example Build and repo management Repo management Metadata publication (source and product) Categorizing content Deeper in p2
69. Publishing metadata Publishing from Source PDE Build extends the publisher and provides an ant tasks to publish to repositories directly from the source for a bundle or feature: Source contains more inputs that can be used to generate metadata (build.properties, p2.inf) Features can have rootfile IUs and artifacts associated with them Allows for some performance gains when over 3.4 style metadata generation. Publishing from Binaries The publisher provides an ant task to publish metadata from binary jars: <p2.publish.featuresAndBundles repository= "file:C:/dev/repo" > <bundles dir= "C:\eclipse\plugins" includes= "org.eclipse.equinox.launcher_1.0.200.v20090306-1900.jar" /> <features dir= "C:\eclipse\features" includes= "org.eclipse.rcp_3.5.0.v20090307-9RA-FqhFstOCxSdfkxdojLKc" /> </p2.publish.featuresAndBundles> Both the <bundles> and <features> nested elements are ant filesets specifying folders and jars to publish. PDE Build has an equivalent task “ eclipse.publish.featuresAndBundles ” which does the same but also supports a “ site ” attribute for category generation. [org.eclipse.pde.build.examples.rcp.cloud.releng/buildDirectory/assemble.org.eclipse.pde.build.container.feature.win32.win32.x86.xml]
70. Publishing Products Branding Artifacts PDE Build supports branding artifacts. This will Download input artifact, generally artifacts from org.eclipse.equinox.executable Brand the executable and replace icons Republish the branded artifact using the product id and version [org.eclipse.pde.build.examples.rcp.cloud.releng\buildDirectory\assemble.org.eclipse.pde.build.container.feature.p2.xml <eclipse.brand.p2.artifacts>] Publishing the Product The publisher provides an ant task to publish products using a .product file. Allows publishing of products without running a build, provided all required IUs already exist in the repository [org.eclipse.pde.build.examples.rcp.cloud.releng\buildDirectory\assemble.org.eclipse.pde.build.container.feature.p2.xml <p2.publisher.product>] Default Configuration IUs PDE Build will generate default configuration IUs for : Setting default start levels Including equinox launchers, setting -startup - -launcher.library [org.eclipse.pde.build.examples.rcp.cloud.releng\buildDirectory\features\org.eclipse.pde.build.container.feature\product\p2.inf]
77. UpdateSite Publisher ./eclipse -console -consolelog -application org.eclipse.equinox.p2.updatesite.UpdateSitePublisher -metadataRepository file:c:/mail/repository -artifactRepository file:c:/mail/repository -source C:\staging\updateSite\com.example.mail.updatesite -append -publishArtifacts When using the category.xml, use the org.eclipse.equinox.p2.publisher.CategoryPublisher
78.
79. p2 by example Build and repo management Deeper in p2 Additional p2 constructs From plug-ins and features to metadata Plug-ins map Reusing and tweaking the UI Advanced concepts
80. Installable Unit Fragments An installable unit fragment is an entity that attaches to an installable unit. Much like OSGi fragments, IU fragments are used to complement an existing installable unit and appear as one with the IU they attached to. They are typically used to deliver configuration information to an installable unit (e.g. start level). IU fragments can be attached to several IU at the same time. See for example the tooling.osgi.bundle.default IU that applies to all bundles. Note that IU fragments are not how OSGi fragments are delivered. OSGi fragments are delivered as regular IU with requirements on their host. Class: IInstallableUnitFragment
81. Installable Unit Patches An installable unit patch has the ability to “modify” the requirements of any other installable unit. Deal with three concerns: The IUs to which the patch apply The lifecycle of patch The changes applied Note: In 3.5 the feature patch editor only exposes some of those capabilities. See also http://aniefer.blogspot.com/2009/06/patching-features-with-p2.html
82. Installable Units There is only 3 kinds of IU: InstallableUnit, InstallableUnitFragment and InstallableUnitPatch To ease the discussion we use the following terms: Group IU: any IU with the group property set to true. It usually results from the metadata generated for a feature. Product IU: an representing the root of a product (e.g. org.eclipse.sdk.ide). It usually results from the metadata generated for a product. CU: an IU Fragment carrying configuration information (e.g. start level)
83. p2 by example Build and repo management Deeper in p2 Additional p2 constructs From plug-ins and features to metadata Plug-ins map Reusing and tweaking the UI Advanced concepts
84. Understanding the metadata generated Feature A feature results in two IUs: one capturing the dependencies to other plug-ins and features and one IU representing the feature.jar. Note that ids for the feature being generated are suffixed: org.eclipse.rcp org.eclipse.rcp.feature.group & org.eclipse.rcp.feature.jar OSGi bundle One IU provides capabilities for : each exported package, indicating that it is a bundle Indicating its bundle name <provided namespace='osgi.bundle' name='org.apache.commons.codec' version='1.3.0'/> <provided namespace='java.package' name='org.apache.commons.codec' version='1.3.0'/> <provided namespace='java.package' name='org.apache.commons.codec.binary' version='1.3.0'/> <provided namespace='java.package' name='org.apache.commons.codec.digest' version='1.3.0'/> <provided namespace='java.package' name='org.apache.commons.codec.language' version='1.3.0'/> <provided namespace='java.package' name='org.apache.commons.codec.net' version='1.3.0'/> <provided namespace='org.eclipse.equinox.p2.eclipse.type' name='bundle' version='1.0.0'/>
85. Understanding the metadata generated OSGi fragment Same as OSGi bundle plus a capability indicating it is a fragment. The requirement on the host become regular dependencies The exe An IU The config.ini and eclipse.ini Pure metadata. The files are not downloaded they are the result of the installation. Several InstallableUnitFragments (e.g. toolingorg.eclipse.equinox.launcher or toolingorg.eclipse.equinox.simpleconfigurator ). <provided namespace='osgi.fragment' name='org.eclipse.swt' version='3.5.0.v3536b'/> <provided namespace='osgi.bundle' name='org.eclipse.swt.win32.win32.x86' version='3.5.0.v3536b'/> It is important to remember that this is only the metadata generated by the applications provided as part of the publisher, but the metadata is generic and is yours to extend.
86. p2 by example Build and repo management Deeper in p2 Additional p2 constructs From plug-ins and features to metadata Plug-ins map Reusing and tweaking the UI Advanced concepts
87. Plug-ins map ECF Eclipse touchpoint Native touchpoint Tooling OSGi Update site repository engine Metadata Director Repository UI … …
88. The minimal set of plug-ins required to provision with p2. They define the core p2 concepts. core Provides some basic infrastructure for most plug-ins. It defines Query, Version and other helpers. metadata Defines the interfaces for the metadata: IInstallableUnit, IUFragment, IUPatch engine Executes a set of operations against a profile. Engine.perform(…) Defines the concept of touchpoint and action: ProvisioningAction Defines profile preference scope Contains the download manager (should not be here ) director Implements the resolution mechanism of p2. Depends on the org.sat4j.* bundles . Core plug-ins ( 1 /2)
89. Core plug-ins (2/2) repository Defines concept of Repository and repository manager. Interfaces with ECF. metadata.repository Defines the metadata repository API and the repository manager. Implements the simple metadata repository (content.jar / content.xml), composite metadata repository. Ant tasks: p2.composite.* to manage composite repos. Application: org.eclipse.equinox.p2.metadata.repository.mirrorApplication. artifact.repository Same than metadata repository for artifacts. Implements processing steps for MD5, pack200 and zipVerifier. Ant tasks: p2.artifact.mirror, p2.composite.artifact.* to manage composite repos [1]. Application: org.eclipse.equinox.p2.artifact.repository.mirrorApplication. garbagecollector Basic garbage collector loop and extension point. Repository and touchpoint agnostic. examplarysetup The plug-in of shame. Pulling all the pieces together. [1] - Ant task - http://wiki.eclipse.org/Equinox/p2_Ant_Tasks
90. Transport related plug-ins p2 uses ECF because it offers pluggable transport . org.eclipse.equinox.p2.repository Interfacing of p2 with ECF org.eclipse.ecf, org.eclipse.ecf.identity,org.eclipse.ecf.ssl Core ECF bundles org.eclipse.ecf.filetransfer Defines the interface to transfer file with ECF org.eclipse.ecf.provider.filetransfer, org.eclipse.ecf.provider.filetransfer.ssl Provides the implemtation of the service defined in ecf.filetransfer org.eclipse.ecf.provider.filetransfer.httpclient, org.eclipse.ecf.provider.filetransfer.httpclient.ssl Interface ECF with org.apache.commons.httpclient org.apache.commons.httpclient The http client from apache (in 3.5 we are using the 3.0.1 implementation)
91. Eclipse management touchpoint.eclipse Defines the touchpoint and actions necessary to install into eclipse (setStartLevel, installBundle, etc). See [1] fwkadmin Abstract the eclipse touchpoint from the implementation details of a particular OSGi framework. fwkadmin.equinox Implementation of the fwkadmin API for the Equinox framework. It knows how to reason about config.ini and eclipse.ini simpleconfigurator.manipulator Bundles.info writer. simpleconfigurator This bundle is used on startup to tell the OSGi framework what to run. It reads the bundles.info file located in configuration/org.eclipse.equinox.simpleconfgurator/bundles.info [1] – Actions defined by eclipse touchpoint - http://wiki.eclipse.org/Equinox/p2/Engine/Touchpoint_Instructions
92. Native support touchpoint.natives Defines actions such as chmod, link, unzip, etc. [1] [1] – Actions defined by native touchpoint - http://wiki.eclipse.org/Equinox/p2/Engine/Touchpoint_Instructions
93. UI plug-ins Bundles usable in an eclipse-based application . ui Implementation of the install dialog and wizards. ui.sdk (bogus name alert) Integration of p2 in an application: contribution in the help menu and preference page. ui.sdk.scheduler (bogus name alert) UI affordance and preference page for the update checker. updatechecker Provides the ability to check for an update. This is not a UI bundle.
94. Repositories implementation p2 allows for alternate repository implementation. Here are few additional ones that are provided. extensionlocation Support to recognize as a repository folders containing the sub folders plugins/ and features directorywatcher Support plug-in for the extension location repository. Monitors the content of the plug-ins folder. updatesite Support for Eclipse legacy update sites. reconciler.dropins Install all the plug-ins and features found into the dropins/ folder. This is not a repository in itself.
95. Misc management bundles director.app Provides a headless way of managing an installation (install / uninstall). App.: org.eclipse.equinox.p2.director.app.application [1] installer Provides an exemplary simple installer using an SWT-based UI. [1] – Director application doc - http://wiki.eclipse.org/Equinox_p2_director_application
96. Tooling plug-ins Applications and tasks are provided to generate metadata and manage repository publisher A modular and extensible mechanism to generate metadata. Application: org.eclipse.equinox.p2.publisher.*, FeaturesAndBundlesPublisher Ant tasks: p2.publish.product, p2.publish.featureAndBundles, p2.publisher metadata.generator (deprecated in 3.5) Generate metadata from an exported product. repository.tools Provides a set of tools to manage repositories Ant tasks: p2.mirror, p2.repo2Runnable , [1] … jarprocessor Helper tool to sign and pack jars [1] - Ant task - http://wiki.eclipse.org/Equinox/p2_Ant_Tasks
97. p2 by example Build and repo management Deeper in p2 Additional p2 constructs From plug-ins and features to metadata Plug-ins map Reusing and tweaking the UI Advanced concepts
98. Tweaking the p2 UI for your audience The UI is split into 3 bundles. p2.ui p2.ui.sdk Integration p2.ui.sdk.scheduler Scheduler
99. Add a p2 Preference Page The p2 UI defines a number of preferences Automatic Updates Site selection We need to add a preference page to our RCP application
100. Adding Automated Updates and other p2 Preferences Since the p2 bundles are installed, the p2 preferences can be used.
101. Remove automatic updates Eliminate: org.eclipse.equinox.p2.ui.sdk.scheduler org.eclipse.equinox.p2.updatechecker RCP Mail no longer supports automatic updates
102. Customizing the UI Consider which bundles you need Always include org.eclipse.equinox.p2.ui If you wish to use automatic update checking, include org.eclipse.equinox.p2.updatechecker If you wish to reuse the SDK UI for automatic update include org.eclipse.equinox.p2.ui.sdk.scheduler Configure an instance of org.eclipse.equinox.internal.provisional.p2.ui.policy.Policy
103. Example – Control the Update Let’s lock down the application Register a new profile Does not allow users to add sites Group IUs by category
105. The controlled mode Notice that the entry to choose a site is not available. The preference page to add repo is also removed.
106. Granularity of what is visible By default, the p2 UI shows installed roots Configure the UI to show all installed bundles Remove the install history page Reconfigure the installed software page i.e. to remove update
108. Updating on Startup Activator startup code must ensure that the p2 infrastructure bundles are started. Otherwise, the required services may not be found when updates are checked.
109. UI code snippets All the p2 UI examples are available at: http://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Application In CVS dev.eclipse.org/cvsroot/rt org.eclipse.equinox/p2/examples
110. p2 by example Build and repo management Deeper in p2 Additional p2 constructs From plug-ins and features to metadata Plug-ins map Reusing and tweaking the UI Advanced concepts
111. Queryable / Query IQueryable is a general interface for a collection of objects that can be queried Query is what you want to see found Mostly used to find installable units In p2 everything dealing with IUs is queryable MetadataRepository , Profile, result of query… Some default queries are provided (see implementors of Query) InstallableUnitQuery : To find an IU matching an ID and or a version CapabilityQuery: To find an IU providing a capability matching a given requirement IUPropertyQuery: To find an IU with a given property VersionLatestIUVersionQuery : To find the most recent IU
112. Profile A profile is the complete description in terms of IU of what is installed A profile contains Properties defining the “environment” such as os, ws, arch, install location, bundle pool location The list of IUs Properties associated with IUs Class: Org.eclipse.equinox.internal.provisional.p2.engine.IProfile
113. Planning a profile change Because of inter IU dependencies, modification against a profile should be planned ProfileChangeRequest Capture the changes you want to make to the profile (e.g. Install, Uninstall). The request is processed by the Planner An update is a removal and an addition Planner The entity responsible for the evaluation of the change request, computing the transitive closure and checking the dependencies If a solution exists it will find it ProvisioningPlan The planner returns a provisioning plan. The planning succeed pass or fail. Upon failure explanations are provided. Upon success the plan returns a set of operands to go from the initial state of the profile to the desired state.
114. Engine The mechanism by which the profile is actually changed Runs over a set of operands (usually resulting from a planning operation) and executes a given set of phases on them. No profile consistency validation is done Engine.perform(Operand[] ops, PhaseSet phases, IProgressMonitor pm) For each phase, the engine interprets from the touchpoint data of the IU, the action specific to the phase. The engine looks up the action to execute. Currently 8 phases are defined, and the typical set of phases (and their order) is defined in DefaultPhaseSet . The design allows for new phases could be added, however this would engage serious coding. The engine ensures consistency of the modification by performing a “transaction”. The engine emit events on the IProvisoningEventBus to describe what is happening. Events on the bus are post events and can not be vetoed.
116. Touchpoint / actions The decoupling between p2 and the actual system being modified. It defines how to modify a particular “runtime”. An action is a piece of code in charge of changing the system (e.g installing a bundle, setting a start level, etc.). An action can be context free or context bound. See ProvisioningAction Example of context free: chmod , unzip Example of context bound: installBundle , setStartLevel ,… A touchpoint provides the context in which an action is executed For example the eclipse touchpoint provides its actions values such as the eclipse install folder, the bundle pool and is also used to cache some common data structure (e.g. the state of the fwk being modified) The extension point for touchpoint and actions is defined in the engine.
118. Artifact processor Artifacts can be stored in various format (e.g. pack200, jar, diff) A processor is responsible for transforming an artifact from its “stored” form to its canonical form. Processors can also be used to “look at” the bytes as they are coming through MD5, zip verifier, Mandatory steps are mentioned in the artifact descriptor in the artifact repository <example> Implementation detail: The download manager looks at the various shapes under which an artifact is made available and always prefer the non-canonical one. Ex t ension point: org.eclipse.equinox.p2.artifactRepository.ProcessingStep
123. Bundle Pooling Every profile has a bundle pool location Shared pool -> multiple profiles share bundles Save download time/bandwidth Save disk space Possible memory savings depending on JRE Can be setup with installer or admin UI
124. Installing just a plug-in It is possible, just grab the IU and install it. The default p2 UI is not allowing for this to not overwhelm users To have p2 metadata for it, you still have to have a feature (PDE restriction)
125. Boot sequence Without dropins Simpleconfigurator reads bundles.info and apply it (note that if bundles.info has not changed, nothing is done). p2 bundles are not loaded until p2 functionality is invoked (e.g open the UI) With dropins Simpleconfigurator reads bundles.info and apply it (note that if bundles.info has not changed, nothing is done). Reconciler bundles is started Reconciler finds the bundles in the dropins folder and take them through a complete installation phase. A new profile file and a new bundles.info are written Reconciler re-invoke simpleconfigurator to read bundles.info
126. Missing requirements The cause of an error indicating a missing requirement usually are: Missing capabilities: no IU in the repository provides the capability necessary to the satisfaction of the requirement. Bogus filter on the IU that could satisfy the requirement Missing IU: the IU satisfying the requirement is not available in the repositories being consulted
Editor's Notes
#3: HENRIK What does it mean to “provision Eclipse in the Entrprise” – it could mean anything from provisioning source code and pre-built components to developers to automatic and policy driven installation of in-house built applications based to servers, desktop machines and small handheld device.
#4: HENRIK Eclipse and Equinox is used for many purposes – and users has expressed a wide variety of requirements – requirements that often are direct conflict.