"I have a mind like a steel... uh... thingy." Patrick Logan's weblog.

Search This Blog

Saturday, April 19, 2003

Neo-Cons Have Long Had Damascus In Their Sights

As speculation about a U.S. invasion of Syria reaches a boil, it is helpful to look for hard clues. Many of the same neo-conservative hawks who campaigned for war against Iraq have signed reports in recent years that call for confrontation -- not mere engagement -- with Syria...

A 1996 report, titled "A Clean Break: A New Strategy for Securing the Realm," prepared for Israel's Likud Party leader (Binyamin Netanyahu) by Richard Perle, Feith, Wuermser and others urges focusing not only on removing Iraqi President Saddam Hussein from power, but doing so in the context of a larger strategy against Syria.

Wednesday, April 16, 2003

Whose Needs?

This article on xml.com states...

The discussion... will help readers recognize the need to coordinate a sequence of SOAP requests and responses, so that the total process looks like a business transaction.

(My underlining of the word "need".)

So whose needs are being represented here? Who actually needs this capability?

A bad habit we have is to avoid questioning the underlying assumptions that we build our concepts on. Distributed transaction protocols are not a "need". They are a means to an end. Why are we trying to recreate them in SOAP?

An alternative is compensating transactions which are also part of a proposed SOAP extension. This is a more practical alternative.

The question then becomes why do compensating transactions need to be part of a wire protocol? Whose design will fit my needs? How do you know?

Separation of concerns should be a key architectural principle. Can we keep the eager standards committees at bay long enough for clear evaluations?

Blackboard vs. Pipes and Filters

Abstracts from the book Pattern Oriented Software Architecture shed light on the difference between a "service oriented architecture" and a "space based architecture".

The Pipes and Filters pattern provides a structure for systems that process a stream of data. Each processing step is encapsulated in a filter component. Data is passed through pipes between adjacent filters. Recombining filters allows you to build families of related systems.

The Blackboard pattern is useful for problems for which no deterministic solution strategies are known. In Blackboard several specialized subsystems assemble their knowledge to build a possibly partial or approximate solution.

Blackboard operations are axiomatic in the sense that they can be used to compose a Pipes and Filters architecture and a wide variety of others. For example, how would you implement editing a set of shared documents using SOAP, including features like notifications when changes are made, a history of changes made, concurrent translation of the text components into multiple languages, and any arbitrary set of other operations?

