Category Archives: cloud computing

RIA (Rich Internet Applications): one day, all applications will be like this

I loved this piece by Robin Bloor on The PC, The Cloud, RIA and the future. My favourite line:

Nowadays very few Mac/PC users have any idea where any program is executing.

And why should they? Users want stuff to just work, after all. Bloor says more clearly than I have managed why RIA is the future of client computing. He emphasises the cost savings of multi-tenancy, and the importance of offline capability; he says the PC will become a caching device. He thinks Google Chrome is significant. So do I. He makes an interesting point about piracy:

All apps will gradually move to RIA as a matter of vendor self interest. (They’d be mad not to, it prevents theft entirely.)

Bloor has said some of this before, of course, and been only half-right. In 1997 he made his remark that

Java is the epicenter of a software earthquake, and the shockwaves are already shaking the foundations of the software industry.

predicting that Java browser-hosted or thin clients would dominate computing; he was wrong about Java’s impact, though perhaps he could have been right if Sun had evolved the Java client runtime to be more like Adobe Flash or Microsoft Silverlight, prior to its recent hurried efforts with JavaFX. I also suspect that Microsoft and Windows have prospered more than Bloor expected in the intervening 12 years. These two things may be connected.

I think Bloor is more than half-right this time round, and that the RIA model with offline capability will grow in importance, making Flash vs Silverlight vs AJAX a key battleground.

Google’s cut-down Java: wanton and irresponsible, or just necessary?

Sun’s Simon Phipps stirred things up last weekend when he called Google’s actions wanton and irresponsible. Its crime: delivering a cut-down Java library for use on its App Engine platform, “flaunting the rules” which forbid creating sub-sets of the core classes.

It does sound as if Google is not talking to Sun as much as it might. Still, let’s note that Google has good reason to omit certain classes or methods. App Engine is a distributed, shared environment; this mean that some things make no sense – for example: writing to a local file – and other things may be unacceptable, such as grabbing a large slice of CPU time for an extended period.

Salesforce.com addressed this same issue by inventing a new language, called Apex. It’s Java-like, but not Java. The company therefore avoided accusations of creating an incompatible Java, and conveniently ensured that Apex code would run only on Force.com, at least until someone attempts to clone it.

Google’s approach was to use Java, but leave a few things out. This FAQ gives an overview; and the article Will it play in App Engine lists common frameworks and libraries with notes on whether they work. Given that languages like JRuby, Groovy and Rhino work fine, it’s clear that core App Engine Java is not too badly damaged. The big omissions are JDBC (because you are meant to use the App Engine datastore, which is not relational), and Enterprisey things like JMS, EJB and JNDI. Google is nudging, or shoving, developers towards RESTful APIs along with its built-in services.

Will you be able to escape App Engine if you have a change of heart after deployment? I’d guess that porting the code will not be all that hard. Perhaps the biggest lock-in is with identity; you could roll your own I guess, but Google intends you to use Google accounts and supplies a Java API. Microsoft is ahead of Google here since it does support federated identity, if you can get your head round it: you can authenticate users in the Microsoft cloud against your own directory using Geneva. The best Google can offer is Directory Sync; though even that is some protection from identity lock-in.

Java support on App Engine is actually a vote of confidence in Java; if what is good for Java is good for Sun, then Sun is a winner here. That said, just where is the benefit for Sun if companies host Java applications, built with Eclipse, on Google’s platform? Not much that I can see.

Technorati Tags: ,,,

Salesforce.com = CRM + platform?

Organizations evolve; and that can be an untidy process. Salesforce.com started out as an online application for CRM (Customer Relationship Management), and that remains its core business, as suggested by its name. Seeing its success, observers naturally asked whether the company would break out of that niche to service other needs, such as ERP (Enterprise Resource Planning). Sometimes there were hints that this is indeed the case; I recall being told by one of the executives last year that if the company was still called Salesforce.com in five years’ time it would have failed. However, rather than developing new applications itself, the company has chosen to encourage third parties to do this, by opening its underlying platform. The platform is called Force.com, and supports its own programming language called Apex. Third-party applications are sold on the AppExchange, and either extend the CRM functionality or address new and different areas. According to CEO Marc Benioff this morning, there are now 750 applications on AppExchange.

