6 Replies Latest reply on May 24, 2006 6:54 AM by marklittle

    Addresses

    marklittle

      Services will be addressed implicitly (via logical names) as well as explicitly (endpoint references, or EPRs). Sending and receiving of messages require styles such as those typified in WSA, e.g., wsa:To, wsa:ReplyTo and wsa:From. Rather than re-inventing the wheel, we may as well use the WS-Addressing EPR format for service identification.

      ? Logical service names require mapping to address(-es) via name service/registry. A federated approach will be used, to allow registries to span multiple repositories and implementations.
      ? Address-based approach based on the wsa:EPR format.

      The addressing scheme should not be tied to a specific delivery pattern or implementation.

      Logical names will be resolved via the repository; this may also be used to provide the basis of the mediation/indirection mechanism of traditional ESBs: for example, client talks to service A via a logical name LogicalAName; the mapping of LogicalAName to physical EPR produces mediation service EPR with ReferenceParameter including service A EPR (or some means for the mediation service to determine the ultimate destination service EPR).

      The current requirements for an EPR can be summarised in the interface below.

      interface EPR
      {
      public void setTo (URI uri);
      public URI getTo ();
      public void setFrom (URI uri);
      public URI getFrom ();
      public void setReplyTo (URI uri);
      public URI getReplyTo ();
      public void setFaultTo (URI uri);
      public URI getFaultTo ();
      public void setAction (URI uri);
      public URI getAction ();
      public void setMessageID (URI uri);
      public URI getMessageID ();
      public void setMetaData (MetaData md);
      public MetaData getMetaData ();
      public void addReferenceParameter (...);
      }

        • 1. Re: Addresses
          starksm64

          One thing that has been inconsistent with the jboss usage of URIs is whether the URI is a URL or URN. Namespaces for schemas freely use both. As much as its possible, I would like the esb to drive some consistency with respect to URI naming conventions.

          • 2. Re: Addresses
            marklittle

            Agreed, and the rules I'd take would be those that we've spent quite a while defining in the WS-Addressing working group.

            Mark.

            • 3. Re: Addresses
              marklittle

              OK, the initial addressing implementation is in place. Should be sufficient to look at integrating JMS once we have a stand-alone version.

              • 4. Re: Addresses
                tfennelly

                Sorry guys, while trying to figure some other stuff out I had a read of the WS-Addressing spec. From my interpretation of the spec, our EPR definition seems a bit different to the spec. Is this intentional, or am I reading the spec incorrectly?

                From my reading of the spec, an EPR would look as follows:

                interface EPR {
                public URI getAddress();
                public ??? getReferenceParameters();
                public ??? getMetadata();
                }

                ... and what we are currerntly describing as an EPR might be described as something like an "Interaction" or "Invocation":

                interface Invocation {
                public void setTo (URI uri);
                public URI getTo ();
                public void setFrom (ERP erp);
                public ERP getFrom ();
                public void setReplyTo (ERP erp);
                public ERP getReplyTo ();
                public void setFaultTo (ERP erp);
                public ERP getFaultTo ();
                public void setAction (URI uri);
                public URI getAction ();
                public void setMessageID (URI uri);
                public URI getMessageID ();
                }

                Just wondering???

                • 5. Re: Addresses
                  marklittle

                   

                  "tfennelly" wrote:
                  Sorry guys, while trying to figure some other stuff out I had a read of the WS-Addressing spec. From my interpretation of the spec, our EPR definition seems a bit different to the spec. Is this intentional, or am I reading the spec incorrectly?

                  From my reading of the spec, an EPR would look as follows:

                  interface EPR {
                  public URI getAddress();
                  public ??? getReferenceParameters();
                  public ??? getMetadata();
                  }

                  ... and what we are currerntly describing as an EPR might be described as something like an "Interaction" or "Invocation":

                  interface Invocation {
                  public void setTo (URI uri);
                  public URI getTo ();
                  public void setFrom (ERP erp);
                  public ERP getFrom ();
                  public void setReplyTo (ERP erp);
                  public ERP getReplyTo ();
                  public void setFaultTo (ERP erp);
                  public ERP getFaultTo ();
                  public void setAction (URI uri);
                  public URI getAction ();
                  public void setMessageID (URI uri);
                  public URI getMessageID ();
                  }

                  Just wondering???


                  If you look at what actually goes on the wire when using WS-A, you'll see that potentially all of the fields described in the specification and present in our interface are there. In the TC we call that an EPR. But it does include information necessary for the invocation, as strictly speaking only the wsa:To, wsa:Action and wsa:RPs are needed to send the message to an endpoint. The term is often overloaded.

                  However, what we've got in the code currently is temporary anyway. It's based on the old WS-A implementation from the first release of our Web Services transactions product back in 2004/2005 and we've been working on updating it since. Hopefully we'll have something new in place soon.

                  • 6. Re: Addresses
                    marklittle

                    Hit send too early. Meant to add: "For the avoidance of doubt, we may want to change the EPR. We'll have to see what Kevin has been up to first though."