By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
435,473 Members | 3,292 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 435,473 IT Pros & Developers. It's quick & easy.

Dynamic WSDL?

P: n/a
I have a way for doing plugin's in my gui app. These plugins have to talk to
a webservice to do database calls. I've done the DB access as a web service
so it can be shared with the rest of the company, if not for the want of
reuse the gui app would have just simply accessed the DB Directly and each
plugin in would have been fully self contained. Each time I create a new gui
plugin I find myself modifying the web service to add new support for the
new gui plugin. This forces our QA staff to have to re-test the entire app,
as well as I have to, which the plugins are suppose to prevent. However I've
not come up with a good way to increase the functionality of the webservice
as I need to. From what I know the WSDL of the webservice is static, unless
it is rebuilt.

I know I could use a generic Method in the webservice, and based on what is
passed determine what to do, but that would defeat the purpose of a self
describing webservice.

I would like to have the new functionality exposed each time something is
added, and more importantly have it removed once the new functionality goes
away.

Anyone have any suggestions of a way to have a plugin based webservice?
something that may allow the change of the WSDL at run time?

Thanks
Wayne
Nov 21 '05 #1
Share this Question
Share on Google+
5 Replies


P: n/a
Anyone?
"Wayne" <ws*****@NoLandSpamstar.com> wrote in message
news:uI**************@tk2msftngp13.phx.gbl...
I have a way for doing plugin's in my gui app. These plugins have to talk to a webservice to do database calls. I've done the DB access as a web service so it can be shared with the rest of the company, if not for the want of
reuse the gui app would have just simply accessed the DB Directly and each
plugin in would have been fully self contained. Each time I create a new gui plugin I find myself modifying the web service to add new support for the
new gui plugin. This forces our QA staff to have to re-test the entire app, as well as I have to, which the plugins are suppose to prevent. However I've not come up with a good way to increase the functionality of the webservice as I need to. From what I know the WSDL of the webservice is static, unless it is rebuilt.

I know I could use a generic Method in the webservice, and based on what is passed determine what to do, but that would defeat the purpose of a self
describing webservice.

I would like to have the new functionality exposed each time something is
added, and more importantly have it removed once the new functionality goes away.

Anyone have any suggestions of a way to have a plugin based webservice?
something that may allow the change of the WSDL at run time?

Thanks
Wayne

Nov 21 '05 #2

P: n/a
You don't want to allow changing of WSDL, by definition. If you change the
WSDL then you need to recompile, and you just told us you don't want that.
So, no changing the WSDL.

Instead what you seem to want is a WSDL that is extensible. The same WSDL
can carry requests and responses of different types. This is a different
thing.

This is possible to do, using xsd:any (wildcard) types in the message
schema.

But can you give us all a more concrete example of how you want to extend
the webservice? What is the nature of the changes the webservice needs to
support?

(you can leave out the details of the DB Access, and the GUI app, and
anything else that is orthogonal to the WSDL and webservice design)

Or Maybe just check this out:
http://msdn.microsoft.com/library/en...ce04162003.asp
....which talks about a generic webservice that can dynamically validate
incoming requests. Serialization and de-serialization of requests and
responses is a bit more manual, but it may give you the flexibility you
desire.

-D

"Wayne" <ws*****@NoLandSpamstar.com> wrote in message
news:ug**************@TK2MSFTNGP09.phx.gbl...
Anyone?
"Wayne" <ws*****@NoLandSpamstar.com> wrote in message
news:uI**************@tk2msftngp13.phx.gbl...
I have a way for doing plugin's in my gui app. These plugins have to talk
to
a webservice to do database calls. I've done the DB access as a web

service
so it can be shared with the rest of the company, if not for the want of
reuse the gui app would have just simply accessed the DB Directly and

each plugin in would have been fully self contained. Each time I create a new

gui
plugin I find myself modifying the web service to add new support for the new gui plugin. This forces our QA staff to have to re-test the entire

app,
as well as I have to, which the plugins are suppose to prevent. However

I've
not come up with a good way to increase the functionality of the

webservice
as I need to. From what I know the WSDL of the webservice is static,

