According to this article from ZDNet, Microsoft introduced the term "Open Surface" to describe their goals for the cloud. It's very likely that the term will soon be used in other contexts also.
Basically the term means that the source code is closed, but through open standards, different clouds implementations can work together and share data. So it looks open but it isn't.
This sounds good to lots of people. They can import and export their data from place to place and everything will work fine. I'm all for that, and I agree that I can't tell from using something if it is open source or not.
On the flip side, just because the consumer doesn't see something as important doesn't mean that it isn't. It is very important to me that the lower levels of software are open. Kernel, shell, graphics engine, compilers and interpreters, core libraries, etc. Because everything that happens above those levels depends on them to work properly, be secure and not do something evil. I don't mind commercial applications as long as other software doesn't depend on them. That sounds like Open Core to me.
Changing sides again, if my system is open but anything I write in my word processor can't be opened on another computer without spending lots of $$$ for another license, I won't be too happy. An if the open core of my system has to meet the demands of the commercial software companies, it might not feel very open or work very well.
It's all about control. Is the user in control or the software provider? Or in the cloud, the company who uses and maintains the cloud or the company that designed it.
So what is the conclusion? Which one is best? The answer of course, is neither. Real Open Source is the best. An open surface that extends clear to the core. But then, how will MS make money?