9 Replies Latest reply on Jun 13, 2006 5:30 AM by sajid08

    Urgent Help Needed!

    sajid08

      Hi All,

      I've to give a presentation on Tuesday on ESB and how different JEMS products fit into different roles of an ESB Stack. But I am very confused because I've came to know that JBoss has not released the ESB.

      I dont know the different b/w an ESB and JEMS, because they seem to do the same functions like Messaging through JBoss Messaging, BPM through jBPM, Rules Engine in DRools etc.

      1. So what is the difference b/w ESB and the current JEMS products?
      2. What current products in JEMS can we use in a ESB? like where does Hibernate fits in?
      3. And what additional features the ESB would bring when launched, to the current middleware suite of jBoss?


      I really need it quickly, please guys hurry on, I'd be very grateful.

      Regards,
      Sajid.

        • 1. Re: Urgent Help Needed!
          marklittle

          There's a couple of documents and a presentation on the JBossESB labs pages (labs.jboss.com).

          • 2. Re: Urgent Help Needed!
            sajid08

            Hello still waiting for some help to arrive, not clear about my questions still!

            • 3. Re: Urgent Help Needed!
              arvinder

              Hi

              I'll try to answer your question, but this is from my understanding.
              You should get an official response from a jboss employee.

              JEMS is composed of: (see http://www.jboss.com/products/index)

              JBoss Application Server
              JBoss Web Server - Coming Q2 2006
              Apache Tomcat
              Object/Relational Persistence » Hibernate
              Portal Platform » JBoss Portal
              Business Process Management & Business Rules » JBoss jBPM & JBoss Rules
              Object/Data Cache » JBoss Cache
              Distributed Transaction Management » JBoss Transactions
              Enterprise Messaging » JBoss Messaging
              Development Tools » JBoss Eclipse IDE

              Its basically providing a whole stack of services for you.

              So within the overall SOA vision, ESB is part of the architecture. So within
              a SOA/ESB architecture, you have endpoints, which are essentially the gateway
              into or out of a system. The ESB can provide services like

              - Transformation, e.g Message A to Message B. So in this case you could use
              JBoss Rules in this scenario to say perform transformation based upon some criteria.

              - A Business Service could be invoked by a message. This service could be written
              ontop of jBPM. So you could start a process depending on a message received through
              the ESB

              - ESB is being built ontop of JBoss Messaging, but could use any other protcol
              abstraction, such as JBoss JMS,
              see http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossESB

              - An ESB Endpoint could be deployed into the JBoss Application Server enabling
              any component access to the ESB, most likely through a JCA resource.

              - Hibernate could be used a persistence service within the ESB, so that messages
              could be persisted if they are not delivered, or are durable or even for auditing
              purposes.

              Think of ESB as a connector between systems which also provides services. But
              I would look at the design docs aswell.

              ESB would bring together JEMS components in a loosely couples manner, both being
              consumed by the ESB but also being exposed by the ESB.

              Hope that helps.
              Arvinder

              • 4. Re: Urgent Help Needed!
                sajid08

                Thanx Arvinder, I really appreciate you taking time out and answering, it really clears few points in my mind. But I am still confused about this:

                What current JEMS cant do, that'd be possible after ESB. For example when you say we can invoke a Business process in jBPM from a message recieved from the end point of an ESB, Can we not do this now, without the ESB?

                Or is it that we can do such things without ESB, but ESB is a better architecture for these JEMS products and it fits them in their roles?

                • 5. Re: Urgent Help Needed!
                  marklittle

                  There's an architecture document and SOA doc on the ESB jboss labs pages, as mentioned before. If you can't find them, let me know.

                  • 6. Re: Urgent Help Needed!

                    Urgent Read Needed: http://www.amazon.com/gp/product/0596006756/102-4572482-3337744?v=glance&n=283155 ;-)

                    This book, though quiete old, presents a clear vision of what is an ESB, especially the fact it is pervasive though not invasive, two characteristics that makes it different to other middleware components.

                    • 7. Re: Urgent Help Needed!
                      sajid08

                      Mark you are right, I went there but couldn't find the documents you are referring to, please provide me with the links.

                      • 8. Re: Urgent Help Needed!
                        arvinder

                        Sajid

                        Here are the doc links http://labs.jboss.com/portal/jbossesb//documentation/index.html

                        What current JEMS cant do, that'd be possible after ESB. For example when you say we can invoke a Business process in jBPM from a message recieved from the end point of an ESB, Can we not do this now, without the ESB?

                        Or is it that we can do such things without ESB, but ESB is a better architecture for these JEMS products and it fits them in their roles?


                        1) If you want to decouple your services using different systems and technologies, you would need to provide some sort of generic communication layer, ok this is highly abstract, but this is where part of the SOA/ESB comes into play. With JEMS you would need to build this say using JBoss JMS and provide the rest of the services. But now you are tied to using JMS as a communication protocol. With the ESB, you will be able to use any protocol underneath it as this is never exposed to the client. The eventual aim is to also replace the underlying Bus with any other Bus.

                        2) You can invoke a jBPM process using a message without the ESB. But you are now coupling these two
                        systems together. With the ESB in place, you can receive messages from any other sources assuming
                        there is an endpoint into the SOA/ESB, examples may be

                        - XML/HTTP Message
                        - SOAP
                        - Email
                        See http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossESBEndpoint for other protocols

                        3) You could say ESB is a better architecture for systems that require

                        - services
                        - interoperability
                        - perhaps even failover - that is if you federate your services

                        The best examples I can provide right now are the integration between systems without
                        exposing too much information or binding them together tighly.

                        You have System A and B and C

                        System A:
                        - Understands Message Type A
                        - Needs to push update of data to System B

                        System B:
                        - Understands Message Type B
                        - Needs to store updates from System A
                        - Needs to start a business process once the update is stored

                        System C:
                        - Understands Message Type C
                        - Receives messages to start business processes

                        So using this, you can System A,B and C could be composed on a number of JEMS products
                        e.g System A could be (JBoss AS, JBoss Web Server, JBoss Portal )

                        So using ESB,

                        1) System A ---> ESB ----> System B

                        So within the ESB, Message Type A is transformed to Message Type B.

                        2) System B ---> ESB ----> System C

                        System B stores message type B and sends a message to System C.
                        The ESB will transform Message type B to Message Type C.
                        Once the message arrives at System C, it invokes a business process.


                        Aside from this simplistic example, the ESB can be used to provide a
                        number of services

                        http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossESB :

                        1. Transformation aka Message Translation
                        2. Bridging
                        3. Validation
                        4. Enrichment
                        5. Routing/Dispatch
                        6. Operational (Invocation of ejb/jbpm workflows/rules) aka Service Activator

                        Hope this helps.

                        • 9. Re: Urgent Help Needed!
                          sajid08

                          Great Arvinder and yep it really help and it is highly appreciated.