Carsten Ziegeler presented on using Apache Sling for web development. Sling uses OSGi, a Java content repository (JCR), and scripting to build dynamic websites. It follows a RESTful, resource-oriented architecture where content is stored in a JCR and retrieved via URLs. Scripts can be written to render resources and are resolved based on the resource type and request details. Sling uses OSGi to modularize the framework and allow dynamic extensions through bundles and services. It currently resides in the Apache incubator but is gaining community support.
The document provides 12 tips on Django best practices for development, deployment, and external tools. The tips include using virtualenv for isolated environments, managing dependencies with pip and requirements.txt, following a model-template-view framework, keeping views thin and logic in models/forms, and leveraging tools like Fabric, South, Celery, Redis, Sentry, and the Django debug toolbar. The document emphasizes following the Django philosophy and reusing existing apps when possible.
Flink Forward San Francisco 2022.
In normal situations, the default Kafka consumer and producer configuration options work well. But we all know life is not all roses and rainbows and in this session we’ll explore a few knobs that can save the day in atypical scenarios. First, we'll take a detailed look at the parameters available when reading from Kafka. We’ll inspect the params helping us to spot quickly an application lock or crash, the ones that can significantly improve the performance and the ones to touch with gloves since they could cause more harm than benefit. Moreover we’ll explore the partitioning options and discuss when diverging from the default strategy is needed. Next, we’ll discuss the Kafka Sink. After browsing the available options we'll then dive deep into understanding how to approach use cases like sinking enormous records, managing spikes, and handling small but frequent updates.. If you want to understand how to make your application survive when the sky is dark, this session is for you!
by
Olena Babenko
LLAP (Live Long and Process) is the newest query acceleration engine for Hive 2.0, which entered GA in 2017. LLAP brings into light a new set of trade-offs and optimizations that allows for efficient and secure multi-user BI systems on the cloud. In this talk, we discuss the specifics of building a modern BI engine within those boundaries, designed to be fast and cost-effective on the public cloud. The focus of the LLAP cache is to speed up common BI query patterns on the cloud, while avoiding most of the operational administration overheads of maintaining a caching layer, with an automatically coherent cache with intelligent eviction and support for custom file formats from text to ORC, and explore the possibilities of combining the cache with a transactional storage layer which supports online UPDATE and DELETES without full data reloads. LLAP by itself, as a relational data layer, extends the same caching and security advantages to any other data processing framework. We overview the structure of such a hybrid system, where both Hive and Spark use LLAP to provide SQL query acceleration on the cloud with new, improved concurrent query support and production-ready tools and UI.
Speaker
Sergey Shelukin, Member of Technical Staff, Hortonworks
MongoDB Days Silicon Valley: Using MongoDB with Adobe AEM Communities
Presented by Kevin Nennig, AEM Technical Instructor, Adobe
Experience level: Introductory
In Adobe Experience Manager 6.1, a new approach has been taken for user generated content (UGC) for better security, higher availability, and ease of use for community members and administrators. The Social Resource Provider API for AEM Communities can be implemented 3 different ways to create a UGC cloud, two of which use a MongoDB backend. Utilizing MongoDB, companies can implement an on prem UGC common store with a Mongo and a Solr server. UCG is then stored and accessed from this UGC cloud. In this session we’ll explore the Social Resource Provider framework and implement the Mongo Social Resource Provider (MSRP) for AEM Communities.
Learn the best practices and advanced techniques.
* Passing data to client libs, use the data attribute
* Expression contexts, choose wisely
* Use statement best practices, what fits best your needs
* Template & Call statements advanced usage
* Parameters for sub-resources, featuring resource attributes and synthetic resources
Replacing Your Shared Drive with Alfresco - Open Source ECM
1) Alfresco replaces traditional shared drives with a virtual file system that provides better document management capabilities than a standard file system, including search, version control, metadata, and collaboration tools.
2) It utilizes a rules engine and smart spaces to automate processes like metadata extraction and workflow. Rules can be created to organize, structure, and enrich content.
3) Alfresco provides a virtual file system via several protocols like CIFS, WebDAV, and FTP to emulate a shared drive and allow dragging and dropping of files while also enabling server-side actions.
This document discusses Spring Boot, an open source framework for building microservices and web applications. It provides scaffolding to help build Spring-based services more quickly. The author chose Spring Boot for a project because it integrates well with other frameworks like Jersey and allows building services quickly. Key Spring Boot components discussed include REST frameworks, embedded servers, logging frameworks, security, and metrics. The author outlines their Spring Boot stack and package structure. They discuss using Spring Data for persistence, Swagger for API documentation, and helper libraries like Lombok. The document also covers testing approaches using REST Assured and Spring Integration.
1. The document discusses several popular JavaScript frameworks including AngularJS, Node.js, Agility.js, and Backbone.js. It provides overviews of each framework and their architectures.
2. AngularJS is an open-source framework maintained by Google that assists with single-page applications. Node.js is a platform for scalable server-side applications. Agility.js is a lightweight MVC library, and Backbone.js helps organize code for single-page apps.
3. Each framework has advantages like reusability, testability and being lightweight, though some have disadvantages like learning curves or added complexity. The document provides examples of applications that use each framework.
The document discusses using Maven for automation builds. It covers quick starting a Maven project, the Maven lifecycle and phases, dependency and plugin management, and integrating Maven with IDEs like Eclipse. Key points include how to create a basic Maven project, the different Maven directories, common Maven commands, using the Surefire plugin to run tests, and configuring test dependencies.
React Hooks are functions that allow you to "hook into" React state and lifecycle features from function components. Some key hooks include useState, useContext, and useEffect. Hooks make it easier to reuse stateful logic between components and simplify component logic. However, hooks should only be called from React functions and not in loops, conditions, or nested functions. Overall, hooks provide more powerful features to function components and opportunities to write code in a more functional style.
Video of the presentation: http://www.youtube.com/watch?v=8z3h4Uv9YbE
At LinkedIn, we have started to use the Play Framework to build front-end and back-end services at massive scale. Play does things a little differently: it's a Java and Scala web framework, but it doesn't follow the servlet spec; it's fairly new, but it runs on top of robust technologies like Akka and Netty; it uses a thread pool, but it's built for non-blocking I/O and reactive programming; most importantly, it's high performance, but also high productivity. We've found that the Play Framework is one of the few frameworks that is able to maintain the delicate balance of performance, reliability, and developer productivity. In the Java and Scala world, nothing even comes close. In this talk, I'll share what we've learned so far, including details of rapid iteration with Java and Scala, the story behind async I/O on the JVM, support for real time web apps (comet, WebSockets), and integrating Play into a large existing codebase.
From cache to in-memory data grid. Introduction to Hazelcast.
This presentation:
* covers basics of caching and popular cache types
* explains evolution from simple cache to distributed, and from distributed to IMDG
* not describes usage of NoSQL solutions for caching
* is not intended for products comparison or for promotion of Hazelcast as the best solution
Introduction to memcached, a caching service designed for optimizing performance and scaling in the web stack, seen from perspective of MySQL/PHP users. Given for 2nd year students of professional bachelor in ICT at Kaho St. Lieven, Gent.
Rapid RESTful Web Applications with Apache Sling and Jackrabbit
This is the presentation from JavaOne 2011 that Ruben Reusser and I worked on. The presentation was heavily demonstration based, so there are not as many slides.
Effective Web Application Development with Apache Sling
Apache Sling is an innovative web framework built on top of the Java Content Repository (JCR), that uses OSGi for its component model and fosters RESTful application design.
This talk shows how Sling integrates various standard-based technologies, like OSGi and the Content Repository API for Java to create a coherent framework for web application development. We will walk through the development of a simple application with minimal effort and demonstrate how to productize the resulting application.
We will pay special attention to some approaches which are not yet part of mainstream development, such as using OSGi for dependecy injection and JCR for persistence.
Sling is a RESTful web application framework that uses JCR repositories like Apache Jackrabbit as its data store. Sling maps HTTP requests to content resources in the repository and uses the resource type to locate the appropriate rendering script. The request URL is decomposed into the resource path, selectors, extension, and suffix path. Sling searches for a node matching the resource path and then locates a script based on the resource type and any selectors. Sling scripts cannot be called directly and must be resolved through the resource to follow REST principles. This document discusses how Sling maps URLs to content resources and scripts to process requests.
Effective Web Application Development with Apache Sling
This document discusses an overview of Apache Sling, including quick facts about its history and community, its conceptual foundations as a REST-based and content-driven framework powered by OSGi and scripting, its main building blocks like resource providers and JCR, and how to build Sling applications by modeling content in JCR, accessing resources, using templating with Sightly, extensions, deployment and tooling.
Sling Models allow for dependency injection and adaptation of Sling objects into POJOs using annotations. This document discusses how Sling Models work, the annotations used to configure them, standard injectors, and how to use Sling Models with Sightly and JSP. It also provides a live demo and references for further information.
This document provides an overview and introduction to the Apache Sling framework. It discusses why Sling was created, its architecture built on OSGi, JCR, and REST standards, and how it provides a content-centric approach. Key benefits of Sling include its modular design, support for multiple programming languages, and use by major companies for applications like digital asset management and wikis.
The document describes Apache Sling, an OSGi-based application framework for building RESTful web applications on top of a content repository. It uses Apache Sling to build a sample coffee shop ordering application called Slingbucks. The application is built with only a few hundred lines of Java code and uses content to define things like coffee options and styles rather than hardcoding them. Apache Sling promotes the principle that "everything is content" and enables building full-featured applications with relatively little code by leveraging out-of-the-box HTTP services and the ability to extend functionality through OSGi plugins.
Apache Sling is an innovative web framework built on top of the Java Content Repository (JCR), that uses OSGi for its component model and fosters RESTful application design.
This presentation will showcase how the Apache Sling framework can be used to build a unified REST-based middleware for multiple data sources, such as MongoDB, Apache Cassandra, Apache Jackrabbit Oak or classical relational databases. In doing so it will present the benefits that come from a single Resource API over multiple data stores, both at the library level and at the HTTP boundary.
Apache Jackrabbit is just about to reach the 3.0 milestone based on a new architecture called Oak. Based on concepts like eventual consistency and multi-version concurrency control, and borrowing ideas from distributed version control systems and cloud-scale databases, the Oak architecture is a major leap ahead for Jackrabbit. This presentation describes the Oak architecture and shows what it means for the scalability and performance of modern content applications. Changes to existing Jackrabbit functionality are described and the migration process is explained.
This talk presents the simple yet powerful way of dependency injection as defined by the OSGi Compendium Declarative Services specification. Besides covering the basics of Declarative Services this talk also explains the many useful additions of the Declarative Services 1.1 in OSGi R 4.2.
A short introduction to reactive applications. This document details different traits of reactive applications and some of the languages that help implement them.
Server-side OSGi with Apache Sling (OSGiDevCon 2011)
Apache Sling is an innovative REST based Web Framework which has been developped from the ground up as an OSGi based server side application. After a short introduction to Sling itself I will also show why OSGi has been chosen as the basis for the application.
Modern operations with Apache Sling (2014 adaptTo version)
The document discusses using Apache Sling for modern operations. It describes using Docker and Fig to set up a cluster of stateless and elastic Sling instances that can scale. While Sling works well with some modern operations approaches, dynamic service discovery and handling eventual consistency between instances need more work. The full potential of Sling for modern operations can be unlocked with further testing and development.
Microservices are definitely the hot topic du jour . Everyone ( and their dog ) is using microservices or migrating towards them. To make things more interesting, the OSGi community has been talking about microservices for 6 years now, so now we have two clashing definitions of the term.
Besides the dreaded monolith and the famed microservices-based architecture there is plenty of room for a middle ground, where an API gateway mediates between a host of microservices and their consumers. Such a gateway solves multiple cross-cutting concerns, such as authentication, API standardisation, logging and decoupling the API evolution. As it turns out, OSGi is an ideal setting for building such an application.
The API gateway implementation demoed is based on Apache Sling - an innovative web framework built on top of the Java Content Repository (JCR), that uses OSGi for its component model and fosters RESTful application design. Although we will use Apache Sling for examples, previous knowledge of Sling or its components is not required.
CQ5 and Sling provide an overview of content management systems and frameworks. CQ5 is a content management system built on Apache Sling, which is an applications framework for JCR content repositories based on OSGi. Sling allows for dynamic modules and services and fosters modular code. Together, CQ5 and Sling provide a flexible and powerful way to manage content on a website through a content-centric approach where everything is treated as content.
Sling is a RESTful web framework for building applications on top of Apache Jackrabbit. It allows resources like content, configurations, code, and binaries to be accessed over REST URLs. Sling maps URLs to resources rather than commands, supports various scripting languages as servlets, and has a modular OSGi-based architecture powered by Apache Felix. Examples shown include building a blog and coffee ordering application on Sling to demonstrate how it supports RESTful content creation and management.
Apache Sling as a Microservices Gateway
---
Microservices are definitely the hot topic _du jour_ . Everyone ( and their dog ) is using microservices or migrating towards them. However, there is a gap between the enthusiam for microservices and the ability to create and maintain the infrastructure and culture to effectively use microservices.
Apache Sling is an innovative web framework built on top of the Java Content Repository (JCR), that uses OSGi for its component model and fosters RESTful application design. And, as we will see, it is also perfect match for a microservices gateway.
In this talk we will review the pros and cons of microservices and monoliths, and look for middle road that smaller organisations that follow to use services productively. One of the approaches we will outline and demo is an API gateway built on top of Apache Sling, used to adress the cross-cutting concerns that would otherwise be reimplemented by all microservices.
The document discusses key maintenance activities for an AEM implementation including backup, compaction, purging, cloning, and other approaches. It provides details on planning and executing online and offline backups, online and offline compaction, version purging, workflow purging, audit log purging, and cloning publish instances. The document emphasizes the importance of backups, compaction, and purging to optimize storage usage, improve performance, and maintain an optimal AEM instance.
This document discusses Sling Models, which provide a simplified way to adapt Sling resources and other objects into domain models. Key points:
- Sling Models use annotations to inject properties from resources and other sources into POJOs rather than requiring custom adapter factories.
- Common annotations include @Model, @Inject, @Optional, @Source, and @Filter to customize property injection.
- Sling Models are included in AEM and their usage has simplified adapting resources from over 30 lines of code to just 13 lines.
- The API supports extensions like custom injectors, annotations, and future additions like grandchild resource lists.
This document discusses content management using Apache Jackrabbit, a Java Content Repository implementation. It provides an agenda for the discussion, including an overview of JCR and Jackrabbit, content modeling techniques, using references and search features, and a sample music application to demonstrate JCR capabilities. The document concludes with opening the discussion to questions.
This document discusses integrating rich media like video into technical documentation generated from DITA. It describes using the <object> element in DITA to embed Flash video but notes problems with this approach. It then introduces the SwfObject and playlist methods as better solutions. SwfObject uses JavaScript to embed Flash without breaking validation, and playlists allow centralized media management and metadata.
Corona SDK is a software development kit that allows developers to code mobile apps faster using the Lua programming language. Lua is an industry standard scripting language that is simple yet powerful. Corona allows developers to write their code once and deploy their apps to multiple mobile app stores.
This document summarizes a presentation about Memcached and using the cloud. It discusses how Memcached alleviates database load for dynamic web applications by caching objects in memory. Using the cloud allows sites to leverage elastic, on-demand resources and pay only for what they use. The document recommends designing systems to be loosely coupled and resilient to failures when using the cloud. It presents two use cases - a system entirely in the cloud using Memcached and EC2 instances, and a hybrid model with an on-premise Memcached cache. Gear6 is introduced as a commercial distribution of Memcached optimized for use in the cloud.
This document is about Ruby on Rails. It introduces RubySapporo and provides information about Ruby and Rails. Key points discussed include how Rails uses conventions over configuration, Don't Repeat Yourself principles, the MVC framework, and components like ActiveRecord and controllers. Links are provided to resources about Ruby, Rails, and an upcoming Sapporo workshop.
The document outlines a 6-month curriculum for project-based training in .NET and related technologies. It covers topics such as introduction to .NET, C#, object-oriented programming, databases, ADO.NET, ASP.NET, web services, and JavaScript. It also includes advanced topics like remoting, reflection, assembly and deployment, and specialized topics like WPF, WCF, and WF. The curriculum aims to provide hands-on experience through a culminating live project.
Evolution of a Memcached Deployment Webinar 2010 01 13
Memcached has become a critical tool in the web technology stack. High traffic web sites with dynamic content - like Facebook, Twitter, and Wikipedia - rely on Memcached to scale and ensure “snappy” site performance.
This presentation willl cover a brief overview of Memcached, then dive into the evolution of Memcached’s use in dynamic web sites and how you can scale your site and get better performance with Memcached. We’ll also review emerging architectures and tools of high performance, large scale dynamic websites.
In this webinar you will learn best practices used by some of the hottest sites and get tips on how to avoid potential pitfalls when scaling. Whether you're just building the infrastructure for a brand new site or have a large dynamic site with millions of users, this webinar is for you.
This document provides an overview of building a content management system (CMS) using Apache Sling. It discusses how Sling uses OSGi and the Java Content Repository to provide a RESTful framework. Example uses of Sling include content CRUD operations via the Sling Post Servlet and resource resolution. The document then demonstrates how to set up a Sling development environment and build sample pages that include a WYSIWYG editor and image uploads using Sling and technologies like JavaScript, jQuery, Bootstrap and Groovy.
Spring boot is a great and relatively a new project from Spring.io. The presentation discusses about basics of spring boot to advance topics. Sample demo apps are available here : https://github.com/bhagwat/spring-boot-samples
The document provides 12 tips on Django best practices for development, deployment, and external tools. The tips include using virtualenv for isolated environments, managing dependencies with pip and requirements.txt, following a model-template-view framework, keeping views thin and logic in models/forms, and leveraging tools like Fabric, South, Celery, Redis, Sentry, and the Django debug toolbar. The document emphasizes following the Django philosophy and reusing existing apps when possible.
Tuning Apache Kafka Connectors for Flink.pptxFlink Forward
Flink Forward San Francisco 2022.
In normal situations, the default Kafka consumer and producer configuration options work well. But we all know life is not all roses and rainbows and in this session we’ll explore a few knobs that can save the day in atypical scenarios. First, we'll take a detailed look at the parameters available when reading from Kafka. We’ll inspect the params helping us to spot quickly an application lock or crash, the ones that can significantly improve the performance and the ones to touch with gloves since they could cause more harm than benefit. Moreover we’ll explore the partitioning options and discuss when diverging from the default strategy is needed. Next, we’ll discuss the Kafka Sink. After browsing the available options we'll then dive deep into understanding how to approach use cases like sinking enormous records, managing spikes, and handling small but frequent updates.. If you want to understand how to make your application survive when the sky is dark, this session is for you!
by
Olena Babenko
LLAP (Live Long and Process) is the newest query acceleration engine for Hive 2.0, which entered GA in 2017. LLAP brings into light a new set of trade-offs and optimizations that allows for efficient and secure multi-user BI systems on the cloud. In this talk, we discuss the specifics of building a modern BI engine within those boundaries, designed to be fast and cost-effective on the public cloud. The focus of the LLAP cache is to speed up common BI query patterns on the cloud, while avoiding most of the operational administration overheads of maintaining a caching layer, with an automatically coherent cache with intelligent eviction and support for custom file formats from text to ORC, and explore the possibilities of combining the cache with a transactional storage layer which supports online UPDATE and DELETES without full data reloads. LLAP by itself, as a relational data layer, extends the same caching and security advantages to any other data processing framework. We overview the structure of such a hybrid system, where both Hive and Spark use LLAP to provide SQL query acceleration on the cloud with new, improved concurrent query support and production-ready tools and UI.
Speaker
Sergey Shelukin, Member of Technical Staff, Hortonworks
MongoDB Days Silicon Valley: Using MongoDB with Adobe AEM CommunitiesMongoDB
Presented by Kevin Nennig, AEM Technical Instructor, Adobe
Experience level: Introductory
In Adobe Experience Manager 6.1, a new approach has been taken for user generated content (UGC) for better security, higher availability, and ease of use for community members and administrators. The Social Resource Provider API for AEM Communities can be implemented 3 different ways to create a UGC cloud, two of which use a MongoDB backend. Utilizing MongoDB, companies can implement an on prem UGC common store with a Mongo and a Solr server. UCG is then stored and accessed from this UGC cloud. In this session we’ll explore the Social Resource Provider framework and implement the Mongo Social Resource Provider (MSRP) for AEM Communities.
Learn the best practices and advanced techniques.
* Passing data to client libs, use the data attribute
* Expression contexts, choose wisely
* Use statement best practices, what fits best your needs
* Template & Call statements advanced usage
* Parameters for sub-resources, featuring resource attributes and synthetic resources
Replacing Your Shared Drive with Alfresco - Open Source ECMAlfresco Software
1) Alfresco replaces traditional shared drives with a virtual file system that provides better document management capabilities than a standard file system, including search, version control, metadata, and collaboration tools.
2) It utilizes a rules engine and smart spaces to automate processes like metadata extraction and workflow. Rules can be created to organize, structure, and enrich content.
3) Alfresco provides a virtual file system via several protocols like CIFS, WebDAV, and FTP to emulate a shared drive and allow dragging and dropping of files while also enabling server-side actions.
This document discusses Spring Boot, an open source framework for building microservices and web applications. It provides scaffolding to help build Spring-based services more quickly. The author chose Spring Boot for a project because it integrates well with other frameworks like Jersey and allows building services quickly. Key Spring Boot components discussed include REST frameworks, embedded servers, logging frameworks, security, and metrics. The author outlines their Spring Boot stack and package structure. They discuss using Spring Data for persistence, Swagger for API documentation, and helper libraries like Lombok. The document also covers testing approaches using REST Assured and Spring Integration.
1. The document discusses several popular JavaScript frameworks including AngularJS, Node.js, Agility.js, and Backbone.js. It provides overviews of each framework and their architectures.
2. AngularJS is an open-source framework maintained by Google that assists with single-page applications. Node.js is a platform for scalable server-side applications. Agility.js is a lightweight MVC library, and Backbone.js helps organize code for single-page apps.
3. Each framework has advantages like reusability, testability and being lightweight, though some have disadvantages like learning curves or added complexity. The document provides examples of applications that use each framework.
The document discusses using Maven for automation builds. It covers quick starting a Maven project, the Maven lifecycle and phases, dependency and plugin management, and integrating Maven with IDEs like Eclipse. Key points include how to create a basic Maven project, the different Maven directories, common Maven commands, using the Surefire plugin to run tests, and configuring test dependencies.
React Hooks are functions that allow you to "hook into" React state and lifecycle features from function components. Some key hooks include useState, useContext, and useEffect. Hooks make it easier to reuse stateful logic between components and simplify component logic. However, hooks should only be called from React functions and not in loops, conditions, or nested functions. Overall, hooks provide more powerful features to function components and opportunities to write code in a more functional style.
Video of the presentation: http://www.youtube.com/watch?v=8z3h4Uv9YbE
At LinkedIn, we have started to use the Play Framework to build front-end and back-end services at massive scale. Play does things a little differently: it's a Java and Scala web framework, but it doesn't follow the servlet spec; it's fairly new, but it runs on top of robust technologies like Akka and Netty; it uses a thread pool, but it's built for non-blocking I/O and reactive programming; most importantly, it's high performance, but also high productivity. We've found that the Play Framework is one of the few frameworks that is able to maintain the delicate balance of performance, reliability, and developer productivity. In the Java and Scala world, nothing even comes close. In this talk, I'll share what we've learned so far, including details of rapid iteration with Java and Scala, the story behind async I/O on the JVM, support for real time web apps (comet, WebSockets), and integrating Play into a large existing codebase.
From cache to in-memory data grid. Introduction to Hazelcast.Taras Matyashovsky
This presentation:
* covers basics of caching and popular cache types
* explains evolution from simple cache to distributed, and from distributed to IMDG
* not describes usage of NoSQL solutions for caching
* is not intended for products comparison or for promotion of Hazelcast as the best solution
Introduction to memcached, a caching service designed for optimizing performance and scaling in the web stack, seen from perspective of MySQL/PHP users. Given for 2nd year students of professional bachelor in ICT at Kaho St. Lieven, Gent.
Rapid RESTful Web Applications with Apache Sling and JackrabbitCraig Dickson
This is the presentation from JavaOne 2011 that Ruben Reusser and I worked on. The presentation was heavily demonstration based, so there are not as many slides.
Effective Web Application Development with Apache SlingRobert Munteanu
Apache Sling is an innovative web framework built on top of the Java Content Repository (JCR), that uses OSGi for its component model and fosters RESTful application design.
This talk shows how Sling integrates various standard-based technologies, like OSGi and the Content Repository API for Java to create a coherent framework for web application development. We will walk through the development of a simple application with minimal effort and demonstrate how to productize the resulting application.
We will pay special attention to some approaches which are not yet part of mainstream development, such as using OSGi for dependecy injection and JCR for persistence.
Sling is a RESTful web application framework that uses JCR repositories like Apache Jackrabbit as its data store. Sling maps HTTP requests to content resources in the repository and uses the resource type to locate the appropriate rendering script. The request URL is decomposed into the resource path, selectors, extension, and suffix path. Sling searches for a node matching the resource path and then locates a script based on the resource type and any selectors. Sling scripts cannot be called directly and must be resolved through the resource to follow REST principles. This document discusses how Sling maps URLs to content resources and scripts to process requests.
Effective Web Application Development with Apache SlingRobert Munteanu
This document discusses an overview of Apache Sling, including quick facts about its history and community, its conceptual foundations as a REST-based and content-driven framework powered by OSGi and scripting, its main building blocks like resource providers and JCR, and how to build Sling applications by modeling content in JCR, accessing resources, using templating with Sightly, extensions, deployment and tooling.
Sling Models allow for dependency injection and adaptation of Sling objects into POJOs using annotations. This document discusses how Sling Models work, the annotations used to configure them, standard injectors, and how to use Sling Models with Sightly and JSP. It also provides a live demo and references for further information.
This document provides an overview and introduction to the Apache Sling framework. It discusses why Sling was created, its architecture built on OSGi, JCR, and REST standards, and how it provides a content-centric approach. Key benefits of Sling include its modular design, support for multiple programming languages, and use by major companies for applications like digital asset management and wikis.
The document describes Apache Sling, an OSGi-based application framework for building RESTful web applications on top of a content repository. It uses Apache Sling to build a sample coffee shop ordering application called Slingbucks. The application is built with only a few hundred lines of Java code and uses content to define things like coffee options and styles rather than hardcoding them. Apache Sling promotes the principle that "everything is content" and enables building full-featured applications with relatively little code by leveraging out-of-the-box HTTP services and the ability to extend functionality through OSGi plugins.
Apache Sling as an OSGi-powered REST middlewareRobert Munteanu
Apache Sling is an innovative web framework built on top of the Java Content Repository (JCR), that uses OSGi for its component model and fosters RESTful application design.
This presentation will showcase how the Apache Sling framework can be used to build a unified REST-based middleware for multiple data sources, such as MongoDB, Apache Cassandra, Apache Jackrabbit Oak or classical relational databases. In doing so it will present the benefits that come from a single Resource API over multiple data stores, both at the library level and at the HTTP boundary.
Oak, the architecture of Apache Jackrabbit 3Jukka Zitting
Apache Jackrabbit is just about to reach the 3.0 milestone based on a new architecture called Oak. Based on concepts like eventual consistency and multi-version concurrency control, and borrowing ideas from distributed version control systems and cloud-scale databases, the Oak architecture is a major leap ahead for Jackrabbit. This presentation describes the Oak architecture and shows what it means for the scalability and performance of modern content applications. Changes to existing Jackrabbit functionality are described and the migration process is explained.
This talk presents the simple yet powerful way of dependency injection as defined by the OSGi Compendium Declarative Services specification. Besides covering the basics of Declarative Services this talk also explains the many useful additions of the Declarative Services 1.1 in OSGi R 4.2.
A short introduction to reactive applications. This document details different traits of reactive applications and some of the languages that help implement them.
Server-side OSGi with Apache Sling (OSGiDevCon 2011)Felix Meschberger
Apache Sling is an innovative REST based Web Framework which has been developped from the ground up as an OSGi based server side application. After a short introduction to Sling itself I will also show why OSGi has been chosen as the basis for the application.
Modern operations with Apache Sling (2014 adaptTo version)Bertrand Delacretaz
The document discusses using Apache Sling for modern operations. It describes using Docker and Fig to set up a cluster of stateless and elastic Sling instances that can scale. While Sling works well with some modern operations approaches, dynamic service discovery and handling eventual consistency between instances need more work. The full potential of Sling for modern operations can be unlocked with further testing and development.
Microservices are definitely the hot topic du jour . Everyone ( and their dog ) is using microservices or migrating towards them. To make things more interesting, the OSGi community has been talking about microservices for 6 years now, so now we have two clashing definitions of the term.
Besides the dreaded monolith and the famed microservices-based architecture there is plenty of room for a middle ground, where an API gateway mediates between a host of microservices and their consumers. Such a gateway solves multiple cross-cutting concerns, such as authentication, API standardisation, logging and decoupling the API evolution. As it turns out, OSGi is an ideal setting for building such an application.
The API gateway implementation demoed is based on Apache Sling - an innovative web framework built on top of the Java Content Repository (JCR), that uses OSGi for its component model and fosters RESTful application design. Although we will use Apache Sling for examples, previous knowledge of Sling or its components is not required.
CQ5 and Sling provide an overview of content management systems and frameworks. CQ5 is a content management system built on Apache Sling, which is an applications framework for JCR content repositories based on OSGi. Sling allows for dynamic modules and services and fosters modular code. Together, CQ5 and Sling provide a flexible and powerful way to manage content on a website through a content-centric approach where everything is treated as content.
Sling is a RESTful web framework for building applications on top of Apache Jackrabbit. It allows resources like content, configurations, code, and binaries to be accessed over REST URLs. Sling maps URLs to resources rather than commands, supports various scripting languages as servlets, and has a modular OSGi-based architecture powered by Apache Felix. Examples shown include building a blog and coffee ordering application on Sling to demonstrate how it supports RESTful content creation and management.
Apache Sling as a Microservices Gateway
---
Microservices are definitely the hot topic _du jour_ . Everyone ( and their dog ) is using microservices or migrating towards them. However, there is a gap between the enthusiam for microservices and the ability to create and maintain the infrastructure and culture to effectively use microservices.
Apache Sling is an innovative web framework built on top of the Java Content Repository (JCR), that uses OSGi for its component model and fosters RESTful application design. And, as we will see, it is also perfect match for a microservices gateway.
In this talk we will review the pros and cons of microservices and monoliths, and look for middle road that smaller organisations that follow to use services productively. One of the approaches we will outline and demo is an API gateway built on top of Apache Sling, used to adress the cross-cutting concerns that would otherwise be reimplemented by all microservices.
The document discusses key maintenance activities for an AEM implementation including backup, compaction, purging, cloning, and other approaches. It provides details on planning and executing online and offline backups, online and offline compaction, version purging, workflow purging, audit log purging, and cloning publish instances. The document emphasizes the importance of backups, compaction, and purging to optimize storage usage, improve performance, and maintain an optimal AEM instance.
This document discusses Sling Models, which provide a simplified way to adapt Sling resources and other objects into domain models. Key points:
- Sling Models use annotations to inject properties from resources and other sources into POJOs rather than requiring custom adapter factories.
- Common annotations include @Model, @Inject, @Optional, @Source, and @Filter to customize property injection.
- Sling Models are included in AEM and their usage has simplified adapting resources from over 30 lines of code to just 13 lines.
- The API supports extensions like custom injectors, annotations, and future additions like grandchild resource lists.
This document discusses content management using Apache Jackrabbit, a Java Content Repository implementation. It provides an agenda for the discussion, including an overview of JCR and Jackrabbit, content modeling techniques, using references and search features, and a sample music application to demonstrate JCR capabilities. The document concludes with opening the discussion to questions.
This document discusses integrating rich media like video into technical documentation generated from DITA. It describes using the <object> element in DITA to embed Flash video but notes problems with this approach. It then introduces the SwfObject and playlist methods as better solutions. SwfObject uses JavaScript to embed Flash without breaking validation, and playlists allow centralized media management and metadata.
Corona SDK is a software development kit that allows developers to code mobile apps faster using the Lua programming language. Lua is an industry standard scripting language that is simple yet powerful. Corona allows developers to write their code once and deploy their apps to multiple mobile app stores.
This document summarizes a presentation about Memcached and using the cloud. It discusses how Memcached alleviates database load for dynamic web applications by caching objects in memory. Using the cloud allows sites to leverage elastic, on-demand resources and pay only for what they use. The document recommends designing systems to be loosely coupled and resilient to failures when using the cloud. It presents two use cases - a system entirely in the cloud using Memcached and EC2 instances, and a hybrid model with an on-premise Memcached cache. Gear6 is introduced as a commercial distribution of Memcached optimized for use in the cloud.
This document is about Ruby on Rails. It introduces RubySapporo and provides information about Ruby and Rails. Key points discussed include how Rails uses conventions over configuration, Don't Repeat Yourself principles, the MVC framework, and components like ActiveRecord and controllers. Links are provided to resources about Ruby, Rails, and an upcoming Sapporo workshop.
The document outlines a 6-month curriculum for project-based training in .NET and related technologies. It covers topics such as introduction to .NET, C#, object-oriented programming, databases, ADO.NET, ASP.NET, web services, and JavaScript. It also includes advanced topics like remoting, reflection, assembly and deployment, and specialized topics like WPF, WCF, and WF. The curriculum aims to provide hands-on experience through a culminating live project.
Evolution of a Memcached Deployment Webinar 2010 01 13Gear6
Memcached has become a critical tool in the web technology stack. High traffic web sites with dynamic content - like Facebook, Twitter, and Wikipedia - rely on Memcached to scale and ensure “snappy” site performance.
This presentation willl cover a brief overview of Memcached, then dive into the evolution of Memcached’s use in dynamic web sites and how you can scale your site and get better performance with Memcached. We’ll also review emerging architectures and tools of high performance, large scale dynamic websites.
In this webinar you will learn best practices used by some of the hottest sites and get tips on how to avoid potential pitfalls when scaling. Whether you're just building the infrastructure for a brand new site or have a large dynamic site with millions of users, this webinar is for you.
HTML5 with Play Scala, CoffeeScript and Jade - Devoxx 2011Matt Raible
HTML5 Development with Play Scala, CoffeeScript and Jade Presentation from Devoxx 2011. Discusses these technologies, as well as my story of using them to develop an HTML5 Fitness Tracking application.
http://www.devoxx.com/display/DV11/HTML5+with+Play+Scala%2C+CoffeeScript+and+Jade
Lecture 13: Effective Presentations - Guest Lecture by Marie-ClaudeJessica Laccetti
The document provides guidance on giving effective presentations. It discusses preparing in advance by practicing, using PowerPoint effectively, and having fun. Tips are provided for structuring presentations including using titles fonts over 36, text fonts over 24, point form, contrasting backgrounds, and high quality photos. Scientific presentations should include an outline with background information, objectives, methodology, results, discussion, and conclusion. The hook at the beginning can use a photo, joke, or question to connect with the audience.
HTML5 with Play Scala, CoffeeScript and Jade - Jfokus 2012Matt Raible
HTML5 Development with Play Scala, CoffeeScript and Jade Presentation from Jfokus 2012. Discusses these technologies, as well as my story of using them to develop an HTML5 Fitness Tracking application.
Read more about this presentation at:
http://raibledesigns.com/rd/entry/comparing_web_frameworks_and_html5
Corporate Perl in Recruit, OpenSocial and Emoji - YAPC::Asia 2009 TokyoYusuke Kawasaki
This document summarizes Yusuke Kawasaki's presentation on corporate Perl use at Recruit, OpenSocial, and emoji at the YAPC::Asia 2009 Tokyo conference. It discusses Kawasaki's roles as a CPAN author and his modules for XML processing, emoji encoding and mapping, and an OpenSocial container implementation in Perl. It also provides an overview of emoji character sets, Google's emoji Unicode mapping project, and Recruit's work to build an OpenSocial container using Perl libraries based on the Apache Shindig project.
Decomposing Applications for Scalability and Deployability (April 2012)Chris Richardson
Today, there are several trends that are forcing application architectures to evolve. Users expect a rich, interactive and dynamic user experience on a wide variety of clients including mobile devices. Applications must be highly scalable, highly available and run on cloud environments. Organizations often want to frequently roll out updates, even multiple times a day. Consequently, it’s no longer adequate to develop simple, monolithic web applications that serve up HTML to desktop browsers. In this talk we describe the limitations of a monolithic architecture. You will learn how to use the scale cube to decompose your application into a set of narrowly focused, independently deployable back-end services and an HTML 5 client. We will also discuss the role of technologies such as NodeJS and AMQP brokers. You will learn how a modern PaaS such as Cloud Foundry simplifies the development and deployment of this style of application.
Web development with Lua: Introducing Sailor an MVC web framework @ CodingSer...Etiene Dalcol
Lua is a very fast and powerful scripting language that can be easily embeddable. It has been shining in industries like game development, for example. Lua is also an excellent tool as a general purpose language and can be used to develop robust applications. Its use in web developments, however, despite its great potential and incredible benchmarks, needs to be more widespread. This talk will mention the current state of Lua in web development, show some benchmarks, compare existing tools and teach how to get started with Sailor, an MVC web framework written in Lua.
This document provides an overview and details of Lexcycle's Stanza e-reading technology, including:
- Stanza Mobile apps for iPhone and future Android platforms, with over 1.5 million downloads.
- Stanza Desktop apps for Mac and Windows with over 250,000 downloads.
- An online catalog using Atom/XML that provides book metadata and is implemented by Lexcycle and third parties like Smashwords and Feedbooks.
- The catalog includes book listings, popular titles, authors and categories that can be accessed via the Stanza apps.
Zen and-the-art-of-build-script-maintenance-skillsmatterSkills Matter
This document provides an overview of best practices for build scripts, including what makes a good build script and common issues with "smelly" build scripts. It discusses qualities of good build scripts like being gold standard, portable, reproducible, standard, and maintainable. Common problems with build scripts are identified such as being hard coded, OS-specific, only working on a specific IDE or machine, relying on undocumented dependencies or processes, being nested, messy, or slow. The document recommends choosing tools that encourage standards like Maven and provides tips for improving Ant and Maven build scripts.
Lincs & notts business Networking presentation Malcolm York
Slides from the networking meeting held on 24th May 2011.
Speakers: Mike Stokes. The Business Club.
Matthew Bartlett Metanym Web Design
Louise Hudson thebestof.co.uk
Malcolm York www.BizMidlands.co.uk
This document discusses APIs and protocols. It defines that an API is a set of routines, data structures, classes and protocols to support application development, often across domains. A protocol is a standard or convention to control connections, communication and data transfer between computing endpoints, often within the same domain. The document provides examples of how APIs allow applications and systems to integrate and work together.
FinCap Solutions provides technology capabilities for application development, web services, database management, and more. It offers dedicated, retained, and project-based service models using languages like Java, C#, and tools like SharePoint, Oracle, and SQL Server. FinCap Solutions is a joint venture between Computech Corporation's technology group for financial services and CapitalFusion Partners, a comprehensive finance solution provider.
Asynchronous development in javascript can be a very powerful development paradigm. Ajax applications make use of this paradigm. This presentation will provide an insight about the important things to consider while creating Rich Internet applications
Similar to Apache Sling : JCR, OSGi, Scripting and REST (20)
Use Case: Building OSGi Enterprise Applications (QCon 14)Carsten Ziegeler
Use Case presentation from QCon 14. It presents the migration of Adobe's Experience Manager (formerly Communique) to OSGi. Common pitfalls and solutions are presented based on open source solutions from the Apache Software Foundation
Presentation from OSGi Community Event / EclipseCon Europe 2013
Together with David Bosschaert
Carsten and David will look at new and updated OSGi specs that are in the works. Developing components has never been easier. Learn more about the new Prototype Service Factory, OSGi/CDI integration and the improved annotation support for Declarative Services.
Many people are realizing that OSGi is a great foundation technology for fluid cloud-computing architectures where the deployments change dynamically and applications don't simply scale by duplicating the entire VMs but by providing extra capacity exactly to those components that need it. Work is being done to create standards that facilitate such a portable OSGi cloud in ‘Cloud Ecosystems’ and the REST API specs. Learn more about these and other upcoming specs during this talk.
Monitoring OSGi Applications with the Web ConsoleCarsten Ziegeler
Presentation from the OSGi Community Event / EclipseCon Europe 2013
This session introduces the latest version of the famous Apache Felix web console which allows to monitor and inspect OSGi web applications through the browser. The web console is based on a flexible plugin mechanism to add custom information and functionality. Learn how to write your own extensions and how to leverage the available functionality for monitoring and troubleshooting OSGi installations.
This document discusses distributed eventing in OSGi frameworks. It describes how OSGi event admin works, including publishers, subscribers, and immediate delivery of events. It then discusses the need for distributed eventing as specified in RFP 158. It explains how Apache Sling implements distributed eventing by leveraging OSGi event admin and distributing events through its content repository. It also describes Apache Sling's topology model for discovery of instances, clusters, and properties. Finally, it discusses how event-driven architectures can be extended to support guaranteed job processing using a job handling approach.
Apache Sling - Distributed Eventing, Discovery, and Jobs (adaptTo 2013)Carsten Ziegeler
The document summarizes a presentation on distributed eventing and jobs using Apache Sling and OSGi technologies. It discusses how OSGi event publishing works, Apache Sling discovery and job handling capabilities, and how events can be used to trigger and distribute jobs across multiple instances in a clustered environment. Key points include how Sling identifies instances, clusters, and topologies, manages job queues and consumers, and distributes jobs based on enabled topics and instance availability.
This document provides an overview and summary of the Java Content Repository (JCR) specification and Apache Jackrabbit implementation. It discusses how JCR combines advantages of file systems and databases by allowing structured and unstructured content to be stored together in a single repository. It also summarizes how to connect to a repository, interact with nodes and properties, perform searches and queries, and leverage advanced features like observation and versioning. The document promotes JCR as a standard Java API and Apache Jackrabbit as a widely used open source implementation.
The document discusses OSGi and motivates its use for modular application development. It introduces a paint program example to demonstrate how OSGi enables dynamic deployment of shapes. Key aspects of the OSGi framework are that it allows modularization through bundles, manages dependencies and lifecycles, and provides a service registry. The Apache Felix project is presented as a popular open source OSGi implementation.
My presentation from ApacheCon Europe 2009 in Amsterdam. It's a introduction into the core concepts of OSGi and provides at the same time usefull information for getting started.
Apache Sanselan is a pure Java image library for reading, writing, and extracting metadata from various image formats such as PNG, GIF, TIFF, BMP, and PNM. It was initiated in 2004, has a stable code base, and is used by several projects. Sanselan provides a simple but powerful API and allows working with image data from byte arrays and input streams without being tied to files.
This document provides an introduction to Apache iBatis, an open source persistence framework for Java that reduces the amount of code needed for interacting with databases. It is presented by Carsten Ziegeler, a senior developer at Day Software and member of the Apache Software Foundation who has contributed to several Apache projects. The document outlines that iBatis allows for quick mapping of database result sets to objects and objects to tables/columns, providing an object relational mapping (ORM) solution.
This document introduces Apache Jackrabbit, an open source content repository based on the JSR-170 specification. It provides an agenda for a talk on Jackrabbit including an overview of JCR and the basic content model. Brief biographies are given for the two presenters, Carsten Ziegeler and Bertrand Delacretaz, members of the Apache Software Foundation who work at Day Software.
The document discusses an Apache Portals Panel with speakers Ate Douma and David Sean Taylor introducing Apache Portals, an open source project providing robust, full-featured portal software on various platforms and languages. The panel will also discuss portal standards including the Java Portlet API and Web Services for Remote Portlets.
Presentation from the ApacheCon EU 2008 in Amsterdam.
JCR In Action - Content-based Applications with Apache Jackrabbit.
The Java Content Repository API (JCR) is the ideal solution to store hierarchical structured content and develop content-oriented applications. To demonstrate the basic architecture of such applications, an example content management application will be developed during the session. Basic techniques will be explained including navigation, searching and observations by using the Apache Jackrabbit project.
Presentation from the ApacheCon EU 2008 in Amsterdam.
The SCR plugin for Maven from the Apache Felix project is a simple but powerful tool. In just 15min you'll learn how to develop services in Java to be used in an OSGi environment and how to package and deploy them. You should have knowledge about component oriented development for Java; the talk will also cover the bare minimum OSGi knowledge, but this is not an OSGi introduction.
An invited talk given by Mark Billinghurst on Research Directions for Cross Reality Interfaces. This was given on July 2nd 2024 as part of the 2024 Summer School on Cross Reality in Hagenberg, Austria (July 1st - 7th)
Support en anglais diffusé lors de l'événement 100% IA organisé dans les locaux parisiens d'Iguane Solutions, le mardi 2 juillet 2024 :
- Présentation de notre plateforme IA plug and play : ses fonctionnalités avancées, telles que son interface utilisateur intuitive, son copilot puissant et des outils de monitoring performants.
- REX client : Cyril Janssens, CTO d’ easybourse, partage son expérience d’utilisation de notre plateforme IA plug & play.
Implementations of Fused Deposition Modeling in real worldEmerging Tech
The presentation showcases the diverse real-world applications of Fused Deposition Modeling (FDM) across multiple industries:
1. **Manufacturing**: FDM is utilized in manufacturing for rapid prototyping, creating custom tools and fixtures, and producing functional end-use parts. Companies leverage its cost-effectiveness and flexibility to streamline production processes.
2. **Medical**: In the medical field, FDM is used to create patient-specific anatomical models, surgical guides, and prosthetics. Its ability to produce precise and biocompatible parts supports advancements in personalized healthcare solutions.
3. **Education**: FDM plays a crucial role in education by enabling students to learn about design and engineering through hands-on 3D printing projects. It promotes innovation and practical skill development in STEM disciplines.
4. **Science**: Researchers use FDM to prototype equipment for scientific experiments, build custom laboratory tools, and create models for visualization and testing purposes. It facilitates rapid iteration and customization in scientific endeavors.
5. **Automotive**: Automotive manufacturers employ FDM for prototyping vehicle components, tooling for assembly lines, and customized parts. It speeds up the design validation process and enhances efficiency in automotive engineering.
6. **Consumer Electronics**: FDM is utilized in consumer electronics for designing and prototyping product enclosures, casings, and internal components. It enables rapid iteration and customization to meet evolving consumer demands.
7. **Robotics**: Robotics engineers leverage FDM to prototype robot parts, create lightweight and durable components, and customize robot designs for specific applications. It supports innovation and optimization in robotic systems.
8. **Aerospace**: In aerospace, FDM is used to manufacture lightweight parts, complex geometries, and prototypes of aircraft components. It contributes to cost reduction, faster production cycles, and weight savings in aerospace engineering.
9. **Architecture**: Architects utilize FDM for creating detailed architectural models, prototypes of building components, and intricate designs. It aids in visualizing concepts, testing structural integrity, and communicating design ideas effectively.
Each industry example demonstrates how FDM enhances innovation, accelerates product development, and addresses specific challenges through advanced manufacturing capabilities.
Coordinate Systems in FME 101 - Webinar SlidesSafe Software
If you’ve ever had to analyze a map or GPS data, chances are you’ve encountered and even worked with coordinate systems. As historical data continually updates through GPS, understanding coordinate systems is increasingly crucial. However, not everyone knows why they exist or how to effectively use them for data-driven insights.
During this webinar, you’ll learn exactly what coordinate systems are and how you can use FME to maintain and transform your data’s coordinate systems in an easy-to-digest way, accurately representing the geographical space that it exists within. During this webinar, you will have the chance to:
- Enhance Your Understanding: Gain a clear overview of what coordinate systems are and their value
- Learn Practical Applications: Why we need datams and projections, plus units between coordinate systems
- Maximize with FME: Understand how FME handles coordinate systems, including a brief summary of the 3 main reprojectors
- Custom Coordinate Systems: Learn how to work with FME and coordinate systems beyond what is natively supported
- Look Ahead: Gain insights into where FME is headed with coordinate systems in the future
Don’t miss the opportunity to improve the value you receive from your coordinate system data, ultimately allowing you to streamline your data analysis and maximize your time. See you there!
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Chris Swan
Have you noticed the OpenSSF Scorecard badges on the official Dart and Flutter repos? It's Google's way of showing that they care about security. Practices such as pinning dependencies, branch protection, required reviews, continuous integration tests etc. are measured to provide a score and accompanying badge.
You can do the same for your projects, and this presentation will show you how, with an emphasis on the unique challenges that come up when working with Dart and Flutter.
The session will provide a walkthrough of the steps involved in securing a first repository, and then what it takes to repeat that process across an organization with multiple repos. It will also look at the ongoing maintenance involved once scorecards have been implemented, and how aspects of that maintenance can be better automated to minimize toil.
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsMydbops
This presentation, delivered at the Postgres Bangalore (PGBLR) Meetup-2 on June 29th, 2024, dives deep into connection pooling for PostgreSQL databases. Aakash M, a PostgreSQL Tech Lead at Mydbops, explores the challenges of managing numerous connections and explains how connection pooling optimizes performance and resource utilization.
Key Takeaways:
* Understand why connection pooling is essential for high-traffic applications
* Explore various connection poolers available for PostgreSQL, including pgbouncer
* Learn the configuration options and functionalities of pgbouncer
* Discover best practices for monitoring and troubleshooting connection pooling setups
* Gain insights into real-world use cases and considerations for production environments
This presentation is ideal for:
* Database administrators (DBAs)
* Developers working with PostgreSQL
* DevOps engineers
* Anyone interested in optimizing PostgreSQL performance
Contact info@mydbops.com for PostgreSQL Managed, Consulting and Remote DBA Services
Details of description part II: Describing images in practice - Tech Forum 2024BookNet Canada
This presentation explores the practical application of image description techniques. Familiar guidelines will be demonstrated in practice, and descriptions will be developed “live”! If you have learned a lot about the theory of image description techniques but want to feel more confident putting them into practice, this is the presentation for you. There will be useful, actionable information for everyone, whether you are working with authors, colleagues, alone, or leveraging AI as a collaborator.
Link to presentation recording and transcript: https://bnctechforum.ca/sessions/details-of-description-part-ii-describing-images-in-practice/
Presented by BookNet Canada on June 25, 2024, with support from the Department of Canadian Heritage.
Quantum Communications Q&A with Gemini LLM. These are based on Shannon's Noisy channel Theorem and offers how the classical theory applies to the quantum world.
Blockchain technology is transforming industries and reshaping the way we conduct business, manage data, and secure transactions. Whether you're new to blockchain or looking to deepen your knowledge, our guidebook, "Blockchain for Dummies", is your ultimate resource.
Best Programming Language for Civil EngineersAwais Yaseen
The integration of programming into civil engineering is transforming the industry. We can design complex infrastructure projects and analyse large datasets. Imagine revolutionizing the way we build our cities and infrastructure, all by the power of coding. Programming skills are no longer just a bonus—they’re a game changer in this era.
Technology is revolutionizing civil engineering by integrating advanced tools and techniques. Programming allows for the automation of repetitive tasks, enhancing the accuracy of designs, simulations, and analyses. With the advent of artificial intelligence and machine learning, engineers can now predict structural behaviors under various conditions, optimize material usage, and improve project planning.
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc
Six months into 2024, and it is clear the privacy ecosystem takes no days off!! Regulators continue to implement and enforce new regulations, businesses strive to meet requirements, and technology advances like AI have privacy professionals scratching their heads about managing risk.
What can we learn about the first six months of data privacy trends and events in 2024? How should this inform your privacy program management for the rest of the year?
Join TrustArc, Goodwin, and Snyk privacy experts as they discuss the changes we’ve seen in the first half of 2024 and gain insight into the concrete, actionable steps you can take to up-level your privacy program in the second half of the year.
This webinar will review:
- Key changes to privacy regulations in 2024
- Key themes in privacy and data governance in 2024
- How to maximize your privacy program in the second half of 2024
What’s New in Teams Calling, Meetings and Devices May 2024
Apache Sling : JCR, OSGi, Scripting and REST
1. OSGi, Scripting & REST
Web Development with Apache Sling
Carsten Ziegeler | Day Software
cziegeler@apache.org
2. 2
About Carsten Ziegeler
• Member of the Apache Software Foundation
– Sling, Felix, Cocoon, Portals, Sanselan, Excalibur,
Incubator
– PMC: Felix, Portals, Cocoon, Incubator, Excalibur (Chair)
• RnD Team at Day Software
• Article/Book Author, Technical Reviewer, Speaker
• JSR 286 Spec Group (Portlet API 2.0)
2
3. 3
Agenda – Apache Sling
1 Motivation
2 Content and JCR
3 Web and REST
4 Scripting
5 OSGi
6 Outlook
3
5. 5
Web Challenges
• Publish huge amount of information
– Different types
– Highly dynamic
– Different output formats
• Web 2.0 ready
– Collaboration and integration
• Fast changing requirements
– Rapid prototyping and development
– Dynamic, extensible but maintainable
5
6. 6
Web Challenges
• Publish huge amount of information
JCR
– Different types
– Highly dynamic
– Different output formats REST
ROA
• Web 2.0 ready
– Collaboration and integration
Scripting
• Fast changing requirements
– Rapid prototyping and development
– Dynamic, extensible but maintainable OSGi
6
7. 7
Apache Sling – The Fun is Back
5th Winner JAX Innovation Award 2008
• Web framework
• Java content repository (JCR)
• ROA / REST
• Scripting inside
• OSGi
• Apache Open Source project
– http://incubator.apache.org/sling
7
10. 10
Content is Important
• Apache Sling makes handling content easy
• Java content repository (JCR)
– Several different sources possible
• Direct mapping: URL -> content
– Configurable
– http://myserver.domain/products/sling.html
• Flexible rendering
10
11. 11
Content Repository
• Generic application data store
• Structured and unstructured content
• Support small and large-scale data
• Locking, transactions, versioning, observation
and searching
11
12. 12
JCR – JSR 170
• Content Repository for Java technology API
• (Java) Standard
– Supported by many vendors
– Used by many products and projects
– Several open source solutions
• How do you connect to a CR?
• How do you interact with a CR?
JSR 283 – Version 2.0 – scheduled for 2009
12
14. 14
Content Repository Features
• Hierarchical content
– Nodes and properties
• Structured
– Nodetypes and typed properties
• And/or unstructured
• Fine and coarse-grained
14
15. 15
Sample Content Structure
Travel Family
Europe Weddings
Amsterdam Basel 2008
City Photo
Photo
2007
Photo
Photo
15
16. 16
Content Repository Features
Query (XPath, SQL)
•
Export/Import (XML)
•
Referential Integrity
•
Authentication
•
Access Control
•
Versioning
•
Observation
•
Locking and Transactions (JTA)
•
16
17. 17
Comparison
• File System
– Hierarchical, unstructured
• Database
– Structured
– Referential integrity, transactions
• Content Repository
– Advantages of a FS and a database
– Plus observation, versioning etc.
17
19. 19
The Repository Model
• Repository: one (or more) workspaces
• Workspace contains a tree of items
• Item: Node or property
• Nodes provide the content structure
– May have children
• Actual data is stored as values of properties
• Types and namespaces!
Implementation of JCR 19
20. 20
Nodes and Properties
W
o
r
k
s
p
a
c
e
AC
Root
= Node
o
n
t
e
n
t
R
e
p
o
s
it
o
r
y
= Property
a c
b
g
d h
e
„Once upon
-25
a time..“
i j k
6.02x1023
true
Implementation of JCR
20
21. 21
Apache Jackrabbit
• JSR 170 reference implementation
• Apache TLP since 2006
• Several releases
• JCR 2.0 RI later this year
• Additional components
22. 22
Leverage the standard node types
• Type hierarchy • Content hierarchy
nt:hierarchyNode
nt:folder
nt:file
nt:linkedFile
nt:resource
22
26. 26
Resource Oriented Architecutre
• Piece of information is a resource
– News entry, product, photo...
– (Descriptive) URI
• Stateless
– Request contains all relevant information
• Use HTTP
– Methods (GET, POST) for operations
26
27. 27
REST with Apache Sling
• Default behaviour for GET
• Creating/Updating content through POST
– Default behaviour
• Additional operations/method
• Resource-first request processing!
27
28. 28
Resource
• Sling's abstraction of the thing addressed by
the request URI
– Usually mapped to a JCR node
– File system, database...
• Properties of resources
– Path, e.g. JCR Item path
– Type, e.g. JCR node type
– Metadata, e.g. last modification date
28
29. 29
Resource- rst Request Processing
fi
• URI Decomposition
• /products/sling.print.a4.html
• Resource Path Selectors Extension
– Resource and representation
• Content retrieved from repository
• Rendering based on content type
29
30. 30
Basic Request Processing Steps
• URI decomposition
• Resolve the resource
– Source: request URI
• Resolve rendering script
– Source: resource type
– Scripts are wrapped by a generic script servlet
• Create rendering chain
– Configurable (servlet) filters
– Rendering servlet
30
• Invoke rendering chain
31. 31
Resource Resolver
• Gateway for resources
• Abstracts the path resolution
• Abstracts access to the persistence layer(s)
• Configurable
– Mappings (Multi-site mgmt, beautify paths)
• Tasks:
– Finding Resources
– Getting Resources
– Simplification of Query Execution
31
34. 34
Scripting Inside
• It's your choice
– JSP, servlet, ESP
– javax.script (Apache BSF)
– own script handlers
• Scripts stored in OSGi bundles or repository
• Scripts are searched at configurable locatiosn
• Default servlets (or scripts)
– JSON, XML
– Registerable
– Fallback / Last Ressort
34
35. 35
Script Resolving I
• Path to script is built from ...
– Configured search paths ( /apps, /libs )
– Resource type converted to path ( my/photo )
– Selector string ( print/a4)
– Request method & MIME Type
• GET --> Request URL Extension ( html )
• else --> Method Name ( POST, PUT, ... )
35
36. 36
Script Resolving Example
• URI: /products/sling.print.a4.html
• Resource: /products/sling
• Resource Type: myapp:product
• Script for GET:
– /apps/myapp/product/print/a4/html.*
• Script for POST:
– /libs/myapp/product/print/a4/POST.*
36
37. 37
Script Resolving II
• Scripts are searched by best matching
– /apps/myapp/product/print/a4/html.*
– /libs/myapp/product/print/a4/html.*
– /apps/myapp/product/html.*
– /libs/myapp/product/html.*
• Resource has a type and a super type
– Script inheritance
– Default script (JSON...)
37
38. 38
Powerful Scripting with Includes I
Request: /albums/travel.html
Resource Resolver
Resource, resource type: my:Album
Script Resolver
Script: /libs/my/Album/html.jsp
Script
Generates main html
sling:include with selectors
response 38
39. 39
Powerful Scripting with Includes II
Request: /albums/travel.html
Script (/libs/my/Album/html.jsp)
<sling:include resource=quot;<%= current %>quot; addSelectors=quot;treequot;/>
…
Script Resolver
Script: /libs/my/Album/tree.html.jsp
Script
response
42. 42
OSGi in 5..ehm..1 Minute
• Specification of a framework
• Module concept (bundles) with lifecycle
• Simple but powerful component model
– Lifecycle management
– Publish/Find/Bind service registration
• Dynamic!
• Uses the concept of bundles
42
43. 43
An OSGi Bundle
• Leverages the Java packaging mechanism:
JAR files
• Contains Java classes and resources
��� Additional meta-data
– Implicit dependencies to other bundles
– Package imports/exports
43
44. 44
Services
• OSGi offers an API to register services
– Service is registered by its interface name(s)
– Implementation is bundle private
– Several components for same service possible
(from different bundles)
• Bundles can query services
– By interface names
– With additional filters
44
45. 45
The OSGi Core
• Minimal but sufficient API for services
– Minimal overhead: Good for simple bundles
– No support for component management
– No support for configuration management
– Requires sometimes a lot of Java coding
• Additional (optional) OSGi extensions
– Declarative Service Specification
– Configuration Admin Service Specification
45
46. Dynamic Services
• OSGi Declarative Services Specification
– XML Configuration
• Contained in bundle
– Publishing services
– Consuming services
• Policy (static,dynamic), cardinality (0..1, 1..1, 0..n)
– Default configuration
– Service Lifecycle management
• Various Implementations
– Apache Felix SCR 46
47. Confi g Admin and Metatype
• OSGi Config Admin
– Configuration Manager
– Persistence storage
– API to retrieve/update/remove configs
– Works with Declarative Services
• OSGi Metatype Service
– Description of bundle metadata
– Description of service configurations
• Various Implementations
– Apache Felix 47
48. Apache Felix
• Top-level project (March 2007)
• Healthy and diverse community
• OSGi R4 (R4.1) implementation
– Framework (frequent releases)
– Services (continued development)
– Moving towards upcoming R4.2
• Tools
– Maven Plugins, Web Console, iPojo
• New sub project
– Karaf : Runtime Environment (Service Mix)
48
49. Apache Sling Runtime
• Uses Apache Felix
• Runtime: Apache Sling Launchpad
– Might be merged with Felix Karaf
• Two flavours
– Standalone Java Application
– Web application
• But Sling can be deployed in any OSGi
framework!
49
50. 50
Standalone Java Application
• One single executable JAR file
• Small Launcher
• Starts OSGi Framework (Apache Felix)
• Uses Jetty in an OSGi Bundle
50
51. 51
Web Application
• Extends Standalone Application
– Replaces Command Line Support with a Servlet
• Uses a Bridge to connect Sling to the Servlet
Container
51
52. 52
Facts about Sling
• Sling API
– No reference to JCR API
– Uses resource abstraction
• Highly modular and runtime configurable
– OSGi framework
– Everything is a OSGi bundle
• ConfigAdmin, Declarative Services, Metatype
• Felix Web Console
52
55. 55
Current State
• Apache Sling is in the Apache Incubator
• Second Release: RSN! :)
• Demo Applications
• Increasing interest -> Increasing community
• Graduating from the incubator to a TLP
– sling.apache.org
55
56. 56
Development
• Easy to get started
– Add content, add script, add more content
• Very flexible and dynamic
• Tooling
– Maven Plugins
– Apache Felix SCR Plugin
– Additional Sling Plugins
– But not tied to Maven of course :)
56
57. 57
And remember...
• (Nearly) Everything is content
– Application content
– HTML pages, CSS and JavaScript files, static
images
– Documentation, resource bundles, etc.
– With versioning, export/import, full text search,
etc.
57
58. 58
Manage the Web Challenges...
• Publish huge amount of information
– Different types
– Highly dynamic
– Different output formats
• Web 2.0 ready
– Collaboration and integration
• Fast changing requirements
– Rapid prototyping and development
– Dynamic, extensible but maintainable
58
59. 59
...with Apache Sling: State of the Art
• Modularity and dynamics (OSGi)
• Content Management (JCR)
• Resource oriented architecture (REST)
• Scripting inside
59
60. 60
Apache Sling – The Fun is Back!
• Web Framework
• Java Content Repository
• REST
• Scripting inside
• OSGi
• Apache Open Source project
• Check it out today!
60