SlideShare uma empresa Scribd logo
1 de 17
Baixar para ler offline
Monitoring OSGi Applications with the Web Console
Carsten Ziegeler| Adobe Research Switzerland
About
cziegeler@apache.org

@cziegeler

§ 

Rnd Team at Adobe Research Switzerland

§ 

OSGi Core Platform and Enterprise Expert Groups

§ 

Member of the ASF
§ 

Most active in Apache Sling, Felix, Ace

§ 

Conference Speaker

§ 

Technical Reviewer

§ 

Article/Book Author

2
Problem Description
§ 

Manage an OSGi based application

§ 

Remotely

§ 

Easy of use

§ 

Extensibility

§ 

Offline support

3
Various Solutions
§ 

JMX

§ 

Text based
§ 
§ 

Knopflerfish Shell

§ 

Equinox Console

§ 

§ 

Apache Felix Shell, Apache Felix Gogo Shell

OSGi RFC 147 (Command Line Interface)

GUI based
§ 

Knopflerfish Desktop (Swing)

§ 

Apache Felix Web Console

4
Apache Felix Web Console
§ 

Rich set of core functionality
§ 

Bundles

§ 

Services

§ 

Configuration Admin

§ 

System Information

§ 

JQuery based UI

§ 

Extensible

§ 

Pluggable authentication

§ 

Still light-weight

5
Installation
§ 

Dependencies
§ 

OSGi Http Service

§ 

Commons IO 1.4 (*)

§ 

Commons File Upload 1.2 (*)

§ 

org.json (.e.g. Apache Geronimo Bundles: json-20090211) (*)

§ 

Two flavors: bundle with and without above marked dependencies

§ 

Additional optional dependencies

§ 

Additional plugins

6
Extension Points
§ 

Plugins

§ 

Inventory Printer (Configuration Printer)

§ 

Security Provider

§ 

Branding

§ 

Translations

7
Plugins
§ 

javax.servlet.Servlet service

§ 

Optional extend AbstractWebConsolePlugin

§ 

Service properties
§ 

felix.webconsole.label

§ 

felix.webconsole.title

§ 

felix.webconsole.category

8
Sample Plugin #1
@Component	
@Service(value=HttpServlet.class)	
@Properties({	
@Property(name="felix.webconsole.label", value="sample"),	
@Property(name="felix.webconsole.title", 	
value="Sample Plugin"),	
@Property(name="felix.webconsole.category", 	
value="My App")	
})	
public class SamplePlugin extends HttpServlet {	
	
@Override	
public void service(ServletRequest rq, ServletResponse rs)	
throws ServletException, IOException {	
rs.getWriter().println("Hello World...");	
}	
}

9
Sample Plugin #2
public class Sample2 extends SimpleWebConsolePlugin {
public Sample2(BundleContext ctx) {
super("sample2", "Sample Plugin #2", null);
register(ctx);
}
@Override
protected void renderContent(
HttpServletRequest req,
HttpServletResponse res)
throws IOException {
res.getWriter().println("Hi There ...")
}
}

10
Apache Felix Inventory
§ 

OSGi service providing status information
§ 

Bundle list, services, system properties etc.

§ 

Different formats: text, html, json

§ 

Optional attachments

§ 

Directly support in
web console

11
Inventory Printer Sample
@Component	
@Service(value={InventoryPrinter.class})	
@Properties({	
@Property(name=InventoryPrinter.NAME, value="slingjobs"),	
@Property(name=InventoryPrinter.TITLE, value="Sling Jobs"),	
@Property(name=InventoryPrinter.FORMAT, 	
value={"TEXT", "JSON"})	
})	
public class InventoryPlugin implements InventoryPrinter {	
	
public void print(final PrintWriter pw, 	
final Format format, final boolean isZip) {	
// print something	
}	
}	
	
Attachments: ZipAttachmentProvider

12
Branding
§ 

Service Interface: BrandingPlugin

§ 

Default Branding: DefaultBrandingPlugin

§ 

Branding Fragment
§ 

§ 

/META-INF/webconsole.properties
webconsole.brand.name = Apache Sling Web Console
webconsole.product.name = Apache Sling
webconsole.product.url = http://sling.apache.org
webconsole.product.image = /res/sling/logo.png
webconsole.favicon = /res/sling/favicon.ico

Sample
§ 

Sling Web Console Branding Plugin

13
Security Provider
§ 

Service interface: WebConsoleSecurityProvider
§ 
§ 

Validates Username / Password

§ 

§ 

HTTP Basic Authentication Based
Access Control (hook only)

Service Interface: WebConsoleSecurityProvider2
§ 
§ 

§ 

Extends WebConsoleSecurityProvider
Flexible Authentication (implementing HttpContext.handleSecurity)

Implementations
§ 

Default: Single configurable User

§ 

Karaf: JAAS based authentication

§ 

Sling
§ 

Authenticates against JCR Repository

§ 

Supports Sling Authentication Setup

14
Security Provider
§ 

WebConsoleSecurityProvider, WebConsoleSecurityProvider2

§ 

Web Console uses them for authentication

§ 

Methods for authorization not used atm

§ 

On the road map for next version!

15
Translations
§ 

Out-of-the-box
§ 

§ 

Bulgarian, English, German, Russian

Extensible
§ 

Fragment to the Web Console

§ 

Based on Standard Bundle Localization

§ 

OSGI-INF/l10n/bundle*.properties

16
Monitoring OSGi Applications with the Web Console

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

docker build with Ansible
docker build with Ansibledocker build with Ansible
docker build with Ansible
 
Ansible is the simplest way to automate. MoldCamp, 2015
Ansible is the simplest way to automate. MoldCamp, 2015Ansible is the simplest way to automate. MoldCamp, 2015
Ansible is the simplest way to automate. MoldCamp, 2015
 
Ansible roles done right
Ansible roles done rightAnsible roles done right
Ansible roles done right
 
Controlling multiple VMs with the power of Python
Controlling multiple VMs with the power of PythonControlling multiple VMs with the power of Python
Controlling multiple VMs with the power of Python
 
Ansible + WordPress - WordCamp Toronto 2016
Ansible + WordPress - WordCamp Toronto 2016Ansible + WordPress - WordCamp Toronto 2016
Ansible + WordPress - WordCamp Toronto 2016
 
Infrastructure = Code
Infrastructure = CodeInfrastructure = Code
Infrastructure = Code
 
Ansible Introduction - Ansible Brno #1 - David Karban
Ansible Introduction - Ansible Brno #1 - David KarbanAnsible Introduction - Ansible Brno #1 - David Karban
Ansible Introduction - Ansible Brno #1 - David Karban
 
A quick intro to Ansible
A quick intro to AnsibleA quick intro to Ansible
A quick intro to Ansible
 
#OktoCampus - Workshop : An introduction to Ansible
#OktoCampus - Workshop : An introduction to Ansible#OktoCampus - Workshop : An introduction to Ansible
#OktoCampus - Workshop : An introduction to Ansible
 
Introducing Ansible
Introducing AnsibleIntroducing Ansible
Introducing Ansible
 
Apache FTP Server Integration
Apache FTP Server IntegrationApache FTP Server Integration
Apache FTP Server Integration
 
Configuration Management in Ansible
Configuration Management in Ansible Configuration Management in Ansible
Configuration Management in Ansible
 
Jenkins and ansible reference
Jenkins and ansible referenceJenkins and ansible reference
Jenkins and ansible reference
 
Ansible intro
Ansible introAnsible intro
Ansible intro
 
Ansible windows cheat sheet by anil.k
Ansible windows cheat sheet by anil.kAnsible windows cheat sheet by anil.k
Ansible windows cheat sheet by anil.k
 
Managing windows Nodes like Linux Nodes by Ansible
Managing windows Nodes like Linux Nodes by AnsibleManaging windows Nodes like Linux Nodes by Ansible
Managing windows Nodes like Linux Nodes by Ansible
 
Manage Windows Like Linux via SSH using Ansible
Manage Windows Like Linux via SSH using AnsibleManage Windows Like Linux via SSH using Ansible
Manage Windows Like Linux via SSH using Ansible
 
Powershell Demo Presentation
Powershell Demo PresentationPowershell Demo Presentation
Powershell Demo Presentation
 
Network Automation: Ansible 102
Network Automation: Ansible 102Network Automation: Ansible 102
Network Automation: Ansible 102
 
