Scaling to the Enterprise (Part 2 of 4)

2. HOW MUCH USE CAN THE APPLICATION SUPPORT?
(See part 1.)

The architecture of Croquet is very different from that of, for example, J2EE applications. In a client-server application, one server or server “farm” must process each and every interaction initiated by the thousands or millions of users. The only thing processed on the end-user’s computer may be as little as the HTML formatting of the text and image results. Every single other computation must be handled on the big-iron servers. To double the number of users, the capacity of the servers must be doubled. It should be no surprise, then, that so much effort goes into trying to squeeze out each available computing cycle in such architectures.

When an application has state — that is, when results depend on previous results rather than simply generating static files — client-server does MUCH worse. The amount of storage required can go up much faster. In some cases the application state depends on the number of possible connections between users or between applications. The storage (and certain kinds of search-like operations) increases as the square of the number of users or applications (N^2, c.f. Metcalfe’s law). But we are particularly interested in allowing students and faculty to form their own ad-hoc groups among which to communicate and solve problems. A client-server architecture hosting such “group forming” applications would grow exponentially to the number of users (2^N, c.f. Reed’s 3rd law). With only a few users, this architecture would not work at all, no matter how (finitely) fast the servers, or what language the application is written in. (See Reed’s discussion for a surprisingly accessible treatment of value, saturation, and other issues.)

Continue reading

Scaling to the Enterprise (Part 1 of 4)

Croquet is built on some well-used, but not mainstream technologies. A colleague has asked “Why should we believe that Squeak scales to the enterprise?” I’d like to share my answer, to solicit comment.

It is good to ask this, and there are several aspects to the answer:
1. How reliable is the underlying software?
2. How much use can the software support?
3. How will applications be developed?
4. How reliable is the community.

Part 1 of 4.

Continue reading

intregration with document-oriented applications

How do we integrate Croquet with the Web? How do we integrate with legacy applications in general?

We interact with computers now in a document model developed by Alan Kay’s Xerox PARC team a long time ago. (Xerox: The Document Company.) It is as is if we have our head bent over our desktop, looking at a piece of paper. We slide other pieces of paper in and out below the face of our bowed head. In Croquet, Kay’s team today lets us lift our head up off the desk and look up at the world around us, including our coworkers. But just as the 3D world has paper within it, shouldn’t the Croquet world have document-based software within it? Yes!

Continue reading

I was just thinking of you…

I just had one of those damn computer things, where I send an email to someone who I couldn’t reach by voice, but just after sending it, I get an email from that person that changes the conditions of what I was writing to the person about. Arghh.

I’ve written before about how Croquet fosters both synchronous and asynchronous communication, like combining chat and email. Here’s how it plays out in this particular scenario. I go to the special space that Alice and I have created (with a few clicks or voice commands) for the stuff common to us. (Or maybe common to a group of three or more. It doesn’t matter.) I create a message in that space – voice, text, or video. The idea is that Alice will see that message (and possibly be notified) and will review at her leisure. Alice starts to do the same thing, but since each of us has a presence (an avatar) visible to anyone else in the space, we see each other. Then we just start talking, directly. While we do so, I can even point at the paragraph that I was just composing. Alice can edit it, too, so that she or I can then bring over the collaboratively revised version to Bob. No mail client. No telephone. No chat client. No whiteboard. No filenames or email addresses. No server.

OK, this isn’t that different in principle from the little colored balls in Macintosh Mail that tell you which addresses belong to people who are in your buddy list and available for iChat at this moment. But maybe it’s enough different to actually be useable.

Inventing the Future: enchancing performance

Like many people I’ve talked to, I tend to imagine using Croquet for automation. We envision physics and molecular chemistry simulations running on their own, while the people in the collaboration walk around among the ball and stick model forest and observe. Maybe we reach up and grab an atom or two and pull on it to see how that changes the path of the simulation. That’s my nature. I’m an engineer and I want to automate stuff so I don’t have to work so hard, even in visualization. I’m so lazy I even want to automate my imagination.

I worked for more than a dozen years creating some kind of automation or another. The biggest misconception I had to clear up with my clients was that you can’t automate what you don’t understand. You have to tell the computer exactly what to do. I learned this lesson in high school when we had a model bridge-building contest in physics class. Everyone assumed that I would design my bridge on a computer, and I sat down to try it.

Continue reading