October 30, 2009
@ 10:58 PM

Yes, this is another WCF rant…

We were getting ready to launch an open-for-all version of our service, we were also adding more cores to the system, to make sure our computation engine will be able to handle higher request loads (We’re basically implementing the Gridable Service pattern -  if it is interesting, I can expand on that in another post). We tried a few load tests, which on first look, seemed OK. However we then noticed that we get WCF timeouts on some of the calls.

WCF timeouts!? what gives? we already took care of all the annoying throttling defaults. After busting my head (and Google) for a few hours, I found that apparently, when using http bindings in WCF you only get 2 outgoing channels for each server (IP) you are connecting to. yep WCF thinks your services are novice users using a  browser. So if you have a service that tries to access a remote server with more than two requests simultaneously (say, under load…) you may find, like us, that you’d get occasional timeouts.

Yes, there’s also a solution, which also took time to find – it is called ConnectionManagment element in the network configuration (I am yet to find a programmable way to do this). So now the services app.config (see below) sets the value to 16 instead of 2 and everything is well again, at least until the next default hits us..

<system.net>
   <connectionManagement>
     <add address = "*" maxconnection = "16" />
   </connectionManagement>
 </system.net>

 

From trying to work with WCF in the last few years, it seems its abstractions are very leaky.They are almost leaky  to the point  of rendering it useless as a “unified” framework. So, in the spirit of the times, and as the title suggest – maybe they should just rename WCF to Windows Trick-or-treat Foundation – Alas, we are getting more and more of the “trick’ part rather that the “treat”, but at least the acronym fits well.


 
Tags: .NET | SOA Patterns | WCF

When we added our iPhone application xsights-light to the appstore about a month ago we intended it as a demo application we can use to showcase potential clients what we can do (with the aim of providing a white-label service). We activated a few images (3 on the site and a few others) and forgot about it.

We were very surprised to find out that even though we didn’t publicized it anywhere or anything like that, hundreds of people found it interesting, downloaded the app and tried it on just about anything. Here are just a few examples:

image image image image image image image image image image image image image image image image

As I mentioned above, we only had a few images activated, so naturally, people weren’t very happy and we got some “rave” reviews like “would be nice if it worked as advertized”, “only identifies 3 images” and  others that used less refined language :)

Anyway, we’re listening – and we decided to make xsights-light a little more useful. For one we are adding content, we started with movie posters of movies playing in the US and we intend to add more in the future. What’s more interesting, is that we’re opening up the platform for general use i.e. you can upload (almost) any image you like (such as the images above), add a URL and activate anything you like be that a Pepsi can, an wedding invitation or whatnot (if you’d take a look at @xsightspulse on twitter, you can see what others are activating)

Apparently, we’re not the only ones who think this is interesting, as we also got a nice mention on Tech-Crunch. We agreed to let Tech-Crunch readers be the first users of our service so head over to the article for an invite, we hope to open it for general use in a week or so.


 
Tags: xsights

Yesterday I gave a talk on SOA pattern on the European Virtual Alt.Net user group. You can find the recording of that talk here as well as download a pdf of the slides.

Before I’ll talk a little about the substance I want to say a few words about office-live meeting (the platform used for the presentation). To sum this in one word the experience was horrid. It took me more than 35 minutes just to upload my presentation. Then I had to switch to windows XP (VM in parallels) to speak since it has problem with Windows 7 (low sound volume). However, the worst thing is that throughout the presentation I constantly lost control of the slides progress (i.e. couldn’t move the slides forward), which was very distracting. 

Anyway, if ignoring all that, I think overall the presentation is still beneficial and  addresses a  few interesting issues that are challenging like flexibility, reporting and management of SOA. If I am to sum the presentation I’d say that  when you build a system on SOA you get a system built of (relatively) a lot of components of questionable reliability. You can reap a lot of benefits in the flexibility department, but you have to address several challenges in the performance, availability, management (etc.) departments. Additionally you  need to look at the overall solution from an holistic viewpoint since different parts of the solution can push in different direction or  only cover part of the picture.

Lastly thanks to Jan and Colin for organizing the event and for all the attendees for giving me an hour and half of their time


 
Tags: .NET | SOA | SOA Patterns | Software Architecture