УДК: 004.429
SOFTWARE AS A SERVICE
Жакупова А.Т, Толегенова М.Н.
Университет имени Сулеймана Демиреля
Сервис
История SaaS
Первые компьютеры стоили огромных денег и их вычислительные мощности сдавались
заказчикам. С другой стороны, такую аренду нельзя считать разновидностью SaaS, поскольку
заказчики получали доступ к компьютерам напрямую, а не с помощью глобальных сетей связи.
Поскольку модель SaaS ориентирована на предоставление услуг с помощью Интернета, её
развитие непосредственно связано с развитием глобальной сети. Первые компании,
предлагавшие программное обеспечение как услугу, появились в западных странах в 1997—1999
годах, а акроним SaaS вошел в широкое употребление в 2001 году.
Модель SaaS (Software-as-a-Service) предполагает использование различных приложений в
аренду. Суть в том, что заказчик не покупает программное обеспечение, а платит за тот сервис,
который оно обеспечивает. Заказчик не размещает софт на своих серверах, а пользуется
мощностями разработчика. И платить ему приходится только за сервис, обслуживание сервера и
консультации. В итоге заказчик получает доступ к необходимому приложению на сервере
разработчика, что позволяет ему сэкономить средства и быстро внедрить программу
Преимущества SaaS
Во-первых, ему не нужно покупать само программное обеспечение, а во-вторых,
аппаратную платформу для его размещения. Не стоит забывать и о том, что после внедрения
системы на предприятие клиенту придется обеспечивать его дальнейшую работоспособность.
Если же весь этот фронт работ отдать на откуп разработчику, то заказчику останется лишь
пользоваться функционалом программы и вносить регулярные платежи за доступ к системе и
сопутствующие услуги.
Второе отличие: в SaaS заказчик получает не само программное обеспечение, а лишь тот
функционал, которое оно обеспечивает (в качестве веб-сервиса). А ведь именно реализация
бизнес-функций и нужна заказчику.
Третье: в SaaS процедура внедрения сведена к минимуму и очень проста – заказчику нужно
просто получить логин/пароль от программы и войти в нее. SaaS-системы не нуждаются в
продолжительной настройке, ювелирно тонкой адаптации к требованиям заказчика и
дорогостоящих консалтинговых услугах. В результате же сокращается время выполнения проекта
и все затраты, связанные с ним.
В-четвертых, SaaS-модель обеспечивает повсеместный доступ к нужному приложению из
любого места, где есть интернет. Большинство SaaS-провайдеров обязуются предоставлять
практически постоянный доступ к сервису.
В-пятых, SaaS-модель позволяет малому и среднему бизнесу использовать приложения,
которые ранее были недоступны из-за дороговизны. Вместо покупки программы заказчик за
небольшую плату арендует бизнес-функции, которые она реализует.
В модели SaaS:
приложение приспособлено для удаленного использования;
одним приложением пользуется несколько клиентов (приложение коммунально);
оплата взимается либо в виде ежемесячной абонентской платы, либо на основе объёма
операций;
техническая поддержка приложения включена в оплату;
модернизация и обновление приложения происходит оперативно и прозрачно для клиентов.
Положительные факторы SaaS для заказчиков
Отсутствие необходимости установки ПО на рабочих местах пользователей — доступ к ПО
осуществляется через обычный браузер;
Радикальное сокращение затрат на развёртывание системы в организации. Это расходы на
аренду помещения, организацию дата-центра, оплату труда сотрудников и т. д.;
Сокращение затрат на техническую поддержку и обновление развернутых систем (вплоть
до их полного отсутствия);
Быстрота внедрения, обусловленная отсутствием затрат времени на развертывание
системы;
Понятный интерфейс — большинство сотрудников уже привыкли к использованию веб-
сервисов;
Ясность и предсказуемость платежей, защита инвестиций;
Мультиплатформенность;
Возможность получить более высокий уровень обслуживания ПО.
Положительные факторы SaaS для разработчиков
Рост популярности веб-сервисов для конечных пользователей;
Развитие веб-технологий, большие функциональные возможности веб-приложений и
простота их реализации;
Быстрые процессы внедрения и сравнительно низкие затраты ресурсов на обслуживание
конкретного клиента;
Лёгкое проникновение на глобальные рынки;
Отсутствие проблем с нелицензионным распространением ПО;
В отличие от классической модели, заказчик SaaS привязывается к разработчику — он не
может отказаться от услуг разработчика и продолжать использовать систему. Таким образом,
обеспечивается защита инвестиций разработчика в процесс продаж;
В долгосрочном периоде доходы от SaaS могут оказаться выше прибыли, полученной от
продажи лицензий и оказания технической поддержки (даже с учётом расходов на хостинг и
управление приложениями).
IaaS – инфрастуртура как сервис. Аренда оборудования, оплата за конкретные аппаратные
средства)
PaaS – платформа как сервис. Аренда программной платформы (среда разработки +
исполнения). Конечно же, это автоматически подразумевает и использование железа, но в
неявном виде для пользователя. Оплачивается не железо (вы вообще не знаете какое
оборудование применяется), а ресурсы в терминах софта, причем, возможно, в виде, например,
числа
транзакций,
а
не
ресурсов
памяти,
SaaS - софт как сервис. Тут присутствует все – и аппаратура, и программная платформа, и
прикладной софт. Но оплата ведется в терминах решения бизнес-задач (фукнционал, число
пользователей).
Примеры SaaS:
1.
Google Docs
2.
Google Calendar
3.
Gmail
4.
Google Talk
5.
Talk Fusion
Список литературы:
1)
http://ru.wikipedia.org/wiki/SaaS
2)
http://12news.ru/doc8974.html
3)
http://www.pcweek.ru/its/blog/its/1400.php
4)
http://www.tadviser.ru/index.php/%D0%9F%D1%80%D0%BE%D0%B4%D1%83%D0%BA%
D1%82:Google_Apps_Premier_Edition
УДК: 004.420
“Pernetakta” system for fast learning to typing
Massalimova G
Suleyman Demirel University
Computer today is very important for everyone. But this is not just a matter for different games or
the like is a means for fulfillment of various goals. Computer today helps to do what used to do a few
people and a lot of time.
Speed the task of the computer may depend not only on the obvious factors: the performance of the
processor, or, roughly speaking, human ingenuity. Sometimes the best deterrent is purely mechanical
work, exactly typing on keyboard[1]. Does it matter how we type? Yes. Touch typing allows us to write
without thinking about how we are writing, freeing us to focus on what we are writing, on our ideas.
Touch typing is an example of cognitive automaticity, the ability to do things without conscious attention
or awareness. Automaticity takes a burden off our working memory, allowing us more space for higher-
order thinking. The keyboard has its own nuances that need to be considered. For learning it there is even
special keyboard simulators that help to learn to touch-type, which is very important when large texts and
look at both sides, it's just a waste of time. The main thing is want it. Print fast - it's an art that requires
study. For this there are special exercises that will make learning more efficient. In general, such
simulators is very important today. That he can help make the job much easier and faster. [2]
My diploma is created to educate people typing on the keyboard. Using this application, the user can
learn to type fast, using all ten fingers. You can learn from any of four languages: Kazakh, Russian,
English and Turkish. For what would the user is not bothered by exercise, the program will be open
every N minutes and closes after M minutes. Program duration and frequency user can change by
himself, according to own convenience. After starting the program you will see seven tabs for switch
between windows: Main page, Start, Test, Statistics, Settings, Instructions and Exit. If the user runs the
program for the first time, he can pass the test to check its level, or simply click on the Start button and
start from the first level. If the program does not start the first time, you can start with the START button
and continue from the interrupted exercise. Clicking on the test, you will be taken to a new window
where you can take the test to determine your level. After determining user’s level, he can go to the basic
exercises, beginning at its level. On the top of the box is written number of level. Below is the text and
textfield that you need to retype the text. The text is taken from the database according to the level. For
creating database there is used class QSqlDatabase. The QSqlDatabase class represents a connection to a
database. The QSqlDatabase class provides an interface for accessing a database through a connection.
An instance of QSqlDatabase represents the connection. For checking correctness of pressed key there is
used QKeyEvent class. The QKeyEvent class describes a key event. Key events are sent to the widget
with keyboard input focus when keys are pressed or released. A key event contains a special accept flag
that indicates whether the receiver will handle the key event. You should call ignore() if the key press or
release event is not handled by your widget. A key event is propagated up the parent widget chain until a
widget accepts it with accept() or an event filter consumes it.
At the bottom of the window is a virtual keyboard that shows which key should be pressed and by
which finger. You can also re-start exercise by pressing the RESET button. At the bottom of the left side
has tips if you make a mistake and do not know where. To see the progress, you should click on the
Statistics tab. There are shown two graphs of black and red. The red color describes the error, black -
speed. The X axis shows the number of days passed by the user, and the Y axis shows the number of
errors for each day and an average speed of printing, that is how many letters have been printed in a
minute. By direction of the graph up or down, you can determine your success. Ideally black graph
should to strive upward indicating increased speed and red line should go down pointing to reduce errors.
Graph is updated after each exercise is finished. Graph was be drawn used class QPainter. In fifth
window user can set or change settings. Chose preferred language among four languages: Kazakh,
English, Russian or Turkish by mark only one of four QRadioButtons. After saving the changes program
at all translates into chosen languages. Also in this window user can changes level from first till own
level and upload other files to learn to type according to these files. There are settings of interval
between closing and appearance of program, time duration of learning. After changing the settings user
must press “SAVE” button. Then program install changes and transfer to start window.
After closing program, it does not stop working, it only turn to tray system on the taskbar on bottom
side of window. In tray system user can change settings of interval and duration, open program or quit. In
the last window of program user can read instruction of program, how to use it, properties of buttons
and how does program work at all. Also in this window written how to sit while typing, which distance
must be between user and monitor, what does virtual keyboard show and so on.
The project is not finished yet, but it has already implemented two of the four languages, virtual
keyboard, automatic appearance, sound, timer, error checking, help on an error and the database.
Reference
1.
http://it-event.ru/news/2060/
2.
http://www.ixbt.com/soft/typing.shtml
УДК: 004.430
NoSQL: назад в будущее
Shaimardanova M, Bimagambetova R
Сегодня актуальны эффективные технологии создания cпециализированных решений с
гарантированным временем реакции при обработке больших массивов данных, однако
потенциал таких давно существующих подходов, как Cache, реализован еще не полностью.
Проекты класса XTP (extreme transaction processing, высоконагруженные приложения) предъ-
являют новые требования к СУБД — сегодня необходимы технологии, обеспечивающие низкую
стоимость масштабирования и обработки больших объемов
данных
. К таким технологиям относят
СУБД класса NoSQL, обещающие разработчикам высокую скорость внесения изменений в прило-
жения, низкие затраты на масштабирование, инструменты обработки и хранения больших объе-
мов данных, а также высокую скорость выполнения на относительно недорогом оборудовании. В
базах NoSQL реализуется отличная от традиционной (один
сервер
баз
данных
для нескольких при-
ложений) парадигма, при которой одному приложению или модулю приложения предлагается от-
дельное решение по работе с
данным
и. По своей сути архитектура решений NoSQL ориентирова-
на на борьбу либо с большим объемом данных, либо с их повышенной сложностью.
Отличительные черты NoSQL — нереляционные модели данных, простые API или протоколы
доступа, способность к горизонтальному масштабированию по требованию для некоторого набо-
ра операций на многих
сервер
ах, распределенное хранение данных, эффективное использование
распределенных индексов и памяти для запросов, достаточно свободное обращение с такими
незыблемыми для традиционных СУБД вещами, как транзакционная целостность. Общим для
NoSQL-проектов являются компромиссы по отношению к взаимно противоречивым требованиям
— например, уход от поддержки стандартных правил для обеспечения транзакционной целостно-
сти ACID (atomicity, consistency, isolation, durability, атомарность, согласованность, изолирован-
ность, долговечность) в пользу горизонтальной масштабируемости. Отказ от подобных требова-
ний был невозможен и является догмой для традиционных СУБД. Действительно, нельзя быть од-
новременно надежным, быстрым, распределенным и целостным, однако в ряде конкретных случа-
ев возможны варианты.
Другой источник компромиссов — характер данных решаемой задачи. Именно тут важно тре-
бование к технологии, которая должна максимально использовать особенности предметной обла-
сти. Например, если можно распараллелить обработку данных и использовать принцип shared
nothing («без разделения ресурсов»), то нужно это эффективно применять как для хранения, так и
для исполнения запросов. В этом случае надо строить модель хранения и распределения данных,
которая опирается на эту возможность, однако в реляционных базах свободы выбора почти нет и
приходится использовать то, что есть, — скажем, нельзя хранить данные по колонкам на разных
серверах (рис. 1). При этом, в отличие от традиционных СУБД, технология NoSQL дает разработ-
чику больше свободы при учете естественных особенностей проектной задачи, которые могут
быть использованы, например, для горизонтального масштабирования. Однако разработчик несет
больше ответственности за принимаемые архитектурные решения.
Рис. 1.Реализация поколоночного хранения
Несмотря на многообразие NoSQL-проектов, до сих пор нет ни одного, который можно
было бы назвать универсальной и всеобъемлющей NoSQL-платформой. Поэтому, если у разработ-
чиков возникла идея воспользоваться NoSQL-подходами в следующем проекте, то прежде при-
дется ответить на целый ряд вопросов и разрешить множество рисков, например: какую мо-
дель данных выбрать; насколько стабильна и отработана выбранная технология; насколько се-
рьезны будут изменения в коде в случае попытки смены технологии, использующей NoSQL-реше-
ния, на другую; будет ли язык запросов достаточно полным и технологичным для удовлетворения
проектных требований. Отдельно стоит отметить, что многие NoSQL-технологии были созданы
специально в рамках конкретного проекта и есть вероятность того, что, закрывая требования и за-
дачи первоначального проекта, они могут оказаться не очень подходящими для другого.
Для начального знакомства с NoSQL с минимальными рисками целесообразно выбрать ги-
бридную архитектуру для подсистемы управления хранимыми данными: одновременно использо-
вать технологию NoSQL и обычную СУБД; использовать технологию, поддерживающую концеп-
ции обоих миров, например InterSystems Cache.
В основе Caché лежит реализация более простой, чем реляционная, модели, называемой по
имени своих атомарных элементов глобалами (global — от Global Persistent Variable), которые не
имеют схемы, допускают динамическое добавление столбцов и используют разреженное хране-
ние значений столбцов. На уровне глобалов можно использовать блокировки, транзакции, органи-
зовать распределенное хранение и партиционирование. Допуская некоторую неточность в опреде-
лении, можно говорить о глобалах как о структуре данных, схожей с существующими в языках
программирования коллекциями с доступом к элементам по ключу, например асcоциативным
массивом в PHP.
Модель глобалов ближе всего к одной из самых простых и распространенных моделей дан-
ных в NoSQL — модели ключ-значение (key-value). В качестве значений могут храниться скаляр-
ные типы, длинные строки и списки, а хранение данных происходит без заранее определенной
схемы, причем за интерпретацию данных отвечает само приложение. В том или ином виде все
прочие модели являются в некотором смысле наследниками модели ключ-значение. Глобалы
также предоставляют базис для построения нереляционных моделей, используемых в NoSQL: рас-
ширяемые записи, хранение по колонкам, документо-ориентированные и графовые модели.
На уровне глобалов не существует привычного для реляционных баз данных декларативного
языка запросов — запросы определяются алгоритмически, а их выполнение сводится к исполне-
нию кода на языке Cache Object Script, который предоставляет набор простых операций для рабо-
ты с данными, хранимыми в глобалах. Это, пожалуй, единственный язык, в синтаксис которого
явно введена конструкция для определения персистентности переменной — указания области ее
существования — в памяти или в базе данных. Если бы в Java или .NET была такая возможность,
то не существовало бы проблем с преодолением среды между программой и базой данных. Отсут-
ствие такой конструкции в универсальных языках программирования кажется странным — ведь
естественно предположить, что код работает не только с переменными в памяти, но и с хранимы-
ми переменными. При этом не надо заранее определять структуры в базе данных, а можно просто
работать с ними так же, как с переменными в языках с нестрогой
типизацией.
Компания InterSystems реализовала на основе глобалов объ-
ектно-ориентированную и реляционную модели, но можно на них
реализовать собственную, уникальную модель данных, построен-
ную на принципе Unified Data Model (рис. 2). Суть принципа за-
ключается в том, что работа с одними и теми же хранимыми дан-
ными происходит через разные модели представления, в зависи-
мости от контекста конкретной задачи. К примеру, для быстрой
вставки и чтения используется модель ключ-значение, а для за-
просов используются возможности реляционной модели. При по-
строении своего языка запросов для NoSQL-решения можно ис-
пользовать язык Cache Object Script, предоставляющий набор про-
стых операций для работы с данными, хранимыми в глобалах.
Оценивая возможности Cache в таких важных для NoSQL ка-
тегориях, как горизонтальное масштабирование и организация
распределенного хранения данных, необходимо отметить, что в
этой СУБД изначально на базовом уровне были заложены техно-
логии для партиционирования данных и их хранения в распределенных базах. Разделение данных
на основе правил разрешения логических имен структур хранения (глобалов) и правил для клю-
чей, в том числе составных, записей происходит с использованием Subscript Level Mapping (SLM)
и областей (namespace). Фактически SLM и области абстрагируют физический адрес хранения
данных от логических имен и ссылок на записи, которые использует приложение. Конфигурация
правил хранения происходит без изменения приложения. Правила SLM допускают как локальное
распределение данных, так и распределение данных по разным серверам Cache. Для организации
распределенной работы (рис. 3) используется технология ECP (Enterprise Cache Protocol).
Рис. 2. Концепция
Unified Data Model основана
на принципе «данные одни —
моделей представления
много»
Рис. 3. Партиционирование и распределенное хранение с помощью
ECP и SLM
Проиллюстрировать возможности Cache по распределенному хранению можно примером ре-
ализации подхода, который ввели в обиход инженеры Google при создании BigTable и который
предполагает шардинг (sharding) — разбиение логически замкнутых частей базы данных на части
для хранения на разных серверах. Цель шардинга — при увеличении нагрузки распределить дан-
ные. При использовании шардинга разные записи могут распределяться по серверам на основе по-
падания первичного ключа в определенный диапазон или построения хэша по первичному
ключу. Данные одной записи также могут храниться, согласно правилам для группы, на раз-
ных серверах — например, группа атрибутов с адресной информацией хранится отдельно от груп-
пы атрибутов с финансовой информацией. В случае Cache правила SLM позволяют по ключу или
его части распределять записи (узлы) глобалов и при определенной организации модели хранения
обеспечивать хранение значений разных атрибутов одной записи на разных серверах. ECP при
этом обеспечивает доступ к удаленным базам и согласованную работу с распределенными дан-
ными.
Помимо распределенной работы с данными, хранимыми на разных серверах, ECP дает воз-
можность осуществлять горизонтальное масштабирование вычислительной нагрузки при одно-
временной работе большого количества пользователей за счет создания распределенного
кэша данных.
Технологии NoSQL сейчас очень популярны, поэтому InterSystems выпустила бесплатную
СУБД InterSystems Globals, позволяющую оценить возможности технологии работы с глобалами.
Эта СУБД предоставляет простые API для работы из Java, Node.js и .Net. В отличие
от Cache Object Script, в Globals операции по работе с глобалами доступны из внешнего по отно-
шению к СУБД языка программирования. При этом процесс работающего с Globals приложения
(например, виртуальной машины Java) становится фактически одним из процессов СУБД. В
Globals могут быть реализованы нереляционные модели.
В случае c Java технология Globals позволяет быстро реализовывать свои собственные струк-
туры хранимых данных, которые при этом естественны для языка. Например, можно быстро со-
здать аналог HashMap, данные которого будут храниться в СУБД. При таком подходе, так же как
и в случае Cache Objects Script, различия между переменной в памяти и на диске начинают исче-
зать, что делает работу с хранимыми данными более естественной.
Для Node.js доступ к Globals позволяет работать с естественными для JavaScript типами дан-
ных — массивы и объекты JavaScript можно без дополнительных накладных расходов на разра-
ботку сразу сохранять, читать и изменять, что упрощает проблему персистентности данных. Вдо-
бавок к этому Globals в связке с Node.js дает высокую скорость работы — например, Globals рабо-
тает быстрее, чем Redis (один из распространенных проектов NoSQL).
Globals позиционируется как база данных NoSQL, но при этом отличается от основного пото-
ка реализаций NoSQL: нет ограничений на конкретную модель данных; имеется возможность ис-
пользования блокировок и транзакций; обеспечена одновременно эффективная работа с данными
в памяти и на диске; отсутствует технология для распределенной работы с хранимыми данными.
Globals предоставляет ядро по работе с глобалами без объектного и реляционного доступов, но
при развитии проекта всегда есть возможность перейти на Caché без изменения кода приложения
— Globals API является подмножеством технологии Caché Extreme.
***
InterSystems Cache вполне можно отнести к СУБД NoSQL с поддержкой объектной и реляци-
онной моделей, которая не уступает по своим эксплуатационным качествам традиционным СУБД.
Несмотря на то что СУБД NoSQL стали популярны недавно, идеология СУБД InterSystems Cache
неплохо приспособлена для работы с современными высоконагруженными приложениями, обес-
печивающими гарантированное время реакции при обработке больших массивов данных.
Достарыңызбен бөлісу: |