Which Architecture can be used if the Web Service Location changes continuously












0















You are writing a program, which uses a weather Web service http://example.org/weather/weather.asmx. It works, but after 2 months the weather Web service is no longer available at http://example.org/weather/weather.asmx.
Instead it is offered at
http://example.com/poschaci/temp.asmx. A month later the URL changes once again at http://example.net/w.asmx. A research reveals the weather Web service will never be offered at one place. Its URL will continue changing.



Task 1)



Which architecture offers a possibility to you, to write your program such a way, that it works for now and in the future without any re­programming it or any change of parameters or configuration files, even under these
circumstances



Task 2)



Outline the functioning of this architecture! Describe briefly the tasks of the components of that architecture!



I read about SOAP, REST and WSDL etc and I find we need to use REST architecture for building this. Wanted to get expert advice on this.



There is no code as this is a Theoretical question.



NA










share|improve this question



























    0















    You are writing a program, which uses a weather Web service http://example.org/weather/weather.asmx. It works, but after 2 months the weather Web service is no longer available at http://example.org/weather/weather.asmx.
    Instead it is offered at
    http://example.com/poschaci/temp.asmx. A month later the URL changes once again at http://example.net/w.asmx. A research reveals the weather Web service will never be offered at one place. Its URL will continue changing.



    Task 1)



    Which architecture offers a possibility to you, to write your program such a way, that it works for now and in the future without any re­programming it or any change of parameters or configuration files, even under these
    circumstances



    Task 2)



    Outline the functioning of this architecture! Describe briefly the tasks of the components of that architecture!



    I read about SOAP, REST and WSDL etc and I find we need to use REST architecture for building this. Wanted to get expert advice on this.



    There is no code as this is a Theoretical question.



    NA










    share|improve this question

























      0












      0








      0








      You are writing a program, which uses a weather Web service http://example.org/weather/weather.asmx. It works, but after 2 months the weather Web service is no longer available at http://example.org/weather/weather.asmx.
      Instead it is offered at
      http://example.com/poschaci/temp.asmx. A month later the URL changes once again at http://example.net/w.asmx. A research reveals the weather Web service will never be offered at one place. Its URL will continue changing.



      Task 1)



      Which architecture offers a possibility to you, to write your program such a way, that it works for now and in the future without any re­programming it or any change of parameters or configuration files, even under these
      circumstances



      Task 2)



      Outline the functioning of this architecture! Describe briefly the tasks of the components of that architecture!



      I read about SOAP, REST and WSDL etc and I find we need to use REST architecture for building this. Wanted to get expert advice on this.



      There is no code as this is a Theoretical question.



      NA










      share|improve this question














      You are writing a program, which uses a weather Web service http://example.org/weather/weather.asmx. It works, but after 2 months the weather Web service is no longer available at http://example.org/weather/weather.asmx.
      Instead it is offered at
      http://example.com/poschaci/temp.asmx. A month later the URL changes once again at http://example.net/w.asmx. A research reveals the weather Web service will never be offered at one place. Its URL will continue changing.



      Task 1)



      Which architecture offers a possibility to you, to write your program such a way, that it works for now and in the future without any re­programming it or any change of parameters or configuration files, even under these
      circumstances



      Task 2)



      Outline the functioning of this architecture! Describe briefly the tasks of the components of that architecture!



      I read about SOAP, REST and WSDL etc and I find we need to use REST architecture for building this. Wanted to get expert advice on this.



      There is no code as this is a Theoretical question.



      NA







      rest web-services http soap soa






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Jan 19 at 13:58









      BATMAN_2008BATMAN_2008

      127




      127
























          2 Answers
          2






          active

          oldest

          votes


















          0














          You might think about the webservice as an interface or an API. You are the client of this interface, API. If the interface changes you as a client need to adapt your call. There is no good way to deal with this. Usually the ones who are providing the API need to keep it stable and offer you ways to migrate to newer versions and so on. But i would guess that you cannot request this to the weather service in question.
          Now to deal with frequent interface change you might do the following:
          - create your own interface which define the data you want to be returned, this is an abstraction layer.
          - code you client against your interface, to which you have control over changes
          - make an implementation of your interfaces by querying weather service 1 or weather service 2. This is just a mapping of data. Weather service 1 and 2 maybe totally different services, or you can think about the same service with different versions. None of your client code need to change, only this mapping will change when the URL changes.



          This solution helps you to change easily between the mentioned implementations. What i described is an OOP solution to your problem so you will need to use an OOP language to have the polymorphic behavior in place.



          Regarding the last point you might choose to expose your service(the interface which i was talking above) as a REST service.






          share|improve this answer































            0














            Task 1)
            Is not a matter of architecture is more an issue of service design. Based on the principles of service design and the 8 service desing principles this scenario pretty much violates lots of defined practices.
            The service itselt should be interoperable and apply service discoverability. The way the service is exposed should consider a scenario where the URL will change.



            Technically this could be address by using a DNS, reverse proxy or simply adding a defined static URL that can do service invocation, and re-direct to the desired service operation in SOAP terminology or API resource in REST terminology.



            It should be a static one like http://example.org/weather.asmx and weather.asmx will contain other operations that can be invoked and changed dynamically but http://example.org/weather.asmx should be permanent.



            Task 2)
            If you must achieve this by using REST you must understand the underlying functioning of HTTP codes and stateless workflow. Develop your skill with some free training online for example from udemy.com on API design.



            I would suggest following a tutorial, blog, video tutorial on "develop and exose an API with JAVA tutorial".






            share|improve this answer
























            • Hello, Thanks a lot for the answer. This is an academic question which they normally ask us to confuse us so I needed the answer. I do not need the tutorial for the same. I just wanted to know which architecture we can use when the web address changes frequently.

              – BATMAN_2008
              Jan 26 at 8:25











            • in that case useRestful architecture with microservices and expose one orchestrator micro-service to route all the requests

              – Andres Leon Rangel
              Jan 28 at 9:53











            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54267841%2fwhich-architecture-can-be-used-if-the-web-service-location-changes-continuously%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            You might think about the webservice as an interface or an API. You are the client of this interface, API. If the interface changes you as a client need to adapt your call. There is no good way to deal with this. Usually the ones who are providing the API need to keep it stable and offer you ways to migrate to newer versions and so on. But i would guess that you cannot request this to the weather service in question.
            Now to deal with frequent interface change you might do the following:
            - create your own interface which define the data you want to be returned, this is an abstraction layer.
            - code you client against your interface, to which you have control over changes
            - make an implementation of your interfaces by querying weather service 1 or weather service 2. This is just a mapping of data. Weather service 1 and 2 maybe totally different services, or you can think about the same service with different versions. None of your client code need to change, only this mapping will change when the URL changes.



            This solution helps you to change easily between the mentioned implementations. What i described is an OOP solution to your problem so you will need to use an OOP language to have the polymorphic behavior in place.



            Regarding the last point you might choose to expose your service(the interface which i was talking above) as a REST service.






            share|improve this answer




























              0














              You might think about the webservice as an interface or an API. You are the client of this interface, API. If the interface changes you as a client need to adapt your call. There is no good way to deal with this. Usually the ones who are providing the API need to keep it stable and offer you ways to migrate to newer versions and so on. But i would guess that you cannot request this to the weather service in question.
              Now to deal with frequent interface change you might do the following:
              - create your own interface which define the data you want to be returned, this is an abstraction layer.
              - code you client against your interface, to which you have control over changes
              - make an implementation of your interfaces by querying weather service 1 or weather service 2. This is just a mapping of data. Weather service 1 and 2 maybe totally different services, or you can think about the same service with different versions. None of your client code need to change, only this mapping will change when the URL changes.



              This solution helps you to change easily between the mentioned implementations. What i described is an OOP solution to your problem so you will need to use an OOP language to have the polymorphic behavior in place.



              Regarding the last point you might choose to expose your service(the interface which i was talking above) as a REST service.






              share|improve this answer


























                0












                0








                0







                You might think about the webservice as an interface or an API. You are the client of this interface, API. If the interface changes you as a client need to adapt your call. There is no good way to deal with this. Usually the ones who are providing the API need to keep it stable and offer you ways to migrate to newer versions and so on. But i would guess that you cannot request this to the weather service in question.
                Now to deal with frequent interface change you might do the following:
                - create your own interface which define the data you want to be returned, this is an abstraction layer.
                - code you client against your interface, to which you have control over changes
                - make an implementation of your interfaces by querying weather service 1 or weather service 2. This is just a mapping of data. Weather service 1 and 2 maybe totally different services, or you can think about the same service with different versions. None of your client code need to change, only this mapping will change when the URL changes.



                This solution helps you to change easily between the mentioned implementations. What i described is an OOP solution to your problem so you will need to use an OOP language to have the polymorphic behavior in place.



                Regarding the last point you might choose to expose your service(the interface which i was talking above) as a REST service.






                share|improve this answer













                You might think about the webservice as an interface or an API. You are the client of this interface, API. If the interface changes you as a client need to adapt your call. There is no good way to deal with this. Usually the ones who are providing the API need to keep it stable and offer you ways to migrate to newer versions and so on. But i would guess that you cannot request this to the weather service in question.
                Now to deal with frequent interface change you might do the following:
                - create your own interface which define the data you want to be returned, this is an abstraction layer.
                - code you client against your interface, to which you have control over changes
                - make an implementation of your interfaces by querying weather service 1 or weather service 2. This is just a mapping of data. Weather service 1 and 2 maybe totally different services, or you can think about the same service with different versions. None of your client code need to change, only this mapping will change when the URL changes.



                This solution helps you to change easily between the mentioned implementations. What i described is an OOP solution to your problem so you will need to use an OOP language to have the polymorphic behavior in place.



                Regarding the last point you might choose to expose your service(the interface which i was talking above) as a REST service.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Jan 19 at 20:25









                Bohus AndreiBohus Andrei

                9316




                9316

























                    0














                    Task 1)
                    Is not a matter of architecture is more an issue of service design. Based on the principles of service design and the 8 service desing principles this scenario pretty much violates lots of defined practices.
                    The service itselt should be interoperable and apply service discoverability. The way the service is exposed should consider a scenario where the URL will change.



                    Technically this could be address by using a DNS, reverse proxy or simply adding a defined static URL that can do service invocation, and re-direct to the desired service operation in SOAP terminology or API resource in REST terminology.



                    It should be a static one like http://example.org/weather.asmx and weather.asmx will contain other operations that can be invoked and changed dynamically but http://example.org/weather.asmx should be permanent.



                    Task 2)
                    If you must achieve this by using REST you must understand the underlying functioning of HTTP codes and stateless workflow. Develop your skill with some free training online for example from udemy.com on API design.



                    I would suggest following a tutorial, blog, video tutorial on "develop and exose an API with JAVA tutorial".






                    share|improve this answer
























                    • Hello, Thanks a lot for the answer. This is an academic question which they normally ask us to confuse us so I needed the answer. I do not need the tutorial for the same. I just wanted to know which architecture we can use when the web address changes frequently.

                      – BATMAN_2008
                      Jan 26 at 8:25











                    • in that case useRestful architecture with microservices and expose one orchestrator micro-service to route all the requests

                      – Andres Leon Rangel
                      Jan 28 at 9:53
















                    0














                    Task 1)
                    Is not a matter of architecture is more an issue of service design. Based on the principles of service design and the 8 service desing principles this scenario pretty much violates lots of defined practices.
                    The service itselt should be interoperable and apply service discoverability. The way the service is exposed should consider a scenario where the URL will change.



                    Technically this could be address by using a DNS, reverse proxy or simply adding a defined static URL that can do service invocation, and re-direct to the desired service operation in SOAP terminology or API resource in REST terminology.



                    It should be a static one like http://example.org/weather.asmx and weather.asmx will contain other operations that can be invoked and changed dynamically but http://example.org/weather.asmx should be permanent.



                    Task 2)
                    If you must achieve this by using REST you must understand the underlying functioning of HTTP codes and stateless workflow. Develop your skill with some free training online for example from udemy.com on API design.



                    I would suggest following a tutorial, blog, video tutorial on "develop and exose an API with JAVA tutorial".






                    share|improve this answer
























                    • Hello, Thanks a lot for the answer. This is an academic question which they normally ask us to confuse us so I needed the answer. I do not need the tutorial for the same. I just wanted to know which architecture we can use when the web address changes frequently.

                      – BATMAN_2008
                      Jan 26 at 8:25











                    • in that case useRestful architecture with microservices and expose one orchestrator micro-service to route all the requests

                      – Andres Leon Rangel
                      Jan 28 at 9:53














                    0












                    0








                    0







                    Task 1)
                    Is not a matter of architecture is more an issue of service design. Based on the principles of service design and the 8 service desing principles this scenario pretty much violates lots of defined practices.
                    The service itselt should be interoperable and apply service discoverability. The way the service is exposed should consider a scenario where the URL will change.



                    Technically this could be address by using a DNS, reverse proxy or simply adding a defined static URL that can do service invocation, and re-direct to the desired service operation in SOAP terminology or API resource in REST terminology.



                    It should be a static one like http://example.org/weather.asmx and weather.asmx will contain other operations that can be invoked and changed dynamically but http://example.org/weather.asmx should be permanent.



                    Task 2)
                    If you must achieve this by using REST you must understand the underlying functioning of HTTP codes and stateless workflow. Develop your skill with some free training online for example from udemy.com on API design.



                    I would suggest following a tutorial, blog, video tutorial on "develop and exose an API with JAVA tutorial".






                    share|improve this answer













                    Task 1)
                    Is not a matter of architecture is more an issue of service design. Based on the principles of service design and the 8 service desing principles this scenario pretty much violates lots of defined practices.
                    The service itselt should be interoperable and apply service discoverability. The way the service is exposed should consider a scenario where the URL will change.



                    Technically this could be address by using a DNS, reverse proxy or simply adding a defined static URL that can do service invocation, and re-direct to the desired service operation in SOAP terminology or API resource in REST terminology.



                    It should be a static one like http://example.org/weather.asmx and weather.asmx will contain other operations that can be invoked and changed dynamically but http://example.org/weather.asmx should be permanent.



                    Task 2)
                    If you must achieve this by using REST you must understand the underlying functioning of HTTP codes and stateless workflow. Develop your skill with some free training online for example from udemy.com on API design.



                    I would suggest following a tutorial, blog, video tutorial on "develop and exose an API with JAVA tutorial".







                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered Jan 24 at 21:54









                    Andres Leon RangelAndres Leon Rangel

                    4718




                    4718













                    • Hello, Thanks a lot for the answer. This is an academic question which they normally ask us to confuse us so I needed the answer. I do not need the tutorial for the same. I just wanted to know which architecture we can use when the web address changes frequently.

                      – BATMAN_2008
                      Jan 26 at 8:25











                    • in that case useRestful architecture with microservices and expose one orchestrator micro-service to route all the requests

                      – Andres Leon Rangel
                      Jan 28 at 9:53



















                    • Hello, Thanks a lot for the answer. This is an academic question which they normally ask us to confuse us so I needed the answer. I do not need the tutorial for the same. I just wanted to know which architecture we can use when the web address changes frequently.

                      – BATMAN_2008
                      Jan 26 at 8:25











                    • in that case useRestful architecture with microservices and expose one orchestrator micro-service to route all the requests

                      – Andres Leon Rangel
                      Jan 28 at 9:53

















                    Hello, Thanks a lot for the answer. This is an academic question which they normally ask us to confuse us so I needed the answer. I do not need the tutorial for the same. I just wanted to know which architecture we can use when the web address changes frequently.

                    – BATMAN_2008
                    Jan 26 at 8:25





                    Hello, Thanks a lot for the answer. This is an academic question which they normally ask us to confuse us so I needed the answer. I do not need the tutorial for the same. I just wanted to know which architecture we can use when the web address changes frequently.

                    – BATMAN_2008
                    Jan 26 at 8:25













                    in that case useRestful architecture with microservices and expose one orchestrator micro-service to route all the requests

                    – Andres Leon Rangel
                    Jan 28 at 9:53





                    in that case useRestful architecture with microservices and expose one orchestrator micro-service to route all the requests

                    – Andres Leon Rangel
                    Jan 28 at 9:53


















                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54267841%2fwhich-architecture-can-be-used-if-the-web-service-location-changes-continuously%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Liquibase includeAll doesn't find base path

                    How to use setInterval in EJS file?

                    Petrus Granier-Deferre