Using Ansible for Deploying to Cloud Environments
Using Ansible for Deploying to Cloud EnvironmentsUsing Ansible for Deploying to Cloud Environments
Using Ansible for Deploying to Cloud Environments
 

Semelhante a Monitoring OSGi Applications with the Web Console

[Strukelj] Why will Java 7.0 be so cool
[Strukelj] Why will Java 7.0 be so cool[Strukelj] Why will Java 7.0 be so cool
[Strukelj] Why will Java 7.0 be so cool
javablend
 

Semelhante a Monitoring OSGi Applications with the Web Console (20)

Apache Felix Web Console
Apache Felix Web ConsoleApache Felix Web Console
Apache Felix Web Console
 
vJUG - The JavaFX Ecosystem
vJUG - The JavaFX EcosystemvJUG - The JavaFX Ecosystem
vJUG - The JavaFX Ecosystem
 
Introduction to Vert.x
Introduction to Vert.xIntroduction to Vert.x
Introduction to Vert.x
 
node.js: Javascript's in your backend
node.js: Javascript's in your backendnode.js: Javascript's in your backend
node.js: Javascript's in your backend
 
Service oriented web development with OSGi
Service oriented web development with OSGiService oriented web development with OSGi
Service oriented web development with OSGi
 
OSGi Enterprise R6 specs are out! - David Bosschaert & Carsten Ziegeler
OSGi Enterprise R6 specs are out! - David Bosschaert & Carsten ZiegelerOSGi Enterprise R6 specs are out! - David Bosschaert & Carsten Ziegeler
OSGi Enterprise R6 specs are out! - David Bosschaert & Carsten Ziegeler
 
Java clients for elasticsearch
Java clients for elasticsearchJava clients for elasticsearch
Java clients for elasticsearch
 
Socket.io
Socket.ioSocket.io
Socket.io
 
NodeJS
NodeJSNodeJS
NodeJS
 
PHP from soup to nuts Course Deck
PHP from soup to nuts Course DeckPHP from soup to nuts Course Deck
PHP from soup to nuts Course Deck
 
CGSpace technical overview
CGSpace technical overviewCGSpace technical overview
CGSpace technical overview
 
Java 6 [Mustang] - Features and Enchantments
Java 6 [Mustang] - Features and Enchantments Java 6 [Mustang] - Features and Enchantments
Java 6 [Mustang] - Features and Enchantments
 
cq_cxf_integration
cq_cxf_integrationcq_cxf_integration
cq_cxf_integration
 
node.js - Fast event based web application development
node.js - Fast event based web application developmentnode.js - Fast event based web application development
node.js - Fast event based web application development
 
TechWiseTV Workshop: Catalyst Switching Programmability
TechWiseTV Workshop: Catalyst Switching ProgrammabilityTechWiseTV Workshop: Catalyst Switching Programmability
TechWiseTV Workshop: Catalyst Switching Programmability
 
StorageQuery: federated querying on object stores, powered by Alluxio and Presto
StorageQuery: federated querying on object stores, powered by Alluxio and PrestoStorageQuery: federated querying on object stores, powered by Alluxio and Presto
StorageQuery: federated querying on object stores, powered by Alluxio and Presto
 
[Strukelj] Why will Java 7.0 be so cool
[Strukelj] Why will Java 7.0 be so cool[Strukelj] Why will Java 7.0 be so cool
[Strukelj] Why will Java 7.0 be so cool
 
Play 2.0
Play 2.0Play 2.0
Play 2.0
 
OB1K - New, Better, Faster, Devops Friendly Java container by Outbrain
OB1K - New, Better, Faster, Devops Friendly Java container by OutbrainOB1K - New, Better, Faster, Devops Friendly Java container by Outbrain
OB1K - New, Better, Faster, Devops Friendly Java container by Outbrain
 
Synapseindia dot net development web applications with ajax
Synapseindia dot net development  web applications with ajaxSynapseindia dot net development  web applications with ajax
Synapseindia dot net development web applications with ajax
 

Mais de Adobe

Mais de Adobe (20)

Where I'm From | Adobe Diverse Voices
Where I'm From | Adobe Diverse VoicesWhere I'm From | Adobe Diverse Voices
Where I'm From | Adobe Diverse Voices
 
Adobe Life Reflections
Adobe Life ReflectionsAdobe Life Reflections
Adobe Life Reflections
 
2021 Sundance Ignite x Adobe Fellows
2021 Sundance Ignite x Adobe Fellows2021 Sundance Ignite x Adobe Fellows
2021 Sundance Ignite x Adobe Fellows
 
Adobe Holiday Shopping Recap 2020
Adobe Holiday Shopping Recap 2020Adobe Holiday Shopping Recap 2020
Adobe Holiday Shopping Recap 2020
 
The Inaugural Cohort of Women at Sundance | Adobe Fellowship
The Inaugural Cohort of Women at Sundance | Adobe Fellowship The Inaugural Cohort of Women at Sundance | Adobe Fellowship
The Inaugural Cohort of Women at Sundance | Adobe Fellowship
 
Adobe COVID-19 Productivity Study: Say ‘buh-bye’ to WFH Stigma
Adobe COVID-19 Productivity Study: Say ‘buh-bye’ to WFH StigmaAdobe COVID-19 Productivity Study: Say ‘buh-bye’ to WFH Stigma
Adobe COVID-19 Productivity Study: Say ‘buh-bye’ to WFH Stigma
 
Introducing the 2020 Sundance Ignite x Adobe Fellows
Introducing the 2020 Sundance Ignite x Adobe FellowsIntroducing the 2020 Sundance Ignite x Adobe Fellows
Introducing the 2020 Sundance Ignite x Adobe Fellows
 
Adobe Personalization 2020 Survey​ of Consumers and Marketers
Adobe Personalization 2020 Survey​ of Consumers and MarketersAdobe Personalization 2020 Survey​ of Consumers and Marketers
Adobe Personalization 2020 Survey​ of Consumers and Marketers
 
The Obstacles and Opportunities of Digital Transformation
The Obstacles and Opportunities of Digital TransformationThe Obstacles and Opportunities of Digital Transformation
The Obstacles and Opportunities of Digital Transformation
 
Sundance Ignite Fellows
Sundance Ignite FellowsSundance Ignite Fellows
Sundance Ignite Fellows
 
The Total Economic Impact of Adobe Document Cloud
The Total Economic Impact of Adobe Document CloudThe Total Economic Impact of Adobe Document Cloud
The Total Economic Impact of Adobe Document Cloud
 
Adobe Digital Insights Holiday Recap 2019
Adobe Digital Insights Holiday Recap 2019Adobe Digital Insights Holiday Recap 2019
Adobe Digital Insights Holiday Recap 2019
 
ADI Consumer Electronics Report 2020
ADI Consumer Electronics Report 2020ADI Consumer Electronics Report 2020
ADI Consumer Electronics Report 2020
 
Five Ways to Accelerate the Sales Cycle and Close Deals Faster
Five Ways to Accelerate the Sales Cycle and Close Deals FasterFive Ways to Accelerate the Sales Cycle and Close Deals Faster
Five Ways to Accelerate the Sales Cycle and Close Deals Faster
 
No Happy Holidays for Seasonal Employees
 No Happy Holidays for Seasonal Employees No Happy Holidays for Seasonal Employees
No Happy Holidays for Seasonal Employees
 
Adobe Holiday Retailer Survey 2019
Adobe Holiday Retailer Survey 2019Adobe Holiday Retailer Survey 2019
Adobe Holiday Retailer Survey 2019
 
Adobe 2019 Holiday Shopping Predictions
Adobe 2019 Holiday Shopping PredictionsAdobe 2019 Holiday Shopping Predictions
Adobe 2019 Holiday Shopping Predictions
 
ADI -- Digital Divide 2019
ADI -- Digital Divide 2019ADI -- Digital Divide 2019
ADI -- Digital Divide 2019
 
AdobeStudy: Consumer Banking Insights
AdobeStudy: Consumer Banking InsightsAdobeStudy: Consumer Banking Insights
AdobeStudy: Consumer Banking Insights
 
Adobe Digital Insights -- Connected Car 2019
Adobe Digital Insights -- Connected Car 2019Adobe Digital Insights -- Connected Car 2019
Adobe Digital Insights -- Connected Car 2019
 

Último

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Último (20)

Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 

Monitoring OSGi Applications with the Web Console