可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
Is Google Earth a Thick Client (Rich Client) application or a Rich Internet Application? If you read the Microsoft Architecture Guide 2.0, they seem to thing GE is a Thick Client, along with any application which is not rendered in a web browser, or on a mobile device?
I think GE is a perfect example of a RIA, together with Microsoft's Virtual Earth (VE) (Now Bing Maps). The fact that GE is not rendered in a browser shouldn't be the defining characteristic for not making it an RIA. Otherwise the Thick Client Architecture just has to sweep up too much.
Give me your opinions and tell me why you say so.
See also: Should Rich Client Arch be used in Multi Tier Enterprise Systems
回答1:
Google Earth is a thick client since it has native code that runs directly on the hardware of your local workstation. It also opens sockets by itself to the internet again from the local workstation.
With some fancy caching (which would require a lot of disk) Google Earth could also run without the internet at all. It could also get its data from a Blue Ray Disk as an example.
A RIA application does not have direct access to the hardware of you local workstation.
It runs in a sandbox (web browser) and most of the times its code is architecture independent (java, javascript, html, e.t.c)
A RIA application is confined in the browser and does not (normally) do things on its own (reads the disks, opens sockets e.t.c)
回答2:
I was under the impression that the difference between thick client and thin client was where the processing happens. My understanding is:
In Google Earth, the real meat of the work happens client side, with the data stored on Google's servers. That would make it a thick client.
However, in Rich Internet Applications (RIAs), the data and the bulk of the processing happens on the server side. There might be some client-side JavaScript, but it doesn't compare to the amount of work done server-side.
回答3:
The term RIA originated as a marketing term, from Adobe. They were using it to describe Apollo, which was renamed AIR.
Purely as a marketing term, and not a clearly scoped definition, its precise meaning is debatable. Each definition has at least one major counter-example which one would probably not call an RIA.
For example:
- RIAs is a Javascript application which runs in a browser. i.e. GMail is, but Google Earth is not.
- RIAs run on the client, but not in the browser, and have a sizeable conversation with an online service. i.e. Tweetdeck is, but so is Thunderbird.
The terms thick/rich client is a similarly contested word, and is set-up to be in contrast with a Thin Client; which IIRC, were diskless terminals that did all processing on the central mainframe.
The JavaPosse had a very good treatment on this subject in this episode.
回答4:
To question 1. I agree that GE is a RIA, in fact I think it is one of the best examples of an RIA. I don't think that running in a browser has anything to do with the app. I do think that we DO need to define RIA somewhat differently than it is now defined, but I also think that as the internet and its usage change, so to will the definitions as we know them.
回答5:
I guess there is no real answer to this yet. All the research I have done points to the fact the industry has not fully made up its minds as to what an RIA is.
Microsoft believes the client side must be browser based, while the java community is still confused ;-) "The JavaPosse had a very good treatment on this subject in this episode." from jamesh
Effectively, I think the best solution to the problem would be to not only focus strictly on one architecture to solve a particular problem:
Google Earth is effectively an "RIA" implementation with a "Rich Client". <- If that makes any sense.
If anyone disagrees or has other opinions, please let me know, otherwise this would be the thinking I am going to stick with (mostly because it makes the "most" sense in my mind, for now... ;-)
Update: Looking at the image below, and ignoring our definition of things like the Mobile architecture and the rest, and focusing only on RIA, does this diagram inspired by an article by Marc Domenig make more sense (or at least place an RIA better)?