A question I’ve asked a couple of times is whether Salesforce.com gives any assurance to its 3rd party partners that it will not compete with them by rolling into its core platform features similar to those in an AppExchange offering. I’ve not received a clear answer, though EMEA co-president Lyndsey Armstrong told me last year that it just was not an issue; and Benioff today at Cloudforce told me it has not proved to be a problem so far. It is an interesting question though, since if Salesforce.com did choose to expand into new application areas, this kind of competition would be all-but inevitable. It therefore seems to me that the company is more interested in growing its platform business, and continuing to grow its CRM business, than in addressing new kinds of online applications itself. There were also broad hints today that the company intends to improve its platform as an application server.

Let’s speculate for a moment. What if Salesforce gets acquired, say by Oracle, a move which would not be unexpected? If such a thing happened, it would make sense for existing Oracle applications like the E-business Suite or PeopleSoft Enterprise to get extended or merged or migrated into Force.com. That might be less comfortable for AppExchange 3rd parties.

Cloud computing means exporting your IT infrastructure to the Internet

I’ve just attended my first cloudcamp unconference, held during QCon London. We ended up debating how you would explain cloud computing to a non-technical audience. The problem is that different people mean different things by the term.

The consumer perspective is to do with running applications and storing your stuff on the Internet. Gmail, Google Docs, Skydrive, are all examples of doing cloud-based computing from a consumer perspective. Somehow we brought BBC iPlayer, Facebook and YouTube into the mix as well. Some think that the home computer will disappear, replaced by Internet-connected appliances and devices.

The small business and entrepreneur’s perspective is to do with low start-up costs and low barriers to entry. Anyone can run a web site, take payments with PayPal or Amazon Payment Services or Google Checkout, and use cloud services for email and collaboration.

The larger business or enterprise perspective is do with exporting IT infrastructure to the Internet. Close your data centre, sell your servers, move your computing to virtual servers running on Amazon’s elastic compute cloud or some such. There is not much of this happening as far as I can see, though we are seeing virtualization (which might be a first step), and some take-up for software-as-a-service (SAAS) applications like Salesforce.com.

I suppose it is appropriate that the cloud term is fluffy. To some it is synonymous with the Internet; to others it means SAAS applications; to others it means virtual servers running who knows what; to others it means a hosted application platform (platform-as-a-service or PAAS).

The problem with vague terms is that they make discussion difficult.

My favourite usage: cloud computing means exporting IT infrastructure to the Internet.

How will Microsoft make money from Silverlight?

Indeed, will it do so? I like Silverlight a lot; though I appreciate that to a Flash developer it may seem pointless. It does a lot of stuff right: small download, powerful layout language, cross-platform (with caveats), rich media, fast just-in-time compiled code.

Still, what intrigues me is how Silverlight has come from nowhere to what seems to be a central position in Microsoft’s product strategy in just a few years. What’s the business case? Or is it just that someone high up experienced a moment of horror – “Flash is taking over in web media and browser-hosted applications, we gotta do something”?

Let’s eliminate a few things. It’s not the design and developer tools. Making a profit from tools is hard, with tough competition both from open source, and from commercial companies giving away tools to promote other products. I don’t know how Microsoft’s figures look for the Expression range, but I’m guessing they bleed red, irrespective of their quality. Visual Studio may just about be a profit centre (though the Express series is free); but Silverlight is only a small corner of what it does.

Nor is it the runtime. Adobe can’t charge for Flash; Microsoft can’t charge for Silverlight.

I asked Twitter for some ideas. Here are some of the responses:

migueldeicaza @timanderson, my guesses:WinServer built-in-steaming;Strengthening .NET ecosystem, and client-server interactions;Keep share in RIA space

IanBlackburn @timanderson Isn’t Silverlight going to become the "Microsoft Client" and central to s+s?  Apps built with it can be charged in many way

harbars @timanderson no doubt with annoying adverts

mickael @timanderson isn’t silverlight a defensive move against other RIA platforms (like Adobe’s one)? They might only plan selling developmt tools

jonhoneyball @timanderson In the long term by hosting tv stations’ internet traffic and providing the charging/hosting/download/player model.

jonhoneyball @timanderson ie azure cloud + silverlight + someone elses content = ms revenue. no, it wont work, but its not unexpected ms-think.

jonhoneyball @timanderson why no work? price war to come on cloud host/delivery etc Someone will host BBC for free. Game over

There are two main themes here. One is media streaming; as the Internet takes over an increasing proportion of broadcasting and media delivery (note recent comments on Spotify) Microsoft plans to profit from server-side services. The challenges here are that there may be little money to be made; Adobe has a firm grip on this already; and Apple will do its own thing.

The other is about applications. This is the bit that makes sense to me. Microsoft knows that the era of Windows desktop clients, while not over, is in long-term decline; and that applies to applications like Office as well as custom business applications. Silverlight is a strong client platform for web-based alternatives. So I’m voting for Ian Blackburn’s comment above: it’s the Microsoft Client.

If that’s right, we’ll see Silverlight embed itself into more and more of Microsoft’s products, from desktop to server, just as Adobe is gradually remaking everything it does around Flash.

The difference is that Microsoft has far more invested in the status quo: selling Windows and Office. I’m guessing that there are heated internal battles around things like Web Office. The briefing I attended at the 2008 PDC on Office Web Applications was fascinating in respect of its ambivalence; for every web feature shown, the presenters wanted to emphasise that desktop Office was still the thing you should have.

Technorati tags: , , ,

Facebook as groupware

There was a brief interview with Joe Gilder, a student at Bristol University, on the BBC Today programme this morning – why does he use Facebook, which is 5 years old today?

For me it’s the most important thing around. I know exactly what’s going on everywhere through what’s on my Facebook profile. Societies, clubs, departmental stuff from my departmental societies, anything from my student’s union, anything from my friends, it all goes through Facebook. 

I found this interesting because it is pragmatic; it’s not just about socializing, but about organizing. I open Outlook to see what’s on today and tomorrow; he opens Facebook.

If Facebook wants to remain essential to someone like Gilder when he moves into the business world, perhaps its management should be considering how Facebook could be an Enterprise portal rather than merely a social network.

Technorati tags: , ,

Hands On with Office Live Workspace beta

I was asked today: how can I share documents with a remote worker? This is a two-person business. There are a zillion and one solutions these days, but all have downsides.

Set up a server and VPN: fine when it works, but what to do when it fails? Backup? Maintenance and patching?

Google Docs: A great solution, but what if you want to work with real Word and Excel documents? Excel in particular is hard to replace if you use it in earnest (big sheets, many calculations).

Netdocuments: This looks promising, though I haven’t tried it.

Subversion: This is what I use (with TortoiseSVN), but it’s terribly techie.

Live Mesh: Brilliant concept; automatic offline copies; just save documents to a shared folder and you’re done. One hesitation is that I’ve known the Mesh client to crash mysteriously. It’s a beta. And how secure are your Mesh documents from prying eyes?

What about Office Live Workspace? This is a form of hosted SharePoint and in theory it’s ideal – except, perhaps, that you have to keep a local copy of documents just in case the service goes down. You can store “over 1000 documents” online for free. I took a quick look. Signed up. Some sort of Live client needed. Client also needed a Vista update. Vista update installed and wanted a reboot. Live client declared it was already installed and setup closed. Rebooted. Back to Live Workspace. Live Client starts to install again, this time succeeds. Try to save from Word 2007, Live ID password prompt pops up numerous times. Word wants a further add-in. Second reboot. Something like that, anyway; the usual Windows merry-go-round.

Still, eventually I appear to have all the pieces in place. I type a new document in Word and click the Office button. I now have a new option, Save to Office Live:

Cool. I click Sign in to Office Live Workspace beta. Prompt comes up:

One of my problems is that I refuse to check “Sign me in automatically”. I don’t like it; I consider it more secure to sign in and out of services as I need them. There’s also a problem if you have more than one Live ID. Unfortunately some services deliver a poor user experience if you don’t sign in automatically, and I suspect Live Workspace is one of them. Anyway, I sign-in and wait 10-15 seconds. Then I get this dialog:

I hit Save. Mistake: I get this dialog:

OK, my error was not to select a folder within the workspace. Easy mistake to make though, and the error message could be better. I double-click Documents and retry. I get this progress bar:

Takes a few seconds, and I’m done.

Once your document is online, it is accessible over the web with an neat in-browser preview:

The toolbar has some handy options including versions and sharing:

I love it; but have two reservations. First, the painful setup, sometimes slow performance, and occasional strange errors, like the fact that Office Live sometimes decides my IE7, fully patched browser is not up to scratch:

If I recommend this to my contact, what’s the chance that I’ll get a call concerning some odd behaviour or failure with the Live client, or the Office Live add-in, or Internet Explorer, and end up (as so often) troubleshooting Windows instead of getting on with work?

Second, I’m concerned about availability in a business context. If a customer calls you, and you need to see a document, what if Live Workspace (or Google Docs,  or any online service) is temporarily unavailable? You give that lame excuse, “We’re having computer problems, can you call back?”; or else keep offline copies – but if you keep offline copies, getting the workflow right becomes difficult. I notice that Netdocuments has a Local Document Server option which may fix this. SharePoint solves this to some extent with Outlook lists, but I’m not convinced that these work well enough with large document libraries, and I don’t know if Live Workspace offers them.

That is the beauty of seamless online/offline solutions like Live Mesh, or indeed Subversion, or some future Google Docs with Gears doing the offline stuff.

Finally, why is Microsoft offering both Live Mesh and Live Workspace? Different teams I guess; but it makes a confusing offering overall.

Office Ribbon in Silverlight – amazing stuff from divelements SandRibbon

I blinked when I tried the live demo of SandRibbon for Silverlight, from divelements. It looks remarkably like Office 2007:

The control is in beta, and promises:

All the commonly-used functionality of the Office 2007 UI is made available for you to use with this product, and most of the less common functionality too. Customers who have used SandRibbon for WPF will find the API familiar. The visual constructs used are compatible with all other Silverlight controls, both built-in and third-party.

The company already has a sandcontrol control for WPF. However, the Silverlight control shows how well you can replicate the look and feel of a desktop application in a cross-platform browser application. Now, put this together with the automatic online/offline synch in Live Mesh, and you could have a version of Office with seamless online and offline support. Microsoft may deliver something like this in the web versions of Office 14, though it is going to have one eye on its lucrative desktop sales and I doubt whether it will really exploit what is now possible.

First steps with offline Silverlight and Live Framework

Yesterday I wrote a simple test application for Silverlight running on Live Mesh. It is an interesting scenario, which enables Silverlight applications to run offline, in the style of Adobe AIR. I wrote a to-do list which stores its data in the cloud; I added some items online, and deleted and added some items offline on another machine, and when it reconnected all the edits synchronized. Cool.

Even so, I’m not finding this particularly easy. Note that this is a limited-access Community Tech Preview, so make big allowance for that. Here are some of the problems I’ve run into to:

Convoluted sign-up and web site navigation.

This is a preview controlled by developer tokens. It’s complicated by the fact that a variety of different types of token control access to different parts of Windows Azure. You get a token, think you are done, then discover you have the wrong kind of token and need to apply for another one.

Even when you have the token, navigation is tricky. I’ve wasted time clicking through from one overview page to another; there are even promising links that seem to go back to the page you are looking at. Tip: when you find a useful page like the Developer Portal, for provisioning Azure and Live Framework apps, bookmark it quick.

Inadequate documentation.

OK, I guess this is to be expected in a preview. But I’m finding an over-abundance of overviews and diagrams, too many videos, and a lack of plain-speaking developer-focused documentation that answers obvious questions. Most of the entries in the .NET reference for the Live Framework client look like this:

That’s right, auto-generated docs with no description of what the class member is for or how to use it. You can expand the plus symbols, but it is not rewarding.

Slow going

Microsoft’s online MSDN documentation and forums work, but I never look forward to visiting them because I know they will be slow to navigate and I’ll be sitting waiting for pages to refresh. I’m not sure that Microsoft understands the importance of this point. It works – so why complain? Well, because the cumulative effect over time is to make me want to go elsewhere. Google and Yahoo, by contrast, usually run much more responsive sites.

Microsoft could improve this quite easily. The key: fast is more important than pretty.

Bugs and outages

I certainly expect bugs and outages in a CTP. Still, they are frustrating. My very simple Mesh app did not work at all on a Mac, even running in the browser. In this scenario, you don’t need the Mesh client; it is just a Silverlight application running in a web page. I asked about this on the forum:

I confirm it from the core team. With quite aggressive timeline for PDC release with the current level of resources and CTP goals, we could only test XP SP3/Vista SP1 and IE7. We will eventually support Mac and Safari but this is not an immediate priority in the near future for CTP QFEs.

Fair enough, thought to me cross-platform is at the heart of why I might want to use this technology.

This morning my Silverlight Mesh application won’t run at all. I get a 404. I guess it’s the bleeding edge.

Online/Offline

I’ve also asked a couple of simple questions on the forum about the online/offline scenario. I’m finding that offline applications don’t run unless you are signed into Windows Live. That is, you can sign in and then go offline, and it works, but if you don’t sign in (for example, because you start up your laptop in an aeroplane), then the app does not start. There must be some way to use cached credentials?

My other question is about synchronization. How do you enforce constraints on a Mesh datafeed, given that it could be edited online and offline simultaneously, bypassing checks in your code? This is not quite the same as a conflict, where the same entry is edited by two different people. My example is how to make sure that duplicate items are not added to a list.

Early days

I expect that this Azure stuff will get much smoother in future updates; and bear in mind that what I’m working with here – Mesh, Silverlight, and the .NET Live Framework client library – is just one small corner of the whole.

I can’t help wondering though if Microsoft is being over-ambitious. Another technology I’ve been looking at recently is Adobe AIR. The scope of this is small relative to Live Mesh. You can describe it in a few words: run a Flash application on the desktop. It has limitations and frustrations, but at least it is easy to understand, and furthermore, it has pretty much worked as advertised from the earliest public previews.

By contrast, Mesh for developers feels like a huge thing that is part of an even huger thing (Azure); it has lots of promise, but it is harder to describe its essence in a few words (that are not marketing fluff).

That said, I like Silverlight itself. This piece at least is easy to grasp and works well, in my experience so far.

Working with Live Framework or Azure? I’d love to know how it is going for you.

Microsoft Office vs OpenOffice.org in UK education

Yesterday I took a seminar with a small number of people from schools and colleges in the UK, who had purchasing responsibility for software.

I talked about some of the history, differences between the products, the ISO standardisation wars, the ribbon, and the way Microsoft’s pricing escalates in order to charge the maximum to business users. I also mentioned online alternatives like Google docs and asked whether they could contemplate switching entirely to a web-based productivity suite.

It is always interesting talking to people with a real-world perspective, in contrast to the hothouse of Internet discussions and attempting to follow what is happening at the bleeding edge. What I found:

  • These folk knew about OpenOffice.org but none use it regularly themeselves; one had a reasonable number of students using it, but only because they were using netbooks running Linux. Not very encouraging for OpenOffice.org since the buzz is that netbooks are increasingly switching to Windows.
  • There was very little interest in ISO standards. On the other hand, there was real concern about interoperability, which is related. However, the best solution at the moment is to use Microsoft’s old binary formats throughout. Filters in MS office for OpenDocument, and in OpenOffice.org for Open XML, will be welcome.
    Incidentally, I used Office 2007 PowerPoint for the session. I tried to open the .pptx in OpenOffice.org 3.0; it worked, but there were extra borders round objects and some unwanted text. I saved from Office 2007 as .ppt, re-opened in OpenOffice.org. It was perfect.
  • Some had already rolled out Office 2007, and reported that the Ribbon UI was better for new users, but caused problems for some who were familiar with the old menus. Mainly a training issue.
  • Education gets generous pricing for MS Office. There was interest in saving money by using OpenOffice.org, but the sums involved are relatively small. We discussed the ethical issue – whether it is right to get young people hooked on a product that will cost them or their businesses dearly later on – but this particular group didn’t engage with this much. Little desire to change the world; focused on getting their work done.
  • I mentioned the negative Becta report on Vista and Office 2007, which I also looked at again in preparation. I was struck again by what a poor report it is, ducking important issues and giving a rose-tinted view of ODF, though I am in sympathy with Becta’s efforts to promote choice and open source in education. However, none of this group had read the report, or even heard of it. Becta is a government organization focused on technology in education.
  • There was little enthusiasm for web-based office suites. Interest perked up a little when I mentioned Google Gears and the possibility of seamless online/offline use. One person said his school was rural and could not get broadband at all.

My overall impression is that Microsoft Office remains dominant in the institutions represented by this group, and that seems unlikely to change soon. The web-based suites have more chance of breaking the habit, since they represent a more fundamental shift than simply moving from one fat desktop application to another.

I would likely have got a better attendance for a seminar on rolling out Office 2007.