At Saturday on Libre Planet, Richard Stallman announced the publication of an essay on software as a service (SaaS). By my count, it is his first published piece on the subject since Stallman’s controversial comments on GMail a year and a half ago. Readers of this blog will all be interested in reading the new essay if they haven’t already already done so.

In his article, Stallman defines SaaS as, “a network server that does certain computing tasks … then invites users to do their computing on that server.” His basic message is simple: users should reject SaaS network services because SaaS users are inherently disempowered and out of control. Indeed, users should reject SaaS even if a service is implemented using free software!

Although some people have used the term SaaS quite broadly, Stallman means something very particular and focuses on the term “their computing.” When Stallman uses the term SaaS, he’s talking about computing that is highly individualistic and that looks like the type of computing that otherwise happens on a user’s own computer. Stallman explains SaaS does not refer to search, collaborative editing (e.g., Wikipedia), social networking, publication, or e-commerce. For each of these tasks, the computing involved can’t clearly be said to “belong” to one user or another; these examples all refer to computing that “belongs” to a dyad or a group. As a result, it follows that the computing involved need not obviously reside with any one individual. Stallman is careful to explain this doesn’t mean that network services doing these sorts of things are unproblematic. Often they are very problematic — but for reasons that have nothing to do with SaaS.

The piece is an interesting read but, judging by the questions and discussions after Stallman’s talk, the argument seems to be confusing for a number of people. Here’s my early thinking on the piece:

Part of the reason people are confused is because they are looking for a bright-line statement to evaluate particular applications and declare them free and non-free. SaaS can do that, but falls for short for many — and I think perhaps even the vast majority of — network services.

It seems to me that most network services I’ve used involve some SaaS features and some non-SaaS features. Some of the computing being done really belongs to a single user and some doesn’t. Some functionality boils down to collaborative or group-based computation and other things really are just tasks being done for one user using that user’s data; only the second class of features is SaaS. While particular features are easy to classify, most services end up being a bit muddy.

Much more problematically, and this is not something RMS addresses, it seems to me that the way that an application is used can really change the degree to which a program is SaaS. For example, Google certainly seems to be interested in having all of us replace OpenOffice.org and our  other desktop applications with Google Docs and other Google services. Using Google as an OpenOffice replacement is clearly SaaS and should clearly be rejected for the reasons Stallman explains. That said, every time I’ve seen Google Docs used, it was as a real-time collaborative document editing system for a large group of people. Used in this way, it seems that even Google Docs might not be SaaS!  SaaS or not, of course, we might still want to use federated free software alternatives like Gobby.

There are services that I have less trouble calling SaaS. Meebo, which apparently just uses the Pidgin code and creates a web-based front-end to it so that the all the computing involved happens in some data center instead of your desktop, seems like a clear example. But it’s hard to come up with tons of these pure-SaaS examples. My sense is that there are very few bright-line examples of network services that are clearly and completely SaaS. Indeed, my sense is that collaborative functionality is becoming an increasingly important part of most popular network services. SaaS seems to be a small and decreasingly important class of services.

Stallman made it clear in his talk and in the Q&A that he understands that SaaS is not a complete answer to the network services problem and, with the help of myself and the FSF staff, is working on a draft of a document influenced heavily by the Franklin Street Statement to be published by the FSF in the near future.

Stallman is right. We should reject SaaS. But even if rejecting SaaS alone leaves the most prominent, popular, and problematic network services unscathed — as I fear it might — SaaS provides a good way to think about them and keeps us focused on the key issues — control and (ahem!) autonomy. Thinking about the SaaS and non-SaaS features of applications helps us evaluate whether applications are worth their cost in freedom.

Internet Society of New York has a not to be missed event in a few days:

Eben Moglen, Professor of Law and Legal History at Columbia University, and founder, Director-Counsel and Chairman of the Software Freedom Law Center, will speak about “Freedom in the Cloud: Software Freedom, Privacy and Security for Web 2.0 and Cloud Computing” on Friday, February 5, 2010, 7-9 pm. This event will be webcast live.

HT Michael Mandiberg.

This post summarizes a panel held at OSCON on July 22, 2009. Apologies for the late posting. We still thought it would be useful to document it here.

Bradley Kuhn moderated a panel discussion entitled With Software as a Service, Is Only the Network Luddite Free? on the first day of OSCON 2009, exploring the loss of freedom that accompanies the software as a service (SaaS) computing model. Kuhn was joined on the panel by Benjamin Mako Hill from the Free Software Foundation (FSF), Evan Prodromou from Control Yourself, Nathan Yergler of Creative Commons (CC), and O’Reilly Media’s Tim O’Reilly. Three topics dominated the session: the changing models of SaaS itself, the importance of building federated network services, and the challenge of building licensing models for data that preserve the user freedom that free software users have come to expect.

