Nick Gall's Weblog
[NOTE: I have moved. My new blog is ironick.typepad.com.]
        

Nick Gall's Weblog

Tuesday, February 24, 2004

The World's Gone Crazy with XML.
A recent interview with Sun senior IT architect Victoria Livschitz has raised a bit of controversy over her negative remarks about XML and Web services, which I quote here:

The world has gone crazy with XML and then web services; SOAP and UDDI are getting enormous attention, and, yet, from a software engineering standpoint, they seem to me a setback rather then a step forward. We now have a generation of young programmers who think of software in terms of angle brackets. An enormous mess of XML documents that are now being created by enterprises at an alarming rate will be haunting our industry for decades. With all that excitement, no one seems to have the slightest interest in basic computer science.

I posted the following feedback to the article:

The comments expressed seem simplistic and vague. For example:

I envision a programming language that is a notch richer then OO. It would be based on a small number of primitive concepts, intuitively obvious to any mature human being, and tied to well-understood metaphors, such as objects, conditions, and processes. I hope to preserve many features of the object-oriented systems that made them so safe and convenient, such as abstract typing, polymorphism, encapsulation and so on. The work so far has been promising.

Who hasn't envisioned an intuitive programming language? The problem is, you can't make a language that intuitive, general purpose, and yet formally rigorous. I'd love to know more about the "work" being referred to.

Also, I can't believe that the discussion regarding expressing processes did not turn to process calculi like pi, or at least business process definition languages like BPEL. These are the languages treating processes as first class entities.

Nor did the conversation touch on any of the other proposed "new approaches" such as AOP, SOA, Model-Oriented Architecture, domain-specific languages, etc.

When the one approach that many people find much more intuitive presents itself, XML Web services, Livschitz mistakes its explosive popularity for a problem! The reason for the explosion is that it is the more intuitive "language" that Livschitz is looking for.

I'd like to understand better how Livschitz believes XML Web Services is a step backwards "from a software engineering" standpoint. Or how it leads to people lacking "interest in basic computer science." If anything, the exact opposite is true, XML Web services is helping bring about better software engineering, because more loosely coupled, and is opening up new vistas in computer science.


9:40:45 AM    comment []  trackback []

Monday, February 23, 2004

Etymology of Die.
I am deeply intrigued by Richard Langlois' concept of a die being a kind of knowledge that is spread across all the items made from the die. It brings to mind structure (the die) transforming "raw" structures into identical structures. It is replication. It is even self-replication from the point of view of the die. But it is not self-replication in the sense of the die itself carrying out the replication process. Instead, some machine uses the die in a replication process. Note that in this sense, the die is acting as a kind of catalyst: it participates in a process of production without being used up in that process.

Intrigued by the concept, of course, I had to understand better the etymology of the word. The following is from Webster's Dictionary of 1913:

Die , n.; pl. in 1 and (usually) in 2, Dice (dīs); in 4 & 5, Dies (dīz). [OE. dee , die , F. , fr. L. datus given, thrown, p. p. of dare to give, throw. See Date a point of time.]

The following is from the Online Etymology Dictionary:

die (n.) - c.1330 (as a plural), from O.Fr. de, of uncertain origin, perhaps from L. datum "given," pp. of dare, which, in addition to "give," had a secondary sense of "to play" (as a chess piece); or else from "what is given" (by chance or Fortune). Sense of "stamping block or tool" first recorded 1699.
data - 1646, pl. of datum, from L. datum "(thing) given," neuter pp. of dare "give." Meaning "transmittable and storable computer information" first recorded 1946. Data processing is from 1954. Database formed 1962, from data + base.
date (1) - "time," c.1330, from O.Fr. date, from M.L. data, noun use of fem. sing. of L. datus "given," pp. of dare "give." The Roman convention of closing every article of correspondence by writing "given" and the day and month -- meaning "given to messenger" -- led to data becoming a term for "the time (and place) stated." The meaning "to give" is also the root of the grammatical dative (M.E.), the case of giving. Dateline in the journalism sense is attested from 1888. Phrase up to date (1890) is from bookkeeping. Dated "old-fashioned" is attested from 1900. Date (n.) "romantic liaison" is from 1885, gradually evolving from the general sense of "appointment;" the verb in this sense is first recorded 1902. Meaning "person one has a date with" is from 1925. Blind date first recorded 1925, but probably in use before that. Date rape first attested 1975.

