もう一つの道の先
次世代ソフトウェアはサーバーベースが主流となり、プログラマーに新たな機会をもたらし、スタートアップにとって大きなチャンスとなる可能性を論じています。
キーポイント
サーバーベースソフトウェア(ASP/クラウド)の先駆的提唱とその利点(ユーザー負担軽減、管理容易性)
デスクトップソフトウェア時代の不便さと、一般ユーザーが技術的詳細から解放される必要性の指摘
スタートアップにとっての巨大な機会としてのサーバーベースモデル(Viaweb/Yahoo Storeの成功事例)
Microsoftを含む業界全体のトレンド転換の予測と、開発者環境の根本的変化
影響分析・編集コメントを表示
影響分析
この記事はクラウドコンピューティングとSaaSモデルの黎明期における先見的なマニフェストであり、ソフトウェア配布・利用のパラダイムシフトを明確に予言した。技術的専門知識を必要としないアクセシビリティの向上と、スタートアップの新たなビジネス機会を創出する基盤を提示した点で、現代のソフトウェア産業形成に大きな影響を与えた。
編集コメント
2001年時点で現在のクラウド主流時代を正確に予見した先駆的論考。技術の民主化とビジネスモデル革新の原点として、AIサービス普及の文脈でも示唆に富む。
もう一つの道が開ける
2001年9月(本稿では、次世代ソフトウェアの多くがサーバーベースになる可能性がある理由、それがプログラマーにとって何を意味するか、そしてこの新しい種類のソフトウェアがスタートアップにとって大きな機会である理由を説明する。BBN Labsでの講演に基づいている。)
1995年の夏、私の友人ロバート・モリスと私はスタートアップを始めることに決めた。その頃、ネットスケープのIPOに向けたPRキャンペーンが全開で行われており、メディアではオンライン・コマースについての話題が多く取り上げられていた。当時、ウェブ上には実際の店舗はせいぜい30ほどしかなく、すべて手作りだった。もし多くのオンラインストアができるなら、それらを作るためのソフトウェアが必要になるだろう、そう考えて私たちはそれを作ることにした。
最初の1週間ほどは、これを普通のデスクトップアプリケーションにしようと考えていた。ある日、ブラウザをインターフェースとして使い、ソフトウェアを私たちのウェブサーバー上で動作させるというアイデアを思いついた。そのソフトウェアをウェブ上で動作するように書き直してみると、これが正しい道であることは明らかだった。もしソフトウェアをサーバー上で動作するように書けば、ユーザーにとっても、私たちにとっても、はるかに簡単になるはずだった。
これは良い計画であることがわかった。現在、Yahoo Storeとして、このソフトウェアは最も人気のあるオンラインストアビルダーであり、約14,000のユーザーを抱えている。Viawebを始めた頃、私たちが「ソフトウェアはサーバー上で動作する」と言っても、それを理解する人はほとんどいなかった。人々が理解し始めたのは、1年後にHotmailが立ち上げられてからだった。今では誰もが、これが有効なアプローチであることを知っている。私たちがやっていたことには今、名前がついている。アプリケーション・サービス・プロバイダー、略してASPだ。
私は、次世代のソフトウェアの多くがこのモデルで書かれることになると思う。失うものが最も多いマイクロソフトでさえ、一部のものをデスクトップから移行させることの必然性を認識しているようだ。もしソフトウェアがデスクトップからサーバーへ移行すれば、開発者にとっては非常に異なる世界を意味するだろう。この記事では、この新世界への最初の訪問者の一人として私たちが見た驚くべきことを記述する。ソフトウェアがサーバーへ移行する限り、私がここで述べていることは未来である。
次なるもの?
デスクトップソフトウェアの時代を振り返るとき、人々が受け入れていた不便さに私たちは驚くだろう、ちょうど初期の自動車所有者が受け入れていたことに私たちが今驚くのと同じように。最初の20年か30年は、自動車を所有するには自動車の専門家である必要があった。しかし、自動車はそれほど大きな利点だったので、専門家ではない多くの人々もそれを欲しがった。コンピューターは今、この段階にある。
デスクトップコンピューターを所有すると、その内部で何が起こっているかについて、知りたかった以上に多くのことを学ぶことになる。しかし、米国の家庭の半分以上が一台を所有している。私の母は、電子メールと家計簿付けに使うコンピューターを持っている。約1年前、彼女はアップルから新しいバージョンのオペレーティングシステムの割引を提供する手紙を受け取り、驚いた。電子メールと家計簿にコンピューターを使いたい65歳の女性が、新しいオペレーティングシステムのインストールについて考えなければならないのは、何かがおかしい。一般ユーザーは「オペレーティングシステム」という言葉さえ知るべきではない。ましてや「デバイスドライバ」や「パッチ」などなおさらだ。
今、ユーザーがシステム管理者になることを防ぐ、別のソフトウェア提供方法がある。ウェブベースのアプリケーションとは、ウェブサーバー上で動作し、ウェブページをユーザーインターフェースとして使用するプログラムである。平均的なユーザーにとって、この新しい種類のソフトウェアは、デスクトップソフトウェアよりも、より簡単で、より安く、よりモバイル性が高く、より信頼性が高く、しばしばより強力なものになるだろう。
ウェブベースのソフトウェアでは、ほとんどのユーザーは、自分が使うアプリケーション以外のことを考えなくて済む。すべての煩雑で変化するものは、どこかのサーバー上に置かれ、その種のことが得意な人々によって維持される。そして、ソフトウェアを使うために、本来、コンピューターは必要なくなるだろう。必要なのは、キーボードと画面、そしてウェブブラウザを備えた何かだけだ。おそらく無線インターネットアクセスを持つだろう。おそらくそれはあなたの携帯電話にもなるだろう。それが何であれ、それは家電製品になるだろう。約200ドル程度の価格で、人々は主にケースの見た目に基づいて選択するものになる。電話と同じように、ハードウェアよりもインターネットサービスにより多くのお金を払うことになるだろう。[1]
クリックがサーバーに到達して戻ってくるまでには約0.1秒かかるので、Photoshopのような高度にインタラクティブなソフトウェアのユーザーは、依然として計算がデスクトップ上で行われることを望むだろう。しかし、ほとんどの人々がコンピューターを使う目的を見れば、0.1秒の遅延は問題にはならないだろう。私の母は本当はデスクトップコンピューターを必要としていないし、彼女のような人々はたくさんいる。
ユーザーにとっての勝利
私の家の近くに、「不便よりも死を」というバンパーステッカーを貼った車がある。ほとんどの人々は、ほとんどの場合、最も労力が少ない選択肢を選ぶ。もしウェブベースのソフトウェアが勝つとすれば、それはそれがより便利だからだろう。そしてそれは、ユーザーにとっても開発者にとっても、より便利になるように思える。
純粋なウェブベースのアプリケーションを使用するには、必要なのはインターネットに接続されたブラウザだけだ。だから、ウェブベースのアプリケーションはどこでも使える。デスクトップコンピューターにソフトウェアをインストールすると、そのコンピューターでしか使えない。さらに悪いことに、あなたのファイルはそのコンピューターに閉じ込められる。人々がネットワークに慣れるにつれて、このモデルの不便さはますます明らかになっている。
この楔の薄い端は、ウェブベースの電子メールだった。今では何百万人もの人々が、どこにいても電子メールメッセージにアクセスできるべきだと認識している。そして、電子メールが見られるなら、カレンダーはどうして見られないのか?同僚と文書について議論できるなら、なぜそれを編集できないのか?なぜあなたのデータのいずれかが、遠くの机の上にあるコンピューターに閉じ込められていなければならないのか?
「あなたのコンピューター」という考え全体が消えつつあり、「あなたのデータ」に置き換えられようとしている。あなたはどんなコンピューターからでも自分のデータにアクセスできるべきだ。あるいは、どんなクライアントからでも、であり、クライアントはコンピューターである必要はない。クライアントはデータを保存すべきではない。電話のようであるべきだ。実際、クライアントは電話になるかもしれないし、その逆かもしれない。そしてクライアントが小さくなるにつれて、データをそこに保存しないもう一つの理由が生まれる。持ち歩くものは、紛失したり盗まれたりする可能性がある。PDAをタクシーに置き忘れることは、ディスククラッシュのようなものだが、データが消滅する代わりに誰かの手に渡る点が異なる。
純粋なウェブベースのソフトウェアでは、データもアプリケーションもクライアント上に保持されない。だから、それを使うために何かをインストールする必要はない。インストールがなければ、インストールがうまくいかないことを心配する必要もない。アプリケーションとあなたのオペレーティングシステムとの間に互換性の問題はありえない。なぜなら、そのソフトウェアはあなたのオペレーティングシステム上では動作しないからだ。
インストールが不要なため、ウェブベースのソフトウェアを「購入」する前に試すことは簡単で、一般的になるだろう。提供されているサイトに行くだけで、どんなウェブベースアプリケーションも無料で試乗できることを期待すべきだ。Viawebでは、私たちのサイト全体がユーザーを試乗へと導く大きな矢印のようだった。デモを試した後、サービスに申し込むには、短いフォーム(短ければ短いほど良い)に記入するだけで済むはずだ。そして、それがユーザーがしなければならない最後の作業であるべきだ。
ウェブベースのソフトウェアでは、追加料金を払ったり、何らかの作業をしたり、あるいはそれについて知ることさえなく、新しいリリースを手に入れることができるはずだ。アップグレードは、今のような大きな衝撃にはならないだろう。時間の経過とともに、アプリケーションは静かにより強力になっていく。これは開発者側にある程度の努力を要する。彼らは、ユーザーを混乱させることなく更新できるようにソフトウェアを設計しなければならない。それは新しい問題だが、解決する方法はある。
ウェブベースのアプリケーションでは、誰もが同じバージョンを使い、バグは発見され次第修正できる。だから、ウェブベースのソフトウェアはデスクトップソフトウェアよりもはるかにバグが少ないはずだ。Viawebでは、同時に既知のバグが10個以上あったことは一度もなかったと思う。それはデスクトップソフトウェアよりも桁違いに良い。
ウェブベースのアプリケーションは、複数の人々が同時に使用できる。これは共同作業アプリケーションにとって明らかな利点だが、私はユーザーが
原文を表示
September 2001 (This article explains why much of the next generation of software may be server-based, what that will mean for programmers, and why this new kind of software is a great opportunity for startups. It's derived from a talk at BBN Labs.) In the summer of 1995, my friend Robert Morris and I decided to start a startup. The PR campaign leading up to Netscape's IPO was running full blast then, and there was a lot of talk in the press about online commerce. At the time there might have been thirty actual stores on the Web, all made by hand. If there were going to be a lot of online stores, there would need to be software for making them, so we decided to write some. For the first week or so we intended to make this an ordinary desktop application. Then one day we had the idea of making the software run on our Web server, using the browser as an interface. We tried rewriting the software to work over the Web, and it was clear that this was the way to go. If we wrote our software to run on the server, it would be a lot easier for the users and for us as well. This turned out to be a good plan. Now, as Yahoo Store, this software is the most popular online store builder, with about 14,000 users. When we started Viaweb, hardly anyone understood what we meant when we said that the software ran on the server. It was not until Hotmail was launched a year later that people started to get it. Now everyone knows that this is a valid approach. There is a name now for what we were: an Application Service Provider, or ASP. I think that a lot of the next generation of software will be written on this model. Even Microsoft, who have the most to lose, seem to see the inevitablity of moving some things off the desktop. If software moves off the desktop and onto servers, it will mean a very different world for developers. This article describes the surprising things we saw, as some of the first visitors to this new world. To the extent software does move onto servers, what I'm describing here is the future. The Next Thing? When we look back on the desktop software era, I think we'll marvel at the inconveniences people put up with, just as we marvel now at what early car owners put up with. For the first twenty or thirty years, you had to be a car expert to own a car. But cars were such a big win that lots of people who weren't car experts wanted to have them as well. Computers are in this phase now. When you own a desktop computer, you end up learning a lot more than you wanted to know about what's happening inside it. But more than half the households in the US own one. My mother has a computer that she uses for email and for keeping accounts. About a year ago she was alarmed to receive a letter from Apple, offering her a discount on a new version of the operating system. There's something wrong when a sixty-five year old woman who wants to use a computer for email and accounts has to think about installing new operating systems. Ordinary users shouldn't even know the words "operating system," much less "device driver" or "patch." There is now another way to deliver software that will save users from becoming system administrators. Web-based applications are programs that run on Web servers and use Web pages as the user interface. For the average user this new kind of software will be easier, cheaper, more mobile, more reliable, and often more powerful than desktop software. With Web-based software, most users won't have to think about anything except the applications they use. All the messy, changing stuff will be sitting on a server somewhere, maintained by the kind of people who are good at that kind of thing. And so you won't ordinarily need a computer, per se, to use software. All you'll need will be something with a keyboard, a screen, and a Web browser. Maybe it will have wireless Internet access. Maybe it will also be your cell phone. Whatever it is, it will be consumer electronics: something that costs about $200, and that people choose mostly based on how the case looks. You'll pay more for Internet services than you do for the hardware, just as you do now with telephones. [1] It will take about a tenth of a second for a click to get to the server and back, so users of heavily interactive software, like Photoshop, will still want to have the computations happening on the desktop. But if you look at the kind of things most people use computers for, a tenth of a second latency would not be a problem. My mother doesn't really need a desktop computer, and there are a lot of people like her. The Win for Users Near my house there is a car with a bumper sticker that reads "death before inconvenience." Most people, most of the time, will take whatever choice requires least work. If Web-based software wins, it will be because it's more convenient. And it looks as if it will be, for users and developers both. To use a purely Web-based application, all you need is a browser connected to the Internet. So you can use a Web-based application anywhere. When you install software on your desktop computer, you can only use it on that computer. Worse still, your files are trapped on that computer. The inconvenience of this model becomes more and more evident as people get used to networks. The thin end of the wedge here was Web-based email. Millions of people now realize that you should have access to email messages no matter where you are. And if you can see your email, why not your calendar? If you can discuss a document with your colleagues, why can't you edit it? Why should any of your data be trapped on some computer sitting on a faraway desk? The whole idea of "your computer" is going away, and being replaced with "your data." You should be able to get at your data from any computer. Or rather, any client, and a client doesn't have to be a computer. Clients shouldn't store data; they should be like telephones. In fact they may become telephones, or vice versa. And as clients get smaller, you have another reason not to keep your data on them: something you carry around with you can be lost or stolen. Leaving your PDA in a taxi is like a disk crash, except that your data is handed to someone else instead of being vaporized. With purely Web-based software, neither your data nor the applications are kept on the client. So you don't have to install anything to use it. And when there's no installation, you don't have to worry about installation going wrong. There can't be incompatibilities between the application and your operating system, because the software doesn't run on your operating system. Because it needs no installation, it will be easy, and common, to try Web-based software before you "buy" it. You should expect to be able to test-drive any Web-based application for free, just by going to the site where it's offered. At Viaweb our whole site was like a big arrow pointing users to the test drive. After trying the demo, signing up for the service should require nothing more than filling out a brief form (the briefer the better). And that should be the last work the user has to do. With Web-based software, you should get new releases without paying extra, or doing any work, or possibly even knowing about it. Upgrades won't be the big shocks they are now. Over time applications will quietly grow more powerful. This will take some effort on the part of the developers. They will have to design software so that it can be updated without confusing the users. That's a new problem, but there are ways to solve it. With Web-based applications, everyone uses the same version, and bugs can be fixed as soon as they're discovered. So Web-based software should have far fewer bugs than desktop software. At Viaweb, I doubt we ever had ten known bugs at any one time. That's orders of magnitude better than desktop software. Web-based applications can be used by several people at the same time. This is an obvious win for collaborative applications, but I bet users will start to want this in most applications once they realize it's possible. It will often be useful to let two people edit the same document, for example. Viaweb let multiple users edit a site simultaneously, more because that was the right way to write the software than because we expected users to want to, but it turned out that many did. When you use a Web-based application, your data will be safer. Disk crashes won't be a thing of the past, but users won't hear about them anymore. They'll happen within server farms. And companies offering Web-based applications will actually do backups-- not only because they'll have real system administrators worrying about such things, but because an ASP that does lose people's data will be in big, big trouble. When people lose their own data in a disk crash, they can't get that mad, because they only have themselves to be mad at. When a company loses their data for them, they'll get a lot madder. Finally, Web-based software should be less vulnerable to viruses. If the client doesn't run anything except a browser, there's less chance of running viruses, and no data locally to damage. And a program that attacked the servers themselves should find them very well defended. [2] For users, Web-based software will be less stressful. I think if you looked inside the average Windows user you'd find a huge and pretty much untapped desire for software meeting that description. Unleashed, it could be a powerful force. City of Code To developers, the most conspicuous difference between Web-based and desktop software is that a Web-based application is not a single piece of code. It will be a collection of programs of different types rather than a single big binary. And so designing Web-based software is like desiging a city rather than a building: as well as buildings you need roads, street signs, utilities, police and fire departments, and plans for both growth and various kinds of disasters. At Viaweb, software included fairly big applications that users talked to directly, programs that those programs used, programs that ran constantly in the background looking for problems, programs that tried to restart things if they broke, programs that ran occasionally to compile statistics or build indexes for searches, programs we ran explicitly to garbage-collect resources or to move or restore data, programs that pretended to be users (to measure performance or expose bugs), programs for diagnosing network troubles, programs for doing backups, interfaces to outside services, software that drove an impressive collection of dials displaying real-time server statistics (a hit with visitors, but indispensable for us too), modifications (including bug fixes) to open-source software, and a great many configuration files and settings. Trevor Blackwell wrote a spectacular program for moving stores to new servers across the country, without shutting them down, after we were bought by Yahoo. Programs paged us, sent faxes and email to users, conducted transactions with credit card processors, and talked to one another through sockets, pipes, http requests, ssh, udp packets, shared memory, and files. Some of Viaweb even consisted of the absence of programs, since one of the keys to Unix security is not to run unnecessary utilities that people might use to break into your servers. It did not end with software. We spent a lot of time thinking about server configurations. We built the servers ourselves, from components-- partly to save money, and partly to get exactly what we wanted. We had to think about whether our upstream ISP had fast enough connections to all the backbones. We serially dated RAID suppliers. But hardware is not just something to worry about. When you control it you can do more for users. With a desktop application, you can specify certain minimum hardware, but you can't add more. If you administer the servers, you can in one step enable all your users to page people, or send faxes, or send commands by phone, or
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み