From: Eric L. <eri...@gm...> - 2009-11-20 08:45:31
|
Hi all, Last week , I talked about soap on yaws with Steve Vinoski. He recommended some valuable articles to read and suggested just using http instead of soap. I do agree with him in some aspects, but still can't avoid soap. So, it's still necessary to make better support on soap by yaws, IMO. What I have done are 1)add some adding some soap related configurations to yaws and 2)add new method: call/5 on yaws_soap_lib to support additional specified prefix. More details are following: *1) concrete configuration syntax.* soap_srv_mods=<Mod1, HandlerFunc, WsdlFile1><Mod2, HandlerFunc, WsdlFile2, SpecifiedPrefix>... Modules will be automatically setup while yaws starts. As indicated here, you can specify your own prefix instead of the default one: "p". This configuration will be set in GLOBAL PART ( why there, please see explanation on patch 1). *2) explanation on patch 1: add some configurations support for soap. *At the beginning, I prepared to add the configuration to SERVER PART, and setup the services in yaws_server:gserv() which seems appropriate. Unfortunately, it will arose a race condition problem, since yaws manages soap modules by gen_server. At the same time soap client connects the server indicated in the WSDL file, the configuration looks like more a global one. As you can see in patch 1, I use method: is_file() to check the WsdlFile setting, that means the configuration is only support to local filename, or it will fail. Since yaws_soap_lib:initModel() also accepts a http-headed-url, I do consider to use method: parse_url() to do this, but it will additionally accept ftp-headed-url and https-headed-url which are not supported by yaws_soap_lib:initModel(). At the server side here, I prefer just use the local file. *3) **explanation on **patch 2: add new call/5 on yaws_soap_lib to support additional specified prefix.* I think the additional specfied prefix support is incomplete, and it just a little better. Since the yaws_soap_lib:call methods are interfaces, I just add a new method: call/5 , so that somebody uses the old ones will work well as before. Too much explanations about some patches usually means they are not perfect. Maybe? Or are there something I've missed? Anything you have about these, please let me know. However, any other suggestions will be appreciated. Thanks in advance. I don't know whether these patches are good enough to yaws or not, they do work well for me, and hope these will be helpful for your work. Cheers, Eric |
From: Claes W. <kl...@ta...> - 2009-11-20 12:36:20
|
Eric Liang wrote: > Hi all, > Last week , I talked about soap on yaws with Steve Vinoski. He > recommended some valuable articles to read and suggested just using http > instead of soap. I do agree with him in some aspects, but still can't > avoid soap. So, it's still necessary to make better support on soap by > yaws, IMO. Patch look good to me - some comments. 1. Maybe a good idea to keep soap_srv:start_link/0 if people are calling this function explicitly - which I think they are. 2. Please add some docs to man/yaws.conf.5 describing how to use the feature. I don't like adding stuff to neither gconf nor sconf since these structs get passed around a lot among processes - i.e copied. OTOH there is already so much cruft there so adding even more can't harm. It's time to clean up both these records moving some of the more exotic features into a subrecord. So - all in all - nice work, but please comment or fix (1) and do (2) Thanks /klacke |
From: Eric L. <eri...@gm...> - 2009-11-20 15:56:23
|
Claes Wikström wrote: > Eric Liang wrote: >> Hi all, >> Last week , I talked about soap on yaws with Steve Vinoski. He >> recommended some valuable articles to read and suggested just using >> http instead of soap. I do agree with him in some aspects, but still >> can't avoid soap. So, it's still necessary to make better support on >> soap by yaws, IMO. > > Patch look good to me - some comments. > > 1. Maybe a good idea to keep soap_srv:start_link/0 if people are > calling this function explicitly - which I think they are. Thanks, Claes. I agree with you, this is something I missed. This is fixed by patch 3 (follow the number of last mail), please check it. > > > 2. Please add some docs to man/yaws.conf.5 describing how to > use the feature. > I've tried to do this( see patch 4), please check it,too. > > I don't like adding stuff to neither gconf nor sconf since these > structs get passed around a lot among processes - i.e copied. > OTOH there is already so much cruft there so adding even more can't harm. > It's time to clean up both these records moving some of the more > exotic features into a subrecord. Enlightened by yaws_config:soft_setconf() , you could consider some plug-in style configuration, which will allow some external services and their configurations to be installed , modified and uninstalled on the fly. And the idea is unshaped, it's just a suggestion, HTH. :) Eric > > So - all in all - nice work, but please comment or fix (1) and do (2) > > > Thanks > > /klacke > |
From: Claes W. <kl...@ta...> - 2009-11-23 09:29:59
|
Ok - all good, applied and pushed. Thanks /klacke |