Subscribe: Clemens Vasters: Enterprise Development & Alien Abductions
http://radio.weblogs.com/0108971/rss.xml
Preview: Clemens Vasters: Enterprise Development & Alien Abductions

Clemens Vasters: Enterprise Development & Alien Abductions



Where The Press Comes For The News(tm)



Last Build Date: Sat, 24 Jul 2004 15:21:04 GMT

Copyright: Clemens Vasters
 



New on board at newtelligence

Sat, 24 Jul 2004 15:21:04 GMT

Daniel Fisher aka "Lenny Bacon" joined the pack and is already having some fun.

(image)

(c)2002-2004 Clemens Vasters.
You want to build service oriented applications on the Microsoft .NET Framework and are not quite sure how?
newtelligence Workshops get you going with concrete, pragmatic guidance on today's shipping technology stack, keeping tomorrow in perspective. Available on-site, world-wide. Tell me more!



Microsoft enforcing its patent portfolio on Open Source? How likely is it that?

Thu, 22 Jul 2004 12:00:08 GMT

Microsoft Watch highlights the recently surfaced HP memo that speculates that Microsoft would start enforcing its patent portfolio on Open Source. How likely is it? It is an interesting question, indeed. Here’s what I think: The patent situation, especially on the middleware market, used to be very much like the cold war between the USSR and the USA in the last century. One side moves, everyone dies. My guess is that if Microsoft had gone out and dragged Sun to court over J2EE and Sun had countersued over .NET, things would have gotten really, really nasty. The very foundations of the J2EE stack are sitting right in the middle of a substantial Microsoft patent minefield covering what we know as MTS and COM+. The reverse doesn’t look much better. Now Sun and Microsoft made peace on that front and are even looking to negotiate a broad IP cross-licensing deal to end that sort of arms race. Cross-licensing of patents is quite common in this industry and in most other industries as well. So where does that leave the grassroots Open Source movement? Not in a good place, for sure. If you do research and you pour millions or even billions into that research, there has to be some return on that investment. And there is a difference between academic research and research that yields commercial products. I am not saying that there is no close relationship between the two, but both are done with different goals. If you do research for commercial purposes, regardless of whether you do it in the automotive industry or in the pharmaceutical industry or even in the software industry, the results of your research deserve protection. At the same time, it is harmful to the society at-large, if everyone would keep all results of all research under wraps. So governments offer companies a deal: You disclose the results of your research and we grant you a limited-time monopoly to use that technology exclusively. If you decide to share the technology with other parties, you can be forced to allow third parties to license it on appropriate terms. And the German Patent law §11 (1) , for instance, explicitly states that patents do not cover noncommercial use of technology in a private environment. Now, if states offer that sort of system, a company that is built almost only on intellectual property (like Sun, IBM, Oracle, Apple, Microsoft and so forth) must play with the system. The must file for patents. If they don’t, they end of with something like the Eolas mess in their hands and that is not pretty. Even if some of the patents seem absolutely ridiculous; if the patent lawyers at a large company figure out that a certain technology is not covered by an existing patent, they must go and protect it. Not necessarily to enforce it, but rather to avoid that someone else enforces it on them. And because a lot of these patents are indeed idiotic, such are rarely ever enforced and most often quite liberally licensed. Something similar is true for trademarks. Microsoft has no choice but to chase Lindows (now Linspire) or even poor “Mike Rowe Soft” because they must defend their trademarks, by law. If they don’t and let a case slip, they might lose them. It’s not about being nasty, it’s just following the rules that lawmakers have set. Now, if someone starts cheating on the research front and consumes IP from that system but never contributes IP to the system, it does indeed change the ballgame. If you don’t have a patent portfolio that is interesting enough for someone else to enter a (possibly scoped) cross-licensing deal with you and you don’t license such patents for money but instead break the other parties’ rightfully (it’s [...]



Ah... THAT'S how to make WS-Addressing work in WSE 2.0

Thu, 22 Jul 2004 09:50:21 GMT

Unless you enable the config setting below, WSE injects intentionally invalid “Via” routing information into ReplyTo and FaultTo addresses for security reasons and therefore you can’t just turn around and create, for instance, a new SoapSender(SoapRequestContext.Address.ReplyTo) at the receiving endpoint or set the reply envelope’s context like envelope.Context.Addressing.Destination = SoapRequestContext.Address.ReplyTo. Because “Via” trumps any other address in an endpoint reference for delivery, a reply to such an invalidated EPR will usually yield a 404. I fell into that hole for the second or third time now and it somehow never stuck in long-term memory, so this is the persisted “note to self”  ;-)

<microsoft.web.services2>
   <messaging>
      <allowRedirectedResponses enabled="true" />
   messaging>
microsoft.web.services2>

(image)

(c)2002-2004 Clemens Vasters.
You want to build service oriented applications on the Microsoft .NET Framework and are not quite sure how?
newtelligence Workshops get you going with concrete, pragmatic guidance on today's shipping technology stack, keeping tomorrow in perspective. Available on-site, world-wide. Tell me more!



Naming and Continuations (continued)

Wed, 21 Jul 2004 08:24:16 GMT

I was a little off when I compared my problem here to a tail call. Gordon Weakliem corrected me with the term "continuation". The fact that the post got 28 comments shows that this seems to be an interesting problem and, naming aside, it is indeed a tricky thing to implement in a framework when the programming language you use (C# in my case) doesn't support the construct. What's specifically tricky about the concrete case that I have is that I don't know where I am yielding control to at the time when I make the respective call. I'll recap. Assume there is the following call CustomerService cs = new CustomerService(); cs.FindCustomer(customerId); FindCustomer is a call that will not return any result as a return value. Instead, the invoked service comes back into the caller's program at some completely different place such this: [WebMethod] public void FindCustomerReply(Customer[] result) {    ... } So what we have here is a "duplex" conversation. The result of an operation initiated by an outbound message (call) is received, some time later, through an inbound message (call), but not on the same thread and not on the same "object". You could say that this is a callback, but that's not precisely what it is, because a "callback" usually happens while the initiating call (as above FindCustomer) has not yet returned back to its scope or at least while the initiating object (or an object passed by some sort of reference) is still alive. Here, instead, processing of the FindCustomer call may take a while and the initiating thread and the initiating object may be long gone when the answer is ready. Now, the additional issue I have is that at the time when the FindCustomer call is made, it is not known what "FindCustomerReply" message handler it going to be processing the result and it is really not know what's happening next. The decision about what happens next and which handler is chosen is dependent on several factors, including the time that it takes to receive the result. If the FindCustomer is called from a web-page and the service providing FindCustomer drops a result at the caller's doorstep within 2-3 seconds [1], the FindCustomerReply handler can go and hijack the initial call's thread (and HTTP context) and render a page showing the result. If the reply takes longer, the web-page (the caller) may lose its patience [2] and choose to continue by rendering a page that says "We are sending the result to your email account." and the message handler with not throw HTML into an HTTP response on an open socket, but rather render it to an email and send it via SMTP and maybe even alert the user through his/her Instant Messenger when/if the result arrives. [1] HTTP Request => FindCustomer() =?> "FindCustomerReply" => yield to CustomerList.aspx => HTTP Response [2] HTTP Request => FindCustomer() =?> Timeout!            => yield to YouWillGetMail.aspx => HTTP Response                                T+n =?> "FindCustomerReply" => SMTP Mail                                                            => IM Notification So, in case [1] I need to correlate the reply with the request and cont[...]



Prankster. Ah. Right.

Mon, 19 Jul 2004 14:42:55 GMT

News is what is made news.

Point in case: This sentence on my blog here: "There's apparently a related project Boa (another serpent name along the family line of Viper that was the original codename for MTS), including the business markup language BML (pronounced "Bimmel") that he's involved in and he talked a bit about that, but of course I'd be killed if I gave out more details." now prompts, directly or indirectly, this here on Microsoft Watch and this on eWeek.

Nobody said that the project was software in product development. Nobody said it was about stuff that would eventually ship. Nobody really said anything that would be in any way relevant to technical or business decision makers today. What this shows is that there's a bit too much appetite for the next big thing while we're all still working on making the current big thing happen. Do you seriously think I am someone who'd casually leak Microsoft trade secrets on his blog?

And.... seriously.... go back and read the first six sentences on that entry with your brain switched into "active mode".

(image)

(c)2002-2004 Clemens Vasters.
You want to build service oriented applications on the Microsoft .NET Framework and are not quite sure how?
newtelligence Workshops get you going with concrete, pragmatic guidance on today's shipping technology stack, keeping tomorrow in perspective. Available on-site, world-wide. Tell me more!



.NET Rocks Recording posted

Mon, 19 Jul 2004 07:07:26 GMT

The recording of last week's .NET Rocks show on which I explained my view on the "services mindset" (at 4AM in the morning) is now available for download from franklins.net

(image)

(c)2002-2004 Clemens Vasters.
You want to build service oriented applications on the Microsoft .NET Framework and are not quite sure how?
newtelligence Workshops get you going with concrete, pragmatic guidance on today's shipping technology stack, keeping tomorrow in perspective. Available on-site, world-wide. Tell me more!



BOA/BML

Fri, 16 Jul 2004 11:49:37 GMT

AAMOF, BOA along with BML are PBS TLA's created when we were TUI and MSU while having a late dinner. TMA in this industry and way too much fuzzy MBS. TWOP! IAR, giving out SSI under NDA would get me into VDS, get me?.

(You can speculate all you want in the comments section).

(image)

(c)2002-2004 Clemens Vasters.
You want to build service oriented applications on the Microsoft .NET Framework and are not quite sure how?
newtelligence Workshops get you going with concrete, pragmatic guidance on today's shipping technology stack, keeping tomorrow in perspective. Available on-site, world-wide. Tell me more!



A word from us, my sponsor: newtelligence SOA Workshop in Düsseldorf, October 13-15 2004

Fri, 16 Jul 2004 11:09:22 GMT

newtelligence AG will be hosting an open workshop on service-oriented development, covering principles, architecture ideas and implementation guidance on October 13-15 in Düsseldorf, Germany. The workshop will be held in English, will be hosted by my partner and “Mr. Methodologies” Achim Oellers and myself, and is limited to just 15 (!) attendees to assure an interactive environment that maximizes everyone’s benefit. The cap on the number of attendees also allows us to adjust the content to individual needs to some extent. We will cover the “services philosophy” and theoretical foundations of service-compatible transaction techniques, scalability and federation patterns, autonomy and other important aspects. And once we’ve shared our “services mind-set”, we will take the participants on a very intense “guided tour” through (a lot of) very real and production-level quality code (including the Proseware example application that newtelligence built for Microsoft Corporation) that turns the theory to practice on the Windows platform and shows that there’s no need to wait for some shiny future technology to come out in 2 year’s time to benefit from services today. Regular pricing for the event is €2500.00 (plus applicable taxes) and includes: 3-day workshop in English from 9:00 – 18:00 (or later depending on topic/evening)   2 nights hotel stay (Oct 13th and 14th) Group dinner with the experts on the first night.  The 2nd night is at your disposal to enjoy Düsseldorf’s fabulous Altstadt at your own leisure Lunch (and snacks/drinks throughout the day) Printed materials (in English), as appropriate Post-Workshop CD containing all presentations and materials used/shown For registration inquiries, information about the prerequisites, as well as for group and early-bird discount options, please contact Mr. Fons Habes via training@newtelligence.com. If the event is sold out at the time of your inquiry or if you are busy on this date, we will be happy to pre-register you for one of the upcoming event dates or arrange for an event at your site. (c)2002-2004 Clemens Vasters. You want to build service oriented applications on the Microsoft .NET Framework and are not quite sure how? newtelligence Workshops get you going with concrete, pragmatic guidance on today's shipping technology stack, keeping tomorrow in perspective. Available on-site, world-wide. Tell me more![...]



Looking for a word here ....

Thu, 15 Jul 2004 11:17:41 GMT

We have a bit of a wording problem. With what I am current building we have a bit (not precisely) a notion of "tail calls". Here's an example:

public void LookupMessage(int messageId)
{
  
MessageStoreService messageStore = new MessageStoreService();
  
messageStore.LookupMessage(messageId);
}
>

The call to LookupMessage() doesn't return anything as a return value or through output parameters. Instead, the resulting reply message surfaces moments later at a totally different place within the same application. At the same time, the object with the method you see here, surrenders all control to the (anonymous) receiver of the reply. It's a tiny bit like Server.Transfer() in ASP.NET.

So the naming problem is that neither of "GetMessage()", "LookupMessage()", "RequestMessage()" sounds right and they all look odd if there's no request/response pattern. The current favorite is to prefix all such methods with "Yield" so that we'd have "YieldLookupMessage()". Or "LookupMessageAndYield()"? Or something else?

Update: Also consider this

public void LookupCustomer(int customerId)
{
   CustomerService cs = new
CustomerService();
  
cs.FindCustomer(customerId);
}

>(image)

(c)2002-2004 Clemens Vasters.
You want to build service oriented applications on the Microsoft .NET Framework and are not quite sure how?
newtelligence Workshops get you going with concrete, pragmatic guidance on today's shipping technology stack, keeping tomorrow in perspective. Available on-site, world-wide. Tell me more!



An early, early morning for the .NET Rocks Show

Tue, 13 Jul 2004 19:53:18 GMT

Carl invited me for .NET Rocks on Thursday night. That is July 15th, 10 PM-Midnight Eastern Standard Time (U.S.) which is FOUR A.M. UNTIL SIX A.M. Central European Time (CET) on Friday morning. I am not sure whether my brain can properly operate at that time. The most fun thing would be to go out drinking Thursday night ;-)   I want to talk about (guess what) Services. Not Indigo, not WSE, not Enterprise Services, not SOAP, not XML. Services. Mindset first, tools later.

