Welcome!

Microsoft Cloud Authors: David Bermingham, Yung Chou, Dana Gardner, Jayaram Krishnaswamy, Pat Romanski

Related Topics: Microsoft Cloud

Microsoft Cloud: Article

Exclusive .NET Developer's Journal "Indigo" Interview with Microsoft's Don Box

The King of COM

Related Links:

  • .NET Developer's Journal Editor-in-Chief Named Microsoft "Most Valued Professional"

    .NETDJ: What is your official title and department?
    Don Box:
    I am an architect in the Distributed Systems Group. I am responsible for the protocols and the plumbing that we do in that group. I'm on an architecture team, so the responsibility is distributed, but basically five other architects and I work on the WS-* protocols, Indigo, and the stuff that leads up to Indigo, such as work on ASMX and Web Services Enhancements (WSE).

    .NETDJ: How did you get started in computer technologies?
    DB:
    I started programming in 1983 as an undergraduate math student. After that, I went to graduate school, then started a company and had a ton of fun in the 1990s doing COM. In 2001, I decided to get a real job so I came to Microsoft. At the ripe old age of 39, I had my first HR review (where I was on the receiving side). It was pretty wild, actually.

    .NETDJ: Tell us about founding your company.
    DB:
    Let's see - a good friend of mine, Andrew Harrison, was teaching at University of California (UC) Irvine Extension. He was the TA in all of the hardest theory classes and the smartest guy I knew at UC Irvine. Andrew made teaching seem both easy and fun, so I talked to him about it and we wrote a class together. After teaching it at Oregon Graduate Institute (OGI), I said "Wow - this is a very easy and fun way to make money, so maybe I'll start a company." And then I brought in my grad student cronies and the rest is history.

    .NETDJ: What was your first class?
    DB:
    Essential Windows was our first class in 1994. In that same year, I wrote the Essential COM class. August 8 was the first day I delivered that class. I remember it vividly because that was the day I figured out COM. Prior to that, I was able to make things work and I knew a lot of facts, but I had no insight and no intuitive understanding. In August, I was in Oregon teaching my first Essential COM class to a packed room of 24 people. It was in the first lecture that I made the connection between dynamic_cast and QueryInterface and that was when it all became obvious.

    I taught COM for a good two years before I seriously entertained writing a book, and then it took two years to write.

    .NETDJ: That book, Essential COM (Addison-Wesley), was released in 1998, then. Can you tell us about writing that book?
    DB:
    When I tried to figure COM out, there was nothing to guide me. There was a Brockshmidt book that was decent and the Dale Rogersson book - which is a very "how" oriented book, but nothing really ever spoke to me as to what the real principles were. I figured it out in 1994 and traveled the world telling the story with Chris Sells, Tim Ewald, and Keith Brown. Over time, the story crystallized and the book spoke to people.

    .NETDJ: What about David Chappell's book on COM - wasn't that out then?
    DB:
    Chappell's book came out a little before mine, although mine was already "in the can" when his book was done. I remember he sent me a copy from the first batch and he put a note in it that there wasn't one line of code in the whole book. While his book was excellent and I recommend it as the prerequisite to reading my book, it doesn't help you really to understand it from a programmer's view. For most software engineers, it won't directly answer the question, "How does COM relate to me?" Even though I'm an architect and I do think about very broad issues, at the end of the day someone has to write a program and I'm fortunate to stay grounded at that level - even though I'm in my advanced years with a high falutin' title.

    .NETDJ: Tell us about your first experiences with Web services? How did you come to be involved in the standardization of SOAP?
    DB:
    Back in 1995, Microsoft wanted to see Distributed COM (DCOM) everywhere. They had contracted with Software AG to do COM on Unix - and Microsoft recommended that they get me to help them. I worked in Germany for a while and we basically did it by emulating NT on Unix and because of that, it wasn't a smashing success. Microsoft had hoped that that would be the big thing that brought everyone together, but the engineering didn't work out.

    In 1997, Bob Atkinson and Mohsen Al Goshein of Microsoft had decided to go off and try RPC using XML. Dave Reed, the general manager of COM at the time, said that they should get me because I know platforms and so they brought me and Dave Winer to Microsoft to write the first SOAP specification in March of 1998. We wrote it in two days. The three of us worked on the first SOAP specification and within a couple of weeks we had Interop working between COM and Java.

    .NETDJ: Tell us about leaving DevelopMentor to go to Microsoft.
    DB:
    Keith Brown, Chris Sells, and I were visiting Microsoft. Someone wanted us to meet with someone who was working on Web services in late 2001. All the .NET stuff was in late beta at that point, but we'd already published the SOAP specification and I knew how the Web services stuff all worked. I met with Mark Lucovsky and Mark Burner from the Hailstorm team and I also met with Robert Wahbe, John Shewchuk, and Andrew Layman of the Indigo team.

    I had some very interesting conversations with the Hailstorm guys, but there was something about what the Indigo folks were working on - basically that they were going to take the idea of XML-based messaging and make it as ubiquitous as possible. I asked them how widespread they were going to make it and they said, "How far do you want to go?" That was the moment when I decided.

    At that point in time, I was in the process of trying to separate myself from my then-partner at Develop Mentor and was trying to figure out what the next decade of my life would look like. When I saw Indigo, I knew I had found my new tribe, so things got remarkably clear after that. There was a Microsoft Professional Developers Conference (PDC) shortly after that and I sat down with Eric Rudder in Los Angeles and I came up and interviewed with the folks on the Indigo team and that was it. We loaded up the truck and moved to Bellevue (Washington, that is).

    .NETDJ: I'm perfectly happy using ASMX for Web services - why should I care about Indigo?
    DB:
    ASMX is the closest to "the truth" of all our shipping technologies for distributed computing. If you are doing service-oriented programming, ASMX is the easiest to use and the most likely to keep you on the straight and narrow. You have to work harder to do the wrong thing. .NET remoting is more unbounded and happily allows you to do both right and wrong things with equal ease.

    There is nothing wrong with ASMX. It has some limitations. One of the limitations is that the current implementation is bound to ASP.NET and pragmatically, that means it is really about working over HTTP. It can work over other transports, but there is no easy way to do that...some assembly is required. So, as people want to use other transports, ASMX won't be enough.

    ASMX also has a very coarse-grained extensibility model. SOAP Extensions allow you to replace pieces of the plumbing, but only with a very coarse-grained tool. If I want to see the actual bits as they go in or come out, or the stack frame, there are integration points exposed for this. However, if I want to see the intermediate XML, I have a lot of work to do. For example, Web Services Enhancements (WSE), has to do some fairly obscure back-flips in order to fit into this model and to do XML-based processing. The ASMX/WSE user doesn't see this, but it's definitely more work for us than it should have been.

    .NETDJ: So, how will Indigo be better than WSE 2.0?
    DB:
    WSE 2.0 brings end-to-end security to the current ASMX code base, but it has to do some rather "interesting" engineering to make that happen. Since we built Indigo from the ground up with XML messaging as "the thing" it is a lot easier to plumb.

    There are a lot of implementation choices in ASMX we wouldn't make again. For example, there is a high reliance on code generation under ASMX. If you look at Indigo, we don't do code generation - we let the runtime do stack-to-message translations.

    Indigo will still support the [WebMethod] attribute and friends if developers want to use the old names. There is a compatibility namespace so that the right namespaces are in scope and we will support most of the current attributes out of the box. If you want to think of Indigo as just a new implementation of the Web services plumbing, go ahead - there is a class of developers who will just do this.

    .NETDJ: So, is Indigo mainly for SOA, then?
    DB:
    It is very obvious how to do service-oriented development with ASMX - you don't need Indigo for that. What Indigo enables is if you want to do more advanced messaging - such as rich support for intermediaries and end-to-end security. Indigo is a great solution if you want integration with our transactional plumbing.

    .NETDJ: I happened to see you performing with Band on the Runtime at the PDC last October (2003) in Los Angeles. What can you tell us about that?
    DB:
    Ted Pattison, David Chappell ,and I are all friends and David had suggested playing music together in the past, as had Ted. We did a conference in San Francisco where we said, "Let's do some Filk" - which is the art of taking popular songs and rewriting the lyrics to be about something else. Any time the three of us would be at a conference together, we'd try to put the band together and play a gig.

    .NETDJ: I especially liked your song Miguel - a Filk version of the Beatles' Michelle about Ximian's Miguel de Icaza, no?
    DB:
    Yes it is. The song was really a recruiting tune, as I think Miguel should work at Microsoft. He's got a lot of energy and a lot of creativity, and I think he would have an excellent time working at "the Firm." I think it would be good for him and good for us.

    .NETDJ: While we're on the topic of music, Jeff Richter told us a few months ago that you are a Progressive Rock fan. Who are your favorite artists?
    DB:
    Jeff and I went to see King Crimson last time they were in Seattle. Jeff is much more fanatical about it than I am. I like the stuff - I have a lot of CDs and had a lot of vinyl back in the day, but Jeff is...I don't know anyone as fanatical about a kind of music as Jeff!

    .NETDJ: What are your thoughts on Tech Ed this year?
    DB:
    I've been giving my talks. I had an extremely fun time giving the devices talk. Those guys have some fun technology that I like to play with. And I got to show my COM underwear on the wolf vision projector.

    .NETDJ: Yes, I saw that! Where, exactly, does one even buy COM underwear?
    DB:
    COM underwear is a collector's item. We probably made several thousand pairs back in the day and I peeled 14 off one of the shipments to take home. For a while, that was the only underwear I wore. For years of my life I always was wearing COM underwear. Now I only wear it on special occasions. For example, I am not wearing COM underwear right now.

    .NETDJ: Have you ever been mistaken for Jon Box (NETDJ's Mobility Editor)?
    DB:
    The first time that ever happened was at Tech Ed this year. I went to register and they wanted to give me Jon Box's badge. I'm sure David Chappell was really pissed off when that guy from the J2EE world started using his name - at least Jon Box is on my side of the fence!

    .NETDJ: Tell us about Essential .NET.
    DB:
    So, I wrote Essential .NET, Volume I: The Common Language Runtime (Addison-Wesley, 2003) about the CLR and I tried to do what I did with Essential COM, which was to answer the questions that I had. It was to answer the questions about why .NET is the way that it is. I'm not very good at writing tutorials - but I'm pretty good at figuring out design motivations. As I get older, I have more historical context. I can see the echoes of old things in new things.

    .NETDJ: What path would you recommend for someone with a background in non-native platforms such as Visual Basic or Java, who wants to learn .NET internals?
    DB:
    I think the best preparation is to write code - a good programmer will inevitably ask, "Why is it this way?" The book is really an exploration of how .NET is designed and why. If you are a person who benefits from that kind of analysis, it will benefit you. If you aren't, then my stuff is just esoteric ravings.

    .NETDJ: What is your order of preference between speaking, coding, and writing?
    DB:
    I like to write, then code, and then speak. Of all the things I can do, writing is the one that gives me the best catharsis. For me at least, writing starts with a story inside of me that I need to get out and then propagate it efficiently. There is nothing like writing!

    Finishing a writing project gives you a feeling like having a baby. It's like, "Finally, this thing is outside of my body!" but - unlike a baby - a book doesn't need to be changed or breastfed. You get a sense of release when you get done writing something.

    Coding is what I do to understand. I find that coding is an exercise in self-education - that's how I get my ideas.

    I also get ideas through speaking, but speaking is just what one does everyday. I'm speaking right now...whether I do this in front of 1000, 5000, or 3 people doesn't matter. Some people are listening and some people aren't, but speaking is as natural to me as eating. Actually, I like eating better!

    .NETDJ: Who do you most like to hear speaking about development nowadays?
    DB:
    I love listening to David Chappell - I just think he is great. I also like listening to Ted Pattison - he is a great guy. Pat Helland is wonderful to listen to. That is my short list, I think.

    .NETDJ: What do you make of the recent warming of relations between Microsoft, Sun, and Oracle?
    DB:
    We all share the same customers and our customers want our stuff to work together. The whole premise of doing this kind of integration is all about making our stuff work with everyone else's - realizing that we can't get NT running on every box. People are nice enough to invite us into their datacenters, and interop is just good manners. Our customers are going to have non-Microsoft systems and we want to make sure that we are good guests.

    .NETDJ: What are your thoughts on global outsourcing?
    DB:
    (Thoughtful pause)...Can't ignore it! It is very real. Developers should perceive outsourcing as an opportunity. What choice do we have? Seeing it as a threat doesn't buy you anything - you have nothing to gain from that. A much more interesting approach is to say, "How can I take the fact that I have less expensive labor and harness it to my benefit?"

    .NETDJ: Do you hold any software certifications - MCP, MCAD, MCSD, etc.? Why or why not?
    DB:
    I have an MS in computer science. Why do I have that? Because I was in grad school for a very long time and they give you a Masters somewhere along the way to a PhD. Beyond that, I just never had a need for certification.

    .NETDJ: You talked about the failure of Java and the illusion of choice during your general session at Tech Ed yesterday? Could you elaborate on that topic a little more?
    DB:
    I've had a really lucky life. The DCOM experience was very illustrative...the notion that we could get OLE32 to run on every machine on the planet. The plan was to take the COM runtime and make that run on every computing device on the planet and that was going to be the way we got reach. That was just utter folly. It ignored the fact that not only do people have lots of investments that they hold dear for good reasons, but that there are all kinds of cultural differences. There are all kinds of different programmers and it is crazy to think that everyone is going to want to program the same way, which is what OLE32 imposed on the programmer. The practice of COM assumed that the entire programming universe will have the same kind of aesthetic.

    We learned such a lesson with DCOM that now, with Web services, we are just saying, "Everyone programs in something different, so let's just do protocol-based integration, where we will just agree on the format of the messages we are going to exchange over the wire." We came to that realization in 1997, when Sun was full steam into that Java thing, which was very similar to the experience we had had with OLE32. They were even more intrusive than us because they had a runtime and a language, and to think that everyone in the world wants to use the same programming language is just naïve.

    I can say this because I had exactly that belief when I was sitting in the cold parts of Germany porting DCOM to Unix and I saw what happened. I think the Java community has come around and realized that they are also guests in any given datacenter and that protocol-based integration is where it is at. I'm happy to see all of the Java vendors signing up to do XML-based messaging with the rest of us.

    .NETDJ: What was your worst-ever moment on stage and how did you handle it?
    DB:
    I have two experiences that stick out - one was the talk on Monday morning...I can't remember ever giving a talk and being that sick. I am in the middle of one of the most hellacious flus I have ever had and I know that I didn't do my best.

    The other time, I had to sub for someone to teach an MFC class very early in the history of my teaching career and I just didn't care. I had no real passion for it and while I understood it and knew it, I didn't care about it and it was just utter torture for me. And so what I've really figured out from that was that I have to have skin in the game. If I'm going to talk, I really have to have an investment. So I started doing stunts so I would feel emotionally invested.

    .NETDJ: What kind of stunts?
    DB:
    I once gave a talk wearing only a speaker shirt, and then took that speaker shirt off in a room of 3000-4000 people...that was my first real stunt. I had toyed with things before, like to illustrate how apartments worked, I had people in the audience come up and hug and then I took it further to see if I could get people to kiss! I really want people to have an experience when they come to one of my talks. I want there to be something memorable. I started with that, then I did a couple of various stages of undress, with bathtubs and dancers.

    If you Google me, you can find the bathtub images.

    .NETDJ: What technologies coming out of Microsoft - besides Indigo - do you find most exciting?
    DB:
    I love the devices stuff - that stuff is just so amazing. I am also having a wonderful time working with the new C# language features - it is very hard to go back. I had fallen in love with Standard ML and functional programming in general. When we started getting drops of the new C# compiler and between anonymous methods, iterators, and parameterized types, things felt exceedingly familiar.

    .NETDJ: If you had to do your whole career over again thus far, what would you do differently?
    DB:
    I wish I would have finished my PhD. I also would have paid more attention in the early years to the business side of DevelopMentor. I naively had the attitude that I could trust someone else to lead and run my company while I focused 100% on technology. I don't plan to ever make that mistake again. Lesson learned.

    .NETDJ: What are your career goals at this point?
    DB:
    To ship Indigo. After that, I'm confident the future will present itself - it always has in the past.

    Related Links:

  • .NET Developer's Journal Editor-in-Chief Named Microsoft "Most Valued Professional"
  • More Stories By Derek Ferguson

    Derek Ferguson, founding editor and editor-in-chief of .Net Developer's Journal, is a noted technology expert and former Microsoft MVP.

    Comments (0)

    Share your thoughts on this story.

    Add your comment
    You must be signed in to add a comment. Sign-in | Register

    In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


    @ThingsExpo Stories
    SYS-CON Events announced today that FalconStor Software® Inc., a 15-year innovator of software-defined storage solutions, will exhibit at SYS-CON's 18th International Cloud Expo®, which will take place on June 7-9, 2016, at the Javits Center in New York City, NY. FalconStor Software®, Inc. (NASDAQ: FALC) is a leading software-defined storage company offering a converged, hardware-agnostic, software-defined storage and data services platform. Its flagship solution FreeStor®, utilizes a horizonta...
    WebSocket is effectively a persistent and fat pipe that is compatible with a standard web infrastructure; a "TCP for the Web." If you think of WebSocket in this light, there are other more hugely interesting applications of WebSocket than just simply sending data to a browser. In his session at 18th Cloud Expo, Frank Greco, Director of Technology for Kaazing Corporation, will compare other modern web connectivity methods such as HTTP/2, HTTP Streaming, Server-Sent Events and new W3C event APIs ...
    Silver Spring Networks, Inc. (NYSE: SSNI) extended its Internet of Things technology platform with performance enhancements to Gen5 – its fifth generation critical infrastructure networking platform. Already delivering nearly 23 million devices on five continents as one of the leading networking providers in the market, Silver Spring announced it is doubling the maximum speed of its Gen5 network to up to 2.4 Mbps, increasing computational performance by 10x, supporting simultaneous mesh communic...
    The cloud promises new levels of agility and cost-savings for Big Data, data warehousing and analytics. But it’s challenging to understand all the options – from IaaS and PaaS to newer services like HaaS (Hadoop as a Service) and BDaaS (Big Data as a Service). In her session at @BigDataExpo at @ThingsExpo, Hannah Smalltree, a director at Cazena, will provide an educational overview of emerging “as-a-service” options for Big Data in the cloud. This is critical background for IT and data profes...
    Eighty percent of a data scientist’s time is spent gathering and cleaning up data, and 80% of all data is unstructured and almost never analyzed. Cognitive computing, in combination with Big Data, is changing the equation by creating data reservoirs and using natural language processing to enable analysis of unstructured data sources. This is impacting every aspect of the analytics profession from how data is mined (and by whom) to how it is delivered. This is not some futuristic vision: it's ha...
    With the Apple Watch making its way onto wrists all over the world, it’s only a matter of time before it becomes a staple in the workplace. In fact, Forrester reported that 68 percent of technology and business decision-makers characterize wearables as a top priority for 2015. Recognizing their business value early on, FinancialForce.com was the first to bring ERP to wearables, helping streamline communication across front and back office functions. In his session at @ThingsExpo, Kevin Roberts...
    Cognitive Computing is becoming the foundation for a new generation of solutions that have the potential to transform business. Unlike traditional approaches to building solutions, a cognitive computing approach allows the data to help determine the way applications are designed. This contrasts with conventional software development that begins with defining logic based on the current way a business operates. In her session at 18th Cloud Expo, Judith S. Hurwitz, President and CEO of Hurwitz & ...
    One of the bewildering things about DevOps is integrating the massive toolchain including the dozens of new tools that seem to crop up every year. Part of DevOps is Continuous Delivery and having a complex toolchain can add additional integration and setup to your developer environment. In his session at @DevOpsSummit at 18th Cloud Expo, Miko Matsumura, Chief Marketing Officer of Gradle Inc., will discuss which tools to use in a developer stack, how to provision the toolchain to minimize onboa...
    With an estimated 50 billion devices connected to the Internet by 2020, several industries will begin to expand their capabilities for retaining end point data at the edge to better utilize the range of data types and sheer volume of M2M data generated by the Internet of Things. In his session at @ThingsExpo, Don DeLoach, CEO and President of Infobright, will discuss the infrastructures businesses will need to implement to handle this explosion of data by providing specific use cases for filte...
    SYS-CON Events announced today that Avere Systems, a leading provider of enterprise storage for the hybrid cloud, will exhibit at SYS-CON's 18th International Cloud Expo®, which will take place on June 7-9, 2016, at the Javits Center in New York City, NY. Avere delivers a more modern architectural approach to storage that doesn’t require the overprovisioning of storage capacity to achieve performance, overspending on expensive storage media for inactive data or the overbuilding of data centers ...
    SYS-CON Events announced today that Pythian, a global IT services company specializing in helping companies adopt disruptive technologies to optimize revenue-generating systems, has been named “Bronze Sponsor” of SYS-CON's 18th Cloud Expo, which will take place on June 7-9, 2015 at the Javits Center in New York, New York. Founded in 1997, Pythian is a global IT services company that helps companies compete by adopting disruptive technologies such as cloud, Big Data, advanced analytics, and DevO...
    SYS-CON Events announced today that Commvault, a global leader in enterprise data protection and information management, has been named “Bronze Sponsor” of SYS-CON's 18th International Cloud Expo, which will take place on June 7–9, 2016, at the Javits Center in New York City, NY, and the 19th International Cloud Expo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. Commvault is a leading provider of data protection and information management...
    The Quantified Economy represents the total global addressable market (TAM) for IoT that, according to a recent IDC report, will grow to an unprecedented $1.3 trillion by 2019. With this the third wave of the Internet-global proliferation of connected devices, appliances and sensors is poised to take off in 2016. In his session at @ThingsExpo, David McLauchlan, CEO and co-founder of Buddy Platform, will discuss how the ability to access and analyze the massive volume of streaming data from mil...
    SYS-CON Events announced today that Alert Logic, Inc., the leading provider of Security-as-a-Service solutions for the cloud, will exhibit at SYS-CON's 18th International Cloud Expo®, which will take place on June 7-9, 2016, at the Javits Center in New York City, NY. Alert Logic, Inc., provides Security-as-a-Service for on-premises, cloud, and hybrid infrastructures, delivering deep security insight and continuous protection for customers at a lower cost than traditional security solutions. Ful...
    SYS-CON Events announced today that Interoute, owner-operator of one of Europe's largest networks and a global cloud services platform, has been named “Bronze Sponsor” of SYS-CON's 18th Cloud Expo, which will take place on June 7-9, 2015 at the Javits Center in New York, New York. Interoute is the owner-operator of one of Europe's largest networks and a global cloud services platform which encompasses 12 data centers, 14 virtual data centers and 31 colocation centers, with connections to 195 ad...
    SYS-CON Events announced today that Men & Mice, the leading global provider of DNS, DHCP and IP address management overlay solutions, will exhibit at SYS-CON's 18th International Cloud Expo®, which will take place on June 7-9, 2016, at the Javits Center in New York City, NY. The Men & Mice Suite overlay solution is already known for its powerful application in heterogeneous operating environments, enabling enterprises to scale without fuss. Building on a solid range of diverse platform support,...
    Fortunately, meaningful and tangible business cases for IoT are plentiful in a broad array of industries and vertical markets. These range from simple warranty cost reduction for capital intensive assets, to minimizing downtime for vital business tools, to creating feedback loops improving product design, to improving and enhancing enterprise customer experiences. All of these business cases, which will be briefly explored in this session, hinge on cost effectively extracting relevant data from ...
    SYS-CON Events announced today that iDevices®, the preeminent brand in the connected home industry, will exhibit at SYS-CON's 18th International Cloud Expo®, which will take place on June 7-9, 2016, at the Javits Center in New York City, NY. iDevices, the preeminent brand in the connected home industry, has a growing line of HomeKit-enabled products available at the largest retailers worldwide. Through the “Designed with iDevices” co-development program and its custom-built IoT Cloud Infrastruc...
    Companies can harness IoT and predictive analytics to sustain business continuity; predict and manage site performance during emergencies; minimize expensive reactive maintenance; and forecast equipment and maintenance budgets and expenditures. Providing cost-effective, uninterrupted service is challenging, particularly for organizations with geographically dispersed operations.
    There will be new vendors providing applications, middleware, and connected devices to support the thriving IoT ecosystem. This essentially means that electronic device manufacturers will also be in the software business. Many will be new to building embedded software or robust software. This creates an increased importance on software quality, particularly within the Industrial Internet of Things where business-critical applications are becoming dependent on products controlled by software. Qua...