unless
it is rebuilt.

I know I could use a generic Method in the webservice, and based on what

is
passed determine what to do, but that would defeat the purpose of a self
describing webservice.

I would like to have the new functionality exposed each time something is added, and more importantly have it removed once the new functionality

goes
away.

Anyone have any suggestions of a way to have a plugin based webservice?
something that may allow the change of the WSDL at run time?

Thanks
Wayne


Nov 21 '05 #3

P: n/a
I will take a look at the link you provided. I hope the following may be a
bit more descritpive to what I want.

Today I have a web service with the following methods

GetUserList
GetInspectionList
GetUser
GetInspection

Some new requirement comes up and now I need to get a Document from the
database, so I would like to have a web service with the following

GetUserList
GetInspectionList
GetUser
GetInspection
GetDocument

But what I don't want to do is have to recompile the web service to add the
GetDocument, I would like the ability to add the GetDocument method simply
by dropping a new ClassAssembly in the directory where the main ASPX and DLL
exists.

Hope this makes more sense. I don't want to do it genericly in the resepct
that the web service has an ExecuteMethod that accepts one param and from
that param figures out it has to run GetUserList or run GetInspectionList. I
want the new methods to just show up as part of the available methods once I
drop in a new Class Lib.

Thanks
Wayne
"Dino Chiesa [Microsoft]" <di****@online.microsoft.com> wrote in message
news:OF**************@TK2MSFTNGP10.phx.gbl...
You don't want to allow changing of WSDL, by definition. If you change the WSDL then you need to recompile, and you just told us you don't want that.
So, no changing the WSDL.

Instead what you seem to want is a WSDL that is extensible. The same WSDL
can carry requests and responses of different types. This is a different
thing.

This is possible to do, using xsd:any (wildcard) types in the message
schema.

But can you give us all a more concrete example of how you want to extend
the webservice? What is the nature of the changes the webservice needs to support?

(you can leave out the details of the DB Access, and the GUI app, and
anything else that is orthogonal to the WSDL and webservice design)

Or Maybe just check this out:
http://msdn.microsoft.com/library/en...ce04162003.asp
...which talks about a generic webservice that can dynamically validate
incoming requests. Serialization and de-serialization of requests and
responses is a bit more manual, but it may give you the flexibility you
desire.

-D

Nov 21 '05 #4

P: n/a
yes it makes sense.

I don't know of an architecture that allows this.

You can do it at a different level, of course.
"Dropping in" a single ASMX with a single method, you will get this dynamic
behavior.
No recompiling, at least not explicitly.
But the new ASMX will have its own WSDL .

I can imagine setting up a separate FileSystemWatcher app, and when it sees
a new DLL in a specific directory, it starts up, examines each DLL in the
plugin directory, and generates a webmethod for the "method" exposed in
that DLL. Then the agent app generates a new ASMX and drops it into a web
directory. Basically, just-in-time generation of ASMX based on the list
of DLLs you drop in.

So maybe there are ways to get what you want but probably not automatically
..
-D

"Wayne" <ws*****@NoLandSpamstar.com> wrote in message
news:uU**************@TK2MSFTNGP09.phx.gbl...
I will take a look at the link you provided. I hope the following may be a
bit more descritpive to what I want.

Today I have a web service with the following methods

GetUserList
GetInspectionList
GetUser
GetInspection

Some new requirement comes up and now I need to get a Document from the
database, so I would like to have a web service with the following

GetUserList
GetInspectionList
GetUser
GetInspection
GetDocument

But what I don't want to do is have to recompile the web service to add the GetDocument, I would like the ability to add the GetDocument method simply
by dropping a new ClassAssembly in the directory where the main ASPX and DLL exists.

Hope this makes more sense. I don't want to do it genericly in the resepct
that the web service has an ExecuteMethod that accepts one param and from
that param figures out it has to run GetUserList or run GetInspectionList. I want the new methods to just show up as part of the available methods once I drop in a new Class Lib.

Thanks
Wayne
"Dino Chiesa [Microsoft]" <di****@online.microsoft.com> wrote in message
news:OF**************@TK2MSFTNGP10.phx.gbl...
You don't want to allow changing of WSDL, by definition. If you change

the
WSDL then you need to recompile, and you just told us you don't want that. So, no changing the WSDL.

Instead what you seem to want is a WSDL that is extensible. The same WSDL can carry requests and responses of different types. This is a different thing.

This is possible to do, using xsd:any (wildcard) types in the message
schema.

But can you give us all a more concrete example of how you want to extend the webservice? What is the nature of the changes the webservice needs

to
support?

(you can leave out the details of the DB Access, and the GUI app, and
anything else that is orthogonal to the WSDL and webservice design)

Or Maybe just check this out:
http://msdn.microsoft.com/library/en...ce04162003.asp ...which talks about a generic webservice that can dynamically validate
incoming requests. Serialization and de-serialization of requests and
responses is a bit more manual, but it may give you the flexibility you
desire.

-D


Nov 21 '05 #5

P: n/a
Actually the auto generation of the asmx may be a way I could go, I'll let
you know if I am able too. Not sure how it would fly with the QA structure
we have here as the ASMX is being modified, comes down to do we still need
to test it.

Thanks
Wayne
"Dino Chiesa [Microsoft]" <di****@online.microsoft.com> wrote in message
news:u4**************@tk2msftngp13.phx.gbl...
yes it makes sense.

I don't know of an architecture that allows this.

You can do it at a different level, of course.
"Dropping in" a single ASMX with a single method, you will get this dynamic behavior.
No recompiling, at least not explicitly.
But the new ASMX will have its own WSDL .

I can imagine setting up a separate FileSystemWatcher app, and when it sees a new DLL in a specific directory, it starts up, examines each DLL in the
plugin directory, and generates a webmethod for the "method" exposed in
that DLL. Then the agent app generates a new ASMX and drops it into a web
directory. Basically, just-in-time generation of ASMX based on the list
of DLLs you drop in.

So maybe there are ways to get what you want but probably not automatically .
-D

"Wayne" <ws*****@NoLandSpamstar.com> wrote in message
news:uU**************@TK2MSFTNGP09.phx.gbl...
I will take a look at the link you provided. I hope the following may be a
bit more descritpive to what I want.

Today I have a web service with the following methods

GetUserList
GetInspectionList
GetUser
GetInspection

Some new requirement comes up and now I need to get a Document from the
database, so I would like to have a web service with the following

GetUserList
GetInspectionList
GetUser
GetInspection
GetDocument

But what I don't want to do is have to recompile the web service to add the
GetDocument, I would like the ability to add the GetDocument method simply by dropping a new ClassAssembly in the directory where the main ASPX and

DLL
exists.

Hope this makes more sense. I don't want to do it genericly in the resepct that the web service has an ExecuteMethod that accepts one param and from that param figures out it has to run GetUserList or run GetInspectionList. I
want the new methods to just show up as part of the available methods
once I
drop in a new Class Lib.

Thanks
Wayne
"Dino Chiesa [Microsoft]" <di****@online.microsoft.com> wrote in message
news:OF**************@TK2MSFTNGP10.phx.gbl...
You don't want to allow changing of WSDL, by definition. If you change the
WSDL then you need to recompile, and you just told us you don't want that. So, no changing the WSDL.

Instead what you seem to want is a WSDL that is extensible. The same WSDL can carry requests and responses of different types. This is a different thing.

This is possible to do, using xsd:any (wildcard) types in the message
schema.

But can you give us all a more concrete example of how you want to extend the webservice? What is the nature of the changes the webservice
needs to
support?

(you can leave out the details of the DB Access, and the GUI app, and
anything else that is orthogonal to the WSDL and webservice design)

Or Maybe just check this out:

http://msdn.microsoft.com/library/en...ce04162003.asp ...which talks about a generic webservice that can dynamically

validate incoming requests. Serialization and de-serialization of requests and
responses is a bit more manual, but it may give you the flexibility you desire.

-D



Nov 21 '05 #6

This discussion thread is closed

Replies have been disabled for this discussion.