<?xml version="1.0"?><!-- RSS generated by Radio UserLand v8.0.6 on Fri, 15 Mar 2002 16:49:51 GMT --><rss version="0.92">	<channel>		<title>Marc Barrot: web services</title>		<link>http://radio.weblogs.com/0104487/categories/webServices/</link>		<description>DESIGN AND IMPLEMENTATION</description>		<copyright>Copyright 2002 Marc Barrot</copyright>		<lastBuildDate>Fri, 15 Mar 2002 16:49:51 GMT</lastBuildDate>		<docs>http://backend.userland.com/rss092</docs>		<managingEditor>mbarrot@dig.fr</managingEditor>		<webMaster>mbarrot@dig.fr</webMaster>		<cloud domain="radio.xmlstoragesystem.com" port="80" path="/RPC2" registerProcedure="xmlStorageSystem.rssPleaseNotify" protocol="xml-rpc"/>		<item>			<title>Radio web services </title>			<link>http://radio.weblogs.com/0104487/categories/webServices/2002/03/14.html#a35</link>			<description>&lt;p&gt;&lt;b&gt;s&amp;nbsp;l&amp;nbsp;a&amp;nbsp;m&lt;/b&gt; is not supposed to be dedicated to the subject of blogging or even tinkering with Radio UserLand. Still, I suppose I&apos;m just like most geeks discovering a new technology or tool, I jump into it and put the rest on the backburner, at least for a short while.Before I turn &lt;b&gt;s&amp;nbsp;l&amp;nbsp;a&amp;nbsp;m&lt;/b&gt; back to its &lt;a href=&quot;http://radio.weblogs.com/0104487/2002/03/07.html#a6&quot;&gt;original intent&lt;/a&gt;, here is a quick rundown of what I learned on the subject of web services with Radio.When it is running, Radio acts as an &lt;a href=&quot;http://www.xmlrpc.com/&quot;&gt;XML-RPC&lt;/a&gt; or &lt;a href=&quot;http://www.soapware.org/bdg&quot;&gt;SOAP&lt;a&gt; server.A web service for Radio is written in &lt;a href=&quot;http://frontier.userland.com/stories/storyReader$1047&quot;&gt;UserTalk&lt;/a&gt;, Frontier/Radio&apos;s scripting language.The script&apos;s source text file, when dropped in the Web Services subfolder of  Radio&apos;s  application folder, is automatically compiled and stored into the Radio.root object database, in the user.betty.rpcHandlers.radio (XML-RPC) and user.soap.rpcHandlers.radio (SOAP) tables.The agent responsible for the scanning and compilling is builtins.radio.thread.agents.watchMacros(). It is scheduled every 10 seconds or so. As of the current version, it can be &lt;a href=&quot;http://groups.yahoo.com/group/radio-dev/message/5354&quot;&gt;spooked&lt;/a&gt; by the .DS_Store invisible file that may appear in the Web Services folder in MacOS X. Deleting .DS_Store keeps it happy. Invalid UserTalk scripts fail compiling and are not integrated.When making modifications to a script that is already compiled in Radio.root, it is better to manually delete the existing version in user.betty.rpcHandlers.radio and user.soap.rpcHandlers.radio. If valid, the updated version is compiled within the next 10 seconds.To call the web service from a Radio macro, use something like &amp;lt;%params = {&lt;i&gt;parameters_list&lt;/i&gt;}; xml.rpc (&amp;quot;127.0.0.1&amp;quot;, 5335, &amp;quot;radio.&lt;i&gt;script_name&lt;/i&gt;&amp;quot;, @params)%&amp;gt; or &amp;lt;%params = {&lt;i&gt;parameters_list&lt;/i&gt;}; soap (&amp;quot;127.0.0.1&amp;quot;, 5335, &amp;quot;radio.&lt;i&gt;script_name&lt;/i&gt;&amp;quot;, @params)%&amp;gt;.It is of course possible to make calls from other systems, provided the system running Radio is accessible by TCP/IP.My main sources of information were Dave&apos;s &lt;a href=&quot;http://radio.userland.com/webServicesTutorial&quot;&gt;tutorial&lt;/a&gt;, Jon&apos;s subscriptions display&lt;a href=&quot;http://radio.weblogs.com/0100887/2002/02/24.html#a88&quot;&gt;service&lt;/a&gt; and the &lt;a href=&quot;http://groups.yahoo.com/group/radio-dev/&quot;&gt;Radio-dev&lt;/a&gt; discussion group.</description>			</item>		<item>			<title>Jon's widget now operational</title>			<link>http://radio.weblogs.com/0104487/categories/webServices/2002/03/13.html#a34</link>			<description>&lt;p&gt;It took a lot of assistance from knowledgeable people in &lt;a href=&quot;http://www.byte.com/tangledthreads/&quot;&gt;TangledThread&lt;/a&gt; and &lt;a href=&quot;http://groups.yahoo.com/group/radio-dev/&quot;&gt;Radio-dev&lt;/a&gt; to help me figure out that there is a problem with the way Radio currently updates its web services scripts from the Web Services folder in MacOS X.I&apos;ve reported the problem and its work around &lt;a href=&quot;http://groups.yahoo.com/group/radio-dev/message/5354&quot;&gt;here&lt;/a&gt;.Meanwhile, my current subscriptions are now correctly displayed in &lt;b&gt;s&amp;nbsp;l&amp;nbsp;a&amp;nbsp;m&lt;/b&gt; on the right pane.To celebrate, I&apos;ve created a &lt;a href=&quot;http://radio.weblogs.com/0104487/images/my/TinyXml.gif&quot;&gt;TinyXml&lt;/a&gt; gif and &lt;a href=&quot;http://radio.weblogs.com/0104487/stories/2002/03/13/subscriptionsDisplayWidget.html&quot;&gt;modified&lt;/a&gt; Jon&apos;s script accordingly.Thanks to Jon, Ralph, Andy and Jake for their patience :-)</description>			</item>		</channel>	</rss>
