The document discusses JON plugins, including concepts, services, servers, and platforms. It explains the hierarchy between resources and shows examples of resources, categories, and types. It asks why metrics and operations are different for each resource type and why some resources are automatically discovered while others are not. It attributes this to the JON agent and plugins. It provides an overview of the JON/Jopr/RHQ architecture and explains that services are only discovered and monitored due to specific plugins. It suggests developing your own plugins if a service is desired but lacks plugins.
Trusted Execution Environments (TEEs) are gaining traction in academia and industry as a fulcrum to build trustworthy systems.
Built as dedicated hardware components in mobile or server-grade processors, and available in infrastructure-as-a-service cloud providers,
TEEs allow applications with high privacy and confidentiality demands to be deployed and executed over untrusted environments,
shielding data and code from compromised systems or powerful attackers.
After a quick introduction to basic concepts for TEEs, I will survey some of our most recent contributions exploiting TEEs,
including as defensive tools in the context of Federated Learning, as support to build secure cache systems for edge networks,
shielding novel runtime environments (ie, WebAssembly) within Intel SGX enclaves, and more.
For each of the systems built, I will highlight some of the lessons learned, hopefully useful to future
researchers and practitioners entering this exciting area of research.
Slides for a talk at the Seattle Java User Group about building a workflow management application for a biomedical lab on top of the OSGi module system and the Eclipse Rich Client Platform.
Apache Tuscany is an open source project that simplifies the development, deployment and management of distributed applications built as compositions of service components. It is based on the Service Component Architecture specifications being defined by the OASIS Open SCA Collaboration. This presentation describe the experience to OSGi enable the Tuscany SCA runtime.
Maven, Eclipse and OSGi Working Together - Carlos Sanchezmfrancis
OSGi DevCon 2008
With the growing popularity of Apache Maven, Eclipse, and OSGi, the most frequently-asked questions are: "Can they work together?" and, "Do they fight for the same space?" This tutorial will cover the strengths and weaknesses of each, explains where they overlap, and how they complement each other so you can get maximum productivity. It pays special attention to the build process, dependency management, collaboration, repository management, and available tools, as well as the future direction of the technologies. The solutions proposed will be based on the work done in the Apache Maven and Apache Felix projects, along with several Eclipse Foundation projects like Eclipse PDE and Eclipse Buckminster.
Trusted Execution Environments (TEEs) are gaining traction in academia and industry as a fulcrum to build trustworthy systems.
Built as dedicated hardware components in mobile or server-grade processors, and available in infrastructure-as-a-service cloud providers,
TEEs allow applications with high privacy and confidentiality demands to be deployed and executed over untrusted environments,
shielding data and code from compromised systems or powerful attackers.
After a quick introduction to basic concepts for TEEs, I will survey some of our most recent contributions exploiting TEEs,
including as defensive tools in the context of Federated Learning, as support to build secure cache systems for edge networks,
shielding novel runtime environments (ie, WebAssembly) within Intel SGX enclaves, and more.
For each of the systems built, I will highlight some of the lessons learned, hopefully useful to future
researchers and practitioners entering this exciting area of research.
Slides for a talk at the Seattle Java User Group about building a workflow management application for a biomedical lab on top of the OSGi module system and the Eclipse Rich Client Platform.
Apache Tuscany is an open source project that simplifies the development, deployment and management of distributed applications built as compositions of service components. It is based on the Service Component Architecture specifications being defined by the OASIS Open SCA Collaboration. This presentation describe the experience to OSGi enable the Tuscany SCA runtime.
Maven, Eclipse and OSGi Working Together - Carlos Sanchezmfrancis
OSGi DevCon 2008
With the growing popularity of Apache Maven, Eclipse, and OSGi, the most frequently-asked questions are: "Can they work together?" and, "Do they fight for the same space?" This tutorial will cover the strengths and weaknesses of each, explains where they overlap, and how they complement each other so you can get maximum productivity. It pays special attention to the build process, dependency management, collaboration, repository management, and available tools, as well as the future direction of the technologies. The solutions proposed will be based on the work done in the Apache Maven and Apache Felix projects, along with several Eclipse Foundation projects like Eclipse PDE and Eclipse Buckminster.
Selenium has become the de-facto standard framework for end-to-end web testing nowadays. JUnit 5 is the latest version of this popular testing framework and implements a brand-new programming and extension model named Jupiter. This talk presents Selenium-Jupiter (https://bonigarcia.github.io/selenium-jupiter/), an open-source JUnit 5 extension aimed to provide seamless integration with Selenium. At first glance, it allows creating Selenium tests using local or remote browsers, reducing the required boilerplate thanks to the dependency injection mechanism supported in JUnit 5. Moreover, it will enable us to use different types of web browsers and Android devices in Docker containers out of the box. All in all, Selenium-Jupiter can be used to carry out different types of tests for web and mobile applications, including functional, compatibility (using test templates to define different devices or browsers -types and versions-) or performance tests.
Did you know your JDK contains visual monitoring tools with features like: Profiler, Visual GC, Heap dump browsing and much more?
VisualVM, BTrace and jhat are just some examples for useful performance diagnostics tools hidden in your JDK.
Join us for this session to see what tools are out there and how you can use them to identify and solve performance related issues.
In dieser Session werfen wir einen Blick auf die Android Platform jenseits der Dalvik VM. Wir entdecken den Android Source Code und erklären wo sich interessante Beispiele und Referenzen für App-Entwickler sowie nützliche Tools verbergen. Ein High-Level Überblick über die Platform-Architektur und das Platform-Build-System runden die Session ab.
Sebastien Thomas, System Architect at Coyote Amerique, gave a presentation on operator frameworks. His talk covered how Operator SDK can be used to create Kubernetes Operators with Go.
Apresentação do meetup "[JOI] TOTVS Developers Joinville - Java #1" que ocorreu dia 07/08/2019.
** Novidades Java, GraalVM e Quarkus
** Do zero à nuvem com Java e Kubernetes
Selenium has become the de-facto standard framework for end-to-end web testing nowadays. JUnit 5 is the latest version of this popular testing framework and implements a brand-new programming and extension model named Jupiter. This talk presents Selenium-Jupiter (https://bonigarcia.github.io/selenium-jupiter/), an open-source JUnit 5 extension aimed to provide seamless integration with Selenium. At first glance, it allows creating Selenium tests using local or remote browsers, reducing the required boilerplate thanks to the dependency injection mechanism supported in JUnit 5. Moreover, it will enable us to use different types of web browsers and Android devices in Docker containers out of the box. All in all, Selenium-Jupiter can be used to carry out different types of tests for web and mobile applications, including functional, compatibility (using test templates to define different devices or browsers -types and versions-) or performance tests.
Did you know your JDK contains visual monitoring tools with features like: Profiler, Visual GC, Heap dump browsing and much more?
VisualVM, BTrace and jhat are just some examples for useful performance diagnostics tools hidden in your JDK.
Join us for this session to see what tools are out there and how you can use them to identify and solve performance related issues.
In dieser Session werfen wir einen Blick auf die Android Platform jenseits der Dalvik VM. Wir entdecken den Android Source Code und erklären wo sich interessante Beispiele und Referenzen für App-Entwickler sowie nützliche Tools verbergen. Ein High-Level Überblick über die Platform-Architektur und das Platform-Build-System runden die Session ab.
Sebastien Thomas, System Architect at Coyote Amerique, gave a presentation on operator frameworks. His talk covered how Operator SDK can be used to create Kubernetes Operators with Go.
Apresentação do meetup "[JOI] TOTVS Developers Joinville - Java #1" que ocorreu dia 07/08/2019.
** Novidades Java, GraalVM e Quarkus
** Do zero à nuvem com Java e Kubernetes
Part 4: Custom Buildpacks and Data Services (Pivotal Cloud Platform Roadshow)VMware Tanzu
Custom Buildpacks & Data Services
The primary goals of this session are to:
Give an overview of the extension points available to Cloud Foundry users.
Provide a buildpack overview with a deep focus on the Java buildpack (my target audience has been Java conferences)
Provide an overview of service options, from user-provided to managed services, including an overview of the V2 Service Broker API.
Provide two hands-on lab experiences:
Java Buildpack Extension
via customization (add a new framework component)
via configuration (upgrade to Java 8)
Service Broker Development/Management
deploy a service broker for “HashMap as a Service (HaaSh).”
Register the broker, make the plan public.
create an instance of the HaaSh service
deploy a client app, bind to the service, and test it
Pivotal Cloud Platform Roadshow is coming to a city near you!
Join Pivotal technologists and learn how to build and deploy great software on a modern cloud platform. Find your city and register now http://bit.ly/1poA6PG
Google App Engine has become a powerful PaaS provider in last couple of years. With Java support enabled, its scope has further increased. This session presents the options we have in terms of testing on Google App Engine. Following is an overview of the proposed agenda:
Running Test suites of Applications not built for Google App Engine
An over-view of Google Cloud Cover
Advantages & Limitations of Cloud Cover
Integration of Existing Test Suites in Google Cloud Cover
Local Testing of Applications built for Google App Engine
DataStore Testing
Memcache Testing
Task-Queue Testing
Authentication API Testing
The features released between Java 11 and Java 17 have brought a greater opportunity for developers to improve application development productivity as well and code expressiveness and readability. In this deep-dive session, you will discover all the recent Project Amber features added to the Java language such as Records (including Records serialization), Pattern Matching for `instanceof`, switch expression, sealed classes, and hidden classes. The main goal of the Amber Project is to bring Pattern Matching to the Java platform, which will impact both the language and the JDK APsI. You will discover record patterns, array patterns, as well as deconstruction patterns, through constructors, factory methods, and deconstructors.
You can find the code shown here: https://github.com/JosePaumard/devoxx-uk-2021
CollabSphere 2021 - DEV114 - The Nuts and Bolts of CI/CD With a Large XPages ...Jesse Gallagher
Though Domino makes working with build servers and CI/CD pipelines difficult, it is possible to do so even with complex applications. This session will discuss the specifics of using several OpenNTF projects - NSF ODP Tooling, the Jakarta XPages Runtime, and XPages Jakarta EE Support - as well as open-source technologies such as Docker to build, test, and deploy Java-based Domino applications for testing and staging. This builds on previous sessions about the NSF ODP Tooling and Maven generally.
Loomio how to Series - Creating a new Group of PeopleSEA Tecnologia
Loomio is an online platform for collaborative decisions. In this tutorial, we discuss how to create a new group o people interested on a common subject.
Gerentes em Crise existencial - Existimos no Universo Ágil?SEA Tecnologia
Nesta apresentação serão abordadas diversos questionamentos comuns que permeiam o universo de gerenciamento de projetos quando se trata da adoção de métodos ágeis, como: receios de perda de poder, desorganização generalizada, quais os riscos da adoção, falta de documentação, falta de planejamento, de definição de escopo, se há necessidade de gerente, que tipo de trabalho o gerente vai fazer, o que é esse tal de management 3.0, o que vai mudar na rotina (ou na vida, ou na empresa), como medir produtividade, se serve pra qualquer tipo e tamanho de projeto, e se um post-it sumir da parede?; dentre outros questionamentos que podem surgir dos participantes.
Contratos de desenvolvimento de software para governo blue pill or red pill?SEA Tecnologia
Apresentaremos brevemente a evolução dos contratos de desenvolvimento de software e uso dos métodos ágeis no governo, passando pelos movimentos da comunidade ágil, sua influência, alguns cases de sucesso e seus aprendizados. Mas, contar histórias e problemas não muda muito as coisas. O maior propósito desse talk é apresentar duas premissas diferentes para gestores públicos e empresas privadas relfetirem sobre contratos de desenvolvimento de software, e em seguida apresentar algumas ideias bastante inovadoras e amadurecê-las junto a audiência.
Não se questiona mais os méritos da filosofia ágil de desenvolvimento de software. Mesmo as mais ortodoxas escolas de gestão e desenvolvimento de projetos têm ratificado em suas doutrinas práticas e princípios promovidos pela agilidade. No vácuo deste movimento, seguem os governos de todo o mundo, restritos em suas estruturas legais, mas dispostos a experimentação de novas formas de prestação de serviço à sociedade. No Brasil, o setor público se vale da criatividade para a adequação desta nova cultura de trabalho às regras singulares do sistema. Vamos apresentar nesta palestra uma visão ampla do uso de técnicas ágeis pelo governo brasileiro, alguns resultados, suas dificuldades e, principalmente, o que de fato está em jogo sob o manto de todo esse discurso.
Os benefícios e desafios da participação pública digitalSEA Tecnologia
Apresentação realizada no seminário de comemoração dos 10 anos da Comissão de Legislação Participativa da Câmara dos Deputados. Vídeo disponível em
http://www2.camara.gov.br/atividade-legislativa/webcamara/arquivos/recentes/videoArquivo?codSessao=00019175
O movimento Lean Startup está quente no Brasil. Nesta apresentação, busco apresentar um resumo introdutório do assunto para orientar startupeiros de carreira e, quiçá, despertar o interesse de novos.
Emerge no cenário internacional uma nova tendência em favor do intercâmbio extremo de informações. Sob a luz do open mind principle, instituições públicas e privadas de todo o mundo engrossam o coro em busca de novos significados de dados existentes. Governos de todo mundo, influenciados pela onda da Web 2.0, fomentam progressivamente a construção de mashups a partir de suas bases. Batizado de Open Data, este movimento chegou ao Brasil e tem ganhado força na esfera pública. Como desenvolvedores de software, toda esta onda nos trás um sem número de oportunidades, econômicas, políticas e sociais. Por um lado, usando de nosso know how técnico, temos a chance de criar soluções que agregem transparência às ações políticas, aproximem a sociedade da gestão pública e viabilizem o exercício de uma verdadeira cidadania digital. Por outro lado, trata-se de um amplo leque de novas oportunidades de negócio que se apresenta. Nesta palestra, falaremos um pouco da filosofia OpenData e OpenGovData, apresentaremos iniciativas da comunidade hacker, discutiremos as propostas do governo e analisaremos algumas técnicas e tecnologias que temperam o caminho da abertura de dados, do scraping à semantic web.
Primeiro Roadshow no Brasil, na capital Brasília, do lançamento oficial do Liferay Enterprise 6. Abertura Bruno Farache, Liferay, e Clédiston, SEA Tecnologia.
Computação ou medicina? Passar num concurso, enviar curriculos ou abrir uma empresa? Web, mobile ou desktop? Desde os tempos de escola somos inundados de questões que somente o curso da vida nos é capaz de responder. Em nossa formação escolar, somos orientados a seguir um único caminho, o caminho da estabilidade, segurança e conforto. Educam-nos a sermos submissos e obedientes e, condutas fora do padrão esperado são rechaçadas e condenadas ao castigo. Protagonizando essa história, estamos nós, sob avaliação incisiva dos olhos críticos da sociedade. Poucos, acertam de primeira em suas escolhas de vida. Outros, no entando, não têm a mesma sorte e atrofiam-se em gaiolas de outro sem gozar do prazer de se viver dia após dia. Nesta apresentação, vamos refletir sobre todos estes fatos, usando exemplos vivos de rotinas de profissionais na mais diferentes situações e analisando por que a paixão pelo trabalho é a principal virtude compartilhada por profissionais e empreendedores de sucesso.
A comunidade técnica brasileira tem um poder de motivação, articulação e organização coletiva invejada por grupos de usuários de todo o mundo. E se usássemos toda esta sinergia para a geração de riqueza e valor através do empreendorismo em software?
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Welocme to ViralQR, your best QR code generator.ViralQR
Welcome to ViralQR, your best QR code generator available on the market!
At ViralQR, we design static and dynamic QR codes. Our mission is to make business operations easier and customer engagement more powerful through the use of QR technology. Be it a small-scale business or a huge enterprise, our easy-to-use platform provides multiple choices that can be tailored according to your company's branding and marketing strategies.
Our Vision
We are here to make the process of creating QR codes easy and smooth, thus enhancing customer interaction and making business more fluid. We very strongly believe in the ability of QR codes to change the world for businesses in their interaction with customers and are set on making that technology accessible and usable far and wide.
Our Achievements
Ever since its inception, we have successfully served many clients by offering QR codes in their marketing, service delivery, and collection of feedback across various industries. Our platform has been recognized for its ease of use and amazing features, which helped a business to make QR codes.
Our Services
At ViralQR, here is a comprehensive suite of services that caters to your very needs:
Static QR Codes: Create free static QR codes. These QR codes are able to store significant information such as URLs, vCards, plain text, emails and SMS, Wi-Fi credentials, and Bitcoin addresses.
Dynamic QR codes: These also have all the advanced features but are subscription-based. They can directly link to PDF files, images, micro-landing pages, social accounts, review forms, business pages, and applications. In addition, they can be branded with CTAs, frames, patterns, colors, and logos to enhance your branding.
Pricing and Packages
Additionally, there is a 14-day free offer to ViralQR, which is an exceptional opportunity for new users to take a feel of this platform. One can easily subscribe from there and experience the full dynamic of using QR codes. The subscription plans are not only meant for business; they are priced very flexibly so that literally every business could afford to benefit from our service.
Why choose us?
ViralQR will provide services for marketing, advertising, catering, retail, and the like. The QR codes can be posted on fliers, packaging, merchandise, and banners, as well as to substitute for cash and cards in a restaurant or coffee shop. With QR codes integrated into your business, improve customer engagement and streamline operations.
Comprehensive Analytics
Subscribers of ViralQR receive detailed analytics and tracking tools in light of having a view of the core values of QR code performance. Our analytics dashboard shows aggregate views and unique views, as well as detailed information about each impression, including time, device, browser, and estimated location by city and country.
So, thank you for choosing ViralQR; we have an offer of nothing but the best in terms of QR code services to meet business diversity!
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
26. App Package Descriptor
WebApp WAR web.xml
Portlet WAR portlet.xml
EJB JAR ejb-jar.xml
MIDlet JAR MANIFEST
Enterprise App EAR application.xml
MBeans SAR *-service.xml
Connectors RAR
JON Plugin JAR rhq-plugin.xml
26
28. Discovery Component
public class BuscadorDiscovery implements ResourceDiscoveryComponent {
public Set discoverResources(ResourceDiscoveryContext discoveryContext) {
// Implementa a regra de descoberta do Buscador
// (via tabela de processos, arquivo em disco, porta TCP/IP, etc)
// Monta e retorna colecao com os recursos descobertos.
}
}
28
29. Plugin Component
public class BuscadorComponent implements ResourceComponent {
public AvailabilityType getAvailability() {
// Regra para verificar se o recurso esta disponivel ou nao.
}
public void start(ResourceContext context) {
// Inicializa conexao com o rescurso
}
public void stop() {
// Finaliza conexao com o recurso
}
} 29
30. Plugin Component
public class BuscadorComponent implements ResourceComponent,
MeasurementFacet {
public void getValues(MeasurementReport report, Set metrics) {
// Recuperar e armazenar em ‘report’ o valor de
// cada metrica presente em ‘metrics’
}
}
30
32. $ svn co http://anonsvn.jboss.org/repos/jopr/trunk
A trunk/.classpath
A trunk/LICENSE_LGPL
A trunk/LICENSE
A trunk/.project
A trunk/LICENSE_GPL é preciso obter o
A trunk/modules código fonte do Jopr ou
A trunk/modules/plugins do RHQ Project
A trunk/modules/plugins/hibernate
A trunk/modules/plugins/hibernate/src
A trunk/modules/plugins/hibernate/src/test
A trunk/modules/plugins/hibernate/src/test/java
A trunk/modules/plugins/hibernate/src/test/java/org
A trunk/modules/plugins/hibernate/src/test/java/org/rhq
A trunk/modules/plugins/hibernate/src/test/java/org/rhq/plugins
A trunk/modules/plugins/hibernate/src/test/java/org/rhq/plugins/hibernate
...
A trunk/etc/jbas5-ejb-client/src/main/java
A trunk/etc/jbas5-ejb-client/src/main/java/test
A trunk/etc/jbas5-ejb-client/src/main/java/test/EjbClient.java
A trunk/etc/jbas5-ejb-client/pom.xml
A trunk/.settings
A trunk/.settings/org.eclipse.jdt.core.prefs
A trunk/.settings/org.maven.ide.eclipse.prefs
U trunk
Checked out revision 673.
32
34. execute o
gerador de
plugins
$ java -jar rhq-pluginGen-1.2.2-jar-with-dependencies.jar
Please specify the plugin root category PLATFORM(P), SERVER(S), SERVICE(I), i
Please specify its PackagePrefix: br.com.seatecnologia.monitoring.buscador
Please specify its FileSystemRoot: /Users/alegomes/Code/jboss.org/jopr/trunk/modules/plugins
Please specify its ComponentClass: BuscadorComponent
Please specify its DiscoveryClass: BuscadorDiscovery
Please specify if it should support Events (y/N):
Please specify its ParentType:
Please specify if it should support Monitoring (y/N): y
Please specify if it should support Operations (y/N):
Please specify if it should support Singleton (y/N):
Please specify if it should support ResourceConfiguration (y/N):
Please specify if it should support CreateChildren (y/N):
Please specify if it should support UsesExternalJarsInPlugin (y/N):
Please specify if it should support DeleteChildren (y/N):
Please specify if it should support ManualAddOfChildren (y/N):
Please specify if it should support UsePluginLifecycleListenerApi (y/N):
Please specify its Name: buscador
Please specify its Description: Plugin para acompanhamento da execucao do aplicativo de
simulacao de memory leaks
Do you want to add a child to buscador? (y/N)
Don't forget to add your plugin to the parent pom.xml responda as
questões
34
35. $ ls -1 /Users/alegomes/Code/jboss.org/jopr/trunk/modules/plugins
JBossOSGi
buscador
hibernate
jboss-as
jboss-as-5 plugin gerado já na pasta
jboss-cache de plugins do Jopr
pluginGen.log
pom.xml
rhq-server
tomcat
$ ls -1 /Users/alegomes/Code/jboss.org/jopr/trunk/modules/plugins/buscador
pom.xml
src
plugin gerado como
projeto Maven
35
43. src/main/resources/META-INF/rhq-plugin.xml
<plugin-configuration>
<!-- TODO add your own here -->
</plugin-configuration>
comente isto por
enquanto para testarmos
apenas o build e deploy
do plugin
<!-- plugin-configuration>
<!- TODO add your own here ->
</plugin-configuration -->
41
45. mvn package
[INFO] Failed to resolve artifact.
GroupId: org.rhq erro ao
ArtifactId: rhq-plugins-parent executar o
Version: 1.2.0-SNAPSHOT ‘mvn package’
Reason: Unable to download the artifact from any repository
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
<version>1.2.0-SNAPSHOT</version><!-- TODO adjust RHQ version -->
</parent>
pom.xml
lib requerida
pelo plugin
gerado
43
47. repositório oficial
não possui a versão
1.2.0-SNAPSHOT
repositório de
snapshots até
possui a versão
1.2.0-SNAPSHOT,
mas já estão
desenvolvendo a
1.3.0-SNAPSHOT
45
48. pom.xml
alteração da
versão da lib
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
<version>1.2.0.GA</version><!-- TODO adjust RHQ version -->
</parent>
...
<repositories>
<repository>
<id>jboss</id>
<name>JBoss Repository</name>
<url>http://repository.jboss.org/maven2/</url>
</repository>
</repositories>
inclusão de um dos
repositórios do JBoss
46
50. Deploy
jopr/trunk/modules/plugins/buscador alegomes$
cp target/buscador-plugin-1.2.0.GA.jar
~/JavaTools/jon-server-2.2.0.GA/jbossas/server/
default/deploy/rhq.ear/rhq-downloads/rhq-plugins/
06:05:33,763 INFO [ProductPluginDeployer] Discovered agent plugin [buscador]
06:05:34,406 INFO [ProductPluginDeployer] Deploying [1] new or updated agent plugins: [buscador]
log do jon-server
48
51. ./rhq-server.sh console
...
07:22:52,375 INFO [EARDeployer] Init J2EE application: file:/Volumes/Data/Applications/JavaTools/
jon-server-2.2.0.GA/jbossas/server/default/deploy/rhq.ear/
07:23:01,581 INFO [SchedulerService] Scheduler has a default operation timeout of [600] seconds.
07:23:03,094 INFO [CoreServer] Version=[1.2.0.GA], Build Number=[3862], Build Date=[27.Apr.2009
16.56.25 EDT]
07:23:20,790 INFO [ProductPluginDeployer] Discovered agent plugin [buscador]
07:23:22,726 INFO [ProductPluginDeployer] Discovered agent plugin [Hibernate]
07:23:24,821 INFO [ProductPluginDeployer] Discovered agent plugin [JBossAS]
07:23:25,988 INFO [ProductPluginDeployer] Discovered agent plugin [RHQServer]
07:23:27,329 INFO [ProductPluginDeployer] Discovered agent plugin [RHQAgent]
07:23:28,437 INFO [ProductPluginDeployer] Discovered agent plugin [Apache]
07:23:29,579 INFO [ProductPluginDeployer] Discovered agent plugin [Database]
07:23:30,776 INFO [ProductPluginDeployer] Discovered agent plugin [IIS]
07:23:31,938 INFO [ProductPluginDeployer] Discovered agent plugin [JMX]
07:23:32,947 INFO [ProductPluginDeployer] Discovered agent plugin [Platforms]
07:23:33,940 INFO [ProductPluginDeployer] Discovered agent plugin [Postgres]
07:23:34,366 INFO [PersistenceUnitDeployment] Starting persistence unit
persistence.units:ear=rhq.ear,unitName=rhqpu
07:23:34,786 INFO [Version] Hibernate EntityManager 3.2.1.GA
...
49
52. sudo ./rhq-agent.sh
rhq-agent-jon-2.2.0/bin alegomes$ sudo ./rhq-agent.sh
RHQ 1.2.0.GA [3862] (Mon Apr 27 17:55:22 BRT 2009)
>
> plugins info
Plugins that are currently installed:
jopr-hibernate-plugin-2.2.0.GA.jar
Plugin Name: Hibernate
Last Updated: May 27, 2009 6:38:29 PM BRT
File Size: 11,008 bytes
MD5 Hashcode: d8540d9ff5e15867f7e19bd755fe1afe
...
rhq-postgres-plugin-1.2.0.GA.jar
Plugin Name: Postgres
Last Updated: May 27, 2009 6:38:26 PM BRT
File Size: 475,851 bytes
MD5 Hashcode: 7049b7b7d33ec5f5ebb903ffdb9f5e85
Total number of plugins currently installed: [10]
> 50
53. sudo ./rhq-agent.sh
> plugins update
The plugin container has been stopped.
Updating plugins to their latest versions.
The plugin [buscador-plugin-1.2.0.GA.jar] has been updated.
Completed updating the plugins to their latest versions.
The plugin container has been started.
>
51
54. sudo ./rhq-agent.sh
> plugins info
Plugins that are currently installed:
buscador-plugin-1.2.0.GA.jar
Plugin Name: buscador
Last Updated: May 29, 2009 7:29:26 AM BRT
File Size: 6,567 bytes
MD5 Hashcode: 2bd7e8dcbd206ee56a9aec9f6b9b6e6d
jopr-hibernate-plugin-2.2.0.GA.jar
Plugin Name: Hibernate
Last Updated: May 27, 2009 6:38:29 PM BRT
File Size: 11,008 bytes
MD5 Hashcode: d8540d9ff5e15867f7e19bd755fe1afe
...
rhq-postgres-plugin-1.2.0.GA.jar
Plugin Name: Postgres
Last Updated: May 27, 2009 6:38:26 PM BRT
File Size: 475,851 bytes
MD5 Hashcode: 7049b7b7d33ec5f5ebb903ffdb9f5e85
Total number of plugins currently installed: [11] 52
56. Discovery Component
import org.rhq.core.pluginapi.inventory.ResourceDiscoveryComponent;
public class BuscadorDiscovery implements ResourceDiscoveryComponent {
public Set discoverResources(ResourceDiscoveryContext discoveryContext) throws Exception {
// Todos os recursos descobertos serao agrupados neste conjunto
Set discoveredResources = new HashSet();
// Implementa a regra de descoberta do Buscador
// (via tabela de processos, arquivo em disco, porta TCP/IP, etc)
// Cria objeto que represente o recurso descoberto
DiscoveredResourceDetails detail = .....;
// Adicione cada um dos recursos descobertos ao resultado
discoveredResources.add(detail);
return discoveredResources;
}
54
57. Process Scan
Process Info Query Language
Process|basename|match=^java.*,arg|org.jboss.Main|match=.*
process|pidfile|match=/etc/product/lock.pid
List<ProcessScanResult> autoDiscoveryResults = context.getAutoDiscoveredProcesses();
for (ProcessScanResult result : autoDiscoveryResults) {
ProcessInfo procInfo = result.getProcessInfo();
...
DiscoveredResourceDetails detail =
new DiscoveredResourceDetails( resourceType, key, name, null,
description, childConfig, procInfo );
result.add(detail);
}
Discovery Component 55
59. Plugin Component
public class BuscadorComponent implements ResourceComponent {
public AvailabilityType getAvailability() {
// Regra para verificar se o recurso esta disponivel ou nao.
return AvailabilityType.UP;
}
public void start(ResourceContext context) throws Exception {
// Inicializa conexao com o rescurso
}
public void stop() {
// Finaliza conexao com o recurso
}
} 57
60. Plugin Component
public class BuscadorComponent implements ResourceComponent, MeasurementFacet {
/**
* Coleta valores das metricas mapeadas no descritor
*/
public void getValues(MeasurementReport report, Set metrics) throws Exception {
for (MeasurementScheduleRequest metrica : metrics) {
if (metrica.getName().equals("umaMetricaQualquer")) {
MeasurementDataNumeric valor = null;
valor = new MeasurementDataNumeric(metrica, Double.valueOf(VALOR_QUALQUER));
report.addData(valor);
}
// Fazer a mesma coisa para as outras metricas
}
} 58
67. Operation Facet
<operation name="start" displayName="Start"
description="Start this application server.
The script used is specified in the Operations
group of connection properties.">
<results>
<c:simple-property name="operationResult"
description="Outcome of starting the server."/>
</results>
</operation>
public OperationResult invokeOperation(String name, Configuration configuration) throws InterruptedException {
JBossASServerSupportedOperations operation =
Enum.valueOf(JBossASServerSupportedOperations.class,
name.toUpperCase());
return operationsDelegate.invoke(operation, configuration);
}
65
69. Event Facet
<event name="logEntry" description="an entry in a log file"/>
public void start(ResourceContext context) throws Exception {
...
this.logFileEventDelegate = new LogFileEventResourceComponentHelper(this.resourceContext);
this.logFileEventDelegate.startLogFileEventPollers();
}
public void stop() {
this.logFileEventDelegate.stopLogFileEventPollers();
...
}
67
70. Baixe, instale e configure o Maven
Baixe e descompacte o código fonte do Jopr
Baixe e execute o gerador de plugins
Faça o deploy do plugin gerado
Experimente a PIQL
Explore suas facetas
68
71. JUST DO IT
69
Sugestão: inspire-se no exemplo RHQ_httptest2.zip, disponível no servidor.
Os 3 conceitos principais do JON s&#xE3;o:
- Plataforma: Dell 3.4Ghz 4GB RAM...
- Servidores: JBoss, Apache, IIS, Postgres...
- Servi&#xE7;o: EJB, Datasource, WebApp...
Todos os 3 elementos s&#xE3;o chamados de &#x2018;recurso&#x2019;.
Qualquer recurso pode ter um recurso pai e v&#xE1;rios recursos filhos.
O servidor JBoss AS &#xE9; recurso filho da plataforma iMac. A plataforma iMac &#xE9; recurso pai do servidor JBoss AS. Os servi&#xE7;os EJBs, WebApps e Datasource s&#xE3;o recursos filhos do servidor JBoss AS. O servidor JBoss AS &#xE9; recurso pai dos servi&#xE7;os EJB, WebApp e Datasource.
Conceitos: Recurso, Categoria e Tipo
Por exemplo, uma plataforma Linux tem X m&#xE9;tricas dispon&#xED;veis, enquanto um servidor JBoss tem Y m&#xE9;tricas, totalmente diferente daquelas X.
Reparem que o conjunto de m&#xE9;tricas da plataforma &#xE9; diferente do conjunto de m&#xE9;tricas do servidor.
O conjunto de opera&#xE7;&#xF5;es tambem diferem de um tipo de recurso para outro.
Por exemplo, por que o PostgreSQL &#xE9; detectado na plataforma e o MySQL, n&#xE3;o?
Relembrando a arquitetura do JON:
- Um &#xFA;nico jon-server &#xE9; necess&#xE1;rio.
- Um jon-agent deve ser instalado em cada m&#xE1;quina a ser monitorada.
- O jon-server comunica-se com v&#xE1;rios jon-agents, e vice-versa.
O jon-agent busca no ambiente em que foi instalado por todos servi&#xE7;os que reconhece. Se o administrador do JON, pela interface do jon-server, solicitar a monitora&#xE7;&#xE3;o dos recursos identificados pelo jon-agent, o agente inicia a coleta peri&#xF3;dica de dados de cada servi&#xE7;o descoberto.
O elemento central do agente do JON s&#xE3;o seus plugins. Cada plugin &#xE9; respons&#xE1;vel pela descoberta e monitora&#xE7;&#xE3;o de um tipo espec&#xED;fico de recurso.
O que define o poder do JON &#xE9; o conjunto de plugins dispon&#xED;vel em seus agentes. Ou seja, se existir um plugin do JON espec&#xED;fico para Oracle, o Oracle ser&#xE1; monitorado. Caso contr&#xE1;rio, n&#xE3;o ser&#xE1;.
Qualquer pessoa pode desenvolver e acrescentar novos plugins ao JON.
Basta utilizar a API definida no projeto RHQ.
E a&#xED; &#xE9; poss&#xED;vel realizar o monitoramento de atividades de neg&#xF3;cio, extraindo m&#xE9;tricas estrat&#xE9;gicas para a monitora&#xE7;&#xE3;o das atividades corporativas e apoio &#xE0; tomada de decis&#xF5;es gerenciais.
Todo plugin pode fazer 3 coisas...
Essas 3 coisas s&#xE3;o chamadas de facetas (facets) do plugin.
Cada uma dessas 3 coisas &#xE9; implementada de forma independente.
Para que essas 3 coisas sejam feitas, &#xE9; preciso...
Descritores fazem parte da cultura Java.
Pra cada tipo de pacote Java existe um tipo espec&#xED;fico de descritor.
Esta &#xE9; a estrutura do plugin descriptor. Apresentar:
- Depend&#xEA;ncias de um plugin com outros
- Sequ&#xEA;ncia de plataformas, servidores e servi&#xE7;os
- Cada tipo de recurso deve ter um nome &#xFA;nico no plugin
- Para cada tipo de recurso, define-se a l&#xF3;gica de descoberta, as m&#xE9;tricas e opera&#xE7;&#xF5;es suportadas, dentre outros.
O Discovery Component &#xE9; invocado periodicamente pelo agente.
Ap&#xF3;s a descoberta, o Plugin Component entra em a&#xE7;&#xE3;o para coleta de m&#xE9;tricas, execu&#xE7;&#xE3;o de opera&#xE7;&#xF5;es, etc.
Para cada fun&#xE7;&#xE3;o b&#xE1;sica do plugin, &#xE9; necess&#xE1;ria a implementa&#xE7;&#xE3;o de uma faceta espec&#xED;fica.
Cada faceta corresponde a uma interface espec&#xED;fica a ser implementada pelo desenvolvedor do plugin.
Por conveni&#xEA;ncia..
J&#xE1; at&#xE9; tinha o reposit&#xF3;rio no profile dev, mas seria mais coisa a explicar...
O projeto Maven do plugin extende o projeto Maven ajopr-2/modules/plugins/teste2 todos os plugins.
Altera&#xE7;&#xE3;o no pom.xml
Altera&#xE7;&#xE3;o no pom.xml
Build
Deploy
O Discovery Component &#xE9; invocado periodicamente pelo agente.
Ap&#xF3;s a descoberta, o Plugin Component entra em a&#xE7;&#xE3;o para coleta de m&#xE9;tricas, execu&#xE7;&#xE3;o de opera&#xE7;&#xF5;es, etc.
Para cada fun&#xE7;&#xE3;o b&#xE1;sica do plugin, &#xE9; necess&#xE1;ria a implementa&#xE7;&#xE3;o de uma faceta espec&#xED;fica.
Cada faceta corresponde a uma interface espec&#xED;fica a ser implementada pelo desenvolvedor do plugin.