Wednesday, May 24, 2006

WinFX? WinFS!

Yet another wonderful TechEd came to an end in the always sunny city of Eilat, and this year I decided to bury myself in the Software Development track – an Enterprisey in Geeksland – and for a very good reason: I was dead curious about WinFS; after all, it has been almost three years since I first met this marvelous creature in the Strategic Architects Forum in Redmond.

At that event, three years ago, I became obsessed with WinFS which I thought was "an interesting beginning of a semantic repository". Semantic networks were omni-present in every innovative architecture, product or solution that Microsoft showed us: Dynamic Systems Initiative, Live Communication Server with Service mobility features etc. - clearly these solutions had to have something like WinFS as a shared, semantic repository, holding together the different objects and their graph-style inter-relationships.

So now, three years later, it was time to reap the fruit. And indeed, all along the opening keynotes, I was sitting with a smile on my face, while the energetic presenters repeated over and over again how Service Management (WCF), GUI (WPF), Workflow (WWF) and Identity (InfoCards) are all parts of WinFS. I was as happy as one could be. Darn, I thought, these guys are genius! They put the semantic Information layer on top of the Engines. Information is preceding Tools, isn't it brilliant?
Furthermore, it's in a complete alignment with the management-by-information approach I've been discussing in this blog for a while, so it looked like "yet another Q.E.D."...

I called this courageous move by Microsoft "The Toolsmith Strikes Back".

But then I woke up and realized it was nothing but a dream! It was not WinFS they were mentioning, but rather WinFX - a marketing (i.e. meaningless) abbreviation for "Windows Frameworks". "Hey", I cried, "bring me back my WinFS!". But WinFS was nowhere to be found.

Well, actually that's incorrect: although physically absent, the spirit of WinFS was all over the place. WinFX is meaningful only because WinFS is doing a great job behind the scenes, of linking all the WinFX components together, and making the tacit semantic relations among all windows objects explicit and accessible. Differently put, the four WinFX engines are "managed code" just because WinFS carries them all on his back, enabling us to manage by knowing which User can access which UI, and which UI invokes which Service that, in its turn, invokes which Workflow. This crucial managerial knowledge comes from WinFS.

So if I were Microsoft, I would be replacing WinFX with WinFS, placing the later on top of all other frameworks - a concrete, unifying, omni-framework. This is where WinFS justly belongs.


Post a Comment

Monday, May 15, 2006

Bush, NSA and Double Standards and Management Frameworks

This is awesome: the largest database ever, so it's been said, is the artifact of the latest Bush / NSA tapping affair, as part of which the call records of almost any American have been collected and stored for further analysis. The reaction to this "Bushgate" consisted of the usual adjectives, i.e. "scandalous", "shocking", "frightening" and, on more practical grounds, of a bunch of lawyers, avidly working on billions US$ lawsuits against the collaborating operators.

And yet, at the same time, in the Virtual-o-Sphere - where countries have lovely names like Google, Yahoo!, and Amazon, and where governors are doing no evil - WE, the citizens (of both the Virtual-o-Sphere and the "old physical world") are willingly letting the V-Governments do what they perceive as necessary for their existence, as long as they keep providing us with fresh content and services "that just work". We let and the other Internet Giants to store records of our VoIP calls, IM messages, Search & Chat history and private e-mails. These records are constantly correlated, enriched, compared etc. in the quest for Business Intelligence. The Virtual-o-Sphere governments know, for years already, who's talking to who, when, and where; what is the content of the conversation – be it a VoIP, Chat or Mail – they know it all and they use it constantly and explicitly for their own good – which is making more money.

I might be intellectually blind, but for me Bush, NSA, Google and Amazon are all equal in their attempts to acquire as much business intelligence as possible, in order to control what appears to be a complex, chaotic and unpredictable system, consisting of millions of elements, which happen to be... us. Moreover, if I had to weigh the morality of Bush vs. the Internet moguls, my tendency would be to prefer Bush over, if only because the first might be interested in protecting my physical existence, while the other's only interest is in increasing its share's value.

To sum up, I think that once again we're having a double standard story.

In a completely different level I find this aggregation of CDRs (Call Detail Records) to be a sort of Q.E.D. on the essence of Service-Oriented Architecture. If you remember (well, sure you remember!) I maintained that SOA has nothing to do with integration and interoperability; rather, SOA is aimed at the creation of a management and control infrastructure for complex, organic and dynamic systems - be it an Enterprise or a State. The way SOA is realizing this mission is by listening (and even eavesdropping) to the conversing elements of the complex system. SOA is a management layer over private conversations. And see more details on this exact subject in my post In SOA We Trust, where you'll find the eye of BigBrother-NSA looking at you.


By Blogger Dan Ciruli, at 8:11 PM  

Ah, but there are some differences between and BushCo, Inc. First, when I choose a VOIP provider, I get to choose with whom I do business. I get to read their privacy agreement. And if I don't like it, I can choose another provider. BushCo, Inc. provides no such choice nor agreement.

Secondly, while are interested in marketing to me using the information they gather, BushCo Inc. may have far more nefarious goals in mind (see ABC News blog for info about how they are using the call record information).

Lastly: there's no Bill of Rights that prevents from trying to collect this info. BushCo, Inc. can't say the same--they are (theoretically, at least) bound to follow the Constitution.

By Blogger Muli Koppel, at 11:22 PM  

Let's discuss it this way: there's the collection phase and next comes the action phase (which is based on the intelligence created by the post-collection analysis).
Now, any organization having customers is engaged in the collection phase of usage records (or at least, those organizations having a Customer Data Warehouse and a Business Intelligence department). Privacy statements don't discuss this internal activity at all, and if I'm wrong – please refer me to an example.
Then comes the 2nd phase – that of acting upon the Intelligence. I think we should acknowledge that sooner or later we're going to merge into the virtual-o-sphere and that over there it is not Bush who's got the power but rather, which has the potential of becoming as nasty and nefarious as BushInc.
After all, Google's "Do No Evil" suggests that Evil is a viable option…

Post a Comment

Friday, May 05, 2006

Enterprise SOAaaS2.0 and API Blogjects

The following is a transcript of a naked conversation recorded inside a global, distributed Enterprise adhering to the Enterprise SOAaaS2.0 principles. The conversation demonstrates how globally distributed transactions, consisting of endless, recursive, mashed-up services, applications and hardware components can be tracked down in real-time for an on-the-spot enforcement of Enterprise Policy; post-mortem problem resolution; and post-transactional Business Intelligence, to name just a few usages.

Though the basic concept is known and implemented for sometime now (and see my previous posts on Enterprise Logging), there are few innovations here, in particular the description of the entire Enterprise software and hardware components as Blogjects (Objects that blog, i.e. converse; keep reading for further details) and the exaltation of RSS as the new Enterprise components' Lingua Franca (bear in mind that RSS is the syntaxic part of the language. Vendors or Enterprises would have to decide on the content and the semantics). And yet, the following vision is compelling: application servers, operating systems, databases, processes, storage units etc. etc. – all are Blogjects in an endless Enterprise RSS conversation. Enterprise (B)logging.

Here's the transcript of that RSS conversation followed by a short discussion on API-type Blogjects .

The transcript:
Session Captain: "Control, this is the Session Captain speaking. User 111 is here again. This time, with his brand new ultramobile 7000 running Firefox beta 2.0. Tellin' ya – this guy is a pain…"

Control: "Create the session and stop ranting".

Session Captain: "OK, OK. Session Instance 345 created. User 111 is on the go"

Control: "Ack"

Service S50: "Control, there's a Session Instance 345 that's trying to mess up with me. What do you say?"

Control: "It's approved. Proceed"

Service S50: "Right on. Starting doing what I should do. The APAC data center is relatively free. Invoking myself over there"

Control: "Ack"

Service S50: "Control, I'm running out of resources; What's the nearest Sun Grid Service?"

Control: "It's in Bangalore. You should invoke Sun's Grid Service number G10"

Service G10: "Control, an S50 instance at the APAC Data Center is asking that additional resources will be allocated to Session Instance 345. My intuition tells me it is User 111 again watching his YouTube's. Am I Right?"

Control: "Enough with the speculations. Provide S50 with the resources it needs. Now!"

Service G10: "Dude, you had a tough night or what? Proceeding with resource allocation"

Control: "Ack"

Blogjects – or Objects that Blog – is a meme coined by Julian Bleecker and is now one of many synonymous memes describing the simple principle of existence by being (or rather because of being) a conversing entity. "I converse, therefore I am". The following definition (as well as the nice pictures accompanying it) is taken from Nicolas Nova's presentation titled "Blogjects and the new ecology of things":
"A Blogject is an artifact that can disseminate a record of its experiences to the Web and would report the history of its interactions with other objects and with people.
Blogjects are assertive: they are having a voice; they have an ability to act and to be articulate; they have a capacity to exchange and participate in channels of communication. With all these characteristics, objects become first class citizens".
I suggest we start thinking about software and hardware components as Blogjects that are part of an endless Enterprise SOAaaS2.0 conversation. Furthermore, in a real-time Enterprise context, where the capturing and processing of any event is critical, the importance of Blogging Objects is invaluable. If a KPI is crossing a threshold's chasm and this fact remains untold – well, a serious damage could happen (and see the following survey - 22K$/minute of downtime).

But from all possible IT blogjects, there's one with a particular importance for the SOAaaS2.0 world we're living in: the API. A talkative API is critical for the well-being of the service, but it is also essential for a non-intrusive SOA implementation, as I described in an earlier post (In SOA we Trust). I would, therefore, like to conclude this post by directly conversing with this first class citizen - the Blogging API.

I suggest, dear API, that you will tell us what you know and how do you feel in the following contexts:

1. When you're invoked tell the world what you know about who/what invoked you; through which channel, location [if you have these details]; what is the value of the parameters passed to you; what is the action you are going to perform; and what is your well-being status (KPI/KQI) at this starting point. It won't hurt if you tell us, as well, where you are currently physically deployed, because with all the utility computing stuff, this might not be where we think you are.

2. As you go on with your self-processing, you should tell the world, us, how you're doing. Don't be shy – tell everything: a state change, an operation you're about to perform, whatever. Naturally, if there are any changes to your KPIs/KQIs, or if you're encountering an exception – you surely need to recount that.

3. When you're done, tell us "how was it"; did you have a positive experience or a negative one. Give us as much details as you can. If, for instance, you were asked to create a record inside a database table – don't hesitate to tell us that record id so and so with the following attributes' values was created in table Z at this timestamp etc. Never underestimate the value of Information and never think that the Information is already known. You should tell us everything.

Lastly, whenever you converse, do so – like all your Enterprise SOAaaS2.0 counterparts - with RSS.


By Anonymous Udi h Bauman, at 12:45 AM  

Wow, really cool post!
Indeed the key to the emergence of a real super-organism is the interactions between it's agent components. But I don't think that RSS will be enough: machines will prefer OWL or even more expressive languages to exchange unambigious information.
I recently thought about the need to not only syndicate information & knowledge, but also goals, so that agents could get targets to pursue. And then, I think we'll also need some "chemicals" syndication, just like the attention/focus drivers in insects colonies. What do you think?

By Blogger Muli Koppel, at 5:08 AM  

Hi Udi
You know I like it :-) But...
I'm reading what you're saying and see the AI camp with its endless efforts to build this super-organism. I assume one day they'll succeed, but until then we got to have the stupid bypass around. You remember the NASA experiment on reading thoughts? (my first Google post) - we need something stupid yet ingenious like this one. Nowadays every Enterprise component is either mute or partially talkative, and in any case, when it speaks it's in its own language. So first we must make them all chat excessively and next we must make this chat happen in a universally understood language. I think RSS is proving to be efficient in disseminating information. On top of that, as we both agree, a semantic layer should come. Will it be microformat-semantics or owl semantics or enterprise-proprietary, ad-hoc semantics - well, at this early stage we shouldn't be giving it too much thought, otherwise we risk to never get there. That's my feeling.

Thanks for your interesting comment.

Post a Comment

Tuesday, May 02, 2006

Google, Microsoft and the Power of Default

Jeremy Zawodny commented the latest Google-Microsoft Wrestling round, where Microsoft has been accused by Google of an unfair grabbing of web traffic and advertising dollars. And why's that? Because the new Microsoft IE7 "includes a search box in the upper-right corner that is typically set up to send users to Microsoft's MSN search service".

Zawodny points to discrepancies in Google's alleged high moral standards and business fairness, specifically after the latest Google-Dell agreement, in which Google paid 1 billion US$ in exchange for a Googlized web browser on the computers Dell ships.

But more interesting is Zawdony's observation on the power of default. Actually, it doesn't really matter if the default can be easily modified or not, as most people will never even try and change it. Most people are comfortable with others setting their defaults.

I would like to draw your attention to a Technopod's post on the matter, The Power of Default in the Land of Endless Possibilities, where the power of default (as well as two great podcasts) is further discussed.


Post a Comment

Monday, May 01, 2006

Why SaaS is Great For ISVs' R&D

As a side note on the Ruby on Rails vs. J2EE vs. the rest of the world of programming languages, I'd like to offer a SaaS-oriented perspective on the matter, arguing that all these infantile image and perception wars are soon to fade away. Software development companies will finally have the freedom to choose whatever language and whatever platform they consider most appropriate for their job, be it ERLANG, Python or C#; J2EE, .NET or LAMP; Open Solaris or IBM Z-O/S – with SaaS it is the land of socially accepted endless possibilities.

Market Perception and Social Pressure

I have discussed in the past how fragile is technology decision making in face of a social pressure. So far, when an ISV was developing an Enterprise Software, it practically had no hesitation (or choice) as for which development language to use – it would have necessarily been Java on J2EE, because that's what the customers (the "market") were demanding (after succumbing to the social pressure exerted upon them by the J2EE Platforms' vendors). So it was a vicious circle: the platform vendors controlling their customers, the customers controlling their ISVs.

Hardware platforms' vendors had their own pressure campaigns, and so Enterprise Software ISVs were forced to develop their Enterprise-grade software for "mission-critical", expensive, proprietary BIG UNIX boxes, as mandated by the "Customers". I remember pleading to my Billing vendor to have a Linux/Utility version in order to cut down costs, boost performance and increase availability. The answer I got was: "our R&D has planned such a version a long time ago, but it was never approved by Sales & Marketing, with the pretext that the "market" rejects Linux for mission-critical applications".


But all this is over (as long as SaaS is your strategy). Finally ISVs can develop for whatever platform they see fit, with whatever language and technology that they fancy. The Platform vendors and their Markets are now out of the pressure loop.

So if you are a member of a SaaS-oriented company – free your mind; enjoy your options; pick what's best for YOU.


Pressure always exists, only it has moved to the customer-facing side of the moon. It's the dark side which is now pressure-free.


Post a Comment