Friday, November 6, 2009

Why do the clouds in cloud computing have to be so large?

The current view of cloud computing is one where processing and data storage is moved onto a set of services accessed over a network and served up to a number of small and/or lightweight clients.
The benefits of such a model are often touted in terms of potential cost reduction and ubiquity of access for users and small businesses. Cheaper, more mobile client hardware, less localized fixed infrastructure costs, simpler management and update, extensible resources, potential for global access etc.

There are also some significant issues with the traditional characterization of cloud computing including ubiquitous and consistent connectivity, potential performance issues, richness and controllability of the experience delivered, security, and balkanization of services and information.
So why do the clouds have to be so large? Any system architect will tell you that design is a constant tradeoff between simplicity through the centralization of resources, the cost tradeoffs in resource sharing, verses driving complexity to the edge to achieve performance and more localized and richer experience; and that management of data ultimately becomes an issue of trust rather than one of technology.
A differentiated viewpoint on cloud computing would allow, support and embrace the inclusion of smaller clouds operating at different levels in the system working in concert with larger clouds.
With appropriate infrastructure the the clouds themselves then become a composable fabric of computing, processing, storage and other services enabling the architectural tradeoffs required to support effective pervasive computing. For example a cloud formed by devices in a room create a basis for entertainment (locative context), the cloud formed by the chance meeting of two individuals provide the potential for collaboration and sharing even commerce (social context). This doesn’t invalidate the existing vision and notions of cloud computing it extends this notion maintaining a balance between iron in the sky and local resources. The devil is in the details requiring a new platform that allows the creation (dynamic) and integration of computing elements at the local and global level. It will require a new set of tools, born out of the current web based tools that allow solutions to be created (authored) and deployed across the cloud infrastructure.

Even with the current vision of cloud computing, it is unlikely that there will be one cloud. Major computing vendors are all rushing to the pump and creating their cloud vision and deploying infrastructure this will create a balkanized services landscape with the same integration barriers that exist today in service oriented infrastructures and large web based communities. Other factors such as information security will naturally drive towards a more fragmented cloud computing view. So I ask the question again why do the clouds in cloud computing have to be so big?

Wednesday, October 21, 2009


A little while ago I started playing with Dropbox, the concept of such a thing has been something I have been waiting to see for quite a while. There are some other products out there that do a similar thing perhaps the most well known is livemesh from Microsoft. I drifted to Dropbox because of the extensive platform coverage which now includes the IPhone. My first dip into this technology was to simply move photo's around. I was travelling and took a camera and a netbook and wasn't about to try and load up gimp on the netbook but I wanted a place to offload the pictures I had taken. Netbox worked extremely well every image I uploaded form the camera was nicely waiting for me on my desktop when I got home for me to process. Seamless, simple and convenient if only all software was like this.

Since this initial foray into Dropbox I have been using it for other purposes. I helped a friend share images of his grand daughter with his father (great grand dad) using the folder sharing. I also started to need to put more sensitive information between machines so I started experimenting with integration of TrueCrypt and Dropbox.

The general idea is to create a Truecrypt volume on a file which is within dropbox. When mounted the filesystem can be treated like any other through the mount point. Once the volume is unmounted Dropbox will synchronize it. Not only that but it does this quite intelligently only transferring the delta rather than the whole drive.

Now playing around with the Wordpress, Dropbox and TrueCrypt to see if I can create a distributed private journal.

Saturday, October 10, 2009

TV3.0 How watching TV is evolving

For me growing up, TV was in black and white and the first major evolution that I can remember was color (or coming from the UK Colour) TV which added a new visual dimension. Things remained fairly much the same in terms of consuming broadcast content for the next 20 odd years until Tivo came along. Yes you could make the argument that VCR's pre-dated the Tivo but for me I consumed mostly movies on this medium. Tivo allowed me to time shift and it wasn't long before that impacted the way my family and I consumed broadcast TV. I was on the leading edge of the PVR wave and so most of my friends are fairly much caught up now but I am already onto my third evolution of TV and this is really providing a different shift entirely. Not only am I time shifting my viewing I am also shifting geography. For the last two months my wife and I have watched mostly british TV restricting our use of local services to the delivery of live sports and a couple of specific shows, everything else has been from the UK.

The UK content was delivered into the home via torrents and the community is so active that for the popular soaps and drama's we were able to watch them the same day they were aired in the UK. So ok so this is illegal consumption of content but I rationalize it more as a missed business opportunity for the networks and advertisers. I do restrict what I download to broadcast material and would happily pay for it if somebody wanted to deliver it to me as a service (see BBC iplayer) rather than running the whole operation myself as I do today. My setup requires a certain amount of manual selection of shows and the upkeep and maintenance would not be for the naive user. The setup involves an in-home media server which runs the torrent package and is used to download the shows and then distribute within the home. I have a separate 803.11n network to which are attached client devices that can browse and play the content hosted. These clients are running Boxee which is great little integrated client for audio and video that is attached to a community network so my friends can see what I am watching and vice versa. The Boxee clients are connected to HDTVs.

