|
-
Many kinds of computing are "append-only". By that, I mean that observations about the world are recorded in perpetuity. Derived results from those observations may be calculated on demand (or kept as a running tally) but you can't rewrite history. I spent much of my career working on the transaction plumbing for database systems. In these systems, all changes are made to a transaction log. The log describes both the before and after images of all record changes made by each transaction. The log is appended to at a rapid clip (indeed, some of the fun performance optimizations in achieving the astonishing throughput of SQL Server and other database systems are about optimizing the writes to the tail of the log). You NEVER modify the log other than by appending to the end of it. You archive the log for posterity. In the past, you might delete old log files after many months or years. Nowadays, legislation makes that more problematic. Well, if EVERYTHING in the history of the database is represented in the log, what is the actual database itself? Well, it is a rollup of a view of the changes represented in the log. The database is a cache of a subset of the log (the subset that represents the latest updates to all the records by the transactions that happened to commit). So, accountants don't use erasers or they end up in jail. When an entry is made in the accounting records, it will live forever. There may be another entry added to ensure that a mistake is corrected but the mistake will not be erased. The summary of the impact of all of these accounting entries will occasionally be tallied (e.g. your end-of-month balance for your checking account). Now, the June statement may not reflect some outstanding (and uncashed) checks you've written but those are likely to show up in July's statement. Quarterly results issued to corporate stockholders will usually include some small correction to earlier quarterly results because of small transactions that legally occurred in the earlier quarter but whose accounting information wasn't rolled up in time for that quarter. There is uncertainty in the result and that is acknowledge by the mechanism of republishing corrected results. The Append-Only View of Distributed Single-Master Computing Distributed work is frequently represented as append-only artifacts on the interoperating systems. When you deposit your neighbor's check in your account, an entry is made into your bank account showing a deposit and some linkage to the check and your neighbor's bank. If your bank is smart, a hold is placed on the funds. When the physical check is shipped to the clearing house to be sent to your neighbor's bank, his bank identifies the account and attempts to debit the account. If the check clears, funds are moved from bank to bank and the hold is released on the funds (admittedly, sometimes these holds are timeout based rather than linked to the clearing of the check). If the check bounces (it is, after all, from your neighbor), a debit is appended to your account (both for the amount of the check and for the fine associated with having an idiot for a neighbor). None of this involved deleting or updating ANYTHING except the interim rollup balance of your checking account which could be calculated on demand. Frequently, a new interim balance is just appended to the bank account. Lots of today's computing follows this pattern. Inventory balances are maintained by tracking incoming and outgoing changes to the inventory. Sometimes, the inventory balance (in a centralized system) is characterized as "At this time on this date, the inventory for product-X is amount-Y". In this fashion, the information about the balance is true in perpetuity. It just becomes as artifact of history. Knowledge and Event-Horizons In a replicated system (say there are N replicas with an opinion of the balance), it becomes more complex. Imagine a world in which independent actions are taken by replicas which are making guesses (see "Memories, Guesses, and Apologies") and the knowledge of these guesses is gradually oozing back-and-forth across the replicas. By all the replicas sharing their knowledge of the changes that they have made over time, you end up with two opinions chasing each other within each replica. First, there is a point in history prior to which your replica-K has complete knowledge of what ALL the other replicas have done... "Gee, I haven't heard from replica-J since 9AM last Wednesday but prior to that, I know what all N replicas have done." That means YOU have complete knowledge of what happened to the inventory of Product-X up until 9AM last Wednesday (assuming a tight control of the set of N replicas). Since then, you have partial knowledge. Now if I hear from Replica-K about his changes that have occurred since last Wednesday, I can advance my uncertainty window to Wednesday at 10PM which was the last time I heard from Replica-1. This is an ongoing way to cope with independent decision making and the coping with uncertainty. It is an extension (for multi-master decision making) on the way in which a running balance is managed in a bank account (which processes "the truth as of a point in time" in a centralized fashion). Now, you say, I am MAD! Stark raving MAD! How can people cope with the chaos and confusion. Well, as I pointed out when discussing my take on the CAP Conjecture, consistency is what people are frequently willing to sacrifice to ensure unfettered availability in the face of partitions. [As an aside, in my misspent youth, I was chief architect and lead programmer for Tandem's NonStop Transaction Monitoring Facility (TMF) which did the database logging and recovery for Tandem's NonStop SQL. Think of this as the data-protecting and preserving part of the super-duper high-availability system of its day. On the (really pretty rare) times when a system was stuck and needed help to get going, early in my tenure I worked hard to guarantee transactional consistency. I wanted to ensure we did NOT bring the database back online unless we correctly processed all the committed and aborted transactions and recreated a pristine and correct system. As I gained more experience, I noticed a large percentage of the customers (but certainly not all of them) just plain wanted the durn thing up and running... They would figure out the mess later. As I matured (well... at least aged), I learned to ask at the beginning of the crisis whether the priority was availability or the priority was correctness. I was surprising the number of times availability was more important. ] So, two interweaving themes are being presented: 1) You don't really ever delete ANYTHING. As a matter of fact, you don't update anything either... You just accrete new knowledge and distill new implications based upon your increasing knowledge. 2) People (and applications) will act on their partial knowledge and then, when learning new facts, take new actions. Sometimes, you realize you shouldn't have taken the action but, gee, it was a great decision based on what you knew at the time. Since you weren't omniscient, you could have perfect knowledge and could make perfect decisions... Shit happens and you deal with it. Idempotence and the Lack of Erasers One final observation... If you never forget anything and never change it, providing idempotent processing takes a completely different twist. You wrote everything down and, if you hear it again, it's just old news to be dropped on the floor. That's cool. More to be written soon about: 1) Idempotence, and 2) Generating output with elevated abstractions to ensure commutativity 3) Dampening algorithms in redundantly executing multi-master systems... I've added these to the list of blog entries to write... the list keeps getting longer as I think of things to rant about faster than I am ranting. Sigh. - Pat
|
-
As I watch the REST versus non-REST discussion, it occurs to me that there are a number of aspects to the debate. While I am not attempting to address all of these aspects, I think that part of the discussion revolves around DATA versus BEHAVIOR.
When people talk about CRUD (Create, Read, Update, and Delete) interfaces, on the surface, they are manipulating data. Sometimes, this implicitly causes behavior. This is a long-standing pattern that I certainly know has gone on for decades...
So, let's apply some nomenclature:
- Nouns: These are data items which get manipulated via CRUD (or equivalent) interfaces.
- Verbs: This is behavior which is implemented with a method call or some equivalent.
Now, of course, method calls get marshaled... Hmm... Is the marshaled method call a noun or a verb?
OK, let's speak about the programmatic abstraction visible to the caller... Is it a method call or is it a CRUD operation? What about the methods "Set" and "Get"? Those are obviously method calls. But their soul is to set and get property values and, hence, are really pretty CRUDdy! Gee, verbs can be nouned!
But let's look at verbing the nouns (rather than nouning the verbs).
Example-1 of Verbing a Noun: the Multi-Master Behavior-Turd
A common pattern I have seen when using multi-master database replication across occasionally connected systems is a hub-and-spoke model. The spoke systems will write a record in the database with a unique key (typically based on the spoke's system identity to ensure uniqueness). The semantic meaning of this little record (the "behavior-turd") is a request to perform work at the hub and ship down the answer in the replicated database.
The behavior-turd remains in the offline database until the system can reconnect. When the systems connect, the behavior-turd is replicated to the hub which fires a trigger. Work is done on the hub and the results of this work replicate their way back to the spoke (and all of the other spokes, too).
Important to this approach is the separation of the location in the database for the behavior-turds (basically the messaging mechanism) from the other data updated by the hub and read by the spokes. So the behavior-turds are nouns which act as verbs. Definitely a case of verbing a noun.
Example-2 of Verbing a Noun: CRUDing on the Purchase-Order
So, let's consider a purchase-order data structure. As the purchaser (or software representing the purchaser) adds line-items to the purchase-order, that will cause behavior in the back-end system. Is the purchase-order (or even the line-item) a noun or a verb? I would argue is it syntactically a noun but semantically a verb.
This happens ALL the time. A form is filled out and that implies work to do... Seems like behavior to me even if the localized action of the invoker is to manipulate some data!
Private (and Encapsulated) Data versus Public (Interfacey) Data
It is important to look at the purpose and use of the "data". When we abstract all data as being equivalent, we miss out on a lot of underlying complexity. The internal inventory balance (which may change every few seconds) is certainly not updatable by outside services. We can't assume that CRUD across boundaries carries the evil of CRUD (at a distance) over internal (i.e. private and encapsulated) data.
It has always been my inclination to model the encapsulated behavior as, well, behavior. There's a lot of evidence of successful applications that model the invocation of their behavior as CRUDdy manipulation of some externally updatable data. This is just the same as paper forms in the (before computers) normal business models. Fill out the piece of paper and hand it to the person behind the desk. Filling out the piece of paper is a CRUD operation on the data of the paper. Handing over the piece of paper causes the semantic invocation of some behavior provided by the business.
Natural Selection and Usage of Primitives
There seems to be a gravitation towards simple primitives even if the usage of these simple primitives creates a lot of complexity over time. OK... I can dig that. Back in the mid-90s, I was heavily arguing for early binding (as manifested in COM). The use of early binding drove crisp and clear semantics; goodness, light, and moral rectitude. IDispatch was clearly too fuzzy in its semantics for grown ups...
Well... I admit I was wrong! The ability to use late binding and tooling to adaptively "do the right thing" dominated the lack of crispness in the semantics. Indeed, the crispness wasn't really crispness but it was brittleness. People LIKED the late binding of IDispatch and made it work.
So, in my new state of late-life Zen, I'm not about to fuss about the use of NOUNS rather than VERBS... Just make sure you interpret the durn' things with the correct semantics and I'll loosen up over the syntax of your invocation.
In fact, I'll go so far as to say that the usage of data (NOUNS) to invoke distant behavior (VERBS) might just be a dandy thing. It may be easier to do transformations, filtering, and other mashup-esque whacking on the intended behavior.
It occurs to me that we are seeing both:
- The natural selection of mechanisms used to knit together our services (or apps or systems), AND
- The natural selection of the implementers who either:
- adapt to the new world order with its rampant flexibility and composability, OR
- retreat into a self-consistent and increasingly irrelevant view of the world.
In both cases, the forces of natural selection are driving towards malleability and "making it work" (even if the answer is approximate). This parallels the loosening of consistency I pointed out when discussing the CAP-conjecture.
It's a great time to be alive! I can't WAIT to see what else I am completely wrong about...
-- Pat
|
-
This definitely falls into the category of TMI (Too Much Information) but it seems to be the way of the blogosphere so what the hell...
I had been obese basically all my life. I remember being overweight at age 8 and enjoying overeating. I was over 300 pounds since age 30 and it just was a lifestyle of consuming too much food and being good at cracking self-deprecating jokes (some of you may remember me describing my 4XL shirts as "scalable middlewear"). In late 2002 and through 2003, I packed on even more weight. I remember a discussion with my doctor that I should consider one of those surgeries (e.g. gastric bypass) to help you lose the weight... That didn't seem like an appealing idea.
Here I am with with my friend Gurpreet Pall in early January, 2004.
In mid-January, 2004, I went to "Bed, Bath, and Beyond" and bought a digital scale. I brought it home and noticed it had a weight limit of 330 pounds. When I stepped on it, the scale said "Err". This didn't seem right so I took of my clothes and tried again... it still said "Err". This wasn't good! At the time, I was having difficulty getting my 4XL shirts and 48 inch pants on since I was too large for them to fit. I made a decision to change this.
Starting sometime in January, 2004, I started eating less. My rules were: 1) Absolutely no sweets, 2) Absolutely NOTHING between meals except water, coffee, and diet coke, and 3) Two small plates of food served (lunch and dinner) and NEVER return for seconds.
Later, I added a fourth rule: If you are still eating and you are not hungry, stop eating.
Now, as I got started, the size of the two meals was a bit larger... It took a few weeks of adjusting to get down to the meals being close to a salad plate in size. I did not (initially) exercise but I had always enjoyed walking.
It took a bit of time but I soon adapted to life with these rules. I found small portions in the cafeteria. I learned that I could order a chicken salad at a restaurant when out to dinner. Soon, the shirt and pants were a bit looser and I didn't feel the need to buy 5XL shirts and 50 inch pants. I kept this up and was determined to lose the weight. There are MANY social situations that drive people to undermine this effort ("Oh, you've been so good, won't you just have a small piece of cake?"). Fortunately, after a month or two of NO sweets, a simple taste of the sugary stuff was awful.
A bit more on purchasing clothes... America has these places called "Big and Tall Stores" (or what I affectionately referred to as "Seattle Tent and Awning"). You simply can't buy clothes that fit you when you are morbidly obese (which is the technical term for my status for most of my life) unless you drive yourself to these separate stores. I would show up at TechEd and other events and they would have speaker shirts in any size you want up to 2XL... I would joke that two 2XLs still won't work... "We seem to have a problem with scalable middlewear".
As February, March, and April wore on, I gradually got smaller. Every time I stepped on the scale, it said "Err". By March, I was able to fit into 3XL shirts and 46 inch pants. Still, the scale said "Err". These smaller clothes started getting looser... Still, the scale said "Err". I think it was sometime in May that I stepped on the scale and it said "329.8"! I got really excited and leaned forward... the scale then said "Err". I don't really know, but I think my peak weight was 360 pounds.
It was right around this time that my mother who had been very ill passed away. You have to make a decision that your health won't be driven by the emotional challenges in your life and I managed to follow my rules for dietary intake while going through these personal challenges. A few days after the funeral, my wife, Michelle, started having so much nerve pain in her legs ("neuropathy") that she stopped being able to walk... Again, you have to separate the emotions from the reality of your health. Overeating won't help...
As the Summer and Fall progressed, I was dropping 8 to 10 pounds a month simply by portion control (following my four rules). We were all surprised when Michelle passed away at the beginning of September, 2004, and that was very hard on me. Still, I knew in my heart that it was essential that I control my health and future. I had lived a life where I ate for emotional uplifting and (big surprise!) it didn't make me happy. It is a very human thing to look to food for emotional support but it doesn't end up doing anything but make you feel bad about yourself and perpetuate the cycle. Even with major life stresses happening around me, there was no upside to eating for emotions rather than eating for nutrition. In September, I was still right around 300 pounds and that clearly wasn't where I needed to be. So, I kept going with the portion control.
It was around this time (I was down 70 pounds) when I asked a young (and petite) colleague at Microsoft named Maegen how much she weighed. Maegen said "Oh my gosh! I've gained SO much... I weigh 96 pounds!!" My response was that we needed to have a party when "Pat lost a Maegen".
One thing that was a big joy was the downsizing of the clothes... 4XL to 3XL. 3XL to 2XL. 48 to 46 to 44 to 42 inch pants... Each time, I gave away ALL the old clothes to charity and bought new clothes. Being a nerd, I didn't need to buy too many outfits. By now, I knew that a size was only going to last 2 months or so and I didn't need to buy a lot of stuff. Still, I was absolutely determined to give away ANYTHING that became too loose. There was no going back to the old me. I remember the excitement of being able to buy a 2XL leather jacket in October or so. The 4XL leather jacket was swimming on me and I bought a smaller one. This was still at the Big and Tall Store but getting noticeably smaller.
In October, I went with my friend Gurpreet on a business trip to India and we stopped by to see his family home and meet his family. I vividly remember the astonishing food! I was happy to enjoy modest amounts of it and still control what my intake was. It was an important lesson to me to own my health as I was going through so many different emotional changes. Still, I couldn't see how I was going to be happier by burying myself into some dessert! Here I am in India in mid-October, 2004.
I remember Thanksgiving, 2004 at my daughter's house. It was weird to serve all the normal turkey and its fixings but to serve a small single portion. It felt right and it was a good gathering in spite of all the changes and difficulties of 2004.
By December I was under 270 pounds. I remember being down 92 pounds and asking my friend Maegen when we can have a "Pat lost a Maegen" party. She said "Oh, No!! I've gained weight and am now 100 pounds!". My response was "Work with me... Let's meet in the middle!"
By March of 2005, that same old scale that used to say "Err" read in the low 240s. In April, the mid 230s. These few months were when I had decided to try something new, had moved to downtown Seattle, changed jobs to try Amazon, and had just met Lisa. Now, I needed to balance courting this lovely lady with not gaining too much weight. Fortunately, I was living and working in downtown and walked EVERYWHERE. Getting to work was a brisk 15 minute walk and then a ride on the bus in the downtown bus tunnel. Everywhere we went was a walk. Moving around allowed me to increase my food. Honestly, I let myself slip back a bit and allowed the scale to pull back up to around 240. I was able to hold it there. Soon, I was walking the entire 2 miles each way to work at Amazon.
Here I am with Lisa in June of 2005:
By April of 2006, Lisa and I (now married since November, 2005) joined the Washington Athletic Club and had personal trainers. After a few months, we were both seeing Shaine at the WAC (I meet him at 6AM and Lisa at 10 or 11AM). For a long time, it was 45 minutes of weights 3 times a week, now I'm up to an hour. I combine that with a killer (500 calorie) cardio workout and it makes a WORLD of difference in how I feel. My favorite cardio torture is the StepMill (affectionately known at the WAC as the "Gauntlet"). This is a conveyor belt stair that doesn't friggin stop! It is normal for me to do around 140 flights of steps (at 16 steps per flight) over a 30 minute workout. Every single time, I swear I can't finish it but somehow I seem to and, after recovering for a few minutes and showering, I feel fantastic!
So now, let's get to the real TMI part of the story. It turns out when you drop a lot of weight, the skin doesn't get any smaller. You start to look like a shriveled up raisin with lots of skin and not enough inside. As I would talk to my doctor (who was THRILLED with my weigh loss without surgery), he said it is wise to hold your weight for at least a year before cutting off the skin. Simple statistics show that most of us that lose weight go back to old habits and then regain the weight (sometimes even more than originally). It is REALLY bad to cut off the skin and then pack back the weight so you really need to show yourself you have changed your lifestyle.
Anyway, last Fall, Lisa was feeling she wanted to get a tummy-tuck (abdominoplasty) since she was unhappy with how her clothes fit her (and she is a beautiful women who cares about how she looks). We were sitting in the plastic surgeon's office working on her plans and I said "What the heck! I'm never gonna make these shirts fit without help, either!". So we decided to give each other tummy-tucks and liposuction for Christmas. In my case, in addition to my belly, my chest was still misshaped from carrying too much blubber. So, December 5th, was Lisa's surgery day (and I remember pounding away in the waiting room writing the final version of "Life Beyond Distributed Transactions: an Apostate's Opinion" since I was right up against the deadline...) Lisa had a tough time recovering and ended up staying in the hospital for one night but quickly was ecstatic with the results. As we looked forward to my planned December 22nd surgery I asked her what the experience was like. She responded that she counted backwards from 10, 9, 8... and someone had taken a chainsaw to her abdomen... I gulped.
December 22nd, 2006 was my day for surgery. We had pre-arranged that I would stay in the hospital since Lisa, three weeks out of surgery, was concerned (legitimately) about caring for someone significantly larger than she is. Lisa is a registered nurse and knows that you need to be careful about healing. I went into surgery at 7AM and remember awakening at around noon. For me, it was different, though. For some reason, I wasn't too annoyed by the pain in either my abdomen or my chest (which had received liposuction). Indeed, I got quite high energy moving around and saying I didn't hurt. I didn't find the need for any of the pain medications. Apparently, I get this from my father who has experienced major surgery (aorta repair) and not wanted pain medication... I could mostly feel pain when I was moving and pulling but had no problem when lying still. Being a high-energy nutcase, I did a lot of moving (more than was good for me). This opened up the wounds a bit and Lisa had to work hard to get me to calm my butt down and let the wounds close... She ordered me to stay FLAT for the first night to let the bleeding stop (which I reluctantly did). Our friend, Charlie (a VP at Amazon and a dear friend), came and drove me home from the hospital (since Lisa was so recently out of surgery).
We live in downtown Seattle in a condo on top of a very nice hotel with a wonderful restaurant. My aspirations for recovery included having the special Christmas dinner sent to our home (via room service) three days after surgery. I then hoped to be downstairs for the special New Year's Eve dinner nine days after surgery. I met both goals.
After the December 22nd surgery, I was off the exercise program for almost a month. They had tightened up the muscles in the abdominal wall and removed over 10 vertical inches of skin (relocating the belly button). Before surgery, you could grab fists full of skin on my belly. The incision went on the belt line from pelvic bone to pelvic bone. Of my 38 inch waste, about 40% of it was horizontally cut. The front of my abdomen was now straight up and down and that was AWESOME. It was a huge and noticeable change. My chest was smaller but still looked weird. Also, by pulling so much skin straight down my sides (right above the belt line) stuck out in a goofy way. While it was a LOT better (and well worth the difficulties of the process), it wasn't looking good enough for me to feel happy wearing a tight shirt. I kept wearing the loose Extra-Large Tall shirts to hide the distortions. Still, it was a LOT better.
So, after much discussion and healing, I decided to go for "Tummy-Tuck 2.0". On May 18th, 2007, I went back under the knife. This time the surgeon removed skin from my chest and reshaped it (also moving the nipple upwards). The scars are shaped like a comma with the tail of the comma moving away from the midline of the body. For my belly, the belt line incision was extended to be about 65% of the circumference of my 38 inch waist (maybe 24-25 inches) and wraps quite a ways around my back on both sides.
The second surgery was a lot easier. Surgery was Friday morning and I went home at around 3PM that day with Lisa driving and me walking just fine (if gingerly). Charlie called Saturday morning to see if I was in the hospital still and was surprised to find out I was home. We agreed he would come by and have dinner with us. When our friends Mike and Barb called to say they wanted to drop off the case of wine they scored for us, we asked them to stay for dinner. 30 hours after waking up from surgery, I was downstairs at our restaurant having dinner in a party of five. I ate light but had a great time... we visited for about 3 hours and I was tired. Again, I moved around too much... Seems like I'm always wanting to move. I was working at home starting Sunday, had the drains removed Monday, worked a half day at MSFT on Thursday and then had the staples (yup, they stapled my incision -- all 24-25 inches of it) removed on Thursday afternoon and was back at work all day Friday a week after surgery. Now, my excessive moving did come back to bite me as I opened up about a two inch gap on my left side... Consultation with the surgeon revealed that this will just close up over a 1-2 week period and, indeed, it mostly has.
So, I am a bit more than 3 weeks after surgery and have resumed weight lifting and cardio... Shaine, our trainer, keeps telling me "NO!" as I want to try something that may put pressure on my abdomen. He also rats me out to Lisa when I overdo... ;-) I climbed 115 flights of steps in 30 minutes last Friday (exactly 3 weeks after being under the knife) and the hole in my side is closed up and on its way to healing. I wanted to push harder but think I can ramp up over the next week or so back to my normal 140 flights in 30 minutes.
Here's some photos from the last week. I have been accused of joining the witness protection program as no one can recognize me! It is a LOT of fun when dear friends can't recognize me... I shock the crap out of them.
Turns out my office at Microsoft was moved on May 18th, as I am now working for Jason Zander on the .NET Frameworks (more on that soon). I have an INSANE office with lots of paraphernalia which takes HOURS to set up. It has been killing me to leave the stuff packed and not get settled in. I will be working on that this weekend since I am now feeling strong enough. More blog entries soon on the office.
Anyway, I am not proud of what I had let myself become. Neither for the health aspects nor for how I presented myself. At 240 pounds, I am still at least 30 pounds overweight and want to gradually work that down (and build muscle) to be healthier. I am not panicked about the remaining weight loss but rather determined to have a lifestyle which leads to more health and happiness. While I am not proud of where I was most of my life, I am proud of the changes.
Jan, 2004 --> June, 2007
I remember spending over 30 years feeling like I couldn't do anything about my weight. When people ask me how I accomplished it I have a number of quips I frequently respond with. The most honest and direct answer is "I changed my mind". When you realize you own your body and you own your decisions then you make things change. For me, I had to decide that I needed to eat for nutrition and not emotion. Now, I must say that I am enjoying myself now and eating like a normal person does... Sometimes too much and frequently with wonderful food. I'm going to have to either cut back on food and/or increase the exercise to move down from that 240 pound plateau. For me and at this stage in my life, I want to make that be an enjoyable journey but I want to move forward gradually and in a way that is a permanent lifestyle.
Lisa and I gave away all my Extra-Large shirts this week.
All my best,
- Pat
|
-
Bill de hOra and my old friend (from our Amazon days) Mike Dierken commented on my use of SOA versus "distributed systems". There was also an interest in my perspective on the CAP Conjecture. Let me spew forth some thoughts... It may be a bit unusual, but my way of thinking of "distributed systems" was the 30+ year (and still continuing) effort to make many systems look like one. Distributed transactions, quorum algorithms, RPC, synchronous request-response, tightly-coupled schema, and similar efforts all try to mask the existence of independence from the application developer and from the user. In other words, make it look to the application like many systems are one system. While I have invested a significant portion of my career working in this effort, I have repented and believe that we are evolving away from this approach. I wrote a paper for CIDR 2005 called "Data on the Outside versus Data on the Inside". In that paper, I explore the difference in the semantics of data when it is unlocked. Inside of a database, the meaning of the data can be interpreted with a clear and crisp sense of "now" provided by the current transaction. Nothing moves when you are in a transaction unless the currently running application that began the transaction changes the data. There is a strong sense of stillness and of now. Inside data is very much what we have historically programmed to. In "distributed computing" (in my unusual usage... not in the commonly accepted vernacular), we are trying to extend this notion across multiple machine. In SOA (again, how I think of it), we are acknowledging the existence of independent machines. This affects the transactional scope (we end up with different chunks of data which cannot be updated by the same transaction) and we end up with independently evolving schema and operations for the different systems. This is a seminally different concept than distributed systems (at least in the way I think of them). If you try to impose a global ordering to the transactions across a LOT of systems, it is very much like the way Newton thought of the Universe with time marching forward uniformly everywhere. This is why I say that "distributed systems" are like Newton's Universe. Now, let's consider SOA with independent scopes of serializability (i.e. the collection of computers has some different groups of data which are independent in their transactions... you cannot do a transaction across these different chunks of data). These are broken into independent systems (typically independent applications) which encapsulate their own data and communicate via messaging. When System-A sends a message to System-B, the data contained in the message will be unlocked before sending it. That means that the data is a historic artifact. System-B can only see what some of System-A's data used to look like. This is an essential aspect of these independent systems which do not share transactions. Because of this, I think of each system living in its on temporal domain. It is aware of its internal state and is aware of a subset of its partner's older state. This is just like looking into the night sky and seeing light from neighboring stars emitted years earlier. Each of these systems lives in its own time and has an independent view of time. To me this is like Einstein's Universe where time marches forward based on the perspective of the viewer. So, the move from distributed systems (one transactional scope --> one notion of time) to SOA (independent transactional scopes --> time based on the perspective of the user) is like moving from Newton's Universe to Einstein's Universe. -----> Now, let's rant for a while about the CAP Conjecture... First, let's summarize what Eric Brewer said in 2000 in an invited keynote at the Principals of Distributed Computing. While I am not super familiar with all the literature on this, I believe I understand it well enough to spew forth. Eric said that if you consider CAP - Consistency, Availability, and Partition-tolerance, he offered a conjecture that it is impossible to achieve all three. I totally believe in this conjecture but want to offer some twists in how to think about it. First, I noticed a long time ago that there is an intrinsic conflict between consistency and availability in the face of partitions. This has led to me growing to increasingly dislike distributed transactions (see "Life Beyond Distributed Transactions: an Apostate's Opinion"). The two-phase commit protocol (which I've spent big portions of my career working on) will ensure perfect consistency given infinite time. I say that because it will wait and wait and wait until the transaction is resolved and then provide perfect consistency. Of course, while partitioned and waiting, arbitrary swaths of the application's database may be locked up rendering the application unusable. For this reason, I've frequently referred to the two phase commit protocol as the "Anti-Availability Protocol". It is increasingly clear to me that this protocol is best used sparingly. What I think is interesting is how real world applications modify the definition of Consistency and Availability to provide Partition-tolerance. Note that my observations about this do not invalidate the CAP conjecture (which I think is correct) but show how the pain is dramatically reduced by loosing up some age-old assumptions about distributed systems. Classic database/transaction approaches to Consistency choose to emphasize read-write semantics. To preserve Read-Write-Consistency, you lock the data. We've been at this for over 30 years. What I see happening in loosely-coupled systems is identical to how businesses operated 150-200 years ago when messages were sent with couriers running across the city between businesses. You allocated (i.e. reserved) the ability to perform an operation and then later on you would take the confirming step to ensure the completion of the work. Today, you make a reservation at a hotel and then later on you show up to complete the operation. What is the definition of consistency in this world? It is the successful remembering of the reservation and then keeping a room for you. The reserved room count is not locked waiting for you to decide if you want the reservation, waiting for you to cancel, nor while waiting to see if you show up. The definition of consistency evolves to one that is explicitly including independence and loose-coupling. A really good paper on this concept is: Isolation Support for Service-based Applications. In this paper, Paul Greenfield et al argue that predicates are the best expression of the isolation required while performing long-running work that spans loosely-coupled (SOA) systems. For example, my work may allocate $200 from your bank account because it is supposed to be mine if the cooperative work we are doing commits. Your bank account balance does not get locked, just $200 of it is encumbered pending the outcome of our cooperative work. This bends the definition of both Consistency and Availability. Usually, they are considered as providing Read-Write semantics and so they are implemented with locking. If you provide operation semantics, this just changes the form of locking and changes the form of consistency and isolation. I first saw this from Pat O'Neil in The Escrow Transaction Method published in 1986. In this paper, Pat observes that the use of operations, and operation-logging can increase concurrency. At Tandem, we did this in the late 1980s to allow addition and subtraction to have special behavior to improve our TPC-B benchmark numbers. What we did was detect when a SQL operation was an addition or subtraction to a field of a record. We would log a "+30" or "-50" as the operation in the transaction's log. We would also keep a worst-case lower-bound and a worst-case upper-bound for the field's value based on it's committed value combined with the pending (not yet committed nor aborted) transactions. We would manage that the field would remain within the accepted bounds. If you performed a "+30" and then later on aborted the transaction, the act of aborting the operation would subtract 30. In this way, all the transactions would correctly perform their operations but we could run MANY transactions concurrently against a very hot-spot value. Of course, an attempt to read the value would shut everything down, wait for the pending transactions to settle, show the underlying result, and then let the chaos resume. This was a very successful technique for coping with highly-concurrent commutative operations (in this case addition and subtraction) against a hot-spot value. Nowadays, we see this same technique applied at a different granularity. If you move away from thinking about locking data at distance and move towards ensuring the ability to perform a reserved operation, you think about this differently. This is why you can reserve a king-sized non-smoking room but not (typically) reserve room 301. What is being promised is a member of a fungible category of rooms. It is a different promise of consistency. My recent post "Memories, Guesses, and Apologies" plays off of what I see happening in an increasing fashion. More and more, I see businesses being willing to loosen Consistency even more than what I was describing above. They are willing to occasionally give the wrong answer because it is more cost-effective. In the presence of imperfect availability of knowledge, a business is forced to choose between closing down service (reducing availability of the service), over-booking, or over-provisioning. Indeed, if multiple systems (or humans) are extending commitments independently, they must choose between over-booking, over-provisioning, or some unknown balance between them. If I have 10,000 widgets to sell and 100 salespeople, I could allocate 100 to each sales-person and know that I have not over-booked if they go out and independently sell the widgets. To do this, though, I am almost certain to need extra inventory for the sales-people that don't sell all 100 of their widgets. Indeed, for most businesses, this is a ridiculously expensive proposition. So, an analysis is done on the statistics, a cost of over-booking is calculated, and allocations are given based on the expectations of selling the 100,000 widgets. The loosely-coupled algorithm explicitly allows for a probability of over-booking based on its cost-benefit. This is a relaxation of the definition of Consistency to cope with the realities of the CAP Conjecture. It is essential to approach computing as a means to support business, not a religious fervor. I don't think that it is "wrong" to relax consistency, I think it is important to understand the business trade-offs and apply the technology realities to support the business effectively. - Pat
|
-
My friend Harry Pierson points out that I am blogging-challenged and didn't include the links to my paper and talk. This talk and paper were given at CIDR (Conference on Innovative Database Research) on Jan 8th, 2007. Thanks, Harry! - Pat
|
-
Well, here I am blogging on the bus with my newly installed Windows Live Writer!!! This blog is a text version of a five minute "Gong Show" presentation I did at CIDR (Conference on Innovative Database Research) on Jan 8,2007. All computing can be considered as: "Memories, Guesses, and Apologies". This is a personal opinion about how computers suck. Furthermore, it offers additional opinions about how we can take advantage of their sucki-ness. Lets dig into this... Newton and Einstein It used to be that we thought of computing as one big-ass mainframe. The database folks only thought about the database. Transactions (and transactional serializability) offered a crisp and clear perspective of how time marches forward uniformly. When working on transaction T(i), any other transaction T(j) can be perceived as occurring before T(i) or after T(i). If T(i) and T(j) are concurrently processed, the transaction system ensures that either order is correct without modifying the semantics. This offers a crisp and clear perspective of now. Time marches forward like a clock exactly as Newton envisaged his universe. Nowadays, we have lots and lots of computers. Big ones, small ones, connected, disconnected, occasionally connected, etc. These computers each have their own perspective of time. When you see data, it is unlocked and an artifact of the past. Time is subjective with many different notions of now. This is very much the way Einstein revamped our understanding of the universe. Moving to SOA is like moving from Newton's Universe to Einstein's Universe. Inventory and Forklifts Even is your computer system is perfectly accurate, the data contained withe in it may be incorrect. Data is entered by people and/or sensors. You have the challenge of garbage-in-garbage-out. Based on the knowledge contained with the computer, decisions are made. "Jim wants to buy a widget." "Hey, we have one in the warehouse in New York!" "Ship it to Jim, should be there on Tuesday!" Now this is just great... Then the forklift runs over the only widget you have in stock and you won't get any more widgets for a month! Even if the computer is perfect, it is disconnected from the real world!!! Decisions made by the computer may not be possible to implement! Guessing and Partial Knowledge Computers always have partial knowledge for a couple of reasons. First, they will always be separated from the real world. Stuff that happens in the real world will, at best, be reflected after the fact in the computer system. Second, a computer system may have other replicas from which it is separated. A computer's knowledge of the world will be partial. Computers do not make decisions... They try to make decisions. The best a computer can do is make a guess. It might be a good guess. It might be a bad guess. Either way, there is no certainty, only guesses. Memories and Sharing It is really nice to remember your guesses... It makes it easier when you guessed correctly. It makes it easier to clean up the mess when you've guessed wrong. Usually, computers remember what they've guessed. Furthermore, it is nice to share with other replicas. You get all the coolness of replicas,disaster protection, etc. Replication definitely helps with memories. Increased fidelity of memories implies increased cost! The more money you spend on mirroring, replicas, disaster backup, and so forth, the better your memory. The more you spend on increased latencies while you ensure the replicas are in sync before proceeding, the more you reduce the chance of forgetfulness. It is a business decision how much money, latency, and energy should be spent on reducing forgetfulness. To make this decision, the costs of the increased probability of remembering should be weighed against the costs of occasionally forgetting stuff. Screw-Ups and Apologies Consider the following slide from this mini-presentation: #1 - The application has only a single replica and makes a "decision" to ship the widget on Wednesday. This "decision" is sent to the user. #2 - The forklift pummels the widget to smithereens. #3 - The application has no recourse but to apologize, informing the customer they can have another widget in one month (after the incoming shipment arrives). #4 - Consider an alternate example with two replicas working independently. Replica-1 "decides" to ship the widget and sends that "decision" to User-1. #5 - Independently, Replica-2 makes a "decision" to ship the last remaining widget to User-2. #6 - Replica-2 informs Replica-1 of its "decision" to ship the last remaining widget to User-2. #7 - Replica-1 realizes that they are in trouble... Bummer. #8 - Replica-1 tells User-1 that he guessed wrong. #9 - Note that the behavior experienced by the user in the first example is indistinguishable from the experience of user-1 in the second example. Eventual Consistency and Crappy Computers Business realities force apologies. To cope with these difficult realities, we need code and, frequently, we need human beings to apologize. It is essential that businesses have both code and people to manage these apologies. Replication can force apologies. This is the same crap we have to deal with when the physical realities are out of sync with the computer's knowledge, [Please note: I am NOT saying that all replication errors are identical to the business realities. I AM saying that when you replicate business operations (rather than the back-end state of your internal database), the shape of being out-of-sync does, indeed, mimic the business realities.] We try too hard as an industry. Frequently, we build big and expensive datacenters and deploy big and expensive computers. In many cases, comparable behavior can be achieved with a lot of crappy machines which cost less than the big expensive one. Consider the cost/benefit of building big-ass and expensive machines! Careful design of a collection of replicas may fill the business need at a better value! Just a thought for the day... - Pat
|
-
Wow! It’s been over two years since I’ve blogged or had much of a public presence and I am VERY glad to return. There is SO much to tell all of you.
First of all, I returned to Microsoft on March 5th after being gone for two years (to the day… my last day was March 4th, 2005 and my first day back was March 5th, 2007… it was an accident but it makes it easier to calculate my seniority!). I am working in the Developer Division and have not quite settled on which technology project will be my new home but I am determined that I will be taking an active role in driving forward new products. While you will see some of me in public (and on my blog), I will concentrate on building products. Being back at Microsoft feels like being at home! While I’ve had a marvelous two years (more on that below), I really missed Microsoft and I really missed interacting with customers and our Microsoft folks working in the field. Now, I can see my old friends much more often! I have SO much to tell you about…
First of all, my personal life has been transformed. Right as I was leaving Microsoft (and I mean our second date was the evening after my last day at MSFT in March of 2005), I started dating a wonderful lady named Lisa. She’s a whole three years younger than I am and is a bundle of joy. Lisa was a paramedic and firefighter in Ohio/West Virginia for 12 years (the firefighters told her women couldn’t do that job so she became the first female firefighter in her department). Later, she put herself through school to become a registered nurse working in ER trauma. After living in Florida for eight years, Lisa decided she was bored and started working as a traveling nurse going from city to city working 3 to 6 month contracts. When I met her, she had just arrived in Seattle (with her two cats Jasmine and Samantha) to work the night shift at Harborview, the only level-one trauma center for five states. Lisa moved into the same apartment building in Seattle that I had moved to and we met hanging out in the lobby. After meeting in February, we were inseparable by March, engaged in July, and married in November of 2005. It has been a joyous time for both of us. We bought a condo in downtown Seattle and LOVE the downtown living. We walk EVERYWHERE and, for two years, I walked to work at Amazon. It was truly a transformation for a fellow brought up in the suburbs…
What about Amazon? I worked there almost two years and found it fascinating to see the amazing technology and super smart people creating that scalable and reliable web site. Amazon’s use of service oriented architecture is one of the world’s most advanced (if not THE most advanced). Watching the application of process, discipline, and organization to a rapidly evolving disconnected and yet connected business problem gave me a much deeper understanding of the challenges faced by all enterprises. It was my privilege to work with people across the entire development arm of the company and to focus in on the area of the product catalog, search, and buyability (i.e. who is allowed to buy a product from which merchant and at what price). This is service oriented architecture at its best. It was a great experience but I truly missed the opportunity to communicate more broadly through the industry and, frankly, decided that I missed Microsoft and its customers!
Most of you would not recognize me (I have walked past many former colleagues and even my brother and his family without being recognized!). After working hard to lose 120 pounds, I am literally 2/3rds of my peak weight. On top of that, I shaved off my beard for my going away from Microsoft in March 2005. The final change is that Lisa convinced me that everyone in the world (except me) knew I was bald and the removal of those last few diehard hairs on the top of my heard would be an act of mercy (think Dr. Phil’s hairdo…). The net effect is that there’s pretty much nothing left visually of the old me except the twinkle in my eye and the shitty grin on my face. ;-)
I’ve grown to love being a pedestrian and a bus rider! It is normal for me to go two to three weeks without driving (and, indeed, I am typing this on the 545 metro bus home to downtown Seattle from Redmond). This is part of how I’ve managed to keep fit. That combined with meeting the personal trainer 3 days a week for an hour of weights and (mostly) doing 30 minutes of cardio a day and I seem to be able to eat food (and alcohol, too). Living in downtown means it is natural to walk and the Redmond campus is a nice place to walk. Having your commute consist of 30 minutes of email on the bus and 20 minutes of walking is pretty nice!
I did manage to publish one paper during my tenure at Amazon. It is called “Life Beyond Distributed Transactions: an Apostate’s Opinion”. In this paper, I argue that real scalable systems simply do not attempt to do cross-system transactions. If you presume that distributed transactions are too fragile for large deployments, how DO you think about really scalable applications? I presented this at CIDR (Conference on Innovative Database Research) in January 2007. While I was there, I was privileged to spend a lot of time with one of my dearest friends and my mentor of 25 years, Jim Gray. We stayed up past midnight for two of the evenings, talking into the wee hours. Jim had been encouraging me for years to spend more time writing and communicating publicly and, frequently, I would take the easy way out and not do the hard work it takes to make this happen. After being out of the public eye (and not at any events) for over a year, being at CIDR had a deep impact on me. By the end of January, I had decided to investigate returning to Microsoft because I wanted to be able to participate more in the industry as my friend had encouraged me to do for so many years. I sent an email off to one of the executives at MSFT on Friday, January 26th to begin the discussion. It was two days later that Jim went missing at sea and is still missing.
It would be hard to describe the profound effect that Jim has had on my life (and on many others). I had started reading Jim’s papers in 1980 and, of course, my thinking was deeply impacted by his writing. In 1982, I was working at a small company (which was having challenges) when a departed colleague working at Tandem Computers was late to a going away party “because he was at a meeting with Jim Gray”. I looked around the room and decided to move to Tandem. I started 3 weeks later. During my almost 9 years at Tandem, I watched Jim influence with kindness and insight, always encouraging and uplifting. He ran a weekly talk series and put me on stage many times (sometimes with only a few hours notice!) and taught me the value of communicating. His patient and consistent mentoring was, by far, the largest force influencing my career. Jim tapped me in (as a young kid in my 20s) to conferences with some of the most influential people in the database and transaction processing industry. Whenever Jim would present, everyone (including me as his most avid fan) listened with rapt attention to his way of explaining the most complex problems in the simplest ways. Jim would always know who was doing what and was constantly connecting people together for their common good. I literally have never met anyone that holds Jim in anything but the highest esteem. Every job I’ve ever taken since 1982 was directly traceable to Jim’s influence on my life. My return to Microsoft was prompted by Jim’s advice before he went missing.
While I write this with great love, I don’t want to be maudlin’ and sad. All these lessons I carry with me every day and try to work in that spirit. While we still don’t have answers to where Jim is after his trip out to sea more than three months ago, I know he has changed many lives for the better and many people carry Jim’s impact with us every day. I miss my friend.
It is great to be back at Microsoft and, now I feel like I should be blogging regularly and getting that crufty old website of mine (www.pathelland.com) dusted off and filled with the work I have so far. I look forward to seeing more of all of you!
- Pat
|
-
To all my dear friends, As most of you know, last year was very difficult for me with first my mother passing away in May, and then my wife of 29 years, Michelle, passing away in September. Since Michelle died, I have gone through a myriad of changes and it seems that the more I change, the more I need to change. The many years of Michelle's poor health were a great strain and a difficult time and they have taken their toll on me. As an example, in 2003, I supervised 11 hospitalizations of various family members while continuing to do a fulltime job. Still, as I move ahead without having to watch her suffer, I am finding that life is easier in many ways. I am so used to carrying huge emotional burdens that now it feels very different. I have been trying to eat well and get healthy for almost a year now and my weight loss recently crossed 100 pounds. This has helped me to feel stronger and more energetic. I am now wearing 40 inch pants (instead of 48 inches) and 1XL shirts (instead of 4XL) and anticipate needing smaller clothes within a month. It is a huge change for me. I still have some old socks left but that's about it! With work, it has been also a busy time. The first week in January, I presented a keynote at CIDR (Conference on Innovative Database Research). It was called Data on the Outside Versus Data on the Inside. You can download the PDF of the paper by looking in the electronic proceedings of the conference at https://www-db.cs.wisc.edu/cidr/. I also won the “Most Enthusiastic” prize at the evening gong show (twenty 5 minute talks designed to entertain the nerds). In the middle of February, I went to Phoenix and keynoted the Western Region Architect Forum with my talk on “Metropolis: Interchangeability of Operations”. I also presented a talk called “Hubble: Long-Running Two-Party Messaging” and sang the fourth (and final) rendition of “Mr. CIO Guy”. This week I completed Microsoft’s internal conference called WHIPS (Workshop on High Performance Computing) which I chair. It is a gathering of the most senior technologists from Windows, SQL, and Developer Division (along with some other cool people from inside Microsoft). WHIPS is designed to promote cross-team relationships and bonding [hence the name…;-) ]. The conference went very well and was a lot of fun! We also had a gong show and again, I won the most enthusiastic presentation award… Enough on work stuff… I want to tell all of you about some bigger things. On January 8th, I moved from my grown daughter's house to an apartment in the city. I love being in Seattle and always wanted to live in the city but Michelle didn't like it so we stayed in the suburbs. Even more profound is the fact that I am living alone for the first time in my life. As a 19 year old kid, I moved from my parents' house into a home with my wife and 3 kids which rapidly became 4 kids. It is a different, lonely, and yet wonderful thing to live alone. As I try to learn who and what I am as an individual, I spend increasingly more time away from my grown children and grandchildren. This is a healthy change but a deep and profound one in my lifestyle. Many evenings, I go out to eat alone knowing full well that I could drive to Issaquah to my daughter's house and be welcomed (and fed). Still, I need to be alone to deal with the pain and loss and to figure out what I want for my life and how I want to live. Shortly after moving to Seattle, I noticed that I get sad as I drive to the Eastside crossing the lake from Seattle to Bellevue and Redmond. It seems that being in my old places and doing the old things brings me down and being in new places and doing new things seems more and more uplifting and invigorating. This feeds and fuels my need for change and new beginnings. On January 24th, Amazon approached me to work helping their systems and applications become more scalable and fault tolerant. I swear, I was just plugging away going to work when they asked me to come and visit! Amazon has embraced the need to migrate to service oriented architecture and wants me to help in that effort. I have worked almost 27 years on platforms for enterprise applications but have never worked on an actual application. Amazon has one of the world's largest and most challenging applications. The difficulties involved in keeping the application available are both technical and social. Working on this provides me with the opportunity to see if my ideas work and to learn from real world deployments. This is a wonderful chance to make a difference in a new way. In addition, I can walk to work from my new apartment in Seattle and I remain within easy visiting distance of my family (father, kids, and grandkids). Even more importantly, moving to Amazon will provide me with a fresh start and a clean slate. It is hard to contemplate life without seeing all of my friends from Microsoft on a regular basis. It is equally hard to think about not participating in the gatherings, presentations, conferences, keynotes, and just plain camaraderie that have sustained me through some of the hardest years of my life. While I know that moving ahead I can recreate much of this with different people that I will grow to love too, it will never be the same as it has been with all of my friends here at Microsoft. Still, I ache for a fresh beginning in which all of the old memories and feelings do not weigh so heavily on me. As I search my heart, I know that the change will be good for me and so on February 7th I submitted my resignation from Microsoft effective tomorrow, March 4th. I will start at Amazon on March 7th. Microsoft has been gracious enough to allow me to do the keynote for the Canadian Regional Architect Forum as an Amazon employee. I am now in the midst of packing the PEZ shrine and all the other insane paraphernalia from my office. I selected my last date of March 4th as the Friday after WHIPS. Only after writing the resignation letter did I realize that my last day at Microsoft is the six month anniversary of Michelle's death. It's hard to explain but it just happened and that, somehow, seems poignant to me. I love Microsoft and all of you so very much. The company and my dear friends here have always shown me only kindness, generosity, support, and love. It is a very, very hard thing to leave and this is a very hard message to write. You are all special to me and remain my friends. Both inside and outside Microsoft… As I have spread the word of my departure within Microsoft, there has been nothing but expressions of kindness. Somehow, Microsoft supported me chairing an internal conference (WHIPS) with public awareness of my imminent departure while showing me nothing but affection and support. It is very humbling. It is unclear where I will set up a new blog but I am determined to reinvigorate my public writing. This will be in the form of blogs, technical papers, and hopefully a book or two. My new blog will likely be associated with www.pathelland.com but I haven’t figured that out yet. Wherever it lands, you can be assured that Harry Pierson (https://devhawk.net) and Werner Vogels (https://weblogs.cs.cornell.edu/AllThingsDistributed/) will both spread the word. Soon, my email address will be phelland@amazon.com. With extra special love and kisses, Pat
|
-
Just an update on how things are going personally… It’s been more than 3-1/2 months since my wife, Michelle, passed away and things are settling into a new normal. It is very hard to be without her but I am very, very grateful for the wonderful family that I have. I’ve been living with my youngest daughter, Jenny (age 28), her husband, Ray (age 28), and their daughter, Destiny. It is so nice to have a family to come home to each night. They couldn’t be more wonderful! My biggest complaint is that it’s kind of funky to call home to tell your daughter you’ll be home late. Still, you can’t have someone sitting at home worrying. They have all been incredible and it is such a huge help. One of many funny stories is that I had gone out with some friends for dinner a week or so ago and my cell phone rings. Jenny asks how I’m doing and I tell her that we decided to keep visiting and had moved from the restaurant to a bar. Jenny says to me: “Have you been drinking, Dad? Are you alright to drive? You know I’ll come and pick you up… <pause> Gee, a little bit of a role-reversal, huh?” It is just wonderful to be so loved (and I stayed out late, remained sober, and drove home on my own). Last week I was at Disneyland with 5 of my 11 grandkids. The biggest treat was seeing my daughter, Christine (age 34), her husband, Greg, and their 4 kids. Christine has always been a joy and a huge part of our lives. The time since Michelle’s death has been no exception and she has flown from California to Washington a number of times to help with many things and to just plain be there for us all. Still, with Michelle’s illness, the funeral, the chaos and difficulties, I had not really seen the kids since June (I’m not counting when I saw them at Michelle’s funeral since we were all zombies). It was just plain too long! Seeing Anastasia (age 3), Branden (age 8), Vince (age 11), and Nick (age 15) was SUCH a treat. As I settle into defining a new normal for our lives, I know that this simply has to include serious visiting to the Bay Area in California at least every couple of months. They are simply too important to me to see so rarely. I’ll never forget sitting in the live theatrical production of “Snow White” at the Fantasyland Theater holding Anastasia while listening to the singing. Live musicals have always gotten me mushy but holding onto her while watching and listening really touched my soul with both the loss of this last year and the joy of such a rich family. I will be down seeing them for New Years. Both my sons, Mike and Rich (identical twins age 32), have been a source of great happiness. Both of them have grown and matured so much and have handled the difficult times amazingly well. It has been a special treat that I have been growing so much closer to each of them. While we used to just do our own thing and see each other as our lives revolved around mom, now they call me for no reason at all but to chat. It is an incredible blessing. For each of them, we try to see each other for dinner or lunch every week or two (if possible) and that is so cool. I’ve been to my grandson, Alex’s Junior High football championship game (he played defense and they were champions of their league). Alex is 15 now and I had the astounding experience of watching him legally drive away (the age for learner’s permits in Washington State is 15). It really hits you to watch your grandson drive… I think I’m the oldest 48 year old I’ve ever met… The instant family at age 19 really changes you. We all made it through Thanksgiving very, very well. Christine’s gang couldn’t come from California for the holiday since Greg had to work. Jenny and Ray took over the preparation of the feast and did a magnificent job. Jenny was terrified the food wouldn’t be perfect but it was incredible. We had 15 people (Jenny’s gang, Mike’s gang, Rich’s gang, and my recently widowed 84 year old father (Mom died last May)). While we stopped to remember the loss of both these ladies and how hard it was, we absolutely all felt a true giving of thanks at the blessings we have still with us. It was so hard to have the holiday with such a big hole in the family and yet the family is so very strong we all truly focused on the many blessings we have. We have successfully emptied the old house that Michelle, her mother, and I had moved into only this last February. It never became our home and the house is not something that I want moving forward. My mother-in-law is staying with a brother-in-law and doing fine. With lots of family help (and frankly me doing a little too much avoidance of the work myself), we have sent furniture, family heirlooms, and lots of stuff to different family members. The job is still only partly done as we have two storage units full of boxes that need to be sorted through. It is a difficult challenge to disassemble a household filled with 29 years of memories. You shift all too quickly from laughter to tears. As we prepare for Christmas, it is hard but we are moving through it. Michelle was an enthusiastic Christmas zealot who simply loved to get lots of presents for everyone (and there are a lot of people in that list of everyone) and she loved the decoration, excitement, and family time of Christmas. She is strong in all of us as we try to define a new normal. Still, there is a lot of happiness in trying to select presents for everyone! Being male, I had largely ignored this (with a bit of Grinch-ness) as it used to swirl around me and I would focus on work. I am finding that participating in the shopping (with lots of family help) is more fun than I had thought. On another note, last March or so, I had decided that I was simply too fat and too large. I started eating more normally with nothing between meals, no sweets and snacks, and modest portions for meals. Even with the stress of this terrible year, I somehow felt that eating too much was not the answer. The weight has been consistently peeling off and I am now down over 80 pounds (from 350 to 269 this morning). This is the least I have weighed in 20 years. My goal is to drop another 60 or so to be within striking range of a healthy weight. I hope that when I come to visit all of you in the upcoming year, I don't leave quite as deep an impression as I have in the past! I miss Michelle very much but I am also relieved that she is not in the pain that she suffered for so many years. It is hard to look and see all that is lost and yet there is so much still here to care about and embrace. I am beginning to feel emotionally stronger after all the difficult changes and promise to regain a new vigor for posting technical content. You will see less of these cathartic family discussions and more of the nerd in me cutting loose. I have a long list of posts in mind and will do a couple of them very soon. I wish all of you a wonderful holiday season and I look forward to interacting and learning from you all in the new year! Love and kisses, Pat
|
-
To all of my friends, It has been a very difficult year for me at home and I have been postponing and procrastinating writing this blog entry. Yet, I have had a hard time conceiving of adding to my blog until this is written. First of all, my mother passed away at age 82 last May. That was a difficult time and I felt a lot of responsibility for caring for the issues in the family and for my father who is 84 years old. I have 3 brothers and they, too, had a difficult time. My 4 grown children and 11 grandchildren were all together to remember my mom. It was precisely during TechEd in San Diego that my mom’s funeral was held and that, of course, was the priority. We all gathered to mourn her and support my father who is 84. He is having a difficult time since then and for a number of months, I found it hard to support him due to my other challenges. He is still very, very sad and I am worried about him still. Many of you know that I have been married since I was 19 to Michelle who was 23 at that time. I got 3 children (ages 5, 3, and 3) in the package deal. In 1976, I was 20 and Michelle was 24, and we had a daughter, Jennifer. All four of the children have always been mine in my heart and remain so to this day. I am 48 years old and Christine is now 34, Mike and Rich are 32, and Jennifer is 28. All of them are married to wonderful people and we are blessed with 11 grandchildren (two are 15 years old, three are 3 years old, and six are spread in between in age). My wife, Michelle, always lived for the grandchildren. Starting sometime around 1986 or so, Michelle became increasingly ill. She had a myriad of different and painful issues from irritable bowel, back problems, severe sleep apnea (holding your breath in your sleep), bipolar disorder (which caused a great deal of confusion through the years), fibromyalgia, neuropathy (screaming pain from the nerves being angry for unknown reasons), and kidney failure. We grew accustomed to months of time with her in bed and then gradual recovery and the ability to do things within limitations. She was house and/or bed-bound for about 40% of the last 18 years and the challenges just seemed to mount as the years go by. It is amazing how we all adapt and do the best we can. For years, I was very sparing in accepting travel obligations even though we had great care for Michelle while I was gone. Only at the beginning of this year did I start to accept more commitments as Michelle seemed to be on an upswing and some of the opportunities to see wonderful places were irresistible. Michelle encouraged me to go and I have to admit that the break from watching the illness day by day was welcomed! You don’t want to know about the phone bills, though… By spring, I was just plain missing being home with her and became very firm in winding down my new commitments. Of course, I had some that I had committed to (and kept) but I declined new ones as it just wasn’t worth being away… I loved the work and the sightseeing but hated being away from my wife. Starting the day after my mother’s funeral at the end of May, Michelle started a horrible bout of neuropathy. It was affecting her muscle control, some of the behavior of her organs, and most importantly, she was in constant pain like her feet and then her hands were on fire. We rapidly brought my mother’s handicapped equipment to the house (as mom had a form of muscular dystrophy for years). It was surreal to see my mother’s stuff employed in our house for my wife just days after mom’s funeral. Fortunately, we had just moved into a house that we could build a wheelchair ramp for to allow accessibility but Michelle fought its construction as “she was going to be walking again any day”. After a bit over 2 months, I overrode her and we built the ramp so she could get out of the house. It is difficult to explain the pain of watching her screaming as she would transfer from the bed to the wheelchair and from the wheelchair to the toilet. Life closed into the master bedroom and we did the best we could. My sister-in-law, Faythe, and my daughter, Jenny, watched Michelle while I went to work and traveled to keep the remaining obligations I had for distant presentations. I have to admit that going to work was the rest that kept me strong. The pain pills were of some help, but they never seemed to be enough. Michelle weakened as she went for months without walking. Visits to the doctor were difficult and they were especially difficult since there was no explanation for the source of this pain although neuropathy does seem to accompany about 30% of the people with renal insufficiency (kidney’s giving out). Everything was supposed to be stable and the doctors said that she was in no danger but that there wasn’t anything to do but jockey the use of pain medication for some relief. Again, this was just a different form of the year-in and year-out challenges of chronic illness. On September 4th, Michelle passed away at the age of 52. At around 3AM, I awoke to find her apparently asleep without her breathing machine for sleep apnea. This was the typical routine for about 14 years… only this time, she wasn’t breathing and was already getting cold. She passed away peacefully that night and is no longer in any pain. It was ruled an accident as she was only taking the prescribed dosage of pain medicine (oxycontin) and, while she was still in extreme pain, the medicine levels built up to suppress her breathing. Narcotics can have funny effects in people with chronic illness. I’m sure it interacted with the sleep apnea. She simply fell asleep and stopped breathing. I am so grateful that I was the one with her when she passed away and not one of the other family members. It would have been VERY hard for one of my kids to have been there. Michelle was my best friend and taught me more about life than anyone can imagine. I spoke to her every single day for almost 29 years (with one day’s exception when she was taken to the psychiatric ward while I was racing back to town from Germany in 1997). When I met her, I was very much into reading, computers, and (of course) having fun and being silly, too. What she taught me was the value of every human no matter what their station in life and no matter what their abilities. Money, talent, and intellect are simply tools. What makes a human special is the character of their heart and their soul. Each and every person has that in them and Michelle taught me to stop and look at the person and love them for who they are. She was my partner for 29 of my 48 years and I cannot separate my character from hers. She is with me and will always be with me. I miss her so much and yet am completely at peace knowing that she is not hurting anymore. We have a legacy of a large family and I have some new habits to cultivate. Being a bumbling male, I would stumble home from work to find a riotous family gathering and would just join in. It now falls to me to ensure that these events happen regularly (although my grown kids are pretty good at making this happen, too). Christmas shopping will be VERY different… I always just bought for Michelle and she arranged everything else (frequently from her sickbed by sending others out mall-ing on her behalf). It has been almost 2 months now. The children are regaining their lives and working on doing normal things. The grandchildren are concentrating on school. I am getting back into work and it feels good… at first, it was so overwhelming to even have discussions about work as I felt raw and lost. Knowing how hard it is for me to write, I canceled my commitments for new presentations for a while and kept the speaking engagements based on existing work. Now, I’m back to writing new material. Two weeks ago, we held our Strategic Architect Forum in Redmond. I presented and had a number of customer meetings. The next day, I flew to India (my first trip there) where we had another Strategic Architect Forum in Bangalore. After that, my friend, Gurpreet Pall, and I flew to Delhi and had some meetings. Then, I was privileged to travel with Gurpreet to his home town of Chandigarh via a 3 hour train ride. We spent 3 days visiting with so many family members! It was very special to meet all these interesting, loving, and accomplished people. I am humbled at the opportunity to see them and their lives so closely. I can’t tell you the number of times I saw something and thought how I simply couldn’t wait to tell Michelle and show her the pictures… life moves on but sometimes our hearts move on a little slower. I scheduled 2 days of layover in Singapore to sightsee and I just didn’t have the desire. Instead, I simply enjoyed doing nothing for two days but catching up on sleep and taking an occasional walk. I barely ate anything as it took 2 days to digest all the wonderful food that Gurpreet’s family kept feeding me! I think this was one of the first times in memory where I just plain didn’t worry about doing anything. Years of fighting to get work done while dealing with chronic illness has taught me to squeeze every productive minute possible and that is quite a change to let go of. It is easier now in many ways. I know after my hectic schedule of commitments slows down, I will have more time. There have been so many small ideas that I have wanted to blog about in the last few months but somehow it seemed insincere without sharing about my loss and so I let them go. Still, I kept procrastinating writing this until I had the time to focus and share all my feelings. I am getting stronger and I will be fine. My kids and grandkids are there and we are all supporting each other. Thank you all for caring and being interested in my life. Next post, we will have some fun with architectural stuff… there’s LOTS to share! Love to all, Pat
|
-
I always talk about "Long Running Work" and steadfastly avoid "Long Running Transactions"... My preference is to use the word "transaction" to mean an atomic operation that occurs at a single service within a second or so. I mean the ACID (Atomic Consistent Isolated Durable) transactions that usually involve holding locks and that we transaction theorists love. Whenever I hear about a "Long Running Transaction", I wonder about where it ends. Let's consider the following example: 1) I decide to take a trip to Europe so I book some airline and hotel reservations. 2) The hotel in London hits a threshold of occupancy and decides to increase staffing and food for the restaurant. 3) The hotel orders more food from the Green Grocer. 4) The Green Grocer hits a threshold and orders another delivery from its shipper. 5) The shipping company hits a thresold and orders more diesel fuel for its trucks... 6) Two weeks later, I cancel my trip. So, if I believe in long-running-transactions, the shipping company doesn't need any more diesel fuel! I don't think so! The long-running-transaction approach assumes that there is a cohesive set of work across loosely-coupled and independent systems that is atomic. Notice it is not ACID in that Isolation is clearly different and Consistency is clearly different. Hence, you would consider these "long-running-transactions" to exhibit Atomicity and Durability. I am arguing that Atomicity is not a property that flows across multiple services as the semantics of interaction across these services is not tightly associated. My preference is to talk about "long-running-work" across two services. I can examine the semantic interaction of two services across a set of messages. This leads to the notions of reliable messaging (and multi-message dialogs) which is one of my favorite topics and something I will be posting more work to my website (www.pathelland.com) soon. It also leads to the notion of a contract across the messages that flow between two services. I love these concepts. Another concept that I am strongly in favor of is the concept of a service being in the midst of multiple related dialogs. My attempt to book travel arrangements puts me in multiple interactions with different airlines and hotels. These interactions involve multiple messages and continue at least until the date of my travel (unless I cancel). When my incoming reservation causes the hotel to increase its food requirements, the hotel will use business logic to control the relationship between my incoming messages and the restaurant related messages. This allows it to consider the wisdom of canceling the food order when I cancel my reservation... very different than mindlessly assuming some coordinator associates these into a long-running-transaction. Work flows across services and businesses in ways that do not magically "undo" even if you do master the use of compensations rather than the classic "undo" of replacing the before values. The behavior of our interconnected systems is more an integration of lots of disparate work into summaries. When I through a rock into the ocean by San Francisco, that can and does impact the waves that hit Tokyo but only in conjunction with countless other stimuli. This is why I like to talk about long-running-work inside a single service or across exactly two services using a multi-message dialog. The phrase long-running-transaction is a chimera and leads to a false hope of simplicity. The reality is much richer and more complex. Love, Pat
|
-
Again, always busy...
I had only 5 days at home and then I was off again, this time to Atlanta for the Microsoft Global Briefing where all the Microsofties from the field gather once a year.
Since this event is in Atlanta and my Aunt Peggy lives in the little town of Fayetteville, Tennessee, I decided to bring my 84 year old father, Joe, to see his sister. We flew into Nashville on Saturday July 10th and drove down to Fayetteville. Sunday was a fun day visiting with my Aunt and cousins Lori and Chuck. Monday morning was driving to Atlanta (about 4 hours with no traffic).
Tuesday and Wednesday we have briefings with the Architect Evangelists from throughout the world. This is my opportunity to get to know the folks that will be carrying out architectural message to the enterprise customers. They are a great bunch of smart people and I always cherish the chance to hang out with them and learn about the difficulties that they face. It looks like I will have a lot of time on Atlanta to work on writing my new projects as I am uncommitted from July 15th through 18th. Lots to write and post to my website!
First, I am going to rewrite the Metropolis: Buildings and Applications talk. It was the weakest of the talks at Amsterdam and I know it will be a great talk but it just isn't yet... I am schedule to present this at MGB on Monday, July 19th and I want to be ready with a better version.
The next project is to create a paper called “Data on the Outside versus Data on the Inside”. This will be a paper version of the contents of “Thoughts on Data” and I will try to get this on www.pathelland.com before I leave Atlanta on July 20th.
Finally, some big news is that I will be doing the closing keynote for MGB and expect around 5,000 people (the technically focused Microsofties from the field). I will be doing Metropolis: Envisioning the Service-Oriented Enterprise and then I will do my second live performance of “Mr. CIO Guy” which is a satire based on Don McLean's “American Pie” song. Consider the Harvard Business Review paper “IT Doesn't Matter“ by Nicholas Carr of May 2003. In this paper, Mr. Carr proposes that since IT is expensive, you should consider whether you receive more value than you competitors and, if not, consider reducing your investment. This led to many articles and headlines of “IT Is Dead“, and in some cases there were companies that reduced their investment in IT.
This song is a “speculative retrospective“ wherein we imagine a world in the future in which a massive reduction in IT investment has occurred stimulated by the Harvard Business Review paper (a scenario I find highly unlikely). “Mr. CIO Guy” is a whistful look back at “The Day that IT Died”... You can see the first rendition of this from Amsterdam on www.pathelland.com and I hope to get an even better recording from my live performance for 5,000 people on July 20th. My friend Mark Glikson will accompany me on the piano for this rendition.
Hope to post some more technical content soon!
Love, Pat
|
-
Howdy, Everyone!
I am just back from an 8 day trip to Amsterdam where I gave 6 sessions (and helped with one more). It was an exhausting trip with little sleep and I am happy to say I actually saw a bit of the beautiful city of Amsterdam on Saturday before coming home Sunday morning. More on this in a minute!
First, I want to annouce the launching of www.PatHelland.com . This will be an ongoing site at which I plan to put all of my new work and gradually dust off my older work and put it up for all of you to see. One of the stresses that I have felt as I want to blog something is that I am not sure you all have seen my other work and so I frequently don't feel I have the context to refer to in my blog comments. I will try to get better about this now that I have an ongoing reference site to link to. I would like to thank Harry Pierson (on my team at Microsoft -- the Architecture Strategy Team), Ed Siegrist (of Dynamic Events), and Cliff Thomas (of Logo Repair) for helping me get the web site up and running.
On the web site you can see the powerpoints for all of my presentations for the last year. Now, many of these are repeats with minor hacks and/or template changes. Still, I am going to publish ALL non-confidential work that I do moving forward. Also, there will be an ongoing effort to ressurect anything old and interesting that I have done before. We found 34 videos I have presented archived in the Microsoft video archives and we will pick the best and get them out for you to see. I will try to keep links to get best versions (in my opinion) of the different works available. Of particular note to be seen are the 4 talks descibed below that were given in Amsterdam (GNLARC, ARC402, ARC302, and ARC303). The 5th (PNL005) was a question and answer session, and the six, “The Nerd, the Suit, and the Fortune Teller” will be available soon on www.PatHelland.com . I am at home today and have the video on my laptop to get up on the web site this week.
Amsterdam was exhausting. I landed late Staurday night after flying through Copenhagen (with a 6 hour layover). When I left home, I was very unprepared for all the presentations I had committed to giving. Between business at home (my wife is sick in bed) and a wonderful visit from my oldest daughter and her 4 children, I was behind... Of the 4 talks, GNLARC was absolutely complete, ARC402 needed rewriting as I was unhappy with its stucture (although it had been given before), ARC302 (Metropolis: Buildings and Apps) was about 75% written and I had given a dry-run to a group of customers the previous week... it had not been as easy to understand as I had hoped!! Finally, ARC303 (Metropolis:Interchangeability and Operations) was about 25% written. I was in deep shit!!
On the plane flying into Amsterdam, I wrote on ARC302 to pound it into submission. I continued to struggle to get to the spirit and soul of the talk. When I saw the lovely room at the Okura Hotel (yes, a Japanese hotel in Amsterdam... it was a nice place and it was walking distance to the RAI convention center), I noticed that there was not anything comfortable to sit on! I had visions of hours upon hours of me and my laptop! I was able to convince the hotel staff to steal a comfortable chair from the lobby and bring it to my room!! Thank Goodness!!!
I spent all Sunday morning locked into my room writing on ARC302. Sunday afternoon, I walked over to the RAI and found the speaker lounge. There, I actually looked at my schedule and realized that I had 3 talks on Tuesday! Arrrggg!!! And ARC302 wasn't due until Thursday! At this point, I walked back to the hotel and grabbed dinner on the way. I locked myself into the hotel room and into that comfortable chair for over 26 hours straight... not emerging from the room except for Monday morning I had breakfast downstairs and bumped into Clemens Vasters while eating. On Monday evening we had a rehearsal for “Mr. CIO Guy“ in the Forum room with Don Box and David Chappell. After the rehearsal, I was able to have dinner with a new friend of mine, Craig, who happened to be in town on unrelated business and we had a great time chatting! What a nice break! Soon, I was back at the hotel typing.
I first pounded away on ARC303 finishing the history section on the development of manufacturing interchangeability and then on the implications of interchangeability on service oriented operations. This is a cool talk and I am very happy with it! Next, I pounded away at the rewrite of ARC402. It wasn't done when I went to the RAI to prepare for the GNLARC talk and song that was at Noon on Tuesday. After completing this, I went to the speaker lounge to finish ARC402. I finished at 14:30 and the presentation was at 16:30. ARC303 immediately followed at 18:15 until 19:30. A busy day!!! Dinner afterwards was at the speaker lounge and then back to slideware as I still needed to get ARC302 done. I hadn't slept more than 5 hours a night since Thursday night at home near Seattle and I crashed for a solid 8 hours.
Wednesday started with me on stage accompanying Wojtek Kozaczynski for ARC307. He was concerned he wouldn't give a dynamic enough presentation and asked me on stage. Well, he did a magnificent job and simply didn't need me there! Still, it is a bit of work to sit up on stage and watch someone present while 800 people are watching you watch him present. Wojtek simply did a great job and didn't need anyone to help and, believe me, I didn't help. The rest of Wednesday was more slide work and the panel session PLN005. I thought we did fine. The panel consisted of Maarten Mullender, David Hill, and Steve Cook, and me. It was moderated by Arvindra Sehmi. I was happy with the discussion. Back to slide work and then in the evening I went to join a lovely group of reporters at a very interesting and old building converted into a tiny restaurant in downtown Amsterdam. Unfortunately, I was feeling the crunch and had to leave early (re-inforced by the fact that the Football (soccer) game was almost over and it was Holland against Portugal in the semi-finals. I was afraid I wouldn't be able to get across town to the hotel to finish. With 4 hours sleep, I handed in my slides at 8:30 AM Thursday in time for a last minute copying for a 10:30AM presentation of ARC302 (Metropolis:Buildings and Apps). I am not yet as happy with this as I am with the others but I will work more on it and I believe it will become a very good talk by the next time I present it on July 19th. It needs a rewrite.
Thursday afternoon was all about preparing for the Friday session on “The Suit, the Nerd, and the Fortune Teller”. Rafal Lukawiecki had suggested this session and Clemens Vasters and I formed the threesome. We spent time on Thursday afternoon working on slides and talking about the plan. By Thursday night, we were in the venue rehearsing and preparing for the next day. All of us were so exhausted we could barely stand and we kept working until quite late. I know that both Rafal and Clemens had talks in the morning and I was fortunate enough to start Friday at Noon. I slept 8 hours as I was simply pooped.
Friday was fun! We had the Suit, Nerd, Fortune Teller presentation and I think we must have had 1500 people. That was a demanding session because we were always having to be on our feet thinking of the next comment! Still, it was a lot of fun!!! Friday night was a lot of fun at the speaker party and I thoroughly enjoyed the comedians and had a good time outside chatting with Clemens...
Satrurday was sightseeing and then home yesterday... Amsterdam is beautiful and I thoroughly enjoyed the Van Gogh museum. Thanks to my new friend, Craig, for recommending the museum and the audio tour.
Love, Pat
|
-
Sorry about the long delay in blogging...
I was supposed to present at TechEd SanDiego a few weeks ago but my mother passed away on May 19th... We will all miss her, especially my 84 year old father who is quite lonely now...
I wanted to tell everyone that I am working on getting a website going that will contain all the ongoing (and much of the past) work that I am involved with. I have set a target of the beginning of July to get this going. Many of the topics I've wanted to blog on required so much context from my presentations and papers that I've been reticent to blog them. Hopefully, having the ability to link to this content will create a better dynamic.
I am committed to six sessions at TechEd EMEA starting on June 29th. I am VERY exceited about this but have a ton of powerpoint work! Some of these are done and others are still a mess. Here's the abstracts of what's coming! Hope you can join us in Amsterdam!
More blogging soon...
Love, Pat
---------------------------
GNLARC – Metropolis: Independent and Interconnected
This is general session for the Architecture Track at TechEd EMEA.
In this talk, we examine the parallels between urban development and the development of IT shops. In the 1800s, railroads connected independent cities and stimulated changes in manufacturing, retail, and standardization. We argue that this very much like what is happening today as independent IT shops are connected by the Internet.
The forces let loose by this interconnection lead us to service orientation just as our economy has developed independent companies offering manufacturing and retail which work together. The metropolitan analogy offers some surprising predictions for the future of IT.
At the end of this presentation, I am excited that Don Box and David Chappell are going to help me with a surprise! It promises to be a lot of fun and very, very memorable. For those of you that can’t see it live, we will get the video up on the web by early July! Tons of work in this one! Planning, rehearsing… lots of work!
ARC302 – Metropolis: Building Applications in a Service Oriented Architecture
Some buildings adapt to change and continually renew themselves to take on a new life as their environment evolves. An examination of buildings shows that there are certain design characteristics that make buildings more adaptable. In the last few decades, there has been an increasing trend towards the creation of buildings which fit within a framework of use and all for many adaptations and reuse. Examples of this include strip malls for retail and industrial parks for light manufacturing and many other uses.
These trends can be seen in applications and how they are or are not designed to cope with a changing environment. This talk examines the parallels between buildings and applications and shows the re-emergence of these patterns in the virtualization of systems and the creation of service oriented architectures.
ARC 303 – Metropolis: Using Interchangeability
Through the 19th century, manufacturers invested in making machines to make the creation of machine parts faster and easier. In a separate effort largely by the armories producing small arms for the US War Department, significant effort was made to make parts so identical that they may be interchanged across two different guns. This effort was surprisingly difficult over a forty year period. Simple machine tools created parts that were so inaccurate that they still required manual fitting and adjusting to make a working machine. It was only through the combination of machine tools and interchangeability that we arrived at the mass production techniques of manufacturing that have so changed our world.
If you consider the interaction of services as they send request for operational functions, we see the same challenges of interchangeability. Distrusting services won’t support classic distributed transactions and this necessitates the use of operational requests that may be subsequently canceled. For the service providing the functions, this is only practical to the extent that the tentative operations are interchangeable. Just as most people in the 19th century thought precision interchangeability of manufactured parts was a silly endeavor compared to fitting by highly skilled craftsmen, most programmers don’t recognize the importance of operations that are so equivalent that some may be canceled later without causing duress.
This talk explores the history of manufacturing and highlights some of the important challenges we have in creating collections of interoperating services.
ARC402-- Thoughts on Data in Service Oriented Architecture
Services provide a formal boundary of computing. Inside a service we typically find data that is needed for the operation of the service. In between services, we see the flow of operational requests and the transmission of data. This talk explores the difference between data on the outside that flows between services and data on the inside that is maintained for the internal use of the service.
As data is transmitted between services, we need to recognize that it is immutable and, once it is written, can only be changed by creating a new version for transmission. Schema definition and extensibility take on new importance in the world outside of services. This talk explores these design issues with an emphasis on pragmatic design choices made in the architecting of services and the interaction between them.
Finally, we examine the characteristic of SQL, Objects, and XML. Each has its strengths and weaknesses. We observe that the characteristics that make SQL wonderful for representing internal data, Objects wonderful for software engineering, and XML wonderful for communicating across services are exactly the characteristics that are challenges in other usages. For SQL, Objects, and XML, their amazing strengths in one use are the essence of their weakness in another use. We need all three but we need each in its place of strength.
PLN005 – Metropolis: Implementation Advice for the Service-Oriented Enterprise
This is a panel discussion with: Pat Helland, Arvindra Sehmi, David Hill, Maarten Mullender, and Steve Cook.
ARC230 – The Nerd, the Suit, and the Fortune Teller
This is a skit and presentation working with Clemens Vasters and Rafal Lukawiecki. I am really excited about this session as we hope to motivate the perspectives of the Suit (the businessman), the Nerd (the technologist), and the Fortune Teller (the architectural visionary). I get to play the Fortune Teller!!
This promises to be a fun way to end the TechEd week by providing some thought provoking perspectives on the trends towards SOA.
|
-
Sorry for the long quiet... family medical stuff... lots of travel... lots of excuses... I'll try to do better...
Looks like I got an MSDN front page for an article I wrote that was published in Journal a few weeks ago.
I got asked to post the following ad for JOURNAL:
“The new homepage for JOURNAL - Microsoft’s Architects Journal is live on MSDN Architecture Center: https://msdn.microsoft.com/architecture/journal/. This page describes what JOURNAL is and has links to JOURNAL articles that are now in the MSDN library. Currently, we have all six articles from JOURNAL1 plus MY new Metropolis article from the hot-off-the-presses JOURNAL2. Over the next couple of months, we will be publishing the remainder of JOURNAL2 articles in MSDN. In the meantime, we are providing PDF versions of both issues (available in A4 format for convenient printing) to users who register.”
Today, the article ( https://msdn.microsoft.com/architecture/journal/default.aspx?pull=/library/en-us/dnmaj/html/aj2metrop.asp ) is on the front page of MSDN. Cool!
I've seen some mail on this and I wanted to post a couple of comments that I had made in response to a couple of questions:
1) We have had major problems getting our customers to except standardized structures, processes, and products. It seems that most people believe, or at least want us to believe, that the way they do things is better than everyone else and we should conform to their requirements. Also, they are reluctant to share technology with their competition. This leads to very complex Software due to the numerous configuration switches required to meet our customers different beliefs. This seems very similar to the standardized clothing example. To make matters worse, they all want it easy to implement, which it is not because of the numerous configuration switches. To make matters worse, “consultants” are used for implementation. Once a consultant gets involved they usually generate more conflicting requirements, hence the problem proliferates and gets worse. Do you have any idea how this type of obstacle was overcome in your Metropolis Comparison?
2) Who plays the role of “City Government” in the IT world?
I am just starting on a very good book by David A Hounshell called “From the American System to Mass Production, 1800-1932” [John Hopkins, 1984]. In this, he outlines how challenging the transition to interchangeability was. Most people did not believe that it could work and, indeed, for many years it was more expensive as interchangeable parts could only be manually created and they needed to live by additional constraints of fitting to gauges that ensured their completely standard sizes. It was a separate effort to create machines that could create many parts (and the first machines to create parts did not create interchangeable parts). Only because there were some true believers in the war department who wanted battlefield interchangeability for repairs and funded expensive (and for many years unsuccessful) work, did interchangeability come about. This was after over 30 years of failures and the resistance of effectively ALL of the skilled artisans. They resisted interchangeability as eliminating their artistic expression in creating the gun or sewing machine and they resisted the creation of machines to automate their work (for obvious reasons). This transition to interchangeability is HARD!
It is my opinion that City Government maps to IT Departments… there is confusion in the industry about the role of IT and it varies from company to company. Peter Weill of MIT CISR has some great articles and books on this. It is my belief that we will evolve to a world where the business units will fund and drive the creation of applications and the IT shop will function like the city in imposing zoning and building codes. This would include inspections for quality… the funding and drive to complete the project will come from the business unit but the constraints from the IT department. Just my opinion…
I am working on lots more of this to publish and, eventually, create a book. I am committed to having three presentations on this (each 75 minutes) at TechEd in San Diego. The MSDN article represents half of the first presentation. I hope to get a website set up soon to hold all this material (and much more stuff I have written through the years). I already have the domain www.PatHelland.com but there is NO content out there... when something gets posted, the bloggers will hear immediately.
Love, Pat
|
|
|
|