6 באוגוסט 2009
I am currently implementing Reservation (a pattern for “partial temporary commitment” when using Sagas).The implementation calls for calling a few of the saga members asking them to reserve an asset. Since network calls can take some time I wanted to make each call on its own thread, collect any errors (failures to reserve or communication exceptions) and then have all the threads reconverge to the initiating thread where any problems will be sorted out (e.g. by retrying the reservation). It basically looks something like the figure below: As you can probably guess this type...
2 באוגוסט 2009
Reacting to a comment left by Frans Bauma, Ayende recently wrote about “Maintainability” Maintainable is a value that can only be applied by someone who is familiar with the codebase. If that someone find it hard to work on the codebase, it is hard to maintain. If someone with no knowledge of a codebase find it hard to work with it, tough luck, but that doesn’t say anything about the maintainability of a code base. I usually agree with what Ayende has to say, but not this time. First I hope that...
24 ביוני 2009
In one of my previous posts (Rest: good, bad and ugly), I made a passing comment, about how I think using CRUD in RESTful service is a bad practice. I received a few comments / questions asking why do I say that – so what’s wrong with CRUD and REST? On the surface, it seems like a very good fit (both technically and architecturally), however scratch that surface, and you’d see that it isn’t a good fit for either. REST over HTTP is the most common (almost only) implementation of the REST architectural style - to...
16 ביוני 2009
Yesterday I read an interesting paper called “RETRO: A RESTful Transaction Mode”. On the good side, I have to say, it is one of the best RESTful models I’ve seen thus far. The authors took special care to satisfy the different REST constraints, unlike many “RESTful” services (e.g. twitter that returns identifier and not URIs). On the downside is I think a distributed transaction model is bad for REST or in other words I don’t see a reason for going through this effort and jumping through all these hoops. Why? For...
8 ביוני 2009
This is another post (<Rant>) about WCF default behavior and how it can make the life of developers miserable ( you can also check out “WCF defaults limit scalability” and “Another WCF gotcha - calling another service/resource within a call”) Anyway, the trigger for this is a post by Ayende called “WCF works in mysterious ways”. Ayende posted some code he wrote which was throwing a serialization exception. You can see his post for the full code, but in a nut shell he was defining a large object graph (8192 objects that contain other objects) and was trying...
28 במאי 2009
I recently read a post by Tim Bray where he states that building on web technologies let you get away with believing some of the fallacies of distributed computing. I personally thinks he is a little optimistic in that claim. On “The network is reliable” – Tim says that that the connectionless of HTTP helps (it does) and that GET, PUT and DELETE are idempotent helps as well. I say that GET, PUT and DELETE only if the people implementing the server side make them so – i.e. consider the fallacy. The fact that the HTTP says...
Michael Poulin @ ebizq doesn’t like the Active Service pattern I suggest you read his post first but in a nutshell Michael sees two possible ways to understand the term Active Service:“a) service view - a service that actively looking for companions to complete its own task b) consumer view – a service which triggers its own execution by itself”…and he doesn’t like both…I think that both of these definitions aren’t that far… and I like both :)The way I see it there are two concern here1. Are services only reactive (“passive”) ? - i.e. The service only “works” when it gets a...
21 במאי 2009
I recently got a request from Alik for my opinion on REST. I think this
might be interesting for a wider audience and decided to blog my answer
Note: I also have a REST presentation I prepared awhile ago, which is
downloadable from here
As you probably know REST is an architectural style defined
by Roy Fielding for the web which is built on several foundations
(client/server, uniform interface etc.) which gives it a lot of strength in
affected areas. The top three in my opinion are:
(relatively) Easy to integrate – a good RESTful API is discoverable from...
13 במרץ 2008
If you recall what
I currently work on is a type of a visual search engine. In a nutshell
when we get a request (image) we allocate a bunch of algorithmic
engines in a grid like manner to process the image (e.g. try to
perform OCR or whatever). As it happens, we are developing the
different components using several different environments(*) - e.g. the
control bits run on windows (.NET) and most algorithms run on Linux
(mostly C++).The need for easy cross-platform communications and
extensibility, the resource nature of the solution and a few other
tidbits led us to design our solution in a RESTful manner.If
you are a...
19 בדצמבר 2007
PaperLnx develops an advanced visual search solution for mobile
handsets based on computer vision and image understanding technologies
developed by Rafael. PaperLnx solves the cumbersome web surfing
experience on mobile handsets by enabling end users to send captured
images from their mobiles to retrieve relevant information for the
object photographed. We now have few open positions for the following profiles: Senior Developer We
are looking for a highly motivated, resourceful and intelligent
developer. Good interpersonal and communication skills will be very
appreciated. A Team player. Broad thinking and problem solving
capabilities are also desired.At least 5 years of server
side development with thorough understanding of Object Oriented
principled and understanding of...