Which Architecture can be used if the Web Service Location changes continuously
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 reprogramming 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
add a comment |
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 reprogramming 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
add a comment |
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 reprogramming 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
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 reprogramming 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
rest web-services http soap soa
asked Jan 19 at 13:58
BATMAN_2008BATMAN_2008
127
127
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
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.
add a comment |
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".
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
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
add a comment |
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.
add a comment |
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.
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.
answered Jan 19 at 20:25
Bohus AndreiBohus Andrei
9316
9316
add a comment |
add a comment |
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".
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
add a comment |
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".
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
add a comment |
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".
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".
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
add a comment |
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
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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