(image)

(c)2002-2004 Clemens Vasters.
You want to build service oriented applications on the Microsoft .NET Framework and are not quite sure how?
newtelligence Workshops get you going with concrete, pragmatic guidance on today's shipping technology stack, keeping tomorrow in perspective. Available on-site, world-wide. Tell me more!



The Nerd, The Suit and The Fortune Teller

Tue, 13 Jul 2004 05:38:52 GMT

Marcus Mac Innes has a funny collage of our TechEd show. I've spoken to the folks at MSDN and there's a good chance that the video recording will show up on Channel9 soon.

(image)

(c)2002-2004 Clemens Vasters.
You want to build service oriented applications on the Microsoft .NET Framework and are not quite sure how?
newtelligence Workshops get you going with concrete, pragmatic guidance on today's shipping technology stack, keeping tomorrow in perspective. Available on-site, world-wide. Tell me more!



Addressing insight over beer

Mon, 12 Jul 2004 13:46:49 GMT

I might be blind to not have seen that before, but this here hit me over the third Guinness at an Irish Pub while answering a sudden technical question from my buddy Bart:

http://schemas.xmlsoap.org/ws/2004/03/addressing">
 http://server/service_second_intermediary
 
  
   http://server/service_first_intermediary
   
    
     http://server/service_outer_caller
    

   

  

 

