Simon Fell > Its just code
Sam has his Radio blog up and running
I've written a short sequel to the Busy Developer's Guide to SOAP 1.1 entitled Headers and Hrefs. Enjoy! [Sam Ruby's Radio Weblog] Well, there are a few more changes than that between 1999 and 2001 schema versions (like xsi:nil vs xsi:null and xsd:ur-type vs xsd:anyType), but in any case, the differences are easily handled.
Thursday, March 28, 2002
Based on feeback from the WS devcon, I've just released tcpTrace v.0.6.0 (the Conference Presenters Edition <g>)
Judging by this, and all the posts to dotnet-rotor, Peter seems pretty happy that Rotor has arrived. I think I'll refrain from looking at it until the Mono guys decide what the license means.
Tuesday, March 26, 2002
Peter has posted the slides & code from the SOAP over Jabber presentation at the DevCon. His concluding slides show how to take GXA to build an IM like message fabric for Web Services, that extends the cloud all the way down into a local process is just a fascinating idea. I'm hoping to explore this area further, PocketSOAP conveniently already has support for WS-Routing & DIME, so I'm a good way towards being able to try some of these idea's out.
More SOAP / HTTP discussions on www-tag. I think the REST folks are somewhat over stating the issues, my view is largly similar to Henrik's. As Peter & I demostrated last week at the Web Services devcon, its possible to run SOAP section 7 RPC messages over other transports (such as Jabber), and in some cases this is benifitial. It seems to me that SOAP over DIME/TCP has the potential to become the transport of choice for SOAP in the future.
The DevCon was great, I had a blast, got to hang out and chat with a bunch of really smart folks including Don, Tim, Sam, Chris, Dave, Peter, Rael, Patrick & Keith. There was a wide range of topics included in the talks, everything from XML-RPC to GXA to networking hardware to deployment pains. I was very happy to see pcapTrace & tcpTrace getting used in some of the demos :) I think Keith & Don's DIME presentation gets the award for most entertaining session, and Andy Gray's talk on XML-Spaces left me with a "wow, have to look at that more" moment.
Friday, March 22, 2002
Hey, Mike Deem (another SOAP guy) has jumped into blogging, welcome Mike.
Had an awesome time at the WS DevCon, thanks Chris & Tim !, see you all at the next one. [more to follow].
Wednesday, March 20, 2002
And you thought HTTP GET was safe.... The Mothership in Redmond suggests, Security Recommendation: Disable HTTP-GET and HTTP-POST Protocols for Production XML Web Services. I need to read the report to see if this is an IIS or a more general problem. Sigh, I suppose we could just unplug the damned things from the rou [More Like This WebLog] My vote is to kill them off, they never seemed that useful anyway.
[About RCS] Some people have said it's clonable in open source, and that's true, and it would be okay with us if people did that. ... But if you have a few months and want to do a cool piece of software, and can make it run faster or cheaper or in places we don't reach, go for it. [Scripting News]
Monday, March 18, 2002
Congrats to the Userland folks for shipping RCS. BTW, is there any advantage to running it in Frontier instead of Radio ?
Continued discussion on extensiblity, complexity & interop from Dave & Sam. Sam also points to this XML-RPC weblog API, which seems to be well down the road of re-inventing SOAP in XML-RPC.
Saturday, March 16, 2002
PocketSOAP 1.3 Beta 4 now available, this release was mainly to get the PocketPC build available, but it also includes support for doing SSL over proxy servers (a popular request)
Thanks to this HowTo I now have Tomcat 4.0.3 / Axis Beta 1 running behind my IIS 5.0 server.
Just finished a bit of a spring clean on http://soap.4s4c.com/ I put together a list of all the random bit & peices I've thrown up there in the past. It includes the SOAPBuilder interop stuff, XmlStorageSystem, the Userland SOAP Validator, the weblogs.com subscriber interface, some WS-Routing enabled services, and test endpoints for DIME and SOAP Digest Authentication. Next step is to put together a WS-Inspection file that list them all.
Something funky going on with the news aggregator in Radio, I keep getting full dumps of some feeds, rather than changes. I thought it was because people were turning on the title/links stuff, and Radio was seeing that as a change, but I just got a full dump of Peters blog, and that doesn't have the title/link turned on. Strange.
Further digging seems to reveal that IPHlpApi is not supported on PPC2000 after all, the online docs seems to be corrected, but I can't see an updated PPC2000 SDK download. On the plus side I've successfully bounced DIME & MIME attachments from my iPaq to external servers.
A Gentle Introduction to SOAP. [Sam Ruby's Radio Weblog]
Friday, March 15, 2002
Wot no CoCreateGuid ? WinCE doesn't support the CoCreateGuid API (unless you have the DCOM bits, which no one ships), so I've been writing my own version, this relies on the IPHelper API to get the MAC address of the network card (if there is one). The docs claim that this is supported on PocketPC 2000, but the PPC2000 dev environment is missing it, I've built a version with the PPC2002 dev environment, I'd be interested to know what happens when you run it on PPC2000. There's an ARM build available at http://www.pocketsoap.com/pocketsoap/attTester.zip If someone would like to give it a go.
Someone should give the WinCE API doc writers a copy of eVC. The docs for srand have a nice little sample that uses time from time.h, pitty eVC doesn't ship with a time.h !
Dare Obasanjo just posted on the xml-dev list that MSXML 4.0 SP1 is now available. [/serdar/] Cool, although I couldn't find a fix list, guess I'll just have to download it and try it, to see if they've fixed the SOM problem i found.
The joys of PocketPC development Despite the fact that the docs for CreateFile clearly state that you can use FILE_FLAG_SEQUENTIAL_SCAN, don't beleive a word of it, any attempt to use this results in an "incorrect parameter" error at runtime. Just don't ask how long it took me to track that down. (or how many times eVC crashed in the process)
Working on getting the PocketSOAP 1.3 beta up and running on PocketPC, finally got eVC to build everything cleanly, but for some reason eVB doesn't seem very happy since I upgraded to PocketPC 2002, it flatly refuses to download or debug to my iPaq this is somewhat hampering my attempts to test it :(
Julain Bond has a comment about the Interop Stack presented at the recent WSDL interop meeting. This is something I've been thinking about since seeing that powerpoint slide.
The further up the stack you go, the smaller the number of people will be involved (not everyone supporting SOAP is going to want to also support XLANG for example). I think what will shake out, is that groups will break out to cover the different areas (for example, a number of people have already done work on interop testing for WS-Routing and Soap with Attachments). A key move has to be to parallelize these activities, and to continue the post meeting testing, It might just be me, but there seems to be much less post meeting activity from Round 3, than there was for the earlier testing.
Coping with Change [Sam Ruby's Radio Weblog] More good stuff from Sam, he also points to this post about extensibility. This is why I prefer SOAP over XML-PRC and RSS 1.0 over RSS 0.92, because they are extensible in a non-centralized manner (using namespaces). For example, a while back I wanted to syndicate information about time based events, RSS 1.0 allowed me to compose in the additional metadata I wanted (and in fact, I was able to re-use some standard metadata defined by Dublin Core), whilst RSS 0.92 required me try and get the spec rev'd, and whilst there is now a RSS 0.93 spec, its appears to be pretty much dead in the water.
Thursday, March 14, 2002
David Chappell is talking at tonights Bay.NET meeting.
... Apparently. Does Index Server get used? Something like Index Server should just be a part of the system. Why build something new, change all the Office and Shell apps, etc.? [Patrick Logan's Radio Weblog] I beleive that Index server ships with W2K/XP and is integrated into the shell->find tool. Its also extensible in that you can write filters for handling new file formats. I always had problems with it corrupting its index files, but that was back in the 1.0 days, it might be better now.
Patrick Logan comments on my issues re: Microsoft's "stuff everything into a database" strategy, saying: "Agreed. Isn't this what Google does? ...Why wouldn't Microsoft just build us a Google?" Darn good point! Note how Google doesn't require you move all your data into a common data store - they leave the data right where it already is, and just layer on the searching & caching value. Makes sense to me. [Peter Drayton's Radio Weblog] Kinda like Index Server ?
Wednesday, March 13, 2002
.... The more difficult question is: what's not in this picture that should be? Also, from the communities perspective, what are the priorities for this stack? Which items should be done first? [Snell's Blog] The working tests / total boxes ratio scares me too much to look at it for too long :) In my mind authentication is missing, WS-Security covers sending some form of credentials (Kerberos token, x509 cert etc), but doesn't really cover how you got them in the first place. I'm not sure yet that doing authentication outside of web services, then trying to bundle the results inside a SOAP request is the way to go. The other major thing that's missing is some form of standardized store & forward reliable messaging transport, something like MSMQ or MQ series, I don't think that HTTPR is it. For me, those are the two things I keep wishing I could deploy today.
Peter has a rant on the MS database/filesystem stuff.
So the question should be: What is the full catalog of things that are still missing from the Web services picture? ... [Snell's Blog] Take a look at the Interop Forum Stack Powerpoint that Becky posted with her summary of the WSDL interop meeting
Puzzle. What's missing from this sequence. "SOAP 0.9, 1.0, 1.1, SCL, SDL, NASSL, WSDL 1.0, 1.1." Clue. [Scripting News] I'm not sure what Dave wants me to think about XML-RPC, it was around well before the above list of specs, so wasn't part of that roller coster ride, neither does it have solutions for the other area's I mentioned.
Cooooool. In case it wasn't clear weblogs were The Next Big Thing[TM]: Alton Brown of Good Eats fame has a weblog. Then again, maybe that isn't such a good thing, considering how often I hear the "all you have on your Tivo is cooking shows" refrain. :-) [Trampolined Style] Peter recommended Good Eats to me a while back, I've been hooked every since!
Question: what's next after Web services? [Snell's Blog] I've noticed that the pace in the WS world seems to have slowed considerably, early on there was a flurry of specs, SOAP 0.9, 1.0, 1.1, SCL, SDL, NASSL, WSDL 1.0, 1.1. Since WSDL 1.1, things have been much slower, In trying to actually design / build / deploy web services, I continuely run in issues that indicate there's still a long way to go [at least for the class of problems I'm involved in], standards are needed authentication, authorization, signing & encryption, most of these appear to be in the works (signing is now a rec), but progressing slowing, and with no real support from in the toolkits. For example, there's all the noise about Passport, yet still no version that I can use in a Web Service. The reality / hype gap still seems pretty large.
Just finished reading Fallen Dragon an awesome read, I couldn't put it down once i started reading it. I thought the Nights Dawn trilogy would take some beating, but Hamilton shows he's upto the task.
Keith's been quiet lately, wonder what he's upto ?
Cost the key factor in pushing business to open source. Survey says they're ready, but identifies key worries [The Register]
Sun takes on Passport--with hardware [CNET] Authentication continues to be the biggest problem I see with deploying Web Services that are more interesting that add 2 numbers together.
Monday, March 11, 2002
Cool, you can run Apache httpd on WinCE !
I've had a few copies of this bogus MSFT security advisory today.
blo.gs will now notify you when weblogs change. The intent is to enable clouds to cooperate- however, this could be useful at endpoints, particularly if watch lists are implemented. [Sam Ruby's Radio Weblog] Hmmmm, I wonder if i can integrate blo.gs with the this and this.
Sunday, March 10, 2002
On The Mark : A Busy Writers Guide to Radio Renderers
If you're feeling brave, there's a new build of YATT available to try out.
Pacbell DSL outage in San Francisco started this morning about 9.30, hope it doesn't last too long. On the plus side, i get to test the work offline option in Radio.
Saturday, March 09, 2002
I hate it when that happens. I spent the best part of a day trying to get WinInet on PocketPC to do SSL via an authenticated proxy with no success (I got all the other combinations working, but not that one), I figured that would be quicker than adding SSL over Proxy support to the existing PocketSOAP HTTP code. I finally ditch WinInet and start looking at the PocketSOAP code, and I got both the Win32 and PocketPC versions done in less than 2 hours !
I wonder if Dave is expecting any competition in the RCS space ? RCS seems to be layered on top of XmlStorageSystem so I'd expect that you could plug different backend implementations in, without affecting the clients. The Blogger API seems to have become the defacto standard interface for blogging tools, can we expect something similar for RCS tools ?
Tools that will prove useful/important for .NET programmers in the nearish future: build, windbg/ntsd, and grep. To that end, here are some articles you might want to read: January 1999 BugSlayer in MSJ, December 1999 BugSlayer in MSJ, January 2000 BugSlayer in MSJ, and OSR's online DDK docs. [Peter Drayton's Radio Weblog] I was expecting Emacs to be on the list !
A summary of what you need to know about running SSL on PocketPC. I find it pretty ironic that by default, certificates generated with the W2K Certificate Services are no good for PocketPC clients.
Friday, March 08, 2002
Been battling SSL on PocketPC, finally stumbled across this, which is the only place I've seen this documented, didn't see it all in the PocketPC SDK, where it should be (in big letters).
SSL uses an algorithm to encrypt data based on a trust relationship between the sender and receiver. SSL requires both the sender (the Windows CE device) and receiver (IIS server) to be trusted through a third party, a Certificate Authority. If you have ever ordered merchandise online, you are likely familiar with this type of encryption.
It is important to note the following about SSL encryption. First, Microsoft Handheld PC Professional 3.0 (Windows CE 2.11) and Palm-Sized PC (Windows CE 2.12) devices do not support the SHA-1 Encryption Algorithm. This is the default algorithm when setting up Certificate Services for Windows 2000. If you are using a stand-alone certificate authority and Windows CE devices with Windows CE 2.11 or 2.12, you must configure Certificate Services to use the MD-5 algorithm.
Note Verisign, a major online Certificate Authority, uses the SHA-1 encryption algorithm. If you are using Handheld PC Professional or Palm-Sized PCs, you cannot use Verisign as your Certificate Authority. You will need to find an alternate Certificate Authority or create your own.
In order to use the SHA-1 encryption algorithm on Pocket PC, you will need to install the 128-bit encryption pack.
Taken from page 6 of http://www.microsoft.com/sql/techinfo/administration/2000/SQLServerCESecurity.doc
Got PocketSOAP up and running on my PocketPC2002 upgraded iPaq. Everything seems to work, once nice new feature is that PocketPC2002/ActiveSync 3.5 seems to auto proxy any outgoing connections when its sat in the cradle (unlike earlier versions which required you to do it all manually)
It's just a bunch of developers in a room with their heads down typing. Forging ahead, hack by hack. [via Sam Ruby's Radio Weblog] I'm glad to see that Tony & the XMethods crew are getting the recognition for setting up SOAPBuilders.
Thursday, March 07, 2002
Still having problems with Referers, all i get from clicking the Referers link is a HTTP 500 error
Ran into a gotcha with Winpcap 2.3, because its not been tested on an SMP box, it will purposely fail to load on an SMP box, this is a change from 2.2, where you could choose to take your chances that it wouldn't work. This is a pain, as you have to goto 2.3 to run on XP, which requires NDIS 5 drivers. (Winpcap 2.2 is NDIS 3.0). There is of course the raw packet capture API available in W2K/XP, but I've had problems with that not capturing outgoing data.
ZSI: open-source Python SOAP implementation. Rich Salz has released version 1.2 of ZSI (the Zolera SOAP Infrastructure), a Python module that implements the SOAP 1.1 specification and that can be used to build applications using SOAP messages with attachments. [xmlhack]
Wednesday, March 06, 2002
Safeway fattens its Web service. The land grab continues in the online supermarket sector as the grocery giant announces plans to launch Internet operations in San Francisco. [CNET News.com] Yah!, grocery shopping has been a compelte PIA since Webvan shutdown.
Dave fixed the referers page problem.
There's a little buglet in the new RCS Referers page, if the URL is long it gets truncated in the display, and in the href.
Internet Week - Mission Interoperable: Rivals Aim To Link Web Services
Wrapping up a number of changes, fixes & improvements resulting from the WSDL Interop meeting last week, there's a new beta of PocketSOAP 1.3, and an alpha version of the new WSDL wizard tools. The WSDL tools will generate you a complete VB6 based project, from a WSDL service description, it supports both rpc/encoded and document/literal based services, and will generate classes and serializer for complexType defined in the WSDL/XSD.
Paul Fletcher: "FYI, the Yahoo Groups outage was caused by the RAID on the main Oracle database blowing up. The hot standby has been offline because of a bad CPU, so the database had to be rebuilt. Which takes time with 40+ million users." [Scripting News] Doh!, not a very hot standby then. This reminds me of a project I worked on back in my process control days, there was a controller system, with a hot standby processor, everything worked fine until the code in one got out of sync with the other, at which point if there was a failure, it wouldn't switch over because it decided it wasn't safe, as the code didn't match (not entirely unreasonable) however what was entirely unreasonable, is that it wouldn't flag this situation as soon as it happens, it only flags it if it tries to fail over. I leant back then, that if you have reduant systems, recovery plans, etc, you have to test them, on an ongoing basis. This gets you into the interesting land of how to simulate failures.
Just re-ran all the round 2 tests with the new serialization metadata support, things look really good, the errors in echoStructArray for a number of toolkits has gone. I'm pretty sure at this point all the remaining round 2 failures, are server problems, not PocketSOAP problems.
Yahoo glitch trips up e-mail. An outage on Yahoo Groups, a collection of discussion lists based on various interests, prevents millions of members from receiving e-mail from their cohorts. [CNET News.com] That explains why SOAPBuilders has been quiet all day.
Transcript of the recent Web Services Interop chat on MSDN.
Ari Pernick tries the WSDL BDG and finds that vs.net can't quite handle the result. I'll try it myself with vs.net in a bit and report back. Just some quick comments: if you want to see what to replace anyType with, just take a look at the values of xsi:type in the original messages. And in this case, there is only ONE output, it just happens to be a structure. [Sam Ruby's Radio Weblog] ok, so on the request side, the two parts can be s:string rather than s:anyType. For the response, you'll need a schema to describe the struct, something like
<s:element name="flerror" type="s:boolean"/>
<s:element name="message" type="s:string"/>
Then use this type as the type in the response message
<part name="return" type="types:pingResponse" xmlns:types="http://www.weblogs.com/" />
Garth says that my editor button bar problem is related to the theme. Not having much luck getting it fixed, I swapped themes, but my desktop site stayed on the big radio theme, I even checked that the #desktopWebsiteTemplate.txt had been updated, which it had. (I can't find the post, but I posted to the Radio DG about this a while back). Its odd that it works fine on W2k/IE5.5, have to try and find a W2K/IE6 machine to check it on.
Jon Udell - WSDL Interop Adventures
In between re-staging a dev box, managed to get most of the changes done to support setting specific arrayTypes in PocketSOAP (this is the last interop issue that i'm aware of :) ). All that's left is to tweak the code that generates the proxy code from the WSDL to take advantage of the new feature.
New Radio 8 feature: Web Bug Simulator. [Scripting News] OK, I must be missing something, how is this different to looking at the server log and seeing that the feed RSS file has been pulled X times ?
I do most of my development work in an XP style, do the simplest thing that works, iterate & refactor to add functionality, I've been coding like this for a long time (certainly well before XP made it trendy). One problem is that this doesn't mesh to well with COM, particularly if you're trying to not break old interfaces, you end up with classes like
[default] interface ISerializerFactory;
interface ISerializerFactory2 ;
interface ISerializerFactoryPool ;
interface ISerializerFactoryPool2 ;
interface ISerializerFactoryEx ;
Just in case you haven't seen them, here's the pictures from the dinner thursday night.
One concern I have over the move to doc/literal from rpc/enc [hey, its gonna happen, get over it], is that we don't subset XSD, XSD is pretty large, but the goal has to be to fully support it. For example, I suspect that support for xsd:choice is pretty slim on the ground.
Some thoughts and observations from the WSDL F2F. This is of course based on the tests I did, and the random set of conversations I had, YMMV.
- For the Document/literal tests, namespace qualification seemed to be a common issue, correctly getting the right mix of namespace qualified and not qualified elements and attributes based on the elementFormDefault & attributeFormDefault values, and whether a element definition is local or global. I'm glad I built on top of the MSXML 4.0 SOM for this one, which works all that out for you.
- For the rpc/encoded tests, generating the right type information, and resolving that informatation correctly. This seems to be compounded by a lack of clarity in the (SOAP) spec.
- Missing xsd:import's from schemas with cross schema references, a real common case (around 50% of the servers I tested), is forgetting to import the soap encoding namespace when defining section 5 arrays.
I fixed a number of minor problems, mostly related to all the special cases forced on you by section 5. I left with two more significant problems
- For doc/literal PocketSOAP treats all attributes as strings, so fails to apply the correct serialization for attributes with types such as xsd:boolean and xsd:dateTime.
- For soap encoded arrays of complex types, PocketSOAP will write an array type of xsd:anyType[x], this causes issues when the server is expecting a more strongly typed array. An array of complexTypes maps to an array of IUnknown pointers in PocketSOAP, so there's no specific type, this can only really be fixed by applying metadata during the serialization process.
The attributes problem is pretty straightforward, I coded up most of the fix for that during the flight home, this should clear up the set of compound1 failures. The array problem is fixable, there's already a place to store the metadata for this [in the serializerFactory mappings], its just a matter of changing the serialization code to take this metadata into account.
Of course there was the obligitory rpc/enc vs doc/literal discussions, In the past I've been a fan of rpc/enc but having now done a bunch of doc/literal stuff, I find doc/literal a much cleaner solution, rpc/enc's special cases that override XSD are a complete pain to work with. I hope that soap encoded either moves on to use XSD properly without special cases, or drops its use of XSD. I'd even settle for the encoding spec to clearly define the subset of XSD that it uses.
Friday, March 01, 2002
Back from the WSDL Interop meeting, what a fantastic couple of days, Sam has some notes over on his blog. A big thanks to everyone that made it happen, and to everyone that attended (in person or in spirit)