Программное обеспечение и его разработка - [13]
Разделение времени уменьшает «время ожидания решения», то есть время, проходящее от момента передачи задачи в вычислительный центр до получения результата решения. Тем самым доводится до максимума доля творчества человека в отношении: «процесс решения задачи»/«процесс созидания». В коммерческих приложениях типа III имеют дело с данными — файлами, записями, страховыми полисами, счетами, расписками, индексами клиентов. Огромные, многотомные файлы. Изнурительная работа по прочесыванию огромных файлов для нахождения единственного подходящего, выполнение простейших вычислений — иногда даже тривиальных, — и затем снова работа с файлами. Критическими характеристиками при этом являются скорость движения магнитной ленты, время доступа к диску, количество томов, размещаемых на диске, а также структура файла.
Пользователи типа IV занимаются именно вычислениями, а не файлами в смысле файлов со страховыми полисами, выданными компанией миллионам различных людей. При этом обрабатываются большие количества данных, но это не файлы, а скорее массивы. Узким местом при этом являются скорость вычислительной машины и планирование процесса, необходимые для своевременного выполнения заданий.
Однако для обеспечения работы по типу IV сотен пользователей, подключаемых к ЭВМ в диалоговом, интерактивном, режиме, необходимо делать многое из того, что делается и для коммерческих приложений, — запоминать имена и местоположения пользователей, времена их работы и многие другие более простые вещи. В этом смысле между использованиями по типам III и IV есть некоторое перекрытие.
Я разделил их по тем причинам, что, во-первых, использование по типу IV создает целую индустрию, а вид использования (разделение времени) и диалоговый режим существенно отличают этот тип от простой обработки данных и, во-вторых, для машин, используемых по типам III и IV, необходима весьма различная аппаратура, а значит, и разное программное обеспечение.
Если ЭВМ используется для выполнения или для помощи человеку в выполнении или слежении за некоторым процессом и мы не можем продолжать его выполнение без постоянного получения промежуточных результатов, мы используем машину по типу V. Процесс может быть простым, например управление огнями светофора, но может быть и весьма запутанным, как, например, система помощи авиадиспетчерам по предотвращению столкновений самолетов или система резервирования мест на самолетах, которая одновременно взаимодействует с тысячами служащих транспортных агентств.
Управление процессом неотделимо от выполнения процесса и обычно работает в режиме реального времени. Вычислительная машина должна успевать выполнять свою работу за время, отводимое для управления.
Для пользователей тип V выглядит так же, как и типы III и IV, но любые сбои ведут при этом к полному нарушению управляемого процесса.
Требования высокой помехозащитности и малого времени ответа приводят к необходимости разрабатывать один из самых сложных видов программного обеспечения. Программно-аппаратная система, выводящая ракету на перехват другой ракеты, построена в основном на тех же математических принципах, что и задачи расчета баллистических траекторий, необходимость решения которых привела к возникновению ЭВМ Однако теперь работы должны выполняться без каких-либо сбоев, в режиме реального времени, поскольку перехват должен выполняться именно в этот момент, когда вторая ракета подойдет к расчетной точке. И большая тяжесть работ по достижении поставленной цели падает на программное обеспечение.
При использовании по типу III, когда работа людей не может быть выполнена без одновременной работы машины, мы переходим в область управления процессами, т. е. начинаем использовать машину по типу V.
Итак, тип V основывается на использованиях по типам III и IV.
Тип V появляется, когда комбинация задач типов IV и III приводит к значительным усилиям по ведению сложных разработок. Современная аппаратура достаточно легко справляется с задачами типа V! Узким местом таких систем является программное обеспечение.
Эволюция использования вычислительных машин шла непрерывно от типа I к типу V.
Тип I перешел в тип III. Было бы логично попытаться по запросу получить данные, находящиеся «внутри», в ЭВМ. Каково среднее заполнение самолетов рейса Вашингтон — Париж в августе?
Использование типа III имеет значительное отличие от типа I. Люди взаимодействуютс вычислительной машиной. И опять-таки основная тяжесть этого ложится на программное обеспечение!
Пользователи типов I и II не имеют прямых контактов с машиной. Задания помещаются на перфокарты или магнитные ленты, и затем программист или ответственный по лаборатории ожидает, пока работа не будет выполнена, после чего они получают результаты, обычно отпечатанные на бумаге.
Пользователи типов III и IV непосредственно взаимодействуют с вычислительной машиной с помощью пишущей машинки или терминала с телевизионным экраном и клавиатурой. Они ведут диалог. Это совершенно не похоже на первые два случая, и для обеспечения взаимодействия пользователя с машиной нужно писать специальные программы (см. рис. 2.1).
Java Enterprise Edition (Java EE) остается одной из ведущих технологий и платформ на основе Java. Данная книга представляет собой логичное пошаговое руководство, в котором подробно описаны многие спецификации и эталонные реализации Java EE 7. Работа с ними продемонстрирована на практических примерах. В этом фундаментальном издании также используется новейшая версия инструмента GlassFish, предназначенного для развертывания и администрирования примеров кода. Книга написана ведущим специалистом по обработке запросов на спецификацию Java EE, членом наблюдательного совета организации Java Community Process (JCP)
Книга посвящена разработке программ для мобильных устройств под управлением операционной системы Android. Рассматривается создание приложений с использованием системных компонентов и служб Android. Приведены базовые данные о структуре приложений, об основных классах и их методах, сопровождаемые примерами кода. Часть 1 содержит шесть глав, описывающих основные принципы создания приложений, пользовательский интерфейс, полномочия приложений, а так же базовые классы: Activity, Intent, Fragment. Книга предназначена для программистов, владеющих языком программирования Java и желающих освоить написание приложений, работающих под ОС Android.
"В своем докладе я опишу процесс создания электронного исследовательского инструмента, имеющего в своей основе печатный библиографический указатель, который предназначен для использования в научных целях, а также проанализирую некоторые трудности, с которыми мы столкнулись в ходе реализации данного проекта, и расскажу об избранных нами вариантах решения возникших проблем.".
Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.
Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.
Очень часто под рукой не оказывается ни отладчика, ни дизассемблера, ни даже компилятора, чтобы набросать хотя бы примитивный трассировщик. Разумеется, что говорить о взломе современных защитных механизмов в таких условиях просто смешно, но что делать если жизнь заставляет?..