Read the EPR binding rules section 2.3 in the WS-Addressing spec and you'll find out just like me how distributed "call-stacks" work with WS-Addressing, if your choice of communication pattern is the far more flexible duplex (or here) pattern for datagram-based message conversations instead of the rather simplistic request/response model. Of course, any endpoint-reference can be stacked in the same way. I always wondered where the (deprecated) WS-Routing "path" went, which allowed specifying source routes. I think I ran into it.

(image)

(c)2002-2004 Clemens Vasters.
You want to build service oriented applications on the Microsoft .NET Framework and are not quite sure how?
newtelligence Workshops get you going with concrete, pragmatic guidance on today's shipping technology stack, keeping tomorrow in perspective. Available on-site, world-wide. Tell me more!



Epiphanies

Mon, 12 Jul 2004 13:07:23 GMT

I've had several epiphanies in the 12 months or so. I don't know how it is for other people, but the way my thinking evolves is that I've got some inexpressible "thought clouds" going around in my head for months that I can't really get on paper or talk about in any coherent way. And then, at some point, there's some catalyst and "bang", it all comes together and suddenly those clouds start raining ideas and my thinking very rapidly goes through an actual paradigm shift.

The first important epiphany occurred when Arvindra gave me a compact explanation of his very pragmatic view on Agent Technology and Queueing Networks, which booted the FABRIQ effort. Once I saw what Arvindra had done in his previous projects and I put that together with my thinking about services, a lot of things clicked. The insight that formed from there was that RPC'ish request/response interactions are very restrictive exceptions in a much larger picture where one-way messages and much more complex message flow-patterns possibly involving an arbitrary number of parties are the norm.

