Что такое Облачные вычисления? [закрытый]

Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException вообще.

См. также: A хороший список лучших практик

Я бы добавил, очень важно, хорошо использовать модификатор final. Использование "окончательной" модификатор, когда это применимо в Java

Сводка:

  1. Используйте модификатор final для обеспечения хорошей инициализации.
  2. Избегайте возврата null в методы, например, при возврате пустых коллекций.
  3. Использовать аннотации @NotNull и @Nullable
  4. Быстрое завершение работы и использование утверждений, чтобы избежать распространения нулевых объектов через все приложение, когда они не должен быть пустым.
  5. Сначала используйте значения с известным объектом: if("knownObject".equals(unknownObject)
  6. Предпочитают valueOf() поверх toString ().
  7. Используйте null safe StringUtils StringUtils.isEmpty(null).

47
задан skaffman 5 October 2010 в 07:40
поделиться

12 ответов

Кроме последнего маркетингового термина?

В основном все ресурсы Ваши потребности программы сохранены "где-нибудь" в Интернете. Вы взаимодействуете с ними по определенному контракту на обслуживание; SOAP, REST, POX или безотносительно и что происходит после этого, до поставщика услуг. Вы не заботитесь о том, как Ваша информация хранится или как услуга предоставляется, просто что это.

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

, Если у Вас есть приложение тогда, это может также быть, работал в облаке, предполагая, что это подходит. Живая Сетка, например, является виртуальной машиной, против которой можно кодировать и запустить программное обеспечение и локально и в облаке, таким образом, пользователь просто переходит к URI и находит программу, Вы не заботитесь, где это вне его являющийся доступным где-нибудь на облаке.

37
ответ дан blowdart 26 November 2019 в 19:26
поделиться

Это - вычисление, которое происходит в распределенном в Интернете. Идея состоит в том, что вместо того, чтобы создать Ваши собственные ресурсы, Вы помещаете свои данные, приложения в Облаке. Это облако, как предполагается, имеет 100%-ю доступность и бесконечную масштабируемость. Для большего количества детали: http://vineetgupta.spaces.live.com/blog/cns!8DE4BDC896BEE1AD!1326.entry

1
ответ дан kiritsinh parmar 26 November 2019 в 19:26
поделиться

Даже что-то простое, такое как веб-почта, как могут полагать, содержит нашу информацию "в облаке". То есть то, что данные не сохранены локально, они хранятся на той волшебной облачной вещи, названной Интернетом.

Это - в основном просто модное словечко для хранения материала удаленно. Этот список подводит итог, почему он используется.

FTP копирует => Хранить файлы в облаке
SSHing в удаленный ПК для выполнения кода => Облачные вычисления
Веб-почта => Облачная почта
SSHing в удаленный ПК для выполнения кода, который предсказывает погоду => Облачные вычисления через Облачные вычисления

(я попробовал таблицу HTML, но это не представляло...)

, вентилятор Звуков не делает этого!

3
ответ дан Rich Bradshaw 26 November 2019 в 19:26
поделиться

Термин является столь новым, что нет никакого принятого определения, особенно так как Dell (!) не удалось регистрировать термин как торговую марку.

По существу идея подобна той из утилиты - Вы хотите электричество, но Вы не заботитесь, какая электростанция предоставляет его, потому что существует электричество предоставления сети всем, и можно просто насладиться им. Который работает на электричество, но Интернет просто еще не вполне настолько сложен. Но это - Видение.

услуги Amazon S3 просто обеспечивают дисковое пространство, и это не заботится, кто использует его или где они расположены в мире. Конечно, офисные инструменты Google (и сеть Microsoft, предлагающая), предлагают услугу, не конкретную машину, которая будет заботиться о Ваших потребностях приложения. Снова, можно создать и работать с электронной таблицей, но Вы не знаете, где та электронная таблица хранится, или на какой машине она работает - просто, что это доступно, когда Вы хотите ее.

Web 2.0 является другим термином, изо всех сил пытающимся найти определение, но можно вообразить электронную таблицу с помощью вычислений, которые встраиваются в другую машину где-нибудь и результаты хранения его вычислений на Amazon S3. Границы исчезают в этой точке.

, поскольку это доступно везде, откуда Вы входите в систему, к этому можно было получить доступ отовсюду в мире. Это "в облаке", потому что это видно отовсюду (не хорошая аналогия, но...)

8
ответ дан Doug Scott 26 November 2019 в 19:26
поделиться

Облачные вычисления - это аппаратные услуги (включая вычисления, сеть и емкость хранения), где:

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

Существует мощная экономическая сила, стоящая за этой простой моделью: предоставление и использование услуг облачных вычислений обычно позволяет гораздо эффективно использовать ресурсы по сравнению с хостингом на собственном хостинге и типом хостинга центра обработки данных. ] Фрагмент из этой статьи об облачных вычислениях .

11
ответ дан 26 November 2019 в 19:26
поделиться

Мне нравится объяснение этого видео:

http://www.youtube.com/watch?v=XdBd14rjcs0&feature=related

Краткая версия: Google и Salesforce.com, среди другие продают компьютерное пространство и «виртуализированные» среды приложений, которые позволяют запускать вашу программу на их машинах. Как виртуальный веб-хостинг, но для программ и приложений, а не только для веб-сайтов. Сейчас это громкое модное слово, потому что крупные игроки действительно продвигают его как способ заработать больше денег на своей инфраструктуре и неиспользуемых тактовых циклах. В частности, Salesforce, вы можете винить в этой последней версии «облачных вычислений» их и Force.com, поскольку они очень активно продвигали свои услуги, используя термин «облачные вычисления» и, по доверенности, идею облачных вычислений. вычисляет себя.

0
ответ дан 26 November 2019 в 19:26
поделиться

Во-первых, чтобы избавиться от этого: Облачные вычисления - это модное маркетинговое слово, и оно плохо определено (по крайней мере, на данный момент) .

Я бы хотел рекомендую проанализировать это всеобъемлющее модное слово и в сегментах рынка, а именно:

  • IaaS : инфраструктура как услуга (например, Amazon EC2)
  • Paas : платформа как услуга (например, Google AppEngine)
  • DaaS : База данных как услуга (например, Amazon RDS)
  • SaaS : Программное обеспечение как услуга (например, Salesforce)

Возвращаясь к вашим точкам:

  1. Если вы предоставляете услугу через веб-интерфейс , вы можете классифицировать это в корзине облачных вычислений
  2. Традиционные веб-сайты сами по себе не попадают в категорию CC (см. сегменты выше)
  3. Я не знаю, что такое «облачное приложение»: вы пытаетесь определить новый термин? ; Это похоже на использование банковских услуг с помощью банкомата или покупку вещей в торговых автоматах.

    Цель облачных вычислений - полностью исключить любого живого человека со стороны провайдера.

    Любые другие хорошие и плохие свойства облачных вычислений являются просто побочный продукт этой идеи.

0
ответ дан 26 November 2019 в 19:26
поделиться

Ничто из этого не делает ваше приложение облачным. Это облачное приложение, если оно работает в облаке. Что такое облако?

Разница между облачными вычислениями и распределенными вычислениями?

Модель разработки веб-сайтов имеет тенденцию работать в облаке, поскольку многие части системы по своей сути параллельны. Однако есть различные дизайнерские решения (э-э, ошибки?), Которые могут ограничить степень параллелизма, который может быть достигнут. Вы по-прежнему можете запускать такую ​​программу в облаке, но она не получит почти такого преимущества, как высокопараллельное приложение.

Технологии, о которых вы говорите, можно использовать для создания высокопараллельных приложений, но это не так. не происходит автоматически, вы все равно должны понимать, что делаете.

0
ответ дан 26 November 2019 в 19:26
поделиться

В основном маркетинговый термин часа. Спросите 5 человек, и вы получите 6 ответов. Я слышал, что некоторые люди описывают облачные вычисления как Google Docs, потому что вы храните свои данные «в облаке». Другие думают об этом больше как о динамическом размещении и хостинге, например, Amazon EC2 или Google App Engine.

10
ответ дан 26 November 2019 в 19:26
поделиться

Я объясню, как я пришел к пониманию облачных вычислений, на нескольких примерах:

Допустим, вы создаете веб-приложение для личных финансов. Вы обращаетесь к нескольким банкам со своим предложением, и им нравится идея, но они отказываются предоставить вам доступ к своим серверам для веб-службы. В облачных вычислениях банки могут создать веб-службу в облачной службе, такой как Microsoft Azure, которая будет извлекать данные с их сервера. Тогда вы бы назвали их веб-службу из облака, а не их серверы. По сути, это «облако» на промежуточном сервере, управляемом уважаемой компанией, такой как Microsoft, IBM, Google и т. Д.

С другой стороны, для банка оно снижает ответственность и затраты на управление веб-сервисами и необходимым аппаратным / программным обеспечением. Если у небольшого кредитного союза есть только серверы хранения данных и нет веб-сервера, облако предоставляет им такую ​​же возможность участвовать в вашем приложении, как и крупный банк.

Таким образом, вы можете представить облако как посредник веб-сервисов и / или хранилище данных.

2
ответ дан 26 November 2019 в 19:26
поделиться

Думаю, у меня есть рабочее решение. Спасибо всем за то, что указали мне правильное направление (я надеюсь).

Сборки не могут быть выгружены напрямую, но AppDomain могут. Я создал вспомогательную библиотеку, которая загружается в новый домен приложения и может скомпилировать новую сборку из кода. Вот как выглядит класс в этой вспомогательной библиотеке:

public class CompilerRunner : MarshalByRefObject
{
    private Assembly assembly = null;

    public void PrintDomain()
    {
        Console.WriteLine("Object is executing in AppDomain \"{0}\"",
            AppDomain.CurrentDomain.FriendlyName);
    }

    public bool Compile(string code)
    {
        CSharpCodeProvider codeProvider = new CSharpCodeProvider();
        CompilerParameters parameters = new CompilerParameters();
        parameters.GenerateInMemory = true;
        parameters.GenerateExecutable = false;
        parameters.ReferencedAssemblies.Add("system.dll");

        CompilerResults results = codeProvider.CompileAssemblyFromSource(parameters, code);
        if (!results.Errors.HasErrors)
        {
            this.assembly = results.CompiledAssembly;
        }
        else
        {
            this.assembly = null;
        }

        return this.assembly != null;
    }

    public object Run(string typeName, string methodName, object[] args)
    {
        Type type = this.assembly.GetType(typeName);
        return type.InvokeMember(methodName, BindingFlags.InvokeMethod, null, assembly, args);
    }

}

Он очень простой, но его было достаточно для тестирования. PrintDomain нужен, чтобы убедиться, что он действительно живет в моем новом домене приложений. Компиляция берет некоторый исходный код и пытается создать сборку. Run позволяет нам тестировать выполнение статических методов из данного исходного кода.

Вот как я использую вспомогательную библиотеку:

static void CreateCompileAndRun()
{
    AppDomain domain = AppDomain.CreateDomain("MyDomain");

    CompilerRunner cr = (CompilerRunner)domain.CreateInstanceFromAndUnwrap("CompilerRunner.dll", "AppDomainCompiler.CompilerRunner");            
    cr.Compile("public class Hello { public static string Say() { return \"hello\"; } }");            
    string result = (string)cr.Run("Hello", "Say", new object[0]);

    AppDomain.Unload(domain);
}

Она в основном создает домен, создает экземпляр моего вспомогательного класса (CompilerRunner), использует его для компиляции нового сборка (скрытая), запускает некоторый код из этой новой сборки, а затем выгружает домен, чтобы освободить память.

Вы заметите использование MarshalByRefObject и CreateInstanceFromAndUnwrap. Они важны для обеспечения того, чтобы вспомогательная библиотека действительно существовала в новом домене.

Если кто-то заметит какие-либо проблемы или у вас есть предложения по их улучшению, я хотел бы их услышать.

Amazon RDS)
  • SaaS : Программное обеспечение как услуга (например, Salesforce)
  • Возвращаясь к вашим соображениям:

    1. Если вы предоставляете услугу через веб-интерфейс, вы можете классифицировать ее в корзине облачных вычислений
    2. Традиционные веб-сайты сами по себе не попадают в категорию CC (см. Сегменты выше)
    3. Я не знаю, что такое «облачное приложение»: вы пытаетесь определить новый термин? ; -)
    40
    ответ дан 26 November 2019 в 19:26
    поделиться

    Предлагаю вам прочитать эту статью

    Выше облаков: взгляд на облачные вычисления в Беркли, без раздумий

    Не будет никаких сомнений на ваш взгляд. В области исследований эта статья называется введением в облачные вычисления

    0
    ответ дан 26 November 2019 в 19:26
    поделиться
    Другие вопросы по тегам:

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