Прикладные решения и средства их разработки
Средства разработки прикладных решений - это очень важная часть платформы персонального компьютера. От гибкости, богатства, удобства и надежности этих средств зависит популярность платформы. Платформа без средств разработки приложений под нее перестает существовать.
Все поставщики платформ поставляют и средства разработки прикладных решений в той или иной форме. Производители операционных систем предлагают всевозможные компиляторы и интерпретаторы, системы управления базами данных, системы организации взаимодействия (например, электронная почта). Конечно, решения для популярных операционных систем предлагают не только фирмы-создатели, но и другие фирмы-разработчики.
Для платформ, у которых возможности осуществления разработки решений непосредственно на них ограничены (например, для сотовых телефонов), производители предлагают средства разработки, функционирующие под популярной и мощной операционной системой (Windows, Linux). В дополнение к этим средствам предлагается эмулятор целевой платформы, на котором можно отладить решение, не используя целевую платформу непосредственно.
В настоящее время набирают популярность решения, обеспечивающие независимость разрабатываемых прикладных решений не только от аппаратной составляющей платформы, но и от операционной системы. Самые популярные решения подобного рода - Java и Net.
Основная идея этих платформ состоит в создании "виртуальной машины" - специального программного комплекса, функционирующего на конкретной аппаратной платформе и на конкретной операционной системе. Прикладную программу обрабатывает виртуальная машина, которая преобразует "виртуальные команды" в команды конкретной программно-аппаратной платформы. В итоге получается, что программа для виртуальной машины функционирует на множестве связок "аппаратная часть - операционная система" без переделки. Единственное условие - наличие виртуальной машины для конкретного программно-аппаратного решения. Самая распространенная аппаратно-независимая платформа - Java.
Существует определенный класс программных продуктов - конструкторов, использование которых ограничено какой-либо предметной областью. Эти продукты реализуют не только базовую функциональность, но и гибкие средства создания решений в определенной области деятельности. Такие программные продукты зачастую называются прикладными платформами.
Под прикладной платформой понимаются среда исполнения и набор технологических решений, используемых в качестве основы для построения определенного круга приложений. Фактически приложения базируются на нескольких платформах, образующих многослойную среду. При этом важно, что платформа предоставляет разработчику определенную модель, как правило, изолирующую его от понятий и подробностей более низкоуровневых технологий и платформ.
Ключевым качеством прикладной платформы является достаточность ее средств для решения задач, стоящих перед бизнес-приложениями. Это обеспечивает хорошую согласованность всех технологий и инструментов, которыми пользуется разработчик. Другой важный момент - стандартизация. Наличие единой прикладной платформы для большого количества прикладных решений способствует формированию общего "культурного слоя", включающего и людей (программистов, аналитиков, пользователей), и методологию (типовые структуры данных, алгоритмы, пользовательские интерфейсы). Опираясь на этот "культурный слой", разработчик тратит минимум усилий на поиск необходимого решения практически в любой ситуации, начиная от включения в проект нового специалиста и кончая реализацией какой-либо подсистемы бизнес-приложения по типовой методологии.
Типичный представитель специальных прикладных платформ - система "1С: Предприятие". Сама по себе система является гибким, настраиваемым под нужды конкретного предприятия конструктором, предоставляющим разработчику решений "более прикладные" методы и средства по сравнению с традиционными языками программирования, т. е. такая платформа представляет собой набор различных механизмов, используемых для автоматизации экономической деятельности и не зависящих от конкретного законодательства и методологии учета.
Существуют комплексные прикладные системы масштаба корпораций, которые являются основой для надежного ведения крупного бизнеса, так называемые ERP-системы (Enterprise Resource Planning Systems). Эти системы также являются прикладной платформой, гибко настраиваемой в своей предметной области.
Критерии выбора платформы
Выбор платформы представляет собой чрезвычайно сложную задачу, которая состоит из двух частей:
1. Определение сервиса, который должен обеспечиваться платформой | 2. Определение уровня сервиса, который может обеспечить данная платформа |
Существует несколько причин, в силу которых достаточно сложно оценить возможности платформы с выбранным набором компонентов, которые включаются в систему:
· подобная оценка прогнозирует будущее: предполагаемую комбинацию устройств, будущее использование программного обеспечения, будущих пользователей;
· конфигурация аппаратных и программных средств связана с определением множества разнородных по своей сути компонентов системы, в результате чего сложность быстро увеличивается;
· скорость технологических усовершенствований аппаратных средств, функциональной организации системы, операционных систем очень высокая и постоянно растет. Ко времени, когда какой-либо компонент широко используется и хорошо изучен, он часто рассматривается как устаревший.
· доступная потребителю информация об аппаратном обеспечении, операционных системах, программном обеспечении носит общий характер. Структура аппаратных средств, на базе которых работают программные системы, стала настолько сложной, что эксперты в одной области редко являются таковыми в другой.
Выбор той или иной платформы и конфигурации определяется рядом критериев. К ним относятся:
1. Отношение стоимость-производительность.
2. Надежность и отказоустойчивость.
3. Масштабируемость.
4. Совместимость и мобильность программного обеспечения.
Отношение стоимость-производительность. Появление любого нового направления в вычислительной технике определяется требованиями компьютерного рынка. Поэтому у разработчиков компьютеров нет одной единственной цели. Мейнфрейм или суперкомпьютер стоят дорого, т. к. для достижения поставленных целей при проектировании высокопроизводительных конструкций приходится игнорировать стоимостные характеристики. Другим крайним примером может служить низкостоимостная конструкция, где производительность принесена в жертву для достижения низкой стоимости. К этому направлению относятся персональные компьютеры. Между этими двумя крайними направлениями находятся конструкции, основанные на отношении стоимость-производительность, в которых разработчики находят баланс между стоимостными параметрами и производительностью. Типичными примерами такого рода компьютеров являются мини-компьютеры и рабочие станции.
Надежность и отказоустойчивость. Важнейшей характеристикой аппаратной платформы является надежность. Повышение надежности основано на принципе предотвращения неисправностей путем снижения интенсивности отказов и сбоев за счет применения электронных схем и компонентов с высокой и сверхвысокой степенью интеграции, снижения уровня помех, облегченных режимов работы схем, обеспечение тепловых режимов их работы, а также за счет совершенствования методов сборки аппаратной части персонального компьютера.
Введение отказоустойчивости требует избыточного аппаратного и программного обеспечения. Структура многопроцессорных и многомашинных систем приспособлена к автоматической реконфигурации и обеспечивает возможность продолжения работы системы после возникновения неисправностей. Понятие надежности включает не только аппаратные средства, но и программное обеспечение. Главной целью повышения надежности систем является целостность хранимых в них данных.
Масштабируемость должна обеспечиваться архитектурой и конструкцией компьютера, а также соответствующими средствами программного обеспечения.
Добавление каждого нового процессора в действительно масштабируемой системе должно давать прогнозируемое увеличение производительности и пропускной способности при приемлемых затратах. В действительности реальное увеличение производительности трудно оценить заранее, поскольку оно в значительной степени зависит от динамики поведения прикладных задач.
Возможность масштабирования системы определяется не только архитектурой аппаратных средств, но и зависит от заложенных свойств программного обеспечения. Простой переход, например, на более мощный процессор может привести к перегрузке других компонентов системы. Это означает, что действительно масштабируемая система должна быть сбалансирована по всем параметрам.
Совместимость и мобильность программного обеспечения. В настоящее время одним из наиболее важных факторов, определяющих современные тенденции в развитии информационных технологий, является ориентация компаний-поставщиков компьютерного оборудования на рынок прикладных программных средств. Это объясняется прежде всего тем, что для конечного пользователя в конце концов важно программное обеспечение, позволяющее решить его задачи, а не выбор той или иной аппаратной платформы. Переход от однородных сетей программно-совместимых компьютеров к построению неоднородных сетей, включающих компьютеры разных фирм-производителей, в корне изменил и точку зрения на саму сеть: из сравнительно простого средства обмена информацией она превратилась в средство интеграции отдельных ресурсов - мощную распределенную вычислительную систему, каждый элемент которой лучше всего соответствует требованиям конкретной прикладной задачи.
Этот переход выдвинул ряд новых требований:
Во-первых, такая вычислительная среда должна позволять гибко менять количество и состав аппаратных средств и программного обеспечения в соответствии с меняющимися требованиями решаемых задач.
Во-вторых, она должна обеспечивать возможность запуска одних и тех же программных систем на различных аппаратных платформах, т. е. обеспечивать мобильность программного обеспечения.
В-третьих, эта среда должна гарантировать возможность применения одних и тех же человеко-машинных интерфейсов на всех компьютерах, входящих в неоднородную сеть.