The second struck me while on stage in Amsterdam and during the "The Nerd, The Suit, and the Fortune Teller" play as Pat and myself were discussing Service Oriented User Interaction. (You need to understand that we had very limited time for preparation and hence we had a good outline, but the rest of the script essentially said "go with the flow" and so most of it was pure improvisation theater). The insight that formed can (with all due respect) be shortened "the user is just another service". Not only users shall drive the interaction by issuing messages (commands) to a systems for which they expect one or more out of a set of possible replies, but there should also be a way how systems can be drive an interaction by issuing messages to users expecting one or more out of a set of possible replies. There is no good reason why any of these two directions of driving the interaction should receive preferred treatment. There is no client and there is no server. There are just roles in interactions. That moment, the 3-layer/3-tier model of building applications died a quick and painless death in my head. I think I have a new one, but the clouds are still raining ideas. Too early for details. Come back and ask in a few months.

(image)

(c)2002-2004 Clemens Vasters.
You want to build service oriented applications on the Microsoft .NET Framework and are not quite sure how?
newtelligence Workshops get you going with concrete, pragmatic guidance on today's shipping technology stack, keeping tomorrow in perspective. Available on-site, world-wide. Tell me more!



Got caught

Fri, 09 Jul 2004 09:10:16 GMT

Jimmy Nilsson is really good at spotting flamebait.

(image)

(c)2002-2004 Clemens Vasters.
You want to build service oriented applications on the Microsoft .NET Framework and are not quite sure how?
newtelligence Workshops get you going with concrete, pragmatic guidance on today's shipping technology stack, keeping tomorrow in perspective. Available on-site, world-wide. Tell me more!



http://radio.weblogs.com/0108971 soon out of business

Thu, 08 Jul 2004 22:16:34 GMT

Adieu, Userland.

Ladies, if you haven’t switched your feeds to this address yet (it’s a year now), now’s the time.

UPDATE: I've mirrored a few old stories from over there. The rest of the content is here anyways.

-----Original Message-----
From: customerservice@userland.com [mailto:customerservice@userland.com]
Sent: Friday, July 09, 2004 12:10 AM
To: Clemens F. Vasters
Subject: Radio UserLand Renewal Reminder

Greetings from the community server for Radio UserLand 8. This is a reminder that your Radio UserLand serial number will expire soon.

This is the third renewal-reminder email. You will receive two subsequent reminders, one the day before your serial number expires, and one when your serial number has actually expired.

At any time you can visit the UserLand store [1] to renew your license for $39.95, so that you can continue to receive software updates and store content on UserLand's community server.

You have 2 days remaining in your Radio UserLand license for the XXXX-XXXX-XXXX serial number.

If you have any questions or concerns, please review the Radio UserLand website [2], or post questions on the mail list [3], or discussion group [4]; or simply respond to this email.

And thanks from all of us at UserLand for using Radio UserLand. We sincerely hope you like it and use it well.

[1] http://radio.userland.com/howToRenew
[2] http://radio.userland.com/
[3] http://groups.yahoo.com/group/radio-userland/
[4] http://radio.userland.com/discuss/

(image)

(c)2002-2004 Clemens Vasters.
You want to build service oriented applications on the Microsoft .NET Framework and are not quite sure how?
newtelligence Workshops get you going with concrete, pragmatic guidance on today's shipping technology stack, keeping tomorrow in perspective. Available on-site, world-wide. Tell me more!



Architect's Introspection

Thu, 08 Jul 2004 12:48:11 GMT

Do I do this because I want to or do I do this because I need to?

(image)

(c)2002-2004 Clemens Vasters.
You want to build service oriented applications on the Microsoft .NET Framework and are not quite sure how?
newtelligence Workshops get you going with concrete, pragmatic guidance on today's shipping technology stack, keeping tomorrow in perspective. Available on-site, world-wide. Tell me more!