Software as a Service

Hill led off the discussion by explaining the background behind the Franklin Street Statement (FSS), then posed the question “whose computing is happening where?” SaaS can be divided into two types, he said: computing that could be done locally, such as email or Google Docs editing, and computing that must be networked — “group computing” for which user-to-user interaction is a core idea. The meaning of user’s “freedom” differs between the two. Computing that could happen anywhere is much like the desktop paradigm; the bigger challenge is protecting freedom in the group computing model.

O’Reilly asserted that the first case is a “vanishing class” of software anyway. SaaS as an application delivery mechanism to a single user is going away, he said, to be replaced by applications built to incorporate user contributions and collaboration.

Hill and O’Reilly elaborated on the point when an audience member asked how the GPL related to the individual-versus-collective computing demarcation. The FSF knows that “one person’s computing” as historically protected by the GPL does not cover all computing models, Hill said, including SaaS tasks like crowdsourcing and searching; the Affero GPL and FSS were created to address them, but it is important not to get sidetracked by philosophical and political discussions over the meaning of freedom. O’Reilly added that to him, transparency was the critical freedom issue in collective computing.

Federation

Kuhn asked Prodromou to speak about creating a business model around free network services, particularly in light of federation — which removes the stranglehold over the service that keeps proprietary SaaS vendors in power. Prodromou replied that the distributed, federated architecture of Laconica (the free microblogging software that runs Identi.ca) is the crux of the entire system. Open microblogging is distributed like the Internet itself, and distributed, federated designs have always become standards — email and instant messaging the most high-profile examples.

In response to the question “what would a free, federated social networking system look like?”, Prodromou speculated that it would not be a separate site at all. “Social networks are the modern Romeo and Juliet story,” he said. “If Romeo is on Facebook and Juliet is on MySpace, there’s no way that they can ever be together.” O’Reilly likened the underlying challenge to separating the “social graph” implemented in such sites from the sites themselves. “I want to see somebody reinvent the address book as an integrated social graph,” he said, so that the relationships and connections are attached to the user, not to the site.

Data licensing

Yergler added that the licensing of data was just as important as the licensing of SaaS software itself. SaaS is about users interacting around shared resources, not just publishing data one-way; using standardized data licenses is the way to grow the pool of shared resources. He described CC’s work on data licensing, including ways to make licensing information discoverable, such as machine-readable markup.

O’Reilly added that it is increasingly important to think about data that is not explicitly created by human beings — we tend to define data as “what we type,” he said, but it also includes automatically generated data like GPS logs. The answer is for coders to select a default data license, lest ambiguity about such automatically generated data creep in. Yergler commented that it is still an open question, legally speaking, whether machine-created data can even be copyrighted. He recommended using the CC0 public domain declaration as a solution, thus waiving all possible rights.

The panel addressed several other issues, from whether Google’s ChromeOS project represents a new challenge to user freedom to the privacy issues inherent in moving personal data between federated service providers. A line of audience members asked questions, but the session had to be wrapped up to make room for the rest of the day’s program. Hill encouraged those who found the discussion worthwhile to join in the ongoing discussion hosted at the Autonomo.us Web site.

Luis Villa pointed  folks on the Autonomo.us email list to this essay at Free Software Magazine by Tony Mobily. The article title, “Why Google Chrome OS will turn GNU/Linux into a desktop winner,” is a good summary of Mobily’s basic argument.

Although there has been lots of discussion about Chrome OS in the free and open source software communities (e.g. on LWN), its worth qualifying this post by saying that, beyond Google’s announcement, we don’t actually know very much about Chrome OS. But although it is probably an overstatement to suggest (as some have) that Chrome OS will simply boot into a browser, Google is being quite up front about the fact that it is being designed for, “people who live on the web” and will be an environment where, “most of the user experience takes place on the web.”

With the rise of network services, the idea of an operating system that is largely reduced to a web browser is no longer difficult to imagine. Even if one were to limit themselves entirely to Google services, one would have a word processor, spreadsheet, email client, photo management software, chat client, RSS reader, and much more — most of the applications that most people use. As Mobily points out, this means that the details of any operating system begin to matter less. It doesn’t matter if your OS doesn’t have many native programs; if the programs you want run over the web, all you need is a browser.

Mobily argues that Chrome OS will be a win for GNU/Linux on the desktop because Google’s might and market power will help free software succeed where it has struggled in the past. And he might be right. But even if Mobily is completely right and Chrome OS becomes a raging success, it is not at all clear that this will represent a victory of any meaningful sort for software freedom and for users’ autonomy.

Chrome OS is, as it is described, an explicit attempt to build a system that changes where ones computing happens. In doing so, Google is trying to create an OS built around “Software as a Service” that replaces applications a user might run on their own computer with applications that runs on servers outside user control. A Chrome OS user’s computer doesn’t need to be powerful — Google claims that Chrome OS will be ideally suited to low power netbooks — because the user’s computation is happening on Google’s servers instead of the netbook itself.

If switching to Chrome OS means giving up Thunderbird to use GMail, or giving up Openoffice.org to use Google Docs, or giving up Pidgin to use a web-based Google Talk, or giving up Evolution to use Google Calendar, we have reduced the influence and success of the free software desktop, not sealed its victory as Mobily suggests. In a SaaS world, there will be less free software being used and, much more importantly, users will be less free.

With every shift from a piece of free software to a web-based network service, we have moved from a situation where a user had control over his or her software — users’ of “traditional” free software have access to source and have control over the system on which the computer runs — to a situation where users have very little control over their software at all. Google offers no source for the applications that run their web services and, even if they did, they do not offer users the ability to change the software that runs on Google servers.

Chrome OS, or any OS designed around pushing users computation off their computers and onto servers outside of their control is regressive for software freedom. If Chrome OS is, as Mobily suggests, the key to free software’s victory on the desktop, it would be be a ironic and bitter victory indeed.

GitHub has a complicated relationship to software freedom and network services: It is a proprietary centralized service, built using free software, used by many free and open source software projects (and a whole lot of proprietary ones as well) to make using a piece of free software designed to support distributed work on users’ local computers easier.

Last week, Logical Awesome — the company that makes GitHub — announced GitHub:FI (Firewall Install). The new product is designed for those that, “wish to enjoy the benefits of GitHub, but are unable to do so because of corporate restrictions or laws that prevent you from hosting your code with a third-party service.” Essentially, GitHub:FI is a version of GitHub that can be installed on a company’s own computer inside a private network.

The GitHub:FI announcement reveals a number of interesting issues around autonomy and network services. First, the product is a symbol of recognition by GitHub of the business limitations of a purely service-based business. Not everyone will be willing or able to hand their data or computation over to a third-party. GitHub:FI exists to serve a group of people that want a level of autonomy that, while far from Franklin Street Statement style autonomy, is more than the centralized version of GitHub can provide. It marks a guarded step toward increased autonomy by a cloud poster-child.

Second, it’s interesting to see this reluctance to centralized services being described as motivated by organizations under strong institutional pressures — groups like large firms and governments. Although it certainly makes sense that these groups would be reluctant to “outsource” to centralized systems, GitHub:FI shows that these groups may provide an unlikely ally in at least part of the fight for autonomy.

Third, in Logical Awesome’s words, GitHub:FI, “is well over the cost of our most-expensive hosted plan.” In this pricing structure, the distributed option presented in GitHub:FI is framed as a form of tax on autonomy. We suspect there will be much more of this going forward. Of course, as GitHub remains proprietary software, users of GitHub:FI get only buy partial autonomy.

Finally, the product’s name is interesting. Not so long ago, we treated network services as exceptional and local software as normal. The idea of calling distributed software a “firewall install” is an explicit attempt to reframe conceptions of normal and exceptional in terms of where we expect software to reside or, perhaps, a reflection of just how entrenched services have already become.

This post was written with Dafydd Harries.

This past Monday Canonical announced the closed beta of UbuntuOne which is specifically written for Ubuntu 9.04 (Jaunty Jackalope) systems.  UbuntuOne gives the user file synchronization between multiple computers.  It does this by uploading all of the files in the ~/Ubuntu One/My Files/ folder to Canonical’s servers (currently hosted by Amazon S3), with plans to migrate to a Canonical hosted installation of Eucalyptus). There is also a web interface where the user can upload and download files in their folder when away from their Ubuntu machine.

If this sounds familiar to you it is because that functionality is very similar to services such as Dropbox and Drop.io.  But where UbuntuOne is different is Canonical’s plan to incorporate other synchronization features such as email contacts, user settings, etc.
The service has great potential.

Unfortunately, Canonical will not be releasing the server software for UbuntuOne as Free/Libre Open Source Software (FLOSS). Thus, no user is able to install their own hosted version of UbuntuOne to ensure total ownership of the system and process. As someone who believes in the principles of the Franklin Street Statement, I would be much happier if UbuntuOne (or Dropbpox, Drop.io, etc) would release the server code under a FLOSS license as per the recommendation of the Franklin Street Statement.

Personally, I am proud to say I am a member of the Ubuntu community. I am the leader of the Michigan Local Community Team and really believe that what Ubuntu, as a whole, is doing is beneficial for the FLOSS community.  With that said, I believe that UbuntuOne would better serve the community, and even Canonical, as a Free Network Service.  It would show Canonical’s commitment to FLOSS and be a great example for other companies thinking about entering this area.  It would also be the flagship file sync Free Network Service and thus would gain much publicity, and users, because of that.  The for-pay option of getting a larger allotment of space would still be desired and marketable.

But. there is another option!

Novell has recently revived the iFolder project and has even assigned a Community Manager to the project (Brent McConnell).  Brent has even personally ensured me that they are “totally committed to keeping iFolder open and regret the poor management of the project over the last year or so.”

iFolder, unlike any of the other alternatives, is a Free Network Service.  The code that runs on both the client and the server is
licensed under the GPLv2 giving users complete control of their data on all ends.  I would whole-heartedly encourage any person who wants a Free Network Service alternative to UbuntuOne/Dropbox to check out iFolder and its planned set of features.

There is some debate on whether my comment during Jeremy Allison’s keynote at LibrePlanet 2009 was a heckle or not. (I did directly give Jeremy permission to call it such, so I don’t mind it. :) . However, there is no debate that Jeremy’s follow-up article clearly endorses the AGPL for Cloud Computing applications. In it, he says:

[I]f I ever work on cloud computing code, I’d like to see it under the AGPL, in order to preserve the freedoms I’ve been able to enjoy in conventional software development these many years. Without the AGPL, our freedoms will depend on the kindness of strangers donating their modifications to our code back to us, as they did in the days before the GPL license and the FSF was born.

This is great to see and I thank Jeremy for a great and open-minded response to my point (er, heckle :) .

In the news recently is the Open Cloud Manifesto.  It is light on content; and not much of a manifesto at all.  I believe this is a fine start, but perhaps more marketing than an actual working group.  The name “Open Cloud Manifesto” follows the trend of prepending Open in front of everything. We have Open source.  Open computing. Open standards. And now, Open Clouds. I encourage this trend.  However, it needs to go one step further.  The Open Cloud statement needs to take the next step and include Free network services. The Franklin Street Statement (FSS) by the Autonomo.us working group lists the characteristics of an optimal free network service.

The FSS lists some key ideas for Service Providers:

  • Choosing Free Software for their service
  • Release customizations to their software under a Free Software license.
  • Allow the Users to control their own data

These can be easily incorporated by the group behind the Open Cloud Manifesto.

We are not talking about free as in zero cost.  Free Networks, much like Free Software, can charge money for their efforts; including support, development, desired customizations, etc.  However, the software is Free as defined by the Free Software Foundation. You as a user of a Free Network Service have the ability to download the software and setup the same service on your own.  The majority of users will not do this, for the simple fact they are opportunistically lazy.
I will happily use, and pay, for your service so long as I have the same control over my data as if I ran it myself; on my own hardware, or I suppose, my own “cloud”.

By empowering the users with control over their own data, allowing them to clone your service using the same software as the provider, and using Free Software; you offer a Free Network Service.  As a User/Customer, this is your data, entrusted to a third party in many cases, you should demand nothing less.

Another podcast lite — audio recording of Evan Prodromou’s Libre Planet keynote on engineering for free network services based on his years of experience developing free software and in particular the free network service identi.ca, the laconica software that service runs, and the OpenMicroBlogging federation protocol the software implements. Announced after the conference, see Evan’s post on status.net for where he’s taking the service. Very exciting stuff!

To whet your appetite for the podcast I’ll highlight probably the two least obvious or most controversial points Evan made:

  • Smart data reduces the need for smart code, thus supports user autonomy. Put another way (from Evan microblogging a later conference rather than this talk, but it fits), metadata democratizes data. On that note watch for more exciting stuff being done with RDFa all the time.
  • Build free network services in PHP/MySQL. This is painful for many to hear, but if you want your code to be deployed by people on their own servers (or their own $5/month or less shared hosting account — the key being they control the code running the application in either case), PHP and MySQL are far easier for users to deal with than cooler stacks that require installing additional software in the typical case.

Listen and see notes and slides for more.

Benjamin Mako Hill gave a keynote at Libre Planet outlining progress on defining free network services since last year’s FSF member meeting, primarily the launch of Autonomo.us’ Franklin Street Statement, and an update on discussions within the FSF on network services.

See slides and notes from the talk and listen to an audio recording.

Continuing in the tradition of Bradley Kuhn posting a conference keynote in the podcast category of this blog, I’ll post this and perhaps others from Libre Planet one at a time as podcasts (or podcast lites — we’ve had only two fully produced Autonomo.us podcast episodes so far).

This recording is in format. Hopefully your podcatcher knows how to deal with that. [Update: works just fine in .]

« Older entries