1 2 3 4 Previous Next 51 Replies Latest reply on Sep 25, 2006 11:44 AM by kurtstam Go to original post
      • 30. Re: Registry Design
        arvinder

        Hi Mugdho,

        EPR = EndPoint Reference

        There are some notes on what an endpoint is classed as, on the esb wiki.

        • 31. Re: Registry Design
          mugdho

          Thanks Arvinder.
          One question at this point. When an user queries on a Registry isn't he essentially interested in one of the EPRs? While thinking of examples on when a user should query the Registry all that came to my mind are EPRs.

          But ofcourse I guess there can be scenarios the user just needs information about the Service and is essentially not interested in the EPR right?

          But if in most of the cases the user is looking for the EPR then Tom, I think Service Objects may need to have the EPRs in them.

          • 32. Re: Registry Design
            tfennelly

             

            "mugdho" wrote:
            About the piece of code which you provided below, I was wondering if we could have something like a name space lookup for getting the Services. Wouldn't that be better on the user side, since he will be aware of which service he is interested in.


            Sure, the actual lookup of the Service EPR would prob best be done using something like a Service URN, which the user would get from the relevant "Service" object returned from getServices().

            public interface RegistryService {
             public Service[] getServices();
             public EPR getServiceEPR(URN service);
            }
            


            One question at this point. When an user queries on a Registry isn't he essentially interested in one of the EPRs? While thinking of examples on when a user should query the Registry all that came to my mind are EPRs.

            But ofcourse I guess there can be scenarios the user just needs information about the Service and is essentially not interested in the EPR right?

            But if in most of the cases the user is looking for the EPR then Tom, I think Service Objects may need to have the EPRs in them.


            Yeah, not sure about this one myself. I was thinking that perhaps the EPRs might not be cached by the user in the same way as perhaps the Service list would be. In theory, the EPR can change and so should be looked up on a regular basis.

            I was thinking that perhaps the Service objects might just contain info such as the Classifications, Concepts, URN etc; Info that the user could use to decide whether or not the Service is the "right one" to service its needs. Once it locates the Service that fits the bill, it performs a lookup of the Service EPR (using getServiceEPR()) to perform contract invocations.

            Further to that perhaps we can think of querying on the RegistryObjects using the Classification / Concept. But yeah wouldn't the RegsitryObject need to have such a criteria already present if we were to query on it?

            Sure, we could! I was just thinking that it'd be easier to implement the "bulk" getServices option and leave it to the user to filter through the Service list. Perhaps we could implement the more advanced query functionality in a later release??

            • 33. Re: Registry Design
              mugdho

              I agree with that. If EPRs are dynamic then only the RegistryObjects needs to cached and EPRs always looked up.

              But yeah the rest of the methods look good for now. Advanced querying can be held for future releases.
              Now one question about the getServices method. Will any user get the list of all Services or will there be some type of roles present here?

              Another thing, JAXR provides a lot of methods for the RegistryObject interface. I am wondering if we need to provide implementations for all of them?

              • 34. Re: Registry Design
                tfennelly

                 

                Now one question about the getServices method. Will any user get the list of all Services or will there be some type of roles present here?


                Not sure Mughdo. I guess this is really a requirements issue so lets wait to hear what Mark/Burr have to say on that.

                Another thing, JAXR provides a lot of methods for the RegistryObject interface. I am wondering if we need to provide implementations for all of them?


                My personal preference would be to only use what we need i.e. travel as light as possible!

                I think we can probably park this until Mark gets a chance to review it. Not that we've done a whole lot, but we do seem to be taking in a particular direction now. Lets wait and see what Mark's thoughts are at this stage. What do you think?

                • 35. Re: Registry Design
                  mugdho

                  Yep I guess someone needs to review our progress now.
                  Till then I will have a look at the JAXR specs and see if I can come up with something.

                  • 36. Re: Registry Design
                    arvinder

                    Some food for though, which may be relevant or not.

                    1) The state of an endpoint service in the registry. This would be needed for clients and also reporting.

                    2) Each service should be categorised, either via a hardcoding of type under the registry, or a spi provided categorization. This may lead to signatures like searchByCategory etc.

                    3) Policies per service, and optionally on a per category basis.

                    4) I'm not sure at what point we need to think of templating services for each category, so that clients may at least know what template to possible work to, the underlying service impl can be changed transparently.

                    5) Aside from just services, will the registry hold dependant objects such as an XSD if there is say a validation service? Would this be classed as a ServiceResources and be grouped under the ServiceEntry such as ServiceEntry.getResources() ?

                    • 37. Re: Registry Design
                      tfennelly

                      Thanks Arvinder.

                      "arvinder" wrote:
                      1) The state of an endpoint service in the registry. This would be needed for clients and also reporting.


                      If this was supported I'd expect it to be part of the EPR. Each Service can have multiple EPRs and the "state" of each could be different, right?

                      "arvinder" wrote:
                      2) Each service should be categorised, either via a hardcoding of type under the registry, or a spi provided categorization. This may lead to signatures like searchByCategory etc.


                      We were saying that this type of more advanced lookup might be part of a future release. JAXR has the ideas of Service "Classification" and "Concept" and I'd guess that these could be used as parameters to a lookup. In the mean time though, the client/user can manually filter the Service list returned from getServices by manually interpretting the Classification/Concept settings on each Service.

                      "arvinder" wrote:
                      5) Aside from just services, will the registry hold dependant objects such as an XSD if there is say a validation service? Would this be classed as a ServiceResources and be grouped under the ServiceEntry such as ServiceEntry.getResources() ?


                      Note really sure about this Arvinder. So does the client need access to the physical XSD, or does it simply request the service to perform validation "XYZ"?



                      • 38. Re: Registry Design
                        arvinder

                         


                        "arvinder" wrote:
                        1) The state of an endpoint service in the registry. This would be needed for clients and also reporting.


                        If this was supported I'd expect it to be part of the EPR. Each Service can have multiple EPRs and the "state" of each could be different, right?


                        Yes this makes sense, although I would have thought that there would be only 1 Service Impl backing different EP's and so the state would be applicable to the service itself, rather than the EP fronting it. But I see your point.


                        "arvinder" wrote:
                        2) Each service should be categorised, either via a hardcoding of type under the registry, or a spi provided categorization. This may lead to signatures like searchByCategory etc.


                        We were saying that this type of more advanced lookup might be part of a future release. JAXR has the ideas of Service "Classification" and "Concept" and I'd guess that these could be used as parameters to a lookup. In the mean time though, the client/user can manually filter the Service list returned from getServices by manually interpretting the Classification/Concept settings on each Service.


                        Ah ok!


                        "arvinder" wrote:
                        5) Aside from just services, will the registry hold dependant objects such as an XSD if there is say a validation service? Would this be classed as a ServiceResources and be grouped under the ServiceEntry such as ServiceEntry.getResources() ?


                        Note really sure about this Arvinder. So does the client need access to the physical XSD, or does it simply request the service to perform validation "XYZ"?


                        Sorry my mistake. For a validation service that requires the client to pass in xml, the client would need to pass in a reference to an XSD aswell, that the xml must adhere to. So my point above is invalid.


                        What i think I was leaning to was, will we use the registry to hold objects other than Services, such as XSDs and XSLTs that are application resources that need to be accessed centrally? Thereby implying can a Service also be classed as an Application Resource ?






                        • 39. Re: Registry Design
                          tfennelly

                           

                          "arvinder" wrote:
                          What i think I was leaning to was, will we use the registry to hold objects other than Services, such as XSDs and XSLTs that are application resources that need to be accessed centrally? Thereby implying can a Service also be classed as an Application Resource ?


                          Sure, that'd be technically possible - everything would just be a "RegistryObject" (including Service, Classification, Concept objects etc) ala JAXR. Whether we need the query capability at this level from the getgo???

                          • 40. Re: Registry Design
                            tfennelly

                            Hit send to fast there...

                            What I mean by "need the query capability..." is, all these ServiceObjects would be managed by the Registry - just like the Service objects. We could provide query interfaces for them e.g. getClassifications, getX, getY etc, but I dunno should we in the short/medium term???

                            • 41. Re: Registry Design
                              arvinder

                              Query capability and (Service) Object classification would be good candidates for initial inclusion or rather as part of the registry core use cases.

                              Are there any code skeletons that can be put inside svn or maybe wait till mark gets back? Btw, I am assuming that the registry is going to be a standalone server as well as embedded within the soa stack. Clients may want to run the registry as a standalone service. I'll have to look over the previous discussions to check, this may be irrelevant.

                              • 42. Re: Registry Design
                                tfennelly

                                Lets wait for Mark to come back on this stuff. While certain features may be nice to have, I'd prefer to see only core capabilities added initially. Once we do a release we'll have a better idea of what we/others really need.

                                • 43. Re: Registry Design
                                  marklittle

                                   

                                  "Kevin.Conner@jboss.com" wrote:
                                  Clustering, implementation and transport technology should not be reflected in the interface that you are defining. The intention is to define an abstraction that can be mapped onto any registry implementation using any transport.


                                  Yup. The interface to the registry should be via JAX-R. I don't see any good reason to define our own interface, since JAX-R does not preclude different (non-UDDI) implementations.

                                  • 44. Re: Registry Design
                                    marklittle

                                     

                                    "Kevin.Conner@jboss.com" wrote:
                                    Clustering is an implementation detail and is not relevant to the interface, neither is SOAP.

                                    The interface must define a clean, functional API that can be backed by any implementation providing similar functionality.


                                    +1