Through this setup I think I have had a glimsp at the next version of TV whereby community (rather than networks) influence what we watch and it will be delivered on a global scale from production houses connected to a peer sharing network with appropriate funding from advertizing and PPV. Waiting to see who does this first....

Friday, October 9, 2009

Fettling Friday: Digging into Opensocial (Part 1)

Defining the social dimension of the social desktop has led perhaps unsurprisingly to needing to understand the scope and role of opensocial in this context. Opensocial was created by google with the help of myspace and was designed to allow social applications/networks to share their social data with each other. From a users point of view this means that the social applications that you use can have access to your tribe independent of the hosting network on that tribe. From a programming standpoint it is a set of API's that enable implementers to create opensocial containers (social networks like Myspace) and applications.

Specifically there are four API's
  • Javascript API for clients
  • Friends: People and relationship API
  • Activities: publishing and accessing user activity information (e.g live feed)
  • Persistence: simple key-value pair data for server-free statefull apps
The general application model is just like any other webapp in that there some interface that a user interacts with a client interface  (standalone application, gadget etc.etc) and this in turn requests data from the social service to be rendered at the client. The data requests are asynchronous utilizing ajax like semantics but the data request protocol adds a layer which can stack multiple requests into a single HTTP request thus optimizing the network utilization. I suspect that this does push more complexity at either end of the interaction but will need to dive deeper to substantiate and quantify this suspicion. Which I will cover in the next post for fettling Friday..

Tuesday, October 6, 2009

Dimensions of the Social Desktop

The traditional desktop is fairly simple in it's architecture there are basically two system constructs. Files and Applications. Applications work on file-types or are pure network/webapp in nature. This is essentially the same for smart mobile devices as well. The rendering model of the desktop uses concepts developed more than 30 years ago and collectively know as a WIMP.

The social desktop would need more dimensions in order to include the social interactions as a basic construct of the platform. The social desktop should also be contextual being able to bind to a physical context (where) and enable the creation and detection of social context (who) based on situation and history.

I can think of the following dimensions that would be needed

Content - This mirrors the traditional desktop notion of content (which is typically stored in files) but includes a more decentralized notion of storage model where local storage is merely a cache of a far larger online storage of content spread across a number of distinct services (chosen by the user). The desktop itself is merely and integration point for this content.

Community - This is a new dimension and goes to the core of the social desktop which is about maintaining links with my colleagues, friends and family (my tribes). Again the virtual representation these communities will be encapsulated in separate services which can be integrated at the desktop. Different user roles will naturally align with different communities. This dimension also deals with community data in its various form. This includes the sharing for information from the content dimension into a community but also the ranking/rating, bespoke authoring, communication, commentary and narration of community information.

Time - The time dimension deals with present, past and future events for the user. It also is the natural home for presence and status information which may in turn be reflected into the community dimension. Time is an important part of the social desktop not only as an organizational tool for dealing with schedule and role based activities but also to navigate and search across a time line.

Context - The social desktop assumes mobility and mobility leads to location which in turn bring in specific services and information (LBS) as well as enable the discovery and use of shared resources that are local. Context can binding specific system functions to local and learned services (e.g printing).

More thinking is required for the rendering model, the simply direction is to just replicate the existing desktop canvas but a more optimum layout and organization model might be better.....more later.

Sunday, October 4, 2009

App Stores get us no closer to social desktops

Just read a blog post by Pete Cashmore on about Digg Launching a iPhone app. This struck me all good but then I though of the places I like to use Digg and any number of other social apps and a lot of the time I am wanting Digg something from within another application. For web content on the desktop this is typically done through a browser extension (yes I know they are a pain too but they do work). There is really no such mechanism to include such basic notions such as promoting something ala Digg built into the platform (preferably enabling configuration of personal options) and this is especially true on mobile devices such as the iPhone and other app-store driven platforms such as the current crop of networks. App-stores are great but they end up creating multiple points of light into my social network and in a number of cases I want some of their functionality to pervade all the apps rather than having switch and/or cut and paste.

So now I am thinking what would constitute the mobile social environment, how would it be different from the essentially desktop function model we have today and finally what would be the interfaces that would need to be created to enable functions like Digg to pervade the entire platform.

Something to tickle the grey cells...time to see who else is thinking about this.