J. Paul Morrison


Paul is jpaulm on del.icio.us - this is acting as his blog right now.
He also has a profile on LinkedIn.

Web site about Flow-Based Programming

General

Paul was born John Paul Rodker, the son of John Rodker, writer, translator, and publisher (he helped get James Joyce's "Ulysses" published), and the artist, Barbara Stanger MacKenzie-Smith, in London, England. As far as we know, all the Rodkers in the world are related - the name seems to have been invented for (or by) just this one family! There are now Rodker descendants spread from Vancouver, B.C. to Tasmania - it might be called the "Rodker diaspora"! John Rodker died in 1955, while Paul was still at university. There is a good biography of John Rodker on Wikipedia.

You can walk the Rodker family tree, or at least the part we have figured out, by clicking on the Rodkers database, and entering a name to search on, for instance John Rodker, and clicking on Ok. The software also supports other search criteria and relationship calculations, and even lets you change your preferred language. This is all powered by the GeneWeb program developed by Daniel de Rauglaudre at INRIA, France. Thanks, Daniel!

Paul's mother was a painter, mostly doing paintings on commission, and a number of her paintings are hanging in various country houses all over England. One of them is (or was) on display at the Tate Gallery in London. Another one, of a merry-go-round in Russia, we would love to track down - Paul's mother always regretted not knowing where it ended up!

A family tree which includes Paul's mother and many of her ancestors is being maintained by one of Paul's second cousins, Howard Smith, based in Australia. It now goes back 9 generations on Paul's mother's side (to one Thomas Stanger, ca. 1610), and can be accessed starting at Barbara Stanger Mckenzie-Smith.

Paul's mother was trained at the Perse School and the Slade School of Art, and as a young person was involved in the Bloomsbury group. One of her closest friends was the lithographer, Trekkie Parsons, who became the long time lover of Leonard Woolf, Virginia Woolf's husband, after Virginia's death. Paul remembers being taken to see Leonard at his house in the country. He was also told that Moura, Countess, later Baroness, Budberg, was asked to be his god-mother, as she was a friend of the Rodkers, but Paul has no recollection of actually meeting her, although his half-sister, Joan Rodker, who is sort of the family archivist, knew her well.

It is with great regret that we have to report the sudden death of Paul's other half-sister, Camilla Bagg, on December 1, 2007. She was the second-born of John Rodker's three children, but the first to pass on. Together with Nathalie Blondel, she edited a book about her mother, Mary Butts.

On another note... Paul has inherited a children's reference book that was owned by the above-mentioned John Smith's son, also named John Smith, called "A Museum for Young Gentlemen and Ladies - 15th Edition", dating from the mid 1700s, which was apparently very popular at the time. A copy of this was among a set of books that one Jane Barnes was arrested and sentenced for stealing, in 1783. She was fined 1 shilling and imprisoned for six months in the house of correction. This book was apparently never digitized, so Paul has now done this, and the result can be found at A Museum for Young Gentlemen and Ladies. It is also in process of being uploaded to Project Gutenberg. In case you were wondering, he will not be using the "ſ", "ſ" - "long s" - except for the Table of Contents, so as not to interfere with text searching.

Paul's last name was changed to Morrison after his parents' divorce and his mother's subsequent marriage to Edward A. Morrison III, an American citizen who signed on with the Royal Air Force, and eventually reached the rank of Wing Commander towards the end of the war (WW II). For about the last 30 years of their lives, Paul's mother and step-father lived quietly in N. Wales, in the area around Dolgellau, Gwynedd.

Paul was born in London (he thinks in St. John's Wood), and developed pyloric stenosis at about 5 or 6 weeks of age. He was successfully operated on for this problem, and a few years later was shipped out to Marshfield in Gloucestershire for the duration of the war, where he was educated by various governesses (some younger and some older!). After the war, he was sent to the Dragon School in Oxford, where his lifelong interests in languages and science fiction got their start. He would like to recognize the impact their brilliant science teacher, Gerd Sommerhoff, had on his life - Gerd pioneered what was really an early form of computer-based training using cards, and imbued his students with a love of science which has stayed with Paul all his life. From the Dragon, Paul went on to Eton College as a King's Scholar, where he specialized in Classics (under protest!), followed by 3 years at King's College, Cambridge, where he got a MA in Archaeology and Anthropology, specializing in Social Anthropology. This subject was recommended to him by the then provost of King's, Noel Annan, and it turned out to be a perfect fit with his interests. In between public school and university, he spent a summer dabbling in Sumerian, general linguistics, Impressionism and a bit of topology, at the University of Innsbruck, Austria. (By the way, if all those "Kings" sound a bit repetitious, Eton and King's College were both founded by the same king, Henry VI.)

After leaving Cambridge in 1958, he decided to make a move into the newly emerging computer business rather than become an anthropologist, and joined IBM (UK) in January, 1959. The first computer he programmed was an IBM 650 - 2000 words of memory on a rotating magnetic drum! He eventually worked for IBM for 33 years in 3 countries - initially in England and the US, but for most of his career with IBM, in Canada.

He was one of the designers and builders of the Bank of Montreal's "Mech" on-line banking system, which is still going strong 30 years later! Earlier (around 1967) he had developed a precursor of IBM's VSAM access method by combining the ideas of compressed indices and "look-aside stacks" (now usually called "caches"), both of which were being worked on at that time by colleagues of his (Kent Salmond and Bill Vermillion, respectively), with the concept of the "balanced tree" or B-tree (which he had read about). This data structure was used for IBM's internal Engineering Information System, and proved very powerful (and long-lived). Soon after moving with his family to Montréal, Québec, in 1968, some other ideas that he had been playing with earlier flowered into what is now called Flow-Based Programming (see below).

Paul is now an independent contractor and consultant, living in historic Unionville, Ontario. He has been using IBM S/390 (now z90) High Level Assembler Language for almost 40 years, but he has also coded in PL/I (about which he knows quite a bit), PL/X, APL, and REXX, and can also get by in C++, Java and, more recently, C#. During the current lull in his contract work, he has been working full time on Flow-Based Programming. Paul hopes that interested individuals will contact him about ideas and possibilities in this expanding field.

Note from Paul: Please, if you email me, make sure it has a meaningful subject line - sometimes it's hard to distinguish the good stuff from the junk mail!

Joe and Kim Morrison in Beijing

Paul's son and daughter-in-law have just returned from a stint in Beijing, and have built an entertaining web site describing their experiences. It can be viewed (and listened to) at The Sino File.

Joe has developed a prototype of a language for developing reliable, scalable, distributed applications quickly and easily. A description of it can be found at Eleven.

Joe is also maintaining a blog on programming topics.

Flow-Based Programming and its History

During his time at IBM, Paul worked on database systems, programming languages, rapid prototyping, natural language support and text retrieval systems. During his long career with IBM he always felt that it is vital for the IT industry to find a better way to develop applications, and that it is even more important for applications to be built so that they are maintainable, to cope with changes in the business requirements and processing environment. Over the years he came to realize that none of the approaches currently in use in the industry have provided that necessary level of improvement, and that in fact there are fundamental reasons why this should be so.

Around 1970, he discovered what he and others have come to believe is an extremely significant technology for increasing programmer productivity and producing more robust, reusable and maintainable code. This new approach eventually came to be known as Flow-Based Programming and is described in his 1994 book, Flow-Based Programming: A New Approach to Application Development (see Publications below).

It describes an approach to developing applications, not in terms of the old von Neumann paradigm, but based on the concept of multiple asynchronous processes communicating by means of data streams, which in some ways is even older! An application is viewed as a system of data streams being transformed by processes, rather than a single "dumb" actor doing one thing at a time until all the data is processed. This requires a paradigm shift which profoundly changes the way the developer has to look at applications, and, although this concept is similar to concepts current in the area of distributed and parallel systems, up until now it has not been recognized that it is also an extremely productive approach to improving programmer productivity and application maintainability.

Surprisingly, systems built this way actually perform better than those constructed using conventional techniques. Paul and his colleagues used this concept as the basis for a number of software packages, which are described in Paul's book. The Mech system, referred to above, uses an early version of these concepts which in fact has proven to be extremely robust, and has been in continuous use processing millions of transactions a day, for 30 years now (as of 2007) - large business systems are constantly changing, and the kind of modular structure that is central to Flow-Based Programming provides both the flexibility needed for this process to be successful over time, as well as a number of ways of tuning the system for optimum performance.

A later implementation, called DFDM, was developed by IBM Canada for the Japanese market, so that IBM could offer an IBM competitor to a number of home-grown Japanese dataflow products. It contains a number of powerful application development facilities, and also supports the Kanji character set. A number of licenses were sold in Japan.

In his research for his book, Paul has discovered that Flow-Based Programming (FBP) and its related concepts are constantly being rediscovered independently by different groups, both in business and in academia, and one of the chapters in his book attempts to bring together into one place a survey of a number of such systems, and to describe the similarities and differences between them. This can be accessed by clicking on Cognates . A much longer and more up-to-date list can be found on the FBP wiki.

One of his major motivations in writing his book was to try to start a dialogue going between the various groups pursuing these different but related research and development efforts. He would very much welcome feedback on his book and/or on these concepts in general.

More about Flow-Based Programming.

You are also urged to participate in the Flow-Based Programming Wiki (FBPWiki).

"Smart" Data

Another of Paul's concerns is the mismatch between the data types used in the real world and the data types supported by most programming languages. Most numbers in the real world have units attached to them - for instance, distances are in feet, metres or parsecs, bank balances and prices have to be in some currency, dates and times have to be relative to a given time zone, and so on, but most computer languages treat all quantities as if they were dimensionless. Most business values in computer applications do not even have an explicit precision, as floating point is not appropriate for them, so this knowledge is only held within the program code.

A few years ago, one of the Mars landers was lost because of a mismatch in units, and there is the famous case in Canada of the so-called "Gimli Glider", which is well worth reading about as a cautionary tale! It is described in some detail in "Smart Data" and Business Data Types.

Paul describes some aspects of this problem in Chapter 11 of his book - see Data Descriptions and Descriptors - "When we...", which was based on his experiences with earlier implementations of FBP. More recently (2000), Paul's friend, Denis Garneau, of IBM Canada, designed a collection of Business Data Types for a Java business application, and Paul had the privilege of building the classes and methods. This was very satisfying to him, as these classes provide the first real start at solving these problems that he has ever seen, and, more importantly, that has been used in a real-life application.

Paul and Denis are currently working on extending these concepts to a concept of "smart" data that will capitalize on Java compile-time type-checking to allow the building of more reliable systems that match real life more closely. For a web page describing the present state of this work, click on "Smart Data" and Business Data Types. This will be extended as time permits. A page has also been added describing a possible approach to taking advantage of compile-time type-checking in the area of physical units - Physical Units. Feedback would be welcome!

Enthusiasms

Programming languages and development methodologies, linguistics, space flight and science fiction, West African and Caribbean music (Paul played the guiro in one of the late, great Fela Anikulapo Kuti's first bands, in England - probably the Highlife Rakers, although Paul doesn't remember the name of the band), and as many areas of science as he can keep up with. During the period when he was living in London, he was a member of the Asian Music Circle, and of the British Interplanetary Society, whose president at the time was the distinguished writer and visionary, Arthur C. Clarke. Among the formative influences in his life, he would like to acknowledge his wife, his mother, Christian Science (one of his teachers was "Fougasse", the noted British cartoonist), Recovery Inc., the Dragon School, Cambridge, and perhaps Eton (in a negative sort of way).

A shameless plug for the writings of a friend - if you like detective stories and science fiction, take a look at Checkmate Fiction by George Condon, or his thought-provoking, and amusing, blog, where he shares his thoughts about politics, movies, and everything else.

Publications

Data Responsive Modular, Interleaved Task Programming System, IBM Technical Disclosure Bulletin, Vol. 13, No. 8, 2425-26, January 1971

Data Stream Linkage Mechanism, IBM Systems Journal, Vol. 17, No. 4, 1978

Flow-Based Programming: A New Approach to Application Development, Van Nostrand Reinhold, NY, 1994.
ISBN 0-442-01771-5

Ed Yourdon has kindly added this book to his list of "cool books", and it is listed at Amazon Books and a number of other on-line bookstores. All new copies of this book have now been sold, but there may be some second-hand copies available. Paul has also talked to Lulu and Amazon's BookSurge, but it is not clear whether this kind of service would be appropriate.

Contact Information


Email:

@
paul.morrison rogers.com

Phone number:

(905) 479-4056


17,343 visits