SlideShare una empresa de Scribd logo
1 de 22
Descargar para leer sin conexión
© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0,
remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Building Server-Side Eclipse
based Web applications
Part 1 – Basics
Technical Sessions – Short Talks, 2007-06-27
2© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0,
remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
The presenters
Jochen Hiller
Business Operation Systems, Germany
jo.hiller@googlemail.com
Based on materials contributed by Jochen Hiller, Simon Kaegi, Martin Lippert,
Gunnar Wagenknecht for EclipseCon 2007 tutorials
Gunnar Wagenknecht
Truition, Germany
gunnar@wagenknecht.org
Eclipse Committer
3© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0,
remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
What is Server-Side Eclipse (SSE)?
Recognition... that many of the features that have made RCP
successful are equally applicable in server-side contexts.
• Standardized component model (OSGi)
• Pervasive extensibility – Extension Registry
• Runtime provisioning
Integration... with existing server-side infrastructure and technologies
• J2EE Application Servers
• Servlets and JSPs
• Application Frameworks
• ...
Jeff McAffer stated at EclipseCon 2007, Equinox BOF (03/06/2007):
Server-Side Eclipse is a concept, a marketing name, to illustrate
possible usage scenarios (like RCP).
4© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0,
remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
What is SSE from an OSGi perspective?
• An OSGi implementation (Equinox)
• Different HttpService implementation(s) (Equinox)
• Embedded Jetty
• ServletBridge with JavaEE Web Container
• Enhanced Http Support (Equinox)
• Declarative contribution to HttpService
• JSP Support
• Additional adapter helpers
• Extensive Toolset (Eclipse PDE)
• Development tooling
• Deployment support
5© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0,
remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
What motivates developers to use SSE?
Server-Side Eclipse
JavaTM EE
application
RCP
application
+ component model
+ use 3rd party plugins
Web developer
+ server support
+ re-use plugins
+ distributed
applications
RCP developer
application
framework
+ component model
• modular
• flexible
• dynamic
Infrastructure developer
6© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0,
remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
What is the OSGi HttpService?
• HttpService is part of OSGi v4
component specification
• Provides HttpService based
on Servlet 2.1 spec
• Key concepts:
• HttpService
• Servlets, Resources
• HttpContext
• Unified URI space
• Focused on small,
embedded devices
/* © Copyright OSGi Alliance */
package org.osgi.service.http;
public interface HttpService {
public HttpContext createDefaultHttpContext();
public void registerResources(String alias,
String name,
HttpContext context)
throws NamespaceException;
public void registerServlet(String alias,
Servlet servlet,
Dictionary initparams,
HttpContext context)
throws ServletException, NamespaceException;
public void unregister(String alias);
}
public interface HttpContext {
public String getMimeType(String name);
public URL getResource(String name);
public boolean handleSecurity(
HttpServletRequest request,
HttpServletResponse response)
throws IOException;
}
7© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0,
remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
HttpRegistry extension point
• Provides a declarative alternative to using the HttpService directly in
code.
• [httpcontexts] – supports creation of a basic parameterized HttpContext
or user-defined HttpContext
• [servlets] – provides the equivalent symantics of the
HttpService.registerServlet(...) call.
• [resources] – provides the equivalent symantics of the
HttpService.registerResource(...) call.
• One difference: registration lifecycle
• Follows Eclipse extension point approach è not dynamic
• resolve/unresolve vs. start/stop
8© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0,
remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
HttpRegistry extension point – example
<!-- © Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corp.; All rights reserved. This source code is
made available under the terms of the Eclipse Public License, v1.0. -->
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.2"?>
<plugin>
<extension point="org.eclipse.equinox.http.registry.httpcontexts">
<httpcontext id="root-context">
<resource-mapping
path="/WebContent">
</resource-mapping >
</httpcontext>
</extension>
<extension point="org.eclipse.equinox.http.registry.resources">
<resource
alias="/sample"
base-name="/"
httpcontextId="root-context"/>
</extension>
<extension point="org.eclipse.equinox.http.registry.servlets">
<servlet
alias="/sample/hello"
class=„sample.HelloServlet"
httpcontextId="root-context" />
<serviceSelector filter="(http.port=8080)" />
</extension>
</plugin>
HttpContext maps to resources
Register resources for URL
Register servlets for URL
Filter for specific HttpService
9© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0,
remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Deployment scenarios of Server-Side Eclipse
• Equinox embedding
a HttpService
• e.g. based on Jetty
• Application Server running
an embedded Equinox
• Bridging aspect is referred
to as the Servletbridge
• Isolation between multiple
web applications/Equinox
instances
Source: Jeff McAffer, Eclipse Summit Europe, Server-Side Symposium, Oct 12nd 2006
10© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0,
remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Demo
• Servlet Sample
• Http Service Tracker
• Stop / start bundles
• Service Tracker vs. Http Registry
© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0,
remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Building Server-Side Eclipse
based Web applications
Part 2 – User Interfaces
Technical Sessions – Short Talks, 2007-06-27
12© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0,
remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Different approaches for Server-Side UI‘s
• Java EE standards
• Based on Java EE technologies (JSP, Struts, …)
• Proposal for RSP-UI from Infonoia and others
• See: http://www.eclipse.org/proposals/rsp/
• Rich AJAX Platform
• Accepted as Eclipse technology project
• RCP styled development approach
• See: http://www.eclipse.org/rap/
• Google Web Toolkit
• Client-centric UI approach
• See: http://code.google.com/webtoolkit/
Java EE
RAP
GWT
13© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0,
remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Java EE vs. the OSGi HttpService (1)
• Dynamic Registration
• Replaces web deployment descriptor (e.g. web.xml)
• Dynamic registration supports register/unregister of resources/servlets
• Code based: tied to START/STOP lifecycle
• e.g. during BundleActivator.start()
• Declaration based: tied to RESOLVED/UNRESOLVED lifecycle
• e.g. using Equinox HttpRegistry
• Other options: Declarative services, OSGi-Spring
• URL mapping differences
• alias roughly equivalent to <url-mapping>
• No more than one registration per alias (worth planning, use relative URLs)
• No welcome-file support (Mapping from / to /index.html)
• No support for extension mappings
14© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0,
remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Java EE vs. the OSGi HttpService (2)
• HttpContext
• Maps 1:1 to a ServletContext
• MIME type retrieval, resource
retrieval, authentication
• Whats missing:
• getNamedDispatcher,
• getResourcePaths
• getInitParameters (*),
• “Context Path” (*)
• Servlets and Filters: Whats missing:
• Filter(*), HttpSessionListener’s,
ServletContextListener’s(*), ServletRequestListener’s
(*) Workarounds available: Wrapper technique.
See org.eclipse.equinox.http.helper[s] in Equinox Incubator (not API yet)
/* © Copyright OSGi Alliance */
package org.osgi.service.http;
public interface HttpContext {
public String getMimeType(String name);
public URL getResource(String name);
public boolean handleSecurity(
HttpServletRequest request,
HttpServletResponse response)
throws IOException;
}
/* Supported in Equinox (via Reflection). */
public Set getResourcePaths (String path);
15© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0,
remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Equinox JSP Support
• Use {path}/*.jsp style alias for JSPs.
• JSP lookup consistent with OSGi HttpService resource registration
• Provides JSP support for Help / UA in the Eclipse 3.3 SDK
• Work with RSP-UI to provide further framework integrations
• JSP Tag Library Discovery supported along bundle classpath
• Supported under the Servletbridge…
• Allows for portable pre-compiled JSPs
• Provided by: org.eclipse.equinox.jsp.jasper.JspServlet
• public JspServlet(Bundle bundle,
String bundleResourcePath, String alias)
• JSP Extension Registry Support provided
16© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0,
remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
What is Rich AJAX Platform (RAP)?
Brings Eclipse RCP based development style to Web 2.0 era
RAP is:
• An Eclipse technology project (proposed by Inoopract and others)
• Java based UI / AJAX development
• Using RAP Widget Toolkit (RWT), subset of SWT API
• Based on JavaScript client-side framework (qooxdoo)
• Eclipse Workbench concept extended for the web
• incl. Session support
• API compliant with SWT, JFace, Workbench, extension point namespaces
See also:
• http://www.eclipse.org/rap/
• Active community, great interest
17© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0,
remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
What are the RAP components?
• qooxdoo: underlying client-side JavaScript framework
• RWT: RAP Widget Toolkit (migrated from W4T), subset of SWT
• JFace, Workbench: RAP based implementations of Eclipse RCP
Equinox
Operating System
Jetty
Per-
spectives
Views
RWT
Workbench
qooxdoo
Editors Application plugins
RAP
Server-Side Eclipse
Update
Manager
...
Launcher
JFace
W4T
Workbench
RAP
core.
jobs
core.
runtime
core.
commands
Eclipse Core Plugins
18© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0,
remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
The Google Web Toolkit (GWT)
• Build AJAX apps in the Java language
• Embed components in existing HTML
• Full desktop app clones
• Apache 2.0 license
• Vibrant community
19© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0,
remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Deploying as Eclipse Server-Side
Bundles
• One GWT module à Two OSGi bundles
• Server-side bundle
• RPC service implementation
• Exposed using org.eclipse.equinox.http.registry.servlets
• Client-side bundle
• Compiled GWT code (Java + JavaScript) together with HTML, style
sheets, images, etc.
• Exposed using org.eclipse.equinox.http.registry.resources
20© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0,
remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Demo
• PlanetEclipse – FeedReader demo
• RAP FeedReader
• GWT FeedReader
• Starting / stopping bundles using Knopflerfish console
• Install new bundles
21© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0,
remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
For more information...
EclipseCon 2007 Short tutorials:
http://www.eclipsecon.org/2007/index.php?page=sub/&id=3607
http://www.eclipsecon.org/2007/index.php?page=sub/&id=3719
Project hub:
http://www.eclipse.org/equinox/server
Newsgroup:
news://news.eclipse.org/eclipse.technology.equinox
Dev Mailing List:
equinox-dev@eclipse.org
Thank-you
22© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0,
remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license
Legal Notices
• Java and all Java-based trademarks are trademarks of Sun Microsystems,
Inc. in the United States, other countries, or both
• Microsoft, Windows, Windows NT, and the Windows logo are trademarks of
Microsoft Corporation in the United States, other countries, or both.
• Linux is a registered trademark of Linus Torvalds in the United States, other
countries, or both.
• Other company, product, or service names may be trademarks or service
marks of others

Más contenido relacionado

La actualidad más candente

Construire une « data fabric » pour les environnements edge
Construire une « data fabric » pour les environnements edgeConstruire une « data fabric » pour les environnements edge
Construire une « data fabric » pour les environnements edgeOpen Source Experience
 
Running Spring Boot Applications as GraalVM Native Images
Running Spring Boot Applications as GraalVM Native ImagesRunning Spring Boot Applications as GraalVM Native Images
Running Spring Boot Applications as GraalVM Native ImagesVMware Tanzu
 
Open Source Licensing: Types, Strategies and Compliance
Open Source Licensing: Types, Strategies and ComplianceOpen Source Licensing: Types, Strategies and Compliance
Open Source Licensing: Types, Strategies and ComplianceAll Things Open
 
Introduction to KubeSphere and its open source ecosystem
Introduction to KubeSphere and its open source ecosystemIntroduction to KubeSphere and its open source ecosystem
Introduction to KubeSphere and its open source ecosystemKubeSphere
 
PKS Networking with NSX-T: You Focus on your App, We'll Take Care of the Rest!
PKS Networking with NSX-T: You Focus on your App, We'll Take Care of the Rest!PKS Networking with NSX-T: You Focus on your App, We'll Take Care of the Rest!
PKS Networking with NSX-T: You Focus on your App, We'll Take Care of the Rest!VMware Tanzu
 
DEEP: a user success story
DEEP: a user success storyDEEP: a user success story
DEEP: a user success storyEOSC-hub project
 
Meetups - The Oracle Ace Way
Meetups - The Oracle Ace WayMeetups - The Oracle Ace Way
Meetups - The Oracle Ace WayPhil Wilkins
 
Introduction to Reactive Streams and Reactor 2.5
Introduction to Reactive Streams and Reactor 2.5Introduction to Reactive Streams and Reactor 2.5
Introduction to Reactive Streams and Reactor 2.5Stéphane Maldini
 
Tycho Tutorial EclipseCon 2013
Tycho Tutorial EclipseCon 2013Tycho Tutorial EclipseCon 2013
Tycho Tutorial EclipseCon 2013jsievers
 
#bigwhale: An Unexpected Journey into Containerization @ Lockheed Martin - Pa...
#bigwhale: An Unexpected Journey into Containerization @ Lockheed Martin - Pa...#bigwhale: An Unexpected Journey into Containerization @ Lockheed Martin - Pa...
#bigwhale: An Unexpected Journey into Containerization @ Lockheed Martin - Pa...Docker, Inc.
 
Le projet MORPHEMIC – Adaptation des ressources de cloud computing selon une ...
Le projet MORPHEMIC – Adaptation des ressources de cloud computing selon une ...Le projet MORPHEMIC – Adaptation des ressources de cloud computing selon une ...
Le projet MORPHEMIC – Adaptation des ressources de cloud computing selon une ...Open Source Experience
 
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.All Things Open
 
How to develop your first cloud-native Applications with Java
How to develop your first cloud-native Applications with JavaHow to develop your first cloud-native Applications with Java
How to develop your first cloud-native Applications with JavaNiklas Heidloff
 
Introduction to cloud-native application development: with Heroku and Spring ...
Introduction to cloud-native application development: with Heroku and Spring ...Introduction to cloud-native application development: with Heroku and Spring ...
Introduction to cloud-native application development: with Heroku and Spring ...Roberto Casadei
 
Curated "Cloud Design Patterns" for Call Center Platforms
Curated "Cloud Design Patterns" for Call Center PlatformsCurated "Cloud Design Patterns" for Call Center Platforms
Curated "Cloud Design Patterns" for Call Center PlatformsAlejandro Rios Peña
 
PKS is Not JAK8sP (Just Another Kubernetes Platform)
PKS is Not JAK8sP (Just Another Kubernetes Platform)PKS is Not JAK8sP (Just Another Kubernetes Platform)
PKS is Not JAK8sP (Just Another Kubernetes Platform)VMware Tanzu
 
Using Clocker with Project Calico - Running Production Workloads in the Cloud
Using Clocker with Project Calico - Running Production Workloads in the CloudUsing Clocker with Project Calico - Running Production Workloads in the Cloud
Using Clocker with Project Calico - Running Production Workloads in the CloudAndrew Kennedy
 
Best Practices for (Enterprise) OSGi applications - Tim Ward
Best Practices for (Enterprise) OSGi applications - Tim WardBest Practices for (Enterprise) OSGi applications - Tim Ward
Best Practices for (Enterprise) OSGi applications - Tim Wardmfrancis
 
Secrets of Successful Digital Transformers
Secrets of Successful Digital TransformersSecrets of Successful Digital Transformers
Secrets of Successful Digital TransformersVMware Tanzu
 

La actualidad más candente (20)

Construire une « data fabric » pour les environnements edge
Construire une « data fabric » pour les environnements edgeConstruire une « data fabric » pour les environnements edge
Construire une « data fabric » pour les environnements edge
 
Running Spring Boot Applications as GraalVM Native Images
Running Spring Boot Applications as GraalVM Native ImagesRunning Spring Boot Applications as GraalVM Native Images
Running Spring Boot Applications as GraalVM Native Images
 
Open Source Licensing: Types, Strategies and Compliance
Open Source Licensing: Types, Strategies and ComplianceOpen Source Licensing: Types, Strategies and Compliance
Open Source Licensing: Types, Strategies and Compliance
 
Introduction to KubeSphere and its open source ecosystem
Introduction to KubeSphere and its open source ecosystemIntroduction to KubeSphere and its open source ecosystem
Introduction to KubeSphere and its open source ecosystem
 
PKS Networking with NSX-T: You Focus on your App, We'll Take Care of the Rest!
PKS Networking with NSX-T: You Focus on your App, We'll Take Care of the Rest!PKS Networking with NSX-T: You Focus on your App, We'll Take Care of the Rest!
PKS Networking with NSX-T: You Focus on your App, We'll Take Care of the Rest!
 
DEEP: a user success story
DEEP: a user success storyDEEP: a user success story
DEEP: a user success story
 
Meetups - The Oracle Ace Way
Meetups - The Oracle Ace WayMeetups - The Oracle Ace Way
Meetups - The Oracle Ace Way
 
Introduction to Reactive Streams and Reactor 2.5
Introduction to Reactive Streams and Reactor 2.5Introduction to Reactive Streams and Reactor 2.5
Introduction to Reactive Streams and Reactor 2.5
 
Tycho Tutorial EclipseCon 2013
Tycho Tutorial EclipseCon 2013Tycho Tutorial EclipseCon 2013
Tycho Tutorial EclipseCon 2013
 
#bigwhale: An Unexpected Journey into Containerization @ Lockheed Martin - Pa...
#bigwhale: An Unexpected Journey into Containerization @ Lockheed Martin - Pa...#bigwhale: An Unexpected Journey into Containerization @ Lockheed Martin - Pa...
#bigwhale: An Unexpected Journey into Containerization @ Lockheed Martin - Pa...
 
Le projet MORPHEMIC – Adaptation des ressources de cloud computing selon une ...
Le projet MORPHEMIC – Adaptation des ressources de cloud computing selon une ...Le projet MORPHEMIC – Adaptation des ressources de cloud computing selon une ...
Le projet MORPHEMIC – Adaptation des ressources de cloud computing selon une ...
 
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
 
How to develop your first cloud-native Applications with Java
How to develop your first cloud-native Applications with JavaHow to develop your first cloud-native Applications with Java
How to develop your first cloud-native Applications with Java
 
12 Factor App
12 Factor App12 Factor App
12 Factor App
 
Introduction to cloud-native application development: with Heroku and Spring ...
Introduction to cloud-native application development: with Heroku and Spring ...Introduction to cloud-native application development: with Heroku and Spring ...
Introduction to cloud-native application development: with Heroku and Spring ...
 
Curated "Cloud Design Patterns" for Call Center Platforms
Curated "Cloud Design Patterns" for Call Center PlatformsCurated "Cloud Design Patterns" for Call Center Platforms
Curated "Cloud Design Patterns" for Call Center Platforms
 
PKS is Not JAK8sP (Just Another Kubernetes Platform)
PKS is Not JAK8sP (Just Another Kubernetes Platform)PKS is Not JAK8sP (Just Another Kubernetes Platform)
PKS is Not JAK8sP (Just Another Kubernetes Platform)
 
Using Clocker with Project Calico - Running Production Workloads in the Cloud
Using Clocker with Project Calico - Running Production Workloads in the CloudUsing Clocker with Project Calico - Running Production Workloads in the Cloud
Using Clocker with Project Calico - Running Production Workloads in the Cloud
 
Best Practices for (Enterprise) OSGi applications - Tim Ward
Best Practices for (Enterprise) OSGi applications - Tim WardBest Practices for (Enterprise) OSGi applications - Tim Ward
Best Practices for (Enterprise) OSGi applications - Tim Ward
 
Secrets of Successful Digital Transformers
Secrets of Successful Digital TransformersSecrets of Successful Digital Transformers
Secrets of Successful Digital Transformers
 

Similar a Building Server-Side Web Apps with Eclipse

When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?Niklas Heidloff
 
Whats Next for OSGi? - BJ Hargrave
Whats Next for OSGi? - BJ HargraveWhats Next for OSGi? - BJ Hargrave
Whats Next for OSGi? - BJ Hargravemfrancis
 
Kubecon seattle 2018 recap - Application Deployment aspects
Kubecon seattle 2018 recap - Application Deployment aspectsKubecon seattle 2018 recap - Application Deployment aspects
Kubecon seattle 2018 recap - Application Deployment aspectsKrishna-Kumar
 
Web Technologies in Automotive & Robotics (BlinkOn 10)
Web Technologies in Automotive & Robotics (BlinkOn 10)Web Technologies in Automotive & Robotics (BlinkOn 10)
Web Technologies in Automotive & Robotics (BlinkOn 10)Igalia
 
Node.js primer for ITE students
Node.js primer for ITE studentsNode.js primer for ITE students
Node.js primer for ITE studentsQuhan Arunasalam
 
Building and Deploying Cloud Native Applications
Building and Deploying Cloud Native ApplicationsBuilding and Deploying Cloud Native Applications
Building and Deploying Cloud Native ApplicationsManish Kapur
 
Cloud Native Meetup Santa Clara 07-11-2019 by Manish Kapur
Cloud Native Meetup Santa Clara 07-11-2019 by Manish KapurCloud Native Meetup Santa Clara 07-11-2019 by Manish Kapur
Cloud Native Meetup Santa Clara 07-11-2019 by Manish KapurOracle Developers
 
Red Hat and kubernetes: awesome stuff coming your way
Red Hat and kubernetes:  awesome stuff coming your wayRed Hat and kubernetes:  awesome stuff coming your way
Red Hat and kubernetes: awesome stuff coming your wayJohannes Brännström
 
Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015Microsoft
 
ABC of Platform Workspace
ABC of Platform WorkspaceABC of Platform Workspace
ABC of Platform WorkspaceTomasz Zarna
 
Dark slides broadcasting reveal
Dark slides   broadcasting revealDark slides   broadcasting reveal
Dark slides broadcasting revealKrishna Raman
 
Keynote - Eclipse - Accelerating OSGi Adoption - Mike Milinkovich, Executive ...
Keynote - Eclipse - Accelerating OSGi Adoption - Mike Milinkovich, Executive ...Keynote - Eclipse - Accelerating OSGi Adoption - Mike Milinkovich, Executive ...
Keynote - Eclipse - Accelerating OSGi Adoption - Mike Milinkovich, Executive ...mfrancis
 
Jakarta Tech Talk: How to develop your first cloud-native Application with Java
Jakarta Tech Talk: How to develop your first cloud-native Application with JavaJakarta Tech Talk: How to develop your first cloud-native Application with Java
Jakarta Tech Talk: How to develop your first cloud-native Application with JavaNiklas Heidloff
 
The Open eHealth Integration Platform
The Open eHealth Integration PlatformThe Open eHealth Integration Platform
The Open eHealth Integration Platformkrasserm
 
RAP vs GWT Which AJAX Technology is for you?
RAP vs GWT Which AJAX Technology is for you?RAP vs GWT Which AJAX Technology is for you?
RAP vs GWT Which AJAX Technology is for you?Mark Russell
 
Camelone-2012 HTML5 WebSocket ActiveMQ/Camel
Camelone-2012 HTML5 WebSocket ActiveMQ/CamelCamelone-2012 HTML5 WebSocket ActiveMQ/Camel
Camelone-2012 HTML5 WebSocket ActiveMQ/CamelCharles Moulliard
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to KubernetesSamuel Dratwa
 
"Current and Planned Standards for Computer Vision and Machine Learning," a P...
"Current and Planned Standards for Computer Vision and Machine Learning," a P..."Current and Planned Standards for Computer Vision and Machine Learning," a P...
"Current and Planned Standards for Computer Vision and Machine Learning," a P...Edge AI and Vision Alliance
 

Similar a Building Server-Side Web Apps with Eclipse (20)

When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?
 
Whats Next for OSGi? - BJ Hargrave
Whats Next for OSGi? - BJ HargraveWhats Next for OSGi? - BJ Hargrave
Whats Next for OSGi? - BJ Hargrave
 
Kubecon seattle 2018 recap - Application Deployment aspects
Kubecon seattle 2018 recap - Application Deployment aspectsKubecon seattle 2018 recap - Application Deployment aspects
Kubecon seattle 2018 recap - Application Deployment aspects
 
Web Technologies in Automotive & Robotics (BlinkOn 10)
Web Technologies in Automotive & Robotics (BlinkOn 10)Web Technologies in Automotive & Robotics (BlinkOn 10)
Web Technologies in Automotive & Robotics (BlinkOn 10)
 
Node.js primer for ITE students
Node.js primer for ITE studentsNode.js primer for ITE students
Node.js primer for ITE students
 
IBM Z for the Digital Enterprise - Zowe overview
IBM Z for the Digital Enterprise - Zowe overviewIBM Z for the Digital Enterprise - Zowe overview
IBM Z for the Digital Enterprise - Zowe overview
 
Building and Deploying Cloud Native Applications
Building and Deploying Cloud Native ApplicationsBuilding and Deploying Cloud Native Applications
Building and Deploying Cloud Native Applications
 
Cloud Native Meetup Santa Clara 07-11-2019 by Manish Kapur
Cloud Native Meetup Santa Clara 07-11-2019 by Manish KapurCloud Native Meetup Santa Clara 07-11-2019 by Manish Kapur
Cloud Native Meetup Santa Clara 07-11-2019 by Manish Kapur
 
Red Hat and kubernetes: awesome stuff coming your way
Red Hat and kubernetes:  awesome stuff coming your wayRed Hat and kubernetes:  awesome stuff coming your way
Red Hat and kubernetes: awesome stuff coming your way
 
Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015
 
ABC of Platform Workspace
ABC of Platform WorkspaceABC of Platform Workspace
ABC of Platform Workspace
 
Dark slides broadcasting reveal
Dark slides   broadcasting revealDark slides   broadcasting reveal
Dark slides broadcasting reveal
 
Keynote - Eclipse - Accelerating OSGi Adoption - Mike Milinkovich, Executive ...
Keynote - Eclipse - Accelerating OSGi Adoption - Mike Milinkovich, Executive ...Keynote - Eclipse - Accelerating OSGi Adoption - Mike Milinkovich, Executive ...
Keynote - Eclipse - Accelerating OSGi Adoption - Mike Milinkovich, Executive ...
 
Eclipse summit-2010
Eclipse summit-2010Eclipse summit-2010
Eclipse summit-2010
 
Jakarta Tech Talk: How to develop your first cloud-native Application with Java
Jakarta Tech Talk: How to develop your first cloud-native Application with JavaJakarta Tech Talk: How to develop your first cloud-native Application with Java
Jakarta Tech Talk: How to develop your first cloud-native Application with Java
 
The Open eHealth Integration Platform
The Open eHealth Integration PlatformThe Open eHealth Integration Platform
The Open eHealth Integration Platform
 
RAP vs GWT Which AJAX Technology is for you?
RAP vs GWT Which AJAX Technology is for you?RAP vs GWT Which AJAX Technology is for you?
RAP vs GWT Which AJAX Technology is for you?
 
Camelone-2012 HTML5 WebSocket ActiveMQ/Camel
Camelone-2012 HTML5 WebSocket ActiveMQ/CamelCamelone-2012 HTML5 WebSocket ActiveMQ/Camel
Camelone-2012 HTML5 WebSocket ActiveMQ/Camel
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
 
"Current and Planned Standards for Computer Vision and Machine Learning," a P...
"Current and Planned Standards for Computer Vision and Machine Learning," a P..."Current and Planned Standards for Computer Vision and Machine Learning," a P...
"Current and Planned Standards for Computer Vision and Machine Learning," a P...
 

Más de 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
 

Más de 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)
 

Último

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.pdfsudhanshuwaghmare1
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
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
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
[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
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
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
 

Último (20)

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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
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
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.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
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
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
 

Building Server-Side Web Apps with Eclipse

  • 1. © Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license Building Server-Side Eclipse based Web applications Part 1 – Basics Technical Sessions – Short Talks, 2007-06-27
  • 2. 2© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license The presenters Jochen Hiller Business Operation Systems, Germany jo.hiller@googlemail.com Based on materials contributed by Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht for EclipseCon 2007 tutorials Gunnar Wagenknecht Truition, Germany gunnar@wagenknecht.org Eclipse Committer
  • 3. 3© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license What is Server-Side Eclipse (SSE)? Recognition... that many of the features that have made RCP successful are equally applicable in server-side contexts. • Standardized component model (OSGi) • Pervasive extensibility – Extension Registry • Runtime provisioning Integration... with existing server-side infrastructure and technologies • J2EE Application Servers • Servlets and JSPs • Application Frameworks • ... Jeff McAffer stated at EclipseCon 2007, Equinox BOF (03/06/2007): Server-Side Eclipse is a concept, a marketing name, to illustrate possible usage scenarios (like RCP).
  • 4. 4© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license What is SSE from an OSGi perspective? • An OSGi implementation (Equinox) • Different HttpService implementation(s) (Equinox) • Embedded Jetty • ServletBridge with JavaEE Web Container • Enhanced Http Support (Equinox) • Declarative contribution to HttpService • JSP Support • Additional adapter helpers • Extensive Toolset (Eclipse PDE) • Development tooling • Deployment support
  • 5. 5© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license What motivates developers to use SSE? Server-Side Eclipse JavaTM EE application RCP application + component model + use 3rd party plugins Web developer + server support + re-use plugins + distributed applications RCP developer application framework + component model • modular • flexible • dynamic Infrastructure developer
  • 6. 6© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license What is the OSGi HttpService? • HttpService is part of OSGi v4 component specification • Provides HttpService based on Servlet 2.1 spec • Key concepts: • HttpService • Servlets, Resources • HttpContext • Unified URI space • Focused on small, embedded devices /* © Copyright OSGi Alliance */ package org.osgi.service.http; public interface HttpService { public HttpContext createDefaultHttpContext(); public void registerResources(String alias, String name, HttpContext context) throws NamespaceException; public void registerServlet(String alias, Servlet servlet, Dictionary initparams, HttpContext context) throws ServletException, NamespaceException; public void unregister(String alias); } public interface HttpContext { public String getMimeType(String name); public URL getResource(String name); public boolean handleSecurity( HttpServletRequest request, HttpServletResponse response) throws IOException; }
  • 7. 7© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license HttpRegistry extension point • Provides a declarative alternative to using the HttpService directly in code. • [httpcontexts] – supports creation of a basic parameterized HttpContext or user-defined HttpContext • [servlets] – provides the equivalent symantics of the HttpService.registerServlet(...) call. • [resources] – provides the equivalent symantics of the HttpService.registerResource(...) call. • One difference: registration lifecycle • Follows Eclipse extension point approach è not dynamic • resolve/unresolve vs. start/stop
  • 8. 8© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license HttpRegistry extension point – example <!-- © Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corp.; All rights reserved. This source code is made available under the terms of the Eclipse Public License, v1.0. --> <?xml version="1.0" encoding="UTF-8"?> <?eclipse version="3.2"?> <plugin> <extension point="org.eclipse.equinox.http.registry.httpcontexts"> <httpcontext id="root-context"> <resource-mapping path="/WebContent"> </resource-mapping > </httpcontext> </extension> <extension point="org.eclipse.equinox.http.registry.resources"> <resource alias="/sample" base-name="/" httpcontextId="root-context"/> </extension> <extension point="org.eclipse.equinox.http.registry.servlets"> <servlet alias="/sample/hello" class=„sample.HelloServlet" httpcontextId="root-context" /> <serviceSelector filter="(http.port=8080)" /> </extension> </plugin> HttpContext maps to resources Register resources for URL Register servlets for URL Filter for specific HttpService
  • 9. 9© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license Deployment scenarios of Server-Side Eclipse • Equinox embedding a HttpService • e.g. based on Jetty • Application Server running an embedded Equinox • Bridging aspect is referred to as the Servletbridge • Isolation between multiple web applications/Equinox instances Source: Jeff McAffer, Eclipse Summit Europe, Server-Side Symposium, Oct 12nd 2006
  • 10. 10© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license Demo • Servlet Sample • Http Service Tracker • Stop / start bundles • Service Tracker vs. Http Registry
  • 11. © Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license Building Server-Side Eclipse based Web applications Part 2 – User Interfaces Technical Sessions – Short Talks, 2007-06-27
  • 12. 12© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license Different approaches for Server-Side UI‘s • Java EE standards • Based on Java EE technologies (JSP, Struts, …) • Proposal for RSP-UI from Infonoia and others • See: http://www.eclipse.org/proposals/rsp/ • Rich AJAX Platform • Accepted as Eclipse technology project • RCP styled development approach • See: http://www.eclipse.org/rap/ • Google Web Toolkit • Client-centric UI approach • See: http://code.google.com/webtoolkit/ Java EE RAP GWT
  • 13. 13© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license Java EE vs. the OSGi HttpService (1) • Dynamic Registration • Replaces web deployment descriptor (e.g. web.xml) • Dynamic registration supports register/unregister of resources/servlets • Code based: tied to START/STOP lifecycle • e.g. during BundleActivator.start() • Declaration based: tied to RESOLVED/UNRESOLVED lifecycle • e.g. using Equinox HttpRegistry • Other options: Declarative services, OSGi-Spring • URL mapping differences • alias roughly equivalent to <url-mapping> • No more than one registration per alias (worth planning, use relative URLs) • No welcome-file support (Mapping from / to /index.html) • No support for extension mappings
  • 14. 14© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license Java EE vs. the OSGi HttpService (2) • HttpContext • Maps 1:1 to a ServletContext • MIME type retrieval, resource retrieval, authentication • Whats missing: • getNamedDispatcher, • getResourcePaths • getInitParameters (*), • “Context Path” (*) • Servlets and Filters: Whats missing: • Filter(*), HttpSessionListener’s, ServletContextListener’s(*), ServletRequestListener’s (*) Workarounds available: Wrapper technique. See org.eclipse.equinox.http.helper[s] in Equinox Incubator (not API yet) /* © Copyright OSGi Alliance */ package org.osgi.service.http; public interface HttpContext { public String getMimeType(String name); public URL getResource(String name); public boolean handleSecurity( HttpServletRequest request, HttpServletResponse response) throws IOException; } /* Supported in Equinox (via Reflection). */ public Set getResourcePaths (String path);
  • 15. 15© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license Equinox JSP Support • Use {path}/*.jsp style alias for JSPs. • JSP lookup consistent with OSGi HttpService resource registration • Provides JSP support for Help / UA in the Eclipse 3.3 SDK • Work with RSP-UI to provide further framework integrations • JSP Tag Library Discovery supported along bundle classpath • Supported under the Servletbridge… • Allows for portable pre-compiled JSPs • Provided by: org.eclipse.equinox.jsp.jasper.JspServlet • public JspServlet(Bundle bundle, String bundleResourcePath, String alias) • JSP Extension Registry Support provided
  • 16. 16© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license What is Rich AJAX Platform (RAP)? Brings Eclipse RCP based development style to Web 2.0 era RAP is: • An Eclipse technology project (proposed by Inoopract and others) • Java based UI / AJAX development • Using RAP Widget Toolkit (RWT), subset of SWT API • Based on JavaScript client-side framework (qooxdoo) • Eclipse Workbench concept extended for the web • incl. Session support • API compliant with SWT, JFace, Workbench, extension point namespaces See also: • http://www.eclipse.org/rap/ • Active community, great interest
  • 17. 17© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license What are the RAP components? • qooxdoo: underlying client-side JavaScript framework • RWT: RAP Widget Toolkit (migrated from W4T), subset of SWT • JFace, Workbench: RAP based implementations of Eclipse RCP Equinox Operating System Jetty Per- spectives Views RWT Workbench qooxdoo Editors Application plugins RAP Server-Side Eclipse Update Manager ... Launcher JFace W4T Workbench RAP core. jobs core. runtime core. commands Eclipse Core Plugins
  • 18. 18© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license The Google Web Toolkit (GWT) • Build AJAX apps in the Java language • Embed components in existing HTML • Full desktop app clones • Apache 2.0 license • Vibrant community
  • 19. 19© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license Deploying as Eclipse Server-Side Bundles • One GWT module à Two OSGi bundles • Server-side bundle • RPC service implementation • Exposed using org.eclipse.equinox.http.registry.servlets • Client-side bundle • Compiled GWT code (Java + JavaScript) together with HTML, style sheets, images, etc. • Exposed using org.eclipse.equinox.http.registry.resources
  • 20. 20© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license Demo • PlanetEclipse – FeedReader demo • RAP FeedReader • GWT FeedReader • Starting / stopping bundles using Knopflerfish console • Install new bundles
  • 21. 21© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license For more information... EclipseCon 2007 Short tutorials: http://www.eclipsecon.org/2007/index.php?page=sub/&id=3607 http://www.eclipsecon.org/2007/index.php?page=sub/&id=3719 Project hub: http://www.eclipse.org/equinox/server Newsgroup: news://news.eclipse.org/eclipse.technology.equinox Dev Mailing List: equinox-dev@eclipse.org Thank-you
  • 22. 22© Copyright 2007 Jochen Hiller, Simon Kaegi, Martin Lippert, Gunnar Wagenknecht, IBM Corporation; Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license Legal Notices • Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both • Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both. • Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both. • Other company, product, or service names may be trademarks or service marks of others