I see two general choices for doing this in SOAP:

  • Create a new WSDL description and SOAP interface for each operation.
  • Create a generic WSDL description and SOAP interface once, whose arguments denote the operation and whose values expand as operations are added.

    You also have to specify how coordination works to prevent processes from stomping all over each other's work. And of course you need to decide how to structure the shared documents to facilitate the desired mode of sharing.

    However using a generic document space (a Blackboard) with an axiomatic set of operations for access and coordination, the problem is reduced to that last step in the pure SOAP approach, i.e. you simply decide how to structure the shared documents to facilitate the desired mode of sharing.

  • Tuesday, April 15, 2003

    Lambda the Ultimate Label

    Here's the PDF if you want it.

    The Principle of Most Astonishment

    What does the EJB specification have to do with the WS-xxx specifications?

    Alan Knight offers several reasons against using Entity Beans, and anything but the simplest form of Session Beans, if you have to use EJB at all.

    The root of the problem is the EJB standard was developed primarily in a paper specification (and I use that term loosely, having reviewed several drafts of the initial EJB spec). Had the standard been developed based on real experience with prototypes, I wonder if the result would have been as cumbersome?

    How many prototypes are the WS-xxx specifications based on?

    War, Rhetoric, Politics, Religion

    Philip Greenspun:

    If a president is in the middle of a war it is difficult to mount political opposition to that president without appearing disloyal and unpatriotic. Focusing media attention on a war prevents reporters from asking questions such as "How come William T. Esrey and Ronald LeMay, the two top executives at Sprint, deserved to get paid $311 million for their services to shareholders when the company's business and stock are in tatters? And then why is it fair that Joe Sixpack has to pay income tax but Esrey and LeMay didn't have to pay tax on their $311 million income? Would it have been fairer to divide the $311 million--equal to half of Sprint's 2002 profit--among the 13,000 workers that these guys laid off--$24,000 per worker--or possibly to the shareholders(!)?"...

    Why have the Jews through the centuries made such good all-purpose targets for hatred? It is difficult to understand how Jew-hatred started so let's focus on the factors that have made it endure: (1) concentration in residence, (2) concentration in occupation, (3) smallness in number, (4) military weakness.

    That only about half of Americans hold some of the same beliefs about Jews espoused by the Nazi party is comforting until one one reflects that Hitler was able to hold power in Germany with only 33 percent of the vote in 1932 and 44 percent in 1933.

    ...The United States Department of State estimates that "by the year 2010, America's Muslim population is expected to surpass the Jewish population, making Islam the country's second-largest faith after Christianity".

    Aspect Oriented Programming

    Jorg Kienzle and Rachid Guerraoui report on an attempt to build a transaction- processing system with AspectJ, where the key requirement is that transactions be executed completely or not at all (so that the system cannot debit one account without crediting another). They found it difficult to cleanly isolate this property as an aspect.

    Aspect Oriented Programming is offered as a successor to Object Oriented Programming. The quote above illustrates that we have not found all the principles for when and how to apply AOP.

    AOP is not addressing the right problem:

    • The source notations, e.g. Java, even with some "aspects" of a program separated into distinct units, are still overly complex for most problems.
    • The "computational units" like SOAP calls and SQL transactions, no matter what notation, are also overly complex and inappropriate for most problems.

    Hypercard simplified the computational model for GUI applications with simple single-user databases.

    Ward Cunningham's WikiWikiWeb simplified the computational model for Web applications with simple multi-user text databases.

    What is the Hypercard or the WikiWiki equivalent for Web Services?

    I have some ideas but I wonder what you think. Edit your thoughts into the page at WikiWikiWebServices.

    OOP is *not* about classification

    Look at this picture.

    This is not what object-oriented programming is about. OOP is not about some kind of universal classification mechanism.

    The Circle-Elipse discussion pops up on OOP lists more than once a year. The problem is that OOP is not supposed to resolve all knowledge representation issues. There is no OOP notation that can be used to represent all relationships I can imagine.

    OOP is about computation, and so a Rectangle class in Smalltalk is not a "Rectangle" by the mathematical definition. The class Rectangle is a solution to a problem that is narrower than the mathematical definition.

    OOP is a tool for solving computational problems, and so in any given system it may serve my purposes to have more than one kind of Rectangle class (in Smalltalk, I'd use namespaces to refer to specific classes). I would implement each class to solve a specific problem.

    Whether or not I make some class named Circle be a subclass of some class named Elipse should be a decision made within the context of a specific computational problem.

    So we should put this discussion to rest and deal with the real problem of OOP: even as a computational notation, modern OOPs are by and large too complex. They make us say more than is necessary to solve most problems they're applied to. Forget the Elipse-Circle discussion. There are real problems to deal with.

    Jabber and Liberty

    News on the Jabber front from Phil Windley.

    A question: if you have Jabber, do you need SOAP?

    Please add your comments on this JabberAndSoap Wiki page.

    North Face Learning

    Phil Windley refers to North Face Learning as a pioneer in accelerated computer science education.

    The kind of acceleration described by Philip Greenspun is desirable.

    My concern about what little information is available at the North Face Learning web site is whether the curriculum is computer science in general or simply training on today's popular hardware and software technologies. The industry needs more people who can deeply think and create to lift us out of this technological lull and into a real Cambrian Explosion that puts previous (and not really technological) Dot Bomb Era to shame.

    If North Face Learning can pull that off I will be impressed.

    Blog Archive

    About Me

    Portland, Oregon, United States
    I'm usually writing from my favorite location on the planet, the pacific northwest of the u.s. I write for myself only and unless otherwise specified my posts here should not be taken as representing an official position of my employer. Contact me at my gee mail account, username patrickdlogan.