OSGi bundles as SOAP web services in a plugin architecture -
i expose osgi bundles soap web services or in other words publish web service endpoints provided osgi bundles.
the architectural model/idea there host web application normal war file deployed on jboss (5.1.0 ga) offering soap web service interface (jax-ws).
this host application starts osgi framework embedded (via servletcontextlistener - equinox) , loads number of osgi bundles function plugins.
plugin bundles have dependency host application part of request processing delegated them via internally defined interfaces.
at same time plugin bundles should able contribute own public soap web service interface (endpoint implementations , respective wsdl files published , made available application server).
first approach followed host web application deploys dispatcher/proxy servlet delegates processing relevant endpoints provided osgi bundles.
there servlet bridge solution in osgi/equinox (bridgeservlet/httpserviceservlet) enables programmatic registration of servlets (for ex. in bundleactivators of plugin bundles) using http service specification.
problem have soap-based web service endpoints , need able wrap them in javax.servlet.servlet implementation.
that's interna of ws stack implementations of java ee 5 servers follow servlet–based web services approach (endpoints defined servlets in web.xml) , internally use install native endpoint servlets web service endpoints.
did not find such public endpoint servlet implementation registered http service (maybe similar com.sun.jersey.spi.container.servlet.servletcontainer can used publish rest-based services jax-rs applications in osgi)
little surprised did not find registering soap-based ws endpoints osgi http service or may not see obvious.
have found similar, jax-ws-commons/spring (spring support configuring jax-ws, http://jax-ws-commons.java.net/spring/), internally uses class wsservletdelegate of jax-ws ri (metro) process web requests endpoints. not sure it, seems kind of deprecated , need provide metro ws stack jars jboss (or in war file) in order make work on jboss 5.1.0 ga.
approach seems distributed osgi, allows publish osgi services remote access.
however, not find clear information how provide these services web services on jboss.
other realisation aspects are:
- we bound jboss 5.1.0 ga , changes jboss configuration should minimal possible (in order have minimal constraints setup of our customers)
- all web services developed contract-first means original wsdl's used providing container.
- the plugin components should simple possible concerning dependencies or technologies (in order have minimal requirements skill of plugin developers)
- we use spring 3 , gemini blueprint.
finally, there ambiguities , unclear aspects , unfortunately not find reports on projects similar requirements.
so, eager hear suggestions or comments of experts.
maybe there options don't see, or maybe has realised similar projects before , likes share experiences.
lot.
i not expert approach have seen put whole app server application osgi container. option in sling launchpad http://sling.apache.org/documentation/the-sling-engine/architecture.html#launchpad
hth
Comments
Post a Comment