Cloud computing: programming models


Информатика, кибернетика и программирование

Cloud computing: progrmming models1 Cloud computing is computing in which lrge groups of remote servers re networked to llow centrlized dt storge nd online ccess to computer services or resources. Clouds cn be clssified s public privte or hybrid. Cloud computing relies on shring of resources to chieve coherence nd economies of scle similr to utility like the electricity grid over network. t the foundtion of cloud computing is the broder concept of converged infrstructure nd shred services.



35 KB

0 чел.

Lecture 15. Cloud computing: programming models1

Cloud computing is computing in which large groups of remote servers are networked to allow centralized data storage and online access to computer services or resources. Clouds can be classified as public, private or hybrid.

Cloud computing relies on sharing of resources to achieve coherence and economies of scale, similar to a utility (like the electricity grid) over a network. At the foundation of cloud computing is the broader concept of converged infrastructure and shared services.

Cloud computing, or in simpler shorthand just “the cloud”, also focuses on maximizing the effectiveness of the shared resources. Cloud resources are usually not only shared by multiple users but are also dynamically reallocated per demand. This can work for allocating resources to users.

15.1 Cloud computing concepts.

Cloud computing is the result of evolution and adoption of existing technologies and paradigms. The goal of cloud computing is to allow users to take benefit from all of these technologies, without the need for deep knowledge about or expertise with each one of them.

The main enabling technology for cloud computing is virtualization. Virtualization software separates a physical computing device into one or more “virtual” devices, each of which can be easily used and managed to perform computing tasks. With operating system–level virtualization essentially creating a scalable system of multiple independent computing devices, idle computing resources can be allocated and used more efficiently. Virtualization provides the agility required to speed up IT operations, and reduces cost by increasing infrastructure utilization. Autonomic computing automates the process through which the user can provision resources on-demand. By minimizing user involvement, automation speeds up the process, reduces labor costs and reduces the possibility of human errors.

Users routinely face difficult business problems. Cloud computing adopts concepts from Service-oriented Architecture (SOA) that can help the user break these problems into services that can be integrated to provide a solution. Cloud computing provides all of its resources as services, and makes use of the well-established standards and best practices gained in the domain of SOA to allow global and easy access to cloud services in a standardized way.

Cloud computing also leverages concepts from utility computing to provide metrics for the services used. Such metrics are at the core of the public cloud pay-per-use models. In addition, measured services are an essential part of the feedback loop in autonomic computing, allowing services to scale on-demand and to perform automatic failure recovery.

Cloud computing is a kind of grid computing; it has evolved by addressing the QoS (quality of service) and reliability problems. Cloud computing provides the tools and technologies to build data/compute intensive parallel applications with much more affordable prices compared to traditional parallel computing techniques.

Grid computing — a form of distributed and parallel computing, whereby a ‘super and virtual computer’ is composed of a cluster of networked, loosely coupled computers acting in concert to perform very large tasks.

Mainframe computer — powerful computers used mainly by large organizations for critical applications, typically bulk data processing such as: census; industry and consumer statistics; police and secret intelligence services; enterprise resource planning; and financial transaction processing.

Utility computing — The packaging of computing resources, such as computation and storage, as a metered service similar to a traditional public utility, such as electricity.

Peer-to-peer — a distributed architecture without the need for central coordination. Participants are both suppliers and consumers of resources (in contrast to the traditional client–server model).

15.2 Delivery models

While the cloud itself does not necessarily require new programming models and languages, several new and simplified ones have emerged.

Cloud computing technologies have predominantly focused on hardware optimization using the infrastructure as a service (IaaS) model or delivery of entire applications using the software as a service (SaaS) model. But with the support of industry leading companies, such as IBM, Intel, NTT, SAP and Verizon in building an open platform as a service (PaaS) ecosystem (Cloud Foundry) there is a chance that adoption of PaaS will finally take off.

Interest in cloud is providing an opportunity to rethink the application platform, review vendor messages and determine how application development and application architecture should change to support cloud benefits and characteristics.

This interest is driving a new type of developer: one who is “born on the web” and who sees how applications are built in a different light. They have access to many new tools from across the whole web that they can draw upon. They are starting to adopt new products and approaches to development such as rapid application development (RAD), agile software development, DevOps and fourth generation languages.

15.3 Languages

The autonomy from IT provided by the cloud has freed developers from being told which programming models and frameworks they are allowed to use. Java is often viewed by the developer community as being more IT configuration-oriented and not as dynamic (which is seen as a must have by many cloud developers). It is also heavy, requiring and consuming large allocations of memory resources that are typically over-committed in cloud environments.

This has caused a significant increase in the use of programming models and frameworks which provide an enhanced developer user experience and more dynamic conventions, such as Ruby on Rails, Python, hypertext preprocessor (PHP) and others. It is estimated that over 70 percent of “born on the web” applications are not Java.

While the cloud itself does not necessarily require new programming models and languages, by coincidence several new and simplified ones have become popular.

Simplifying cloud development means simplifying the purely development aspects as well as the run-time and operational ones. A simple cloud programming model would ideally shield the developers from the details of these types of tasks, while not limiting the capabilities available to the developers. Additionally, a great cloud programming model would also include other cloud-specific attributes such as:

  •  Portability across clouds
  •  Portability across frameworks
  •  Ease of scaling
  •  Resiliency options
  •  Allowance for gradual adoption of features

Using domain specific languages (DSL), a program can be written with the terms and language of a particular domain so that the program reads like an “essay” about that domain. DSLs can be used in cloud programming to relieve the developer from having to worry about the physical resources needed to develop, test and deploy their application workloads.

Most of these DevOps can be automated and easily executed for various workloads. DevOps automation (also runbook automation) is its own system subfield that requires intricate knowledge of various systems components, how to install them, how to patch them and how to debug them when errors in the workload occur.

To facilitate the tasks of DevOps teams, various open source tools and companies have made use of DSLs, essentially a domain language that facilitates these operations and their automations.

Examples include the Chef automation tool/language as well as the Capistrano. In both these DSLs, developers capture their automation as an instance of the DSL (often called a recipe) which can easily be shared and executed to replicate an entire environments (virtual machines, storage, images and so on) in the cloud.

15.4 Domain specific languages and programming tools

A domain-specific language (DSL) is a computer language specialized to a particular application domain. This is in contrast to a general-purpose language (GPL), which is broadly applicable across domains, and lacks specialized features for a particular domain. There is a wide variety of DSLs, ranging from widely used languages for common domains, such as HTML for web pages, down to languages used by only a single piece of software. DSLs can be further subdivided by the kind of language, and include domain-specific markup languages, domain-specific modeling languages (more generally, specification languages), and domain-specific programming languages. Special-purpose computer languages have always existed in the computer age, but the term “domain-specific language” has become more popular due to the rise of domain-specific modeling. Simpler DSLs, particularly ones used by a single application, are sometimes informally called mini-languages.

A domain-specific language is created specifically to solve problems in a particular domain and is not intended to be able to solve problems outside it (although that may be technically possible). In contrast, general-purpose languages are created to solve problems in many domains.

Some domain-specific languages expand over time to include full-featured programming tools, which further complicates the question of whether a language is domain-specific or not. A good example is the functional language XSLT, specifically designed for transforming one XML graph into another, which has been extended since its inception to allow (particularly in its 2.0 version) for various forms of filesystem interaction, string and date manipulation, and data typing.

In model-driven engineering many examples of domain-specific languages may be found like OCL, a language for decorating models with assertions or QVT, a domain-specific transformation language. However languages like UML are typically general purpose modeling languages.

To summarize, an analogy might be useful: a Very Little Language is like a knife, which can be used in thousands of different ways, from cutting food to cutting down trees. A domain-specific language is like an electric drill: it is a powerful tool with a wide variety of uses, but a specific context, namely, putting holes in things. A General Purpose Language is a complete workbench, with a variety of tools intended for performing a variety of tasks. Domain-specific languages should be used by programmers who, looking at their current workbench, realize they need a better drill, and find that a particular domain-specific language provides exactly that.

1 http://en.wikipedia.org/wiki/Cloud_computing and http://thoughtsoncloud.com/2014/02/clouds-impact-on-programming-models-delivery-and-languages/


А также другие работы, которые могут Вас заинтересовать

21729. Коммуникационные устройства 306.5 KB
  Обмен данными требуется для различных целей: передачи файлов совместного использования периферийных устройств например принтеров доступа к разнообразным информационным услугам Интернета и частных сетей приема и передачи факсимильных сообщений посылки сообщений на пейджеры и мобильные телефоны установление голосовой связи IPтелефония видеосвязи и даже совместных игр по сети. СОМпорт Последовательный интерфейс для передачи данных в одном направлении использует одну сигнальную линию по которой информационные биты передаются друг за...
21730. Беспроводные интерфейсы связи 575 KB
  Инфракрасный интерфейс IrDA 2. В беспроводных интерфейсах используются электромагнитные волны инфракрасного IrDA Infrared Data Association и радиочастотного Blue Tooth диапазонов. Инфракрасный интерфейс IrDA 1. Общая характеристика IrDA Применение излучателей и приемников инфракрасного ИК диапазона позволяет осуществлять беспроводную связь между парой устройств удаленных на расстояние нескольких метров.
21731. Общая характеристика периферийных устройств ЭВМ 68.5 KB
  Общая характеристика периферийных устройств ЭВМ Вопросы: Введение в дисциплину периферийные устройства ПУ ЭВМ. Введение в дисциплину периферийные устройства ПУ ЭВМ. Как известно совместимый IBM PC компьютер организован по фоннеймановской архитектуре которая была сформулирована Джорджем фон Нейманом еще в 1945году и имеет следующие принципы: ЭВМ состоит из блока управления БУ и арифметикологического устройства АЛУ. Согласно этой архитектуры ЭВМ можно условно разделить на устройства непосредственной обработки информации и...
21732. Клавиатура. Манипуляторы-указатели 103 KB
  Вопросы: Общая характеристика клавиатуры. Интерфейс клавиатуры и мыши.Общая характеристика клавиатуры. Емкостные датчики и датчики Холла не имеют подвижных контактов и являются наиболее надежными для клавиатуры.
21733. Принципы вывода изображений 209 KB
  Принципы организации видеопамяти. Такой способ отображения называется линейным линейной последовательности пикселов соответствует линейная последовательность бит или групп бит видеопамяти. Многослойное отображение пикселов памяти Таким образом объем видеопамяти в битах V требуемый для хранения образа экрана определяется как произведение количества пикселов p в строке на количество строк n и на количество бит на пиксел b. Если физический объем видеопамяти превышает объем необходимый для отображения матрицы всего экрана видеопамять...
21734. Обработка видеоизображений 128.5 KB
  Стандарты кодеков изображений MPEG. Более совершенные устройства позволяют записывать в реальном времени последовательность видеокадров выполняя их сжатие методами MJPEG DVI или INDEO MPEGкодирование требует слишком больших ресурсов для выполнения преобразования в реальном времени. MPEG ряд кодеков MPEG1 MPEG2 MPEG4 MPEG7. Стандарты кодеков изображений MPEG.
21735. Дисплей и его разновидности 147 KB
  Крупицы люминофора Зерно триады экрана Экран Заполнение экрана Шаг матрицы зерен экрана Рис 5. Шаг матрицы зерен экрана Dot Pitch принято измерять в миллиметрах. Однако отождествлять эти два параметра не очень корректно и параметр Dot Pitch лучше перевести как зернистость экрана но не размер зерна. У 15 мониторов проволочка одна она расположена снизу на высоте примерно 1 3 высоты экрана.
21736. Интерфейсы и адаптеры дисплеев 327 KB
  В традиционной технике цветного телевизионного вещания PAL SECAM или NTSC видеосигнал непосредственно несет информацию о мгновенном значении яркости fн а цветовая информация передается в модулированном виде на дополнительных частотах fд . Таким образом обеспечивается совместимость чернобелого приемника игнорирующего цветовую информацию с цветным передающим каналом. fп 35МГц f МГц fд1 =443Мгц fн=45МГц fд2=46 МГц Однако для вывода графической информации с...
21737. Печатающие устройства 188.5 KB
  По способу печати принтеры разделяются на буквопечатающие и знакосинтезирующие что аналогично текстовому и графическому режимам дисплея а также последовательные и параллельные. В последовательных принтерах печать осуществляется поэлементно с продвижением по строке и после завершения печати одной строки переходят к печати следующей строки. Вместе с тем у них есть преимущество в качестве печатаемых символов а в ряде случаев и в скорости печати. Во время печати головка движется по строке слева направо и ударами иголок...