First, I am very pleased that die and data are from the same root in that both are "given." In this way, both act as "fixed points" or invariants. Second, one can see that date and data are from the same root, and that data originally meant simply: "the time and place stated." This means that data originally referred to information we would call metadata today, i.e., the time and place of origin of a message.

The mystery here is how die in the sense of a gambling cube gave rise to die in the sense of mould or stamp. According to the Oxford English Dictionary the first citation for the latter sense was 1699. My guess is the shape of such a stamp was in the shape of a cube, with looked like a die in the former sense.

All of this ties back to the concept of information (which is what knowledge is) as that which gives form (from informare: to give form). Information, or knowledge spreads when it can be broadly used in an environment. No need to press a thousand copies from one stamp if the market will absorb only ten. The "success" of a piece of information, a form, is the number of its replicas in the environment. Life is just a particular kind of replicating information or "form" (life "form").

This replication is success simply in terms of increasing returns on investment. In the most general sense, the investment is one of energy. For a given energy investment in creating the durable die, one can form replicas from that die with less energy than forming each item individually. From this point of view, entropy favors the creation of structures like dies and like life forms that lower the energy required to mass produce forms of energy that are more easily used (e.g., consumed). As I quoted from Stanley Salthe earlier in my blog: The punch line -- form results from, and further mediates, convective energy flows, which more effectively degrade energy gradients than would slow frictional conduction, like diffusion.


7:02:24 AM    comment []  trackback []

Wednesday, February 18, 2004

Contingency, Irony, and Fashion!
I love this concept. Open a store for only a year, even if it is doing great business. Turn retailing into a limited time event. Highlight the ephemeral nature of fashion with an ephemeral store. The article also highlights the solidarity aspect of the approach. These "Guerrilla Stores" rely on the solidarity of personal word-of-mouth for marketing/advertising. Very retro.
5:21:56 PM    comment []  trackback []

My definition of Service-Oriented Architecture
I recently realized that I had never given my definition of Service-Oriented Architecture (SOA) on my blog. Here it is:

[SHORT DEFINITION]

An SOA is a dynamic, modular, general purpose, extensible, federated, interoperability architecture based on internetwork concepts such as identifiers, formats, protocols, envelopes, and intermediaries.

[LONG DEFINITION]

An SOA is a dynamic, modular, general purpose, extensible, federated interoperability architecture that defines all processes as services delegated to service providers via generic envelope-based service interfaces. Such generic interfaces describe only the interactions between service providers and service consumers and solely in terms of extensible identifiers, formats, and protocols (IFaPs). Such generic service interfaces are intended to be dynamically bound to a diverse array of specific concrete service transport technologies and endpoint service provider technologies that are both federated by envelope-processing service intermediaries.

The advantage of my definition is that it is general enough to encompass the Internet Architecture, the Web Architecture, the Web Services Architecture (aka WS-*) and even the (Intermodal) Containerized Shipping Architecture (where the container is the envelope and the "envelope-processing service intermediaries" are intermodal hubs) as SOAs. What distinguishes the Web Services Architecture from the rest is simply the degree to which it is dynamic, modular, general purpose, extensible, and federated.


6:26:24 AM    comment []  trackback []

Building block standards.
I am following up on my federated specifications entry with a new term that seems to have a fair amount of use: building block standards. Its google number is 199. I came across it reading the intro to the XLANG spec:

Full specification of business processes requires the specification of a number of different aspects: document schemas, message envelopes, reliable delivery, security, endpoint properties such as certificates, reliability requirements and service windows, and even legal agreements and personal contact information. Many of these aspects are involved in multiple web service usage domains. Building monolithic standards that address entire usage domains invariably creates egregiously different standards for requirements that are common to many domains. We believe it is better to develop a collection of building block standards that can be combined into domain specific standards as required. This simplifies implementation, interoperability, and compliance verification, making the development of web services standards and infrastructure much more practical and cost effective.

This one paragraph weaves together much of my thinking on the topic. First, it points out the "full specifications" require the specification of a variety of "aspects". (This led me to think of the terms "aspect-oriented specifications and "aspect-oriented standards". Although no one appears to be using "aspect-oriented standards" yet, "aspect-oriented specifications" is widely used -- its google number is 799.) Second, it points out the core problem with "monolithic standards": it fragments requirements common to many domains. My favorite example of this are the thousands of "specs" for mailing address -- one for each spec that has a mailing address in it (e.g. PO, Shipping Notice, Invoice). Instead of embedding a mailing address subspec, these specs should reference something like the OASIS eXtensible Address Language (xAL) to deal uniformly with the address aspect.

Third, it highlights that the building block standards can be combined into domain specific standards, which is in line with my belief, and apparently Microsoft's (see Steve Cook's article on Domain-Specific Modeling. Note however, that the building block standards are also "domain specific standards." Thus they are another example of what is often referred to as general specialties, which include as a subset general purpose technologies. (See Langlois, Knowledge, consumption, and endogenous growth.)

(Note to self: need to clarify general specialties. Two dimensions are being described: vertically, the spec does only a specific function, but horizontally, it has general applicability.)


5:53:23 AM    comment []  trackback []

Tuesday, February 17, 2004

The most important concept in SOA.
Read this on Steve Maine's blog:

I’ve said many times that open content is one of the hallmark characteristics of the service-oriented model. In fact, if someone held a gun to my head and demanded to know what the most important concept in SOA was (this happened to me just last week),  I would answer “open content” because it underlies so many other concepts in SOA. I think of the extensibility-via-single-complex-parameter pattern as a way of bringing the open content model to service signatures.

I agree, though the close runner up (by a nose) is open implementation. I just coined the term to describe how SOA enables application-level content and process (aka protocols) to be bound to almost any implementation-level mechanisms via infosets and SOAP bindings. The rest of his entry is well worth a read. He also has a good entry on the pipeline architecture of Indigo.


2:50:34 PM    comment []  trackback []

A nice comparison of HTTP (REST) and SOAP.
Saw this on Mike Deem's blog:

I think the SOAP extensibility model is an improvement over HTTP's. SOAP's extensibility model allows for application protocols to be layered on top of SOAP in clean, composeable, and well defined ways. In effect, SOAP is an application protocol platform.

Though I might quibble with the words "layered on top of" instead of "woven into" and "platform" instead of "architecture" or "framework", Mike definitely gets it. The whole entry is worth a read.


1:09:34 PM    comment []  trackback []

Monday, February 09, 2004

Symmetry and Symmetry Breaking.
The previous post re the dialectic between standardization and innovation is just an example of the dialectic between symmetry (i.e., statements that some properties are invariant under certain transformations) and symmetry breaking. (Click the title of the entry -- and all of my entries -- for more information on symmetry and symmetry breaking.)

Standards represent symmetry (invariants or fixed points) and disruptive innovations represent symmetry breaking. (Sustaining innovations represent transformations that preserve symmetry.)


7:23:25 AM    comment []  trackback []

Friday, February 06, 2004

The dialectic between Standardization and Innovation is the fundamental source increasing returns.
I already got some great feedback from two law school friends (!) re my previous entry on standardization that has helped me to substantially clarify my thinking. (Leave it to those sharp lawyers to poke holes in arguments). First, let me just say that my entry title was a deliberate provocative poke at the conventional wisdom that innovation is the fundamental source of increasing returns.

Though I alluded to a "virtuous circle" in my entry, I did not clearly understand the details of that circle. I think I have a better understanding now. First, I am using "standard" and "standardization" in a very broad way. As Rorty would say, I am redescribing them, and the test of my redescription is how useful it is in thinking more clearly about things. A "standard" in my vocabulary is nothing more than some degree of coordination among two or more systems (or one system with itself across time). If you think this an unreasonably broad definition, see the ASTM definition of standard, which is almost as broad: A standard is a common language that promotes the flow of goods between buyer and seller and protects the general welfare. Note how this definition is circular to the degree that common implies standard.) Clearly there is a dialectic process going on between system and environment involving standardization and both are being standardized by the dialectic. It is not just the system that changes, the environment (in the sense of the extended phenotype) changes as well, e.g., the dam built by the beaver.

But a much more important dialectic is going on as well: a continual transition from standardizing (coordinating) to innovating (disrupting the established coordination). It is this dialectic (or dynamic equilibrium?) of standardization/innovation, stasis/change, or solidarity/irony (for you Rortians) that is the fundamental source of increasing returns. Thus the speed with which a system can shift from a standard to an innovation, and the range of innovations it can generate both determine its evolvability, which is the source of increasing returns.

Once again, I see dualities where once I saw opposites. Perhaps the most satisfying duality is the solidarity/irony duality. I never found Rorty's exhortations to embrace solidarity very convincing. I now see clearly that irony, which has intrinsic appeal to me (and most everyone) cannot exist without a "solidarity" to react against.


5:18:21 PM    comment []  trackback []



© Copyright 2006 Nicholas Gall. Click here to send an email to the editor of this weblog.
Last update: 9/21/2006; 5:49:56 AM.