Различие между облачными вычислениями и распределенными вычислениями? [закрытый]

У Вас нет состояния состязания, условий состязания не может произойти в JavaScript, так как JavaScript является единственным, распараллелил, таким образом, 2 потока не могут вмешиваться друг в друга.

примером, который Вы даете, не является очень хороший пример. Вызов метода setTimeout поместит вызванную функцию в очередь в механизме JavaScript и выполнит его позже. В той точке при нажатии на кнопку сохранения не будет вызвана функция setTimeout, пока сохранение полностью не закончено.

то, Что, вероятно, происходит в Вашем JavaScript, - то, что onClick событие называет механизм JavaScript, прежде чем onChange событие назовут.

Как подсказка, имейте в виду, что JavaScript является единственным, распараллелил, если Вы не используете отладчик JavaScript (поджигатель, Microsoft screipt отладчик). Те программы прерывают поток и приостанавливают его. От той точки на других потоках (или через события, вызовы метода setTimeout или через обработчики XMLHttp) может тогда работать, заставляя это казаться, что JavaScript может выполнить несколько потоков одновременно.

59
задан mkc 27 January 2012 в 03:41
поделиться

5 ответов

In my mind what defines cloud computing is that the underlying compute resources (storage, processors, RAM, load balancers, etc) of cloud-based services and software are entirely abstracted from the consumer of the software / services. This means that the vendor of cloud based resources is taking responsibility for the performance / reliability / scalability of the computing environment.

From an application developers point of view, this can be a tremendous advantage, as procuring, maintaining, tuning, monitoring and scaling hardware to meet the demands of growth is both difficult and expensive.

For smaller ISV's, cloud computing offers the ability to prototype, test and deploy software without any capital expense.

For larger applications, the benefit is generally unlimited scalability and what amounts to the outsourcing of IT / application hosting responsibilities, as well as instant access to new servers / storage / whatever on demand. Often cloud providers will offer levels of redundancy, reliability and even security all but the largest in-house IT shops could never achieve for the sheer cost of it all.

The main disadvantage to application developers is loss of control. Not only is the hardware externally hosted in a cloud environment, but abstracted, so if your application needs direct control over hardware, you're out of luck. And you need to trust the cloud provider. They all offer 99.9% repeating up time and SLA's, but I doubt those stats are actually realized. But you have to ask yourself, could I do better? The answer is often no. But control of hardware isn't the only place control is lost - integration with cloud based systems can also be more difficult than on premise or self-managed software for obvious reasons. However, it seems to me that this roadblock is evaporating as new technologies and robust API's eliminate many integration difficulties created when running applications outside the LAN/WAN.

Another disadvantage can be performance. Running an application on your local LAN will probably provide a somewhat snappier experience to local users than running from the cloud. But if your audience is distributed, that benefit may only apply to a subset of your application's audience.

Distributed computing, as has been said already a few times, is just computing orchestrated between two or more computers. Cloud Computing is, by definition, distributed computing, but a specialized form.

Here is a nice whitepaper by David Chappell. It is a Microsoft sponsored paper, so it is presented in terms of Microsoft's cloud platform (Azure) but the underlying principles are pretty universal, and David Chappell is always a pretty easy read.

55
ответ дан 24 November 2019 в 18:23
поделиться

Распределенные вычисления включают в себя разделение большой проблемы на более мелкие срезы и использование нескольких сетевых компьютеров, обрабатывающих срезы.

Облачные вычисления обычно относятся к предоставлению услуги через Интернет. Этой услугой может быть что угодно, от программного обеспечения для бизнеса, доступ к которому осуществляется через Интернет, до внешнего хранилища или вычислительных ресурсов.

Редактировать: Как отмечает плакат подо мной, это обычно маркетинговый термин для этих услуг.

14
ответ дан 24 November 2019 в 18:23
поделиться

Let me start by saying that we run a significant financial services offering on a 100% cloud-based environment.

Cloud computing is not really that well defined (like with any buzz word, everyone wants to somehow brand their existing product with the newest buzz word).

The key to cloud computing in my mind is that I can look at computing resources (CPU, memory, etc) like a commodity rather than as capital.

What does that mean?

Traditionally, if I want to add some computing power to my organization, I need to go out and buy more computers, set them up, and maintain them. Cloud computing (Eric J.'s definition) lets me grab extra computing power exactly when I need it, and then release it when I don't. We offer a sales tax calculation service. In the run up to Christmas, we need a lot more computing power than at other times of the year. Our cloud environment lets me add resources in seconds and then release them just as quickly when I don't need them. One of our big customers sometimes has 1-hour mega-sales. I can add extra processing power just for that hour then release it when done.

The solution we offer on top of that cloud computing infrastructure is Software-as-a-Service (SaaS). Things like GMail are SaaS, not cloud computing, in my view.

So how does all of this compare to distributed computing?

Distributed computing just means I break up a problem so that I can have a whole bunch of computers work on it at the same time. Berkeley University's BOINC project is an excellent example of this (and please consider signing up for it). They distribute scientific research projects across all computers that volunteers provide.

The computers involved in BOINC and other distributed projects can be people's laptops, desktops, servers. They can be installed in my office, virtual servers leased from an ISP, or virtual servers that are part of a "cloud". It matters not one bit where the computers come from. If I can install the distributed computing software on a computer, it can be part of the distributed solution.

24
ответ дан 24 November 2019 в 18:23
поделиться

Distributed computing is where multiple computers participate in solving/computing a task. Like Folding@Home.

Cloud computing is about having data (documents, pictures etc.) on internet services. I guess GMail and Google Docs form a sort of cloud computing.

7
ответ дан 24 November 2019 в 18:23
поделиться

Keep in mind that the term cloud computing has become a marketing term that has come to represent almost anything. To coders, the term refers to a distributed way of storing and retrieving name/value pairs. Notable examples include BigTable (which you are most likely to access from within the Google App Engine) and EC2.

6
ответ дан 24 November 2019 в 18:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: