I just finished the third chapter of my next book. The final paragraph is
Location transparency is a Siren as it lures people into making bad software design decisions. If you want to improve your application's scalability and robustness, you should not think about objects as the boundaries of remote communication. At the wire, there is only a message and at the other end there is just some piece of software which reads the message and acts on it. The mapping to objects exists merely to increase convenience for developers. As an application architect you should instead think about the exchange of messages.
Larry comments on my previous criticism of using airline reservation systems as a perfect example of a distributed application. That's great because he has actually spent some time implemeting this kind of system and it's even worse than it appears.
And lots of crucial data, like fare-change rules, are never implemented according to whatever standard was cooked up in the 70s, they're almost always implemented in "comments" fields in an organization-specific way that's evolved for decades.
Hey, cleartext is a valid way for storing business rules if only trained personnel enters orders ;-).
Outch ...
I just read up on the assignments for Monash University's CSE5000 - Distributed Object Technology. Maybe I'm wrong, but I have the certain feeling that two of the most common samples for two of the most important technologies are somewhat flawed:
Banking as an example for distributed transactions. (Transfer money from account X at bank A to account Y at bank B)
Airline reservation (Hold seats, book seats, view seats with high emphasis on concurrency)
I somehow doubt that bank A would use a distributed TX while communicating with bank B. Remember, using a distributed TX in this case means handing out a lock to a different entity for a potentially unknown time. You wouldn't want to do this.
A similar thing is true for airline reservation systems. The last time I checked, a ticket was no guarantee for a seat and the only real transactional guarantee for a seat is during check in. Reservation doesn't count too much here.
It seems as if there might be some folks from Monash University's CSE5000 class visiting this web site in the next couple of days. At least when looking at this week's required reading:
Week 6 Reading
.NET Remoting Use-Cases and Best Practices. Ingo Rammer. [Web]
SoapSuds vs. Interfaces in .NET Remoting Ingo Rammer. [Web]
Update (08/24/2003, 8:40 pm): I received a lot of positive email from people sharing their experiences. Just a couple of minutes ago, I got in touch with a lawyer who is specialized on these matter. Thank you all for helping me and sharing your experiences!
As some of you definitely know, working in the US is pretty much limited to near-zero for foreigners. I think that this is a reasonable decision to protect the US work force. It basically means that I should not come to your country, offer to work for USD 5.00 an hour and thereby drive YOU out of your job. (If you happen to be located in the US which the largest part of my readers is.) Pretty reasonable, actually - and I guess the situation is pretty much the same in most countries.
In some countries however, there is an exception for self-employed/freelance/independent consultants who'd like to offer their services to companies within the country. It is usually bound to some "success clauses" which essentially means that you actually have to work for more than one company - so that trying to subvert the system isn't easily possible - and that after a given period of time your corp has to yield some actual income for you.
From my current understanding, a similar exception is in use in the US insofar as you can file a petition for a work permit as an "investor" if you manage to bring something like USD 1,000,000.00 into the US and invest into a new company, creating jobs and stuff. Pretty reasonable in the general case.
My situation is a little bit different. I'm an independent consultant, who is regarded as one of the world's foremost experts in my area: .NET Remoting, and distributed .NET architecture and design. I've written books and articles on these topics, have been quoted in even more books and articles, have been interviewed about these topics both in the US and externally, and work legally and quite happily in several countries of this world, helping the companies in these non-US countries to succeed more easily in developing distributed .NET applications. I also coach developer in non-US countries to increase their skills regarding the same areas of expertise.
However ... whenever I get a question from an US company, asking me to fly over for a week or two to help them with their application or to coach their developers to increase their skills, I can unfortunately only decline. To my current understanding, it's legally impossible for me to provide my services to US folks in the US.
To come back to my question: I wonder if some reader of my blog knows more about the US work permit system and would be willing to talk with me about any possible solutions to my issue. Is there any exception regarding my case about which I didn't hear yet? Or is there any authority in the US[1] which I could contact to present an individual case for consideration (insofar as I'd like to present that I'm in no way negatively affecting the US job marked but instead improving US employee's skills.)
Just a short summary of my facts:
I unfortunately didn't win last weeks lottery, so investing 1,000,000.00 is not an option. Believe me, I'd really prefer if it were.
I'd like to work in the US for basically a couple of weeks each year. We're not talking about full-time employment.
Being employed by some other consulting company who'd file the petition for visa doesn't appear to be a valid solution. This sounds like a way too nasty hack.
I promise that I wouldn't screw your salaries. Or to follow US work permission speak "I would demand an exceptional high salary".
The negative point: I technically wouldn't qualify for H1B1 as I quit university before graduating. 12 years of work experience are normally needed in this case, and I can only present 9 years. (Plus a number of books, articles, and stuff, as mentioned above)
I do not want any illegal solutions. "Just sneak in" is not an option.
If you know a little bit more about this topic, and how I could approach some US authority, it would be great if you could drop me an email. Alternatively, if you know some lawyer whose specialization is non-standard work permit issues, and who knows how I could successfully file this petition, I would be very grateful if you could point him to this post. We're not talking about "free" here: if the lawyer can work out how to get this through to the right person to grant a permit, I'm absolutely ready to pay! (If it's legal. No hacks, please). If your best friend is a US Senator who'd know the right person to talk to, I'd also be very happy if you could introduce me to him ;-). Just in case ...
If work permit is not your area of specialization (after all, I suppose that 99.5% of my readers are working in software development or some related field), but would like to express your sympathy and understanding for my case, and would confirm my idea that you'd really want to see me helping US folks, I'd also like to hear from you. If you on the other hand would like to tell me to keep out of your country, and that you wouldn't want to see me doing any consulting, coaching or training work in the US, I'm also very open to receiving your opinion by email.
Thank you VERY much for your time!
[1] Well, maybe apart from Mr. Bush himself. I'd really like someone who would actually answer my request ;-)
During the last 16 months, I received (and mostly answered) roughly 3,000 emails from developers around the world. Most of them dealt with .NET Remoting related stuff, but a large percentage also asked questions which were just too difficult to explain in a single email.
I therefore finally decided to write a new book and will in the tradition of Jeff Prosise's Book Blog keep a continuous log about my experience of writing.
As you probably know, a number of popular .NET related weblogs are published by Microsoft Regional Directors. On last Friday, Eileen - Program Manager for this small group - invited me to join them! Woohoo!
Regional Directors aren't Microsoft employees--they're independent developers, architects, trainers, and other professionals who provide a vital link between Microsoft and the developer community. These technical experts can give you the insight and informed perspective you need to start developing .NET-connected software today--whether you need help learning about the .NET Framework, training developers, or implementing all aspects of a solution. Contact a Microsoft-endorsed Regional Director to kick off your project today.
Prologue: Right now, I'm sitting in my flat in downtown, Vienna/Austria in the hottest summer for the last 100 years. Downtown means that I'm literally living about a five minute walk away from all the beauty (aka "sightseer's must visit") in Vienna. Downtown also means that, heck, I don't have my own garden and I therefore can only decide between hanging around in my flat (plus office) OR can share the summer with hundreds of other Viennese people and tourists in one of the nearby parks.
Prologue 2: In yesterday's TV news report, they announced the recent findings of a study conducted in Austria. The majority of people dream of moving out of the city, owning a house plus garden in one of the small rural communities with less than 2000 inhabitants. No more pollution, no more noise.
So .... yeah .... well ... I'm signing my contract tomorrow at 10:00 am. Katja and I found a nice 1,500 sq ft house (4 bed, 3 bath) with 15,000 sq ft garden in just such a community. I can finally write my articles sitting in my own garden - and it's still just a 30 minutes drive back to Vienna.