«Қазақстан ғылымының дамуы мен келешегі жастар көзімен»



Pdf көрінісі
бет17/40
Дата22.12.2016
өлшемі5,89 Mb.
#32
1   ...   13   14   15   16   17   18   19   20   ...   40

УДК: 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  
неплохо приспособлена для работы с современными высоконагруженными приложениями, обес-
печивающими гарантированное время реакции при обработке больших массивов данных. 
 

Достарыңызбен бөлісу:
1   ...   13   14   15   16   17   18   19   20   ...   40




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет