SlideShare a Scribd company logo
1 of 20
Download to read offline
© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Reviving the Http Service
Felix Meschberger, Adobe Systems
1
Mittwoch, 24. Oktober 12
© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Http Service 1.2
§ More or less unmodified since OSGi R1 (May, 2000)
§ Resource Registration
§ Custom Authentication
§ Based on Servlet API 2.1
§ No Filters
§ No Servlet API Listeners
§ No Error Pages
§ Limited Servlet Registration (path prefix only)
§ Complex registration:
§ Requires HttpService to register with init callback
§ Requires keeping state of successful registration
§ Requires Http Service to unregister
2
Mittwoch, 24. Oktober 12
© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Revive and Update
§ Servlet API Version
§ Servlet API Elements
§ Improved Registration
§ Whiteboard Support
3
Mittwoch, 24. Oktober 12
© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Requirements 1: Http Service Updates
HS-1 The solution MUST define the relationship between the Http Service and Web Application specifications.
HS-2 The solution MUST update the Http Service specification to refer to the latest Servlet API specification and define to what
extend the Http Service provides support.
HS-3 The solution MUST extend the HttpService service API to support Servlet registration with patterns as defined by the
Servlet API specification (Section 12.2, Specification of Mappings, in the Servlet API 3.0 specification). This requirement
aligns servlet registration to functionality provided by the Servlet API web application descriptor (web.xml).
HS-4 The solution MUST extend the HttpService service API to support registration of Servlet API filters with patterns as
defined by the Servlet API specification (Section 12.2, Specification of Mappings, in the Servlet API 3.0 specification) or
referring to servlets by their names. This requirement aligns mapping filters to requests to functionality provided by the
Servlet API web application descriptor (web.xml).
HS-5 The solution MUST extend the HttpService service API to support registration of Servlet API listeners.
HS-6 The solution MUST add support for error page configuration.
HS-7 The solution MUST define how registered Servlets and Filters are named.
HS-8 The solution MUST clarify ServletContext implementation in the HttpService for both standalone and bridged Http
Service implementations.
HS-9 The solution MUST clarify the ServletContext scope of Servlet API listeners registered through the HttpService.
HS-10 The solution MAY specify support for scripted request processing. For example supporting JSP with Tag Libraries.
HS-11 The solution MAY define how HttpService instances can be dynamically configured.
HS-12 The solution MUST define service registration properties for the HttpService to reflect configuration of the service.
4
Mittwoch, 24. Oktober 12
© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Requirements 2: Whiteboard Registration
HS-13 The solution MUST define whiteboard registration of servlet services with the HttpService.
HS-14 The solution MUST define whiteboard registration of filter services with the HttpService.
HS-15 The solution MUST define whiteboard registration of servlet listener services with the HttpService.
HS-16 The solution MUST define registration of OSGi HttpContext services used for Servlet and Filter registration.
HS-17 The solution MUST define how servlets, filters, and servlet listener services are matched with HttpService services for
registration.
HS-18 The solution MUST support registration of static resources according to the extender pattern.
HS-19 The solution MUST support registration of error pages according to the extender pattern.
HS-20 The solution MUST define a capability for the osgi.extender namespace. Bundles providing resources and/or error pages
can then require this capability.
HS-21 The solution MUST define a capability for the whiteboard pattern registration in one of the standard namespaces (or a
new namespace to be defined in the Chapter 135, Common Namespaces Specification). Bundles registering servlet, filter,
and/or servlet listener services can then require this capability.
5
Mittwoch, 24. Oktober 12
© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Servlet API Version
§ Which Servlet API to support/require ?
§ Servlet API 3.0 for the latest and greatest ?
§ Must not alienate Embedded Systems !
§ Servlet API and the Platform
§ 2.4 requires Java 1.3
§ 2.5 requires Java 5
§ 3.0 requires Java 6
6
>= 2.4
Mittwoch, 24. Oktober 12
© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Servlet API Elements
7
Servlet
Filter
Error
Pages
Event
Listener
EJB
MIME
mapping
Replacements
• EJB: Use Services
• MIME mapping: Use HttpContext
Mittwoch, 24. Oktober 12
© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Servlet Registration - Http Service 1.2
8
public interface HttpService {
public void registerServlet(String alias,
Servlet servlet,
Dictionary initparams,
HttpContext context)
throws ServletException, NamespaceException;
public void unregister(String alias);
}
Single path Prefix only
Servlet or
Resource ?
Manage
State
Service
Required
Share ?
Mittwoch, 24. Oktober 12
© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Servlet Registration - Http Service 1.2
8
public interface HttpService {
public void registerServlet(String alias,
Servlet servlet,
Dictionary initparams,
HttpContext context)
throws ServletException, NamespaceException;
public void unregister(String alias);
}
Single path Prefix only
Servlet or
Resource ?
Manage
State
Service
Required
unregisterServlet(servlet)
PatternWhiteboard Allow Array
Share ?
Whiteboard
Mittwoch, 24. Oktober 12
© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Sample Traditional Servlet
9
@Component(service = Servlet.class, property = "alias=/")
public class SampleServletOld extends HttpServlet {
private HttpService httpService;
private String servletAlias;
private boolean servletRegistered;
@Activate
private void activate(Map<String, Object> config) throws ServletException, NamespaceException {
this.servletAlias = (String) config.get("alias");
this.httpService.registerServlet(this.servletAlias, this, null, null);
this.servletRegistered = true;
}
@Deactivate
private void deactivate() {
if (this.servletRegistered) {
this.httpService.unregister(servletAlias);
}
}
@Reference(unbind = "unbindHttpService")
private void bindHttpService(final HttpService httpService) {
this.httpService = httpService;
}
private void unbindHttpService(final HttpService httpService) {
if (this.httpService == httpService) {
this.httpService = null;
}
}
}
Manage
State
Service
Required
Mittwoch, 24. Oktober 12
© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Sample Traditional Servlet with new API
10
@Component(service = Servlet.class, property = "alias=/")
public class SampleServletNew extends HttpServlet {
private HttpService httpService;
private boolean servletRegistered;
@Activate
private void activate(Map<String, Object> config) throws ServletException, NamespaceException {
String servletAlias = (String) config.get("alias");
this.httpService.registerServlet(servletAlias, this, null, null);
this.servletRegistered = true;
}
@Deactivate
private void deactivate() {
if (this.servletRegistered) {
this.httpService.unregisterServlet(this);
}
}
@Reference(unbind = "unbindHttpService")
private void bindHttpService(final HttpService httpService) {
this.httpService = httpService;
}
private void unbindHttpService(final HttpService httpService) {
if (this.httpService == httpService) {
this.httpService = null;
}
}
}
Manage
State
Service
Required
Mittwoch, 24. Oktober 12
© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Sample Whiteboard Servlet
11
@Component(service = Servlet.class, property = "org.osgi.pattern=/")
public class SampleServletWhiteboard extends HttpServlet {
}
§ No State Management
§ No Http Service reference
Mittwoch, 24. Oktober 12
© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Alias vs. Pattern
12
Http Service Servlet API Match Type
/alias /prefix/* Prefix Match
*.ext Extension Match
„“ (empty) Context Root Match
/ Default Servlet
/exact/match Exact Match
Mittwoch, 24. Oktober 12
© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Alias vs. Pattern
12
Http Service Servlet API Match Type
/alias /prefix/* Prefix Match
*.ext Extension Match
„“ (empty) Context Root Match
/ Default Servlet
/exact/match Exact Match
public void registerServlet(String[] pattern,
Servlet servlet,
Dictionary<String, String> initparams,
HttpContext context)
throws ServletException,
NamespaceException;
Mittwoch, 24. Oktober 12
© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Http Context and Servlet Context
13
Common Servlet Context
(e.g. from Servlet Container)
Servlet Context 1 Servlet Context n
Http Context 1 Http Context n
Context Path
Http Sessions
Attributes
Resources
MIME Types
Attributes
Resources
MIME Types
Authentication Authentication
Mittwoch, 24. Oktober 12
© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Event Listener
§ Listeners are Services
§ Listener interface is Service Name
§ Supported Listeners depending on Servlet API Support
§ Whiteboard Registration
§ All Events from Http Service (not confined to ServletContext)
14
Mittwoch, 24. Oktober 12
© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Error Pages
§ Defined as mappings
§ Status Code -> Location
§ Exception Type -> Location
§ Proposal: HttpService extension
§ registerErrorPage(int code, String location)
§ unregisterErrorPage(int code)
§ registerErrorPage(String exceptionType, String location)
§ unregisterErrorPage(String exceptionType)
15
Mittwoch, 24. Oktober 12
© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Whiteboard Support
§ Add-On to Http Service
§ Gets Servlet, Filter, HttpContext services
§ Registers with Http Service
§ Matches Servlet to HttpContext with property
16
Servlet
HttpContext
Http Service
context.name
pattern
Filter
pattern
Mittwoch, 24. Oktober 12
© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Http Service Whiteboard Properties
17
Servlet HttpContext Filter
osgi.http.context.id
osgi.http.context.shared
osgi.http.pattern
osgi.http.errorPage
osgi.http.init.*
Refers to
HttpContext
Identifies
Refers to
HttpContext
n/a
Shared across
Bundles ?
n/a
Registration
Pattern
n/a
Registration
Pattern
Status Code
Exception Type
n/a n/a
Init Parameters n/a Init Parameters
Mittwoch, 24. Oktober 12
© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Links
§ http://wiki.osgi.org/wiki/WebExperience
§ RFP 150 Http Service Updates
(https://www.osgi.org/bugzilla/show_bug.cgi?id=146)
§ Discuss: osgi-dev@mail.osgi.org
18
Mittwoch, 24. Oktober 12

More Related Content

What's hot

Lecture 7 Web Services JAX-WS & JAX-RS
Lecture 7   Web Services JAX-WS & JAX-RSLecture 7   Web Services JAX-WS & JAX-RS
Lecture 7 Web Services JAX-WS & JAX-RSFahad Golra
 
Overview of RESTful web services
Overview of RESTful web servicesOverview of RESTful web services
Overview of RESTful web servicesnbuddharaju
 
RestFull Webservices with JAX-RS
RestFull Webservices with JAX-RSRestFull Webservices with JAX-RS
RestFull Webservices with JAX-RSNeil Ghosh
 
Making Sense of APEX Security by Christoph Ruepprich
Making Sense of APEX Security by Christoph RuepprichMaking Sense of APEX Security by Christoph Ruepprich
Making Sense of APEX Security by Christoph RuepprichEnkitec
 
What's new in the OSGi Enterprise Release 5.0
What's new in the OSGi Enterprise Release 5.0What's new in the OSGi Enterprise Release 5.0
What's new in the OSGi Enterprise Release 5.0David Bosschaert
 
Declarative Services - Dependency Injection OSGi Style
Declarative Services - Dependency Injection OSGi StyleDeclarative Services - Dependency Injection OSGi Style
Declarative Services - Dependency Injection OSGi StyleFelix Meschberger
 
RESTful http_patterns_antipatterns
RESTful http_patterns_antipatternsRESTful http_patterns_antipatterns
RESTful http_patterns_antipatternsJan Algermissen
 
Java Portlet 2.0 (JSR 286) Specification
Java Portlet 2.0 (JSR 286) SpecificationJava Portlet 2.0 (JSR 286) Specification
Java Portlet 2.0 (JSR 286) SpecificationJohn Lewis
 
Servlets 3.0 - Asynchronous, Easy, Extensible @ Silicon Valley Code Camp 2010
Servlets 3.0 - Asynchronous, Easy, Extensible @ Silicon Valley Code Camp 2010Servlets 3.0 - Asynchronous, Easy, Extensible @ Silicon Valley Code Camp 2010
Servlets 3.0 - Asynchronous, Easy, Extensible @ Silicon Valley Code Camp 2010Arun Gupta
 
Confoo2013 make your java-app rest enabled
Confoo2013 make your java-app rest enabledConfoo2013 make your java-app rest enabled
Confoo2013 make your java-app rest enabledAnthony Dahanne
 
REST API Recommendations
REST API RecommendationsREST API Recommendations
REST API RecommendationsJeelani Shaik
 
Scale Your Data Tier With Windows Server App Fabric
Scale Your Data Tier With Windows Server App FabricScale Your Data Tier With Windows Server App Fabric
Scale Your Data Tier With Windows Server App FabricChris Dufour
 
One App, Many Clients: Converting an APEX Application to Multi-Tenant
One App, Many Clients: Converting an APEX Application to Multi-TenantOne App, Many Clients: Converting an APEX Application to Multi-Tenant
One App, Many Clients: Converting an APEX Application to Multi-TenantJeffrey Kemp
 
Oracle WebLogic Server 11g for IT OPS
Oracle WebLogic Server 11g for IT OPSOracle WebLogic Server 11g for IT OPS
Oracle WebLogic Server 11g for IT OPSRakesh Gujjarlapudi
 
Introduction to CloudStack API
Introduction to CloudStack APIIntroduction to CloudStack API
Introduction to CloudStack APIKrunal Jain
 
Enjoying the Move from WCF to the Web API
Enjoying the Move from WCF to the Web APIEnjoying the Move from WCF to the Web API
Enjoying the Move from WCF to the Web APIKevin Hazzard
 

What's hot (20)

Lecture 7 Web Services JAX-WS & JAX-RS
Lecture 7   Web Services JAX-WS & JAX-RSLecture 7   Web Services JAX-WS & JAX-RS
Lecture 7 Web Services JAX-WS & JAX-RS
 
Overview of RESTful web services
Overview of RESTful web servicesOverview of RESTful web services
Overview of RESTful web services
 
Servlet
ServletServlet
Servlet
 
RestFull Webservices with JAX-RS
RestFull Webservices with JAX-RSRestFull Webservices with JAX-RS
RestFull Webservices with JAX-RS
 
Making Sense of APEX Security by Christoph Ruepprich
Making Sense of APEX Security by Christoph RuepprichMaking Sense of APEX Security by Christoph Ruepprich
Making Sense of APEX Security by Christoph Ruepprich
 
Java servlets and CGI
Java servlets and CGIJava servlets and CGI
Java servlets and CGI
 
Oracle OSB Tutorial 3
Oracle OSB Tutorial 3Oracle OSB Tutorial 3
Oracle OSB Tutorial 3
 
What's new in the OSGi Enterprise Release 5.0
What's new in the OSGi Enterprise Release 5.0What's new in the OSGi Enterprise Release 5.0
What's new in the OSGi Enterprise Release 5.0
 
Declarative Services - Dependency Injection OSGi Style
Declarative Services - Dependency Injection OSGi StyleDeclarative Services - Dependency Injection OSGi Style
Declarative Services - Dependency Injection OSGi Style
 
RESTful http_patterns_antipatterns
RESTful http_patterns_antipatternsRESTful http_patterns_antipatterns
RESTful http_patterns_antipatterns
 
Java Portlet 2.0 (JSR 286) Specification
Java Portlet 2.0 (JSR 286) SpecificationJava Portlet 2.0 (JSR 286) Specification
Java Portlet 2.0 (JSR 286) Specification
 
Servlets 3.0 - Asynchronous, Easy, Extensible @ Silicon Valley Code Camp 2010
Servlets 3.0 - Asynchronous, Easy, Extensible @ Silicon Valley Code Camp 2010Servlets 3.0 - Asynchronous, Easy, Extensible @ Silicon Valley Code Camp 2010
Servlets 3.0 - Asynchronous, Easy, Extensible @ Silicon Valley Code Camp 2010
 
Confoo2013 make your java-app rest enabled
Confoo2013 make your java-app rest enabledConfoo2013 make your java-app rest enabled
Confoo2013 make your java-app rest enabled
 
REST API Recommendations
REST API RecommendationsREST API Recommendations
REST API Recommendations
 
Scale Your Data Tier With Windows Server App Fabric
Scale Your Data Tier With Windows Server App FabricScale Your Data Tier With Windows Server App Fabric
Scale Your Data Tier With Windows Server App Fabric
 
Doing REST Right
Doing REST RightDoing REST Right
Doing REST Right
 
One App, Many Clients: Converting an APEX Application to Multi-Tenant
One App, Many Clients: Converting an APEX Application to Multi-TenantOne App, Many Clients: Converting an APEX Application to Multi-Tenant
One App, Many Clients: Converting an APEX Application to Multi-Tenant
 
Oracle WebLogic Server 11g for IT OPS
Oracle WebLogic Server 11g for IT OPSOracle WebLogic Server 11g for IT OPS
Oracle WebLogic Server 11g for IT OPS
 
Introduction to CloudStack API
Introduction to CloudStack APIIntroduction to CloudStack API
Introduction to CloudStack API
 
Enjoying the Move from WCF to the Web API
Enjoying the Move from WCF to the Web APIEnjoying the Move from WCF to the Web API
Enjoying the Move from WCF to the Web API
 

Viewers also liked

Moving from Applications to Business Processes - M Herterich
Moving from Applications to Business Processes - M HerterichMoving from Applications to Business Processes - M Herterich
Moving from Applications to Business Processes - M Herterichmfrancis
 
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...mfrancis
 
Town Hall - From Proof Points to Volume - Getting to the Mass Market - Stan M...
Town Hall - From Proof Points to Volume - Getting to the Mass Market - Stan M...Town Hall - From Proof Points to Volume - Getting to the Mass Market - Stan M...
Town Hall - From Proof Points to Volume - Getting to the Mass Market - Stan M...mfrancis
 
History and Future of the Downloadable Mobile Marketplace - Jon Bostrom, Nokia
History and Future of the Downloadable Mobile Marketplace - Jon Bostrom, NokiaHistory and Future of the Downloadable Mobile Marketplace - Jon Bostrom, Nokia
History and Future of the Downloadable Mobile Marketplace - Jon Bostrom, Nokiamfrancis
 
Business plan Metavector - B Mariman
Business plan Metavector - B MarimanBusiness plan Metavector - B Mariman
Business plan Metavector - B Marimanmfrancis
 
A TSP Perspective on OSGi - A Lunggren
A TSP Perspective on OSGi - A LunggrenA TSP Perspective on OSGi - A Lunggren
A TSP Perspective on OSGi - A Lunggrenmfrancis
 
OSGi Users’ Forum Japan - Ryutaru Kawamura, Senior Manager, NTT
OSGi Users’ Forum Japan - Ryutaru Kawamura, Senior Manager, NTTOSGi Users’ Forum Japan - Ryutaru Kawamura, Senior Manager, NTT
OSGi Users’ Forum Japan - Ryutaru Kawamura, Senior Manager, NTTmfrancis
 
Providing a Holistic, Service-Oriented Infrastructure for Integration of Real...
Providing a Holistic, Service-Oriented Infrastructure for Integration of Real...Providing a Holistic, Service-Oriented Infrastructure for Integration of Real...
Providing a Holistic, Service-Oriented Infrastructure for Integration of Real...mfrancis
 
Examining Gatespace / Ericssonʼs Telematics Solutions - C Larsson
Examining Gatespace / Ericssonʼs Telematics Solutions - C LarssonExamining Gatespace / Ericssonʼs Telematics Solutions - C Larsson
Examining Gatespace / Ericssonʼs Telematics Solutions - C Larssonmfrancis
 
Issues in Designing Push Based Mobile Application Platform - Rafiul Ahad, Oracle
Issues in Designing Push Based Mobile Application Platform - Rafiul Ahad, OracleIssues in Designing Push Based Mobile Application Platform - Rafiul Ahad, Oracle
Issues in Designing Push Based Mobile Application Platform - Rafiul Ahad, Oraclemfrancis
 
OSGi Alliance and its Technology - Where Are We Now, and What is Your Vision ...
OSGi Alliance and its Technology - Where Are We Now, and What is Your Vision ...OSGi Alliance and its Technology - Where Are We Now, and What is Your Vision ...
OSGi Alliance and its Technology - Where Are We Now, and What is Your Vision ...mfrancis
 
Sql Server 2008 R2 Ctp Install
Sql Server 2008 R2 Ctp InstallSql Server 2008 R2 Ctp Install
Sql Server 2008 R2 Ctp Installukdpe
 
OSGi Service Platform and the Mobile Ecosystem - John R. Barr, Ph.D., Chair O...
OSGi Service Platform and the Mobile Ecosystem - John R. Barr, Ph.D., Chair O...OSGi Service Platform and the Mobile Ecosystem - John R. Barr, Ph.D., Chair O...
OSGi Service Platform and the Mobile Ecosystem - John R. Barr, Ph.D., Chair O...mfrancis
 
Cisco Application eXtension Platform (AXP) - James Weathersby, Cisco
Cisco Application eXtension Platform (AXP) - James Weathersby, CiscoCisco Application eXtension Platform (AXP) - James Weathersby, Cisco
Cisco Application eXtension Platform (AXP) - James Weathersby, Ciscomfrancis
 
Developments in Asia - D Inglin
Developments in Asia - D InglinDevelopments in Asia - D Inglin
Developments in Asia - D Inglinmfrancis
 
The Role of the OSGi Gateway in GST Security Objectives and Architecture - An...
The Role of the OSGi Gateway in GST Security Objectives and Architecture - An...The Role of the OSGi Gateway in GST Security Objectives and Architecture - An...
The Role of the OSGi Gateway in GST Security Objectives and Architecture - An...mfrancis
 
An OSGi Environment for FlexibleService Concepts - Detlef Kuck, Teamleader Te...
An OSGi Environment for FlexibleService Concepts - Detlef Kuck, Teamleader Te...An OSGi Environment for FlexibleService Concepts - Detlef Kuck, Teamleader Te...
An OSGi Environment for FlexibleService Concepts - Detlef Kuck, Teamleader Te...mfrancis
 
Bundle deployment at state machine level - Ales Justin, JBoss
Bundle deployment at state machine level - Ales Justin, JBossBundle deployment at state machine level - Ales Justin, JBoss
Bundle deployment at state machine level - Ales Justin, JBossmfrancis
 
The AMIC Host and Vehicle Services Api's - E Nelson
The AMIC Host and Vehicle Services Api's - E NelsonThe AMIC Host and Vehicle Services Api's - E Nelson
The AMIC Host and Vehicle Services Api's - E Nelsonmfrancis
 
OSGi and Next Generation Trains - Jens Haeger, Deutsche Bahn
OSGi and Next Generation Trains - Jens Haeger, Deutsche BahnOSGi and Next Generation Trains - Jens Haeger, Deutsche Bahn
OSGi and Next Generation Trains - Jens Haeger, Deutsche Bahnmfrancis
 

Viewers also liked (20)

Moving from Applications to Business Processes - M Herterich
Moving from Applications to Business Processes - M HerterichMoving from Applications to Business Processes - M Herterich
Moving from Applications to Business Processes - M Herterich
 
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
Town Hall - Business Implications of Open Source OSGi Implementations - BJ Ha...
 
Town Hall - From Proof Points to Volume - Getting to the Mass Market - Stan M...
Town Hall - From Proof Points to Volume - Getting to the Mass Market - Stan M...Town Hall - From Proof Points to Volume - Getting to the Mass Market - Stan M...
Town Hall - From Proof Points to Volume - Getting to the Mass Market - Stan M...
 
History and Future of the Downloadable Mobile Marketplace - Jon Bostrom, Nokia
History and Future of the Downloadable Mobile Marketplace - Jon Bostrom, NokiaHistory and Future of the Downloadable Mobile Marketplace - Jon Bostrom, Nokia
History and Future of the Downloadable Mobile Marketplace - Jon Bostrom, Nokia
 
Business plan Metavector - B Mariman
Business plan Metavector - B MarimanBusiness plan Metavector - B Mariman
Business plan Metavector - B Mariman
 
A TSP Perspective on OSGi - A Lunggren
A TSP Perspective on OSGi - A LunggrenA TSP Perspective on OSGi - A Lunggren
A TSP Perspective on OSGi - A Lunggren
 
OSGi Users’ Forum Japan - Ryutaru Kawamura, Senior Manager, NTT
OSGi Users’ Forum Japan - Ryutaru Kawamura, Senior Manager, NTTOSGi Users’ Forum Japan - Ryutaru Kawamura, Senior Manager, NTT
OSGi Users’ Forum Japan - Ryutaru Kawamura, Senior Manager, NTT
 
Providing a Holistic, Service-Oriented Infrastructure for Integration of Real...
Providing a Holistic, Service-Oriented Infrastructure for Integration of Real...Providing a Holistic, Service-Oriented Infrastructure for Integration of Real...
Providing a Holistic, Service-Oriented Infrastructure for Integration of Real...
 
Examining Gatespace / Ericssonʼs Telematics Solutions - C Larsson
Examining Gatespace / Ericssonʼs Telematics Solutions - C LarssonExamining Gatespace / Ericssonʼs Telematics Solutions - C Larsson
Examining Gatespace / Ericssonʼs Telematics Solutions - C Larsson
 
Issues in Designing Push Based Mobile Application Platform - Rafiul Ahad, Oracle
Issues in Designing Push Based Mobile Application Platform - Rafiul Ahad, OracleIssues in Designing Push Based Mobile Application Platform - Rafiul Ahad, Oracle
Issues in Designing Push Based Mobile Application Platform - Rafiul Ahad, Oracle
 
OSGi Alliance and its Technology - Where Are We Now, and What is Your Vision ...
OSGi Alliance and its Technology - Where Are We Now, and What is Your Vision ...OSGi Alliance and its Technology - Where Are We Now, and What is Your Vision ...
OSGi Alliance and its Technology - Where Are We Now, and What is Your Vision ...
 
Sql Server 2008 R2 Ctp Install
Sql Server 2008 R2 Ctp InstallSql Server 2008 R2 Ctp Install
Sql Server 2008 R2 Ctp Install
 
OSGi Service Platform and the Mobile Ecosystem - John R. Barr, Ph.D., Chair O...
OSGi Service Platform and the Mobile Ecosystem - John R. Barr, Ph.D., Chair O...OSGi Service Platform and the Mobile Ecosystem - John R. Barr, Ph.D., Chair O...
OSGi Service Platform and the Mobile Ecosystem - John R. Barr, Ph.D., Chair O...
 
Cisco Application eXtension Platform (AXP) - James Weathersby, Cisco
Cisco Application eXtension Platform (AXP) - James Weathersby, CiscoCisco Application eXtension Platform (AXP) - James Weathersby, Cisco
Cisco Application eXtension Platform (AXP) - James Weathersby, Cisco
 
Developments in Asia - D Inglin
Developments in Asia - D InglinDevelopments in Asia - D Inglin
Developments in Asia - D Inglin
 
The Role of the OSGi Gateway in GST Security Objectives and Architecture - An...
The Role of the OSGi Gateway in GST Security Objectives and Architecture - An...The Role of the OSGi Gateway in GST Security Objectives and Architecture - An...
The Role of the OSGi Gateway in GST Security Objectives and Architecture - An...
 
An OSGi Environment for FlexibleService Concepts - Detlef Kuck, Teamleader Te...
An OSGi Environment for FlexibleService Concepts - Detlef Kuck, Teamleader Te...An OSGi Environment for FlexibleService Concepts - Detlef Kuck, Teamleader Te...
An OSGi Environment for FlexibleService Concepts - Detlef Kuck, Teamleader Te...
 
Bundle deployment at state machine level - Ales Justin, JBoss
Bundle deployment at state machine level - Ales Justin, JBossBundle deployment at state machine level - Ales Justin, JBoss
Bundle deployment at state machine level - Ales Justin, JBoss
 
The AMIC Host and Vehicle Services Api's - E Nelson
The AMIC Host and Vehicle Services Api's - E NelsonThe AMIC Host and Vehicle Services Api's - E Nelson
The AMIC Host and Vehicle Services Api's - E Nelson
 
OSGi and Next Generation Trains - Jens Haeger, Deutsche Bahn
OSGi and Next Generation Trains - Jens Haeger, Deutsche BahnOSGi and Next Generation Trains - Jens Haeger, Deutsche Bahn
OSGi and Next Generation Trains - Jens Haeger, Deutsche Bahn
 

Similar to Reviving the Http Service

Java servlet technology
Java servlet technologyJava servlet technology
Java servlet technologyMinal Maniar
 
Servlet in java , java servlet , servlet servlet and CGI, API
Servlet in java , java servlet , servlet servlet and CGI, APIServlet in java , java servlet , servlet servlet and CGI, API
Servlet in java , java servlet , servlet servlet and CGI, APIPRIYADARSINISK
 
HTTP Whiteboard - OSGI Compendium 6.0 - How web apps should have been! - R Auge
HTTP Whiteboard - OSGI Compendium 6.0 - How web apps should have been! - R AugeHTTP Whiteboard - OSGI Compendium 6.0 - How web apps should have been! - R Auge
HTTP Whiteboard - OSGI Compendium 6.0 - How web apps should have been! - R Augemfrancis
 
Web Tech Java Servlet Update1
Web Tech   Java Servlet Update1Web Tech   Java Servlet Update1
Web Tech Java Servlet Update1vikram singh
 
Lotus Forms Webform Server 3.0 Overview & Architecture
Lotus Forms Webform Server 3.0 Overview & ArchitectureLotus Forms Webform Server 3.0 Overview & Architecture
Lotus Forms Webform Server 3.0 Overview & Architectureddrschiw
 
Lotus Forms Webform Server 3.0 Overview & Architecture
Lotus Forms Webform Server 3.0 Overview & ArchitectureLotus Forms Webform Server 3.0 Overview & Architecture
Lotus Forms Webform Server 3.0 Overview & Architectureddrschiw
 
An Introduction To Java Web Technology
An Introduction To Java Web TechnologyAn Introduction To Java Web Technology
An Introduction To Java Web Technologyvikram singh
 
Http Server Programming in JAVA - Handling http requests and responses
Http Server Programming in JAVA - Handling http requests and responsesHttp Server Programming in JAVA - Handling http requests and responses
Http Server Programming in JAVA - Handling http requests and responsesbharathiv53
 
LAJUG Napster REST API
LAJUG Napster REST APILAJUG Napster REST API
LAJUG Napster REST APIstephenbhadran
 
UNIT-3 Servlet
UNIT-3 ServletUNIT-3 Servlet
UNIT-3 Servletssbd6985
 
Java Servlet Programming under Ubuntu Linux by Tushar B Kute
Java Servlet Programming under Ubuntu Linux by Tushar B KuteJava Servlet Programming under Ubuntu Linux by Tushar B Kute
Java Servlet Programming under Ubuntu Linux by Tushar B KuteTushar B Kute
 
Knowledge Sharing : Java Servlet
Knowledge Sharing : Java ServletKnowledge Sharing : Java Servlet
Knowledge Sharing : Java ServletFahmi Jafar
 
Introduction server Construction
Introduction server ConstructionIntroduction server Construction
Introduction server ConstructionJisu Park
 
java Servlet technology
java Servlet technologyjava Servlet technology
java Servlet technologyTanmoy Barman
 
ADO.NET Data Services
ADO.NET Data ServicesADO.NET Data Services
ADO.NET Data Servicesukdpe
 
Using eZ Platform in an API Era
Using eZ Platform in an API EraUsing eZ Platform in an API Era
Using eZ Platform in an API EraeZ Systems
 

Similar to Reviving the Http Service (20)

Java servlet technology
Java servlet technologyJava servlet technology
Java servlet technology
 
Servlet
Servlet Servlet
Servlet
 
Servlet in java , java servlet , servlet servlet and CGI, API
Servlet in java , java servlet , servlet servlet and CGI, APIServlet in java , java servlet , servlet servlet and CGI, API
Servlet in java , java servlet , servlet servlet and CGI, API
 
ASP.NET WEB API Training
ASP.NET WEB API TrainingASP.NET WEB API Training
ASP.NET WEB API Training
 
Servlet by Rj
Servlet by RjServlet by Rj
Servlet by Rj
 
HTTP Whiteboard - OSGI Compendium 6.0 - How web apps should have been! - R Auge
HTTP Whiteboard - OSGI Compendium 6.0 - How web apps should have been! - R AugeHTTP Whiteboard - OSGI Compendium 6.0 - How web apps should have been! - R Auge
HTTP Whiteboard - OSGI Compendium 6.0 - How web apps should have been! - R Auge
 
Web Tech Java Servlet Update1
Web Tech   Java Servlet Update1Web Tech   Java Servlet Update1
Web Tech Java Servlet Update1
 
Lotus Forms Webform Server 3.0 Overview & Architecture
Lotus Forms Webform Server 3.0 Overview & ArchitectureLotus Forms Webform Server 3.0 Overview & Architecture
Lotus Forms Webform Server 3.0 Overview & Architecture
 
Lotus Forms Webform Server 3.0 Overview & Architecture
Lotus Forms Webform Server 3.0 Overview & ArchitectureLotus Forms Webform Server 3.0 Overview & Architecture
Lotus Forms Webform Server 3.0 Overview & Architecture
 
An Introduction To Java Web Technology
An Introduction To Java Web TechnologyAn Introduction To Java Web Technology
An Introduction To Java Web Technology
 
Java servlets
Java servletsJava servlets
Java servlets
 
Http Server Programming in JAVA - Handling http requests and responses
Http Server Programming in JAVA - Handling http requests and responsesHttp Server Programming in JAVA - Handling http requests and responses
Http Server Programming in JAVA - Handling http requests and responses
 
LAJUG Napster REST API
LAJUG Napster REST APILAJUG Napster REST API
LAJUG Napster REST API
 
UNIT-3 Servlet
UNIT-3 ServletUNIT-3 Servlet
UNIT-3 Servlet
 
Java Servlet Programming under Ubuntu Linux by Tushar B Kute
Java Servlet Programming under Ubuntu Linux by Tushar B KuteJava Servlet Programming under Ubuntu Linux by Tushar B Kute
Java Servlet Programming under Ubuntu Linux by Tushar B Kute
 
Knowledge Sharing : Java Servlet
Knowledge Sharing : Java ServletKnowledge Sharing : Java Servlet
Knowledge Sharing : Java Servlet
 
Introduction server Construction
Introduction server ConstructionIntroduction server Construction
Introduction server Construction
 
java Servlet technology
java Servlet technologyjava Servlet technology
java Servlet technology
 
ADO.NET Data Services
ADO.NET Data ServicesADO.NET Data Services
ADO.NET Data Services
 
Using eZ Platform in an API Era
Using eZ Platform in an API EraUsing eZ Platform in an API Era
Using eZ Platform in an API Era
 

More from mfrancis

Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...mfrancis
 
OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)mfrancis
 
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)mfrancis
 
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank LyaruuOSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruumfrancis
 
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...mfrancis
 
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...mfrancis
 
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...mfrancis
 
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)mfrancis
 
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...mfrancis
 
OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)mfrancis
 
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...mfrancis
 
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...mfrancis
 
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...mfrancis
 
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)mfrancis
 
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)mfrancis
 
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)mfrancis
 
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...mfrancis
 
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)mfrancis
 
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...mfrancis
 
How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)mfrancis
 

More from mfrancis (20)

Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
 
OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)
 
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
 
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank LyaruuOSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
 
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
 
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
 
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
 
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
 
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
 
OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)
 
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
 
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
 
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
 
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
 
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
 
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
 
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
 
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
 
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
 
How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)
 

Recently uploaded

Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 

Recently uploaded (20)

Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 

Reviving the Http Service

  • 1. © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Reviving the Http Service Felix Meschberger, Adobe Systems 1 Mittwoch, 24. Oktober 12
  • 2. © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Http Service 1.2 § More or less unmodified since OSGi R1 (May, 2000) § Resource Registration § Custom Authentication § Based on Servlet API 2.1 § No Filters § No Servlet API Listeners § No Error Pages § Limited Servlet Registration (path prefix only) § Complex registration: § Requires HttpService to register with init callback § Requires keeping state of successful registration § Requires Http Service to unregister 2 Mittwoch, 24. Oktober 12
  • 3. © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Revive and Update § Servlet API Version § Servlet API Elements § Improved Registration § Whiteboard Support 3 Mittwoch, 24. Oktober 12
  • 4. © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Requirements 1: Http Service Updates HS-1 The solution MUST define the relationship between the Http Service and Web Application specifications. HS-2 The solution MUST update the Http Service specification to refer to the latest Servlet API specification and define to what extend the Http Service provides support. HS-3 The solution MUST extend the HttpService service API to support Servlet registration with patterns as defined by the Servlet API specification (Section 12.2, Specification of Mappings, in the Servlet API 3.0 specification). This requirement aligns servlet registration to functionality provided by the Servlet API web application descriptor (web.xml). HS-4 The solution MUST extend the HttpService service API to support registration of Servlet API filters with patterns as defined by the Servlet API specification (Section 12.2, Specification of Mappings, in the Servlet API 3.0 specification) or referring to servlets by their names. This requirement aligns mapping filters to requests to functionality provided by the Servlet API web application descriptor (web.xml). HS-5 The solution MUST extend the HttpService service API to support registration of Servlet API listeners. HS-6 The solution MUST add support for error page configuration. HS-7 The solution MUST define how registered Servlets and Filters are named. HS-8 The solution MUST clarify ServletContext implementation in the HttpService for both standalone and bridged Http Service implementations. HS-9 The solution MUST clarify the ServletContext scope of Servlet API listeners registered through the HttpService. HS-10 The solution MAY specify support for scripted request processing. For example supporting JSP with Tag Libraries. HS-11 The solution MAY define how HttpService instances can be dynamically configured. HS-12 The solution MUST define service registration properties for the HttpService to reflect configuration of the service. 4 Mittwoch, 24. Oktober 12
  • 5. © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Requirements 2: Whiteboard Registration HS-13 The solution MUST define whiteboard registration of servlet services with the HttpService. HS-14 The solution MUST define whiteboard registration of filter services with the HttpService. HS-15 The solution MUST define whiteboard registration of servlet listener services with the HttpService. HS-16 The solution MUST define registration of OSGi HttpContext services used for Servlet and Filter registration. HS-17 The solution MUST define how servlets, filters, and servlet listener services are matched with HttpService services for registration. HS-18 The solution MUST support registration of static resources according to the extender pattern. HS-19 The solution MUST support registration of error pages according to the extender pattern. HS-20 The solution MUST define a capability for the osgi.extender namespace. Bundles providing resources and/or error pages can then require this capability. HS-21 The solution MUST define a capability for the whiteboard pattern registration in one of the standard namespaces (or a new namespace to be defined in the Chapter 135, Common Namespaces Specification). Bundles registering servlet, filter, and/or servlet listener services can then require this capability. 5 Mittwoch, 24. Oktober 12
  • 6. © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Servlet API Version § Which Servlet API to support/require ? § Servlet API 3.0 for the latest and greatest ? § Must not alienate Embedded Systems ! § Servlet API and the Platform § 2.4 requires Java 1.3 § 2.5 requires Java 5 § 3.0 requires Java 6 6 >= 2.4 Mittwoch, 24. Oktober 12
  • 7. © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Servlet API Elements 7 Servlet Filter Error Pages Event Listener EJB MIME mapping Replacements • EJB: Use Services • MIME mapping: Use HttpContext Mittwoch, 24. Oktober 12
  • 8. © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Servlet Registration - Http Service 1.2 8 public interface HttpService { public void registerServlet(String alias, Servlet servlet, Dictionary initparams, HttpContext context) throws ServletException, NamespaceException; public void unregister(String alias); } Single path Prefix only Servlet or Resource ? Manage State Service Required Share ? Mittwoch, 24. Oktober 12
  • 9. © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Servlet Registration - Http Service 1.2 8 public interface HttpService { public void registerServlet(String alias, Servlet servlet, Dictionary initparams, HttpContext context) throws ServletException, NamespaceException; public void unregister(String alias); } Single path Prefix only Servlet or Resource ? Manage State Service Required unregisterServlet(servlet) PatternWhiteboard Allow Array Share ? Whiteboard Mittwoch, 24. Oktober 12
  • 10. © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Sample Traditional Servlet 9 @Component(service = Servlet.class, property = "alias=/") public class SampleServletOld extends HttpServlet { private HttpService httpService; private String servletAlias; private boolean servletRegistered; @Activate private void activate(Map<String, Object> config) throws ServletException, NamespaceException { this.servletAlias = (String) config.get("alias"); this.httpService.registerServlet(this.servletAlias, this, null, null); this.servletRegistered = true; } @Deactivate private void deactivate() { if (this.servletRegistered) { this.httpService.unregister(servletAlias); } } @Reference(unbind = "unbindHttpService") private void bindHttpService(final HttpService httpService) { this.httpService = httpService; } private void unbindHttpService(final HttpService httpService) { if (this.httpService == httpService) { this.httpService = null; } } } Manage State Service Required Mittwoch, 24. Oktober 12
  • 11. © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Sample Traditional Servlet with new API 10 @Component(service = Servlet.class, property = "alias=/") public class SampleServletNew extends HttpServlet { private HttpService httpService; private boolean servletRegistered; @Activate private void activate(Map<String, Object> config) throws ServletException, NamespaceException { String servletAlias = (String) config.get("alias"); this.httpService.registerServlet(servletAlias, this, null, null); this.servletRegistered = true; } @Deactivate private void deactivate() { if (this.servletRegistered) { this.httpService.unregisterServlet(this); } } @Reference(unbind = "unbindHttpService") private void bindHttpService(final HttpService httpService) { this.httpService = httpService; } private void unbindHttpService(final HttpService httpService) { if (this.httpService == httpService) { this.httpService = null; } } } Manage State Service Required Mittwoch, 24. Oktober 12
  • 12. © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Sample Whiteboard Servlet 11 @Component(service = Servlet.class, property = "org.osgi.pattern=/") public class SampleServletWhiteboard extends HttpServlet { } § No State Management § No Http Service reference Mittwoch, 24. Oktober 12
  • 13. © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Alias vs. Pattern 12 Http Service Servlet API Match Type /alias /prefix/* Prefix Match *.ext Extension Match „“ (empty) Context Root Match / Default Servlet /exact/match Exact Match Mittwoch, 24. Oktober 12
  • 14. © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Alias vs. Pattern 12 Http Service Servlet API Match Type /alias /prefix/* Prefix Match *.ext Extension Match „“ (empty) Context Root Match / Default Servlet /exact/match Exact Match public void registerServlet(String[] pattern, Servlet servlet, Dictionary<String, String> initparams, HttpContext context) throws ServletException, NamespaceException; Mittwoch, 24. Oktober 12
  • 15. © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Http Context and Servlet Context 13 Common Servlet Context (e.g. from Servlet Container) Servlet Context 1 Servlet Context n Http Context 1 Http Context n Context Path Http Sessions Attributes Resources MIME Types Attributes Resources MIME Types Authentication Authentication Mittwoch, 24. Oktober 12
  • 16. © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Event Listener § Listeners are Services § Listener interface is Service Name § Supported Listeners depending on Servlet API Support § Whiteboard Registration § All Events from Http Service (not confined to ServletContext) 14 Mittwoch, 24. Oktober 12
  • 17. © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Error Pages § Defined as mappings § Status Code -> Location § Exception Type -> Location § Proposal: HttpService extension § registerErrorPage(int code, String location) § unregisterErrorPage(int code) § registerErrorPage(String exceptionType, String location) § unregisterErrorPage(String exceptionType) 15 Mittwoch, 24. Oktober 12
  • 18. © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Whiteboard Support § Add-On to Http Service § Gets Servlet, Filter, HttpContext services § Registers with Http Service § Matches Servlet to HttpContext with property 16 Servlet HttpContext Http Service context.name pattern Filter pattern Mittwoch, 24. Oktober 12
  • 19. © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Http Service Whiteboard Properties 17 Servlet HttpContext Filter osgi.http.context.id osgi.http.context.shared osgi.http.pattern osgi.http.errorPage osgi.http.init.* Refers to HttpContext Identifies Refers to HttpContext n/a Shared across Bundles ? n/a Registration Pattern n/a Registration Pattern Status Code Exception Type n/a n/a Init Parameters n/a Init Parameters Mittwoch, 24. Oktober 12
  • 20. © 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Links § http://wiki.osgi.org/wiki/WebExperience § RFP 150 Http Service Updates (https://www.osgi.org/bugzilla/show_bug.cgi?id=146) § Discuss: osgi-dev@mail.osgi.org 18 Mittwoch, 24. Oktober 12