5 Replies Latest reply on Jul 21, 2011 11:23 AM by Carlos Morales

    What does 'XYZ Transport' imply/mean?

    Carlos Morales Newbie



      I have a question about a concept pervading many components and ServiceMix elements. The term is transport.


      I have seen it used when defining CXF endpoints mostly. See for example this thread post: http://fusesource.com/forums/thread.jspa?messageID=10613&#10627


      You can read 'OSGi transport' and 'Jetty transport' in the same reply. I also have used (without much awareness of what I'm doing, I must admit, as I am still learning about ServiceMix) classpath:META-INF/cxf/transport/nmr/cxf-transport-nmr.xml which makes me think there is also a 'NMR transport'.


      Can anyone explain what a 'transport' is in this context?



        • 1. Re: What does 'XYZ Transport' imply/mean?
          Freeman(Yue) Fang Master



          The "transport" term here is a concept from cxf, it means the protocol which is used to transfer the onwire message.

          It could be http, jms, or even nmr as you already know.



          • 2. Re: What does 'XYZ Transport' imply/mean?
            Carlos Morales Newbie

            Hello Freeman,


            Thank you very much for your quick response.


            While I have an understanding of what a transport is, I don't understand what, for example, 'OSGI transport' means. I understand statements like 'SOAP using HTTP as transport', 'SOAP over FTP' or 'SOAP using JMS'  and the transport connotation of HTTP/FTP/JMS in those phrases. It implies that HTTP, FTP and JMS can be used as a data communication protocol, i.e., they have 'data transportation' semantics, albeit their very own semantics.


            As far as I understand, OSGi/the NMR are not a technologies/components with such semantics. How is OSGi used as a transport if such technology deals with the deployment and management of modules within a container? When should I use the OSGi transport instead of the NMR one...?


            I am sorry if this looks like a stubborn, silly question. I am having a problem building mental models of some of the ServiceMix concepts and this one has been haunting me for some time now.


            Thank you again,


            Edited by: ytsejammer on Jul 20, 2011 3:51 PM Added rhetorical questions in hope of clarifying what my doubts are

            • 3. Re: What does 'XYZ Transport' imply/mean?
              Willem Jiang Master



              You should treat the OSGi transport as a short term of HTTP OSGi Servlet transport.

              When you deploy the CXF into OSGi container, you may want to leverage the OSGi Web Container feature to provide HTTP services.  So CXF has this module of OSGi transport.

              Since CXF 2.4.x, we did some refactoring on the OSGi transport and Servlet transport, they are sharing the same code base, and are moved into cxf-http-transport module.

              Now you can think the OSGi transport as part of http transport


              For the NMR transport, it could be interesting. As you know according to JBI spec , all the endpoint will talk to the same message layer NMR (normalize message router). When we want CXF to talk to the NMR, we need to has this kind of transport to send and receive the message. It's typical use case of transport, so we name this transport as a NMR transport.



              • 4. Re: What does 'XYZ Transport' imply/mean?
                Freeman(Yue) Fang Master



                More specifically, cxf http-osgi transport is based on pax-web, which use OSGi http service underlying. You can consider it as a kind of http transport, but more suitable for cxf endpoint deployed into OSGi container.


                NMR transport is used when you want cxf endpoint communicate with other NMR endpoint in the OSGi container.



                • 5. Re: What does 'XYZ Transport' imply/mean?
                  Carlos Morales Newbie

                  Hello Willem,


                  Thank you for the detailed response. I knew there had to be some sort of 'folklore' knowledge involved ('short term for HTTP OSGi Servlet transport').


                  The flexibility of these tools is incredible and, at the same time for newbies like I am, a little bit overwhelming.


                  Thank you again,