Смекни!
smekni.com

Корпоративные сети (стр. 38 из 53)

Исключительно в качестве примера приведем очень краткую характеристику прикладных программных продуктов, производимых и распространяемых некоторыми ведущими компаниями.

Начнем с компании Oracle. Представители этой компании любят представлять набор производимых продуктов в виде перевернутой пирамиды с вершиной внизу и основанием наверху. Вершине пирамиды соответствует базовый комплект серверов баз данных, предлагаемых компанией. В середине пирамиды располагаются средства проектирования и разработки баз данных и информационных систем (в частности, Designer/Developer 2000). Наконец, основанию пирамиды соответствуют готовые компоненты информационных приложений и законченные решения. Такая картина правильно отражает соотношения объемов и числа продуктов. Конечно, серверы баз данных - это наиболее сложные и ответственные продукты. Но их число и объем кода не очень велики. Средства проектирования и разработки опираются на использование серверов; эти продукты менее сложны, но более объемны. Наконец, приложения создаются с использованием средств проектирования и разработки; приложений много, и суммарный объем кода очень велик.

Oracle предлагает приложения (естественно, основанные на использовании серверов баз данных Oracle) для использования в следующих предметных областях:

  • управление финансами (распределенные многовалютные бухгалтерские системы, системы финансового планирования, системы финансового анализа и т.д.);
  • управление человеческими ресурсами (автоматизация процедуры найма на работу, планирование обучения персонала, удержания его в компании, продвижения по службе и т.д.);
  • автоматизация производства (автоматизированные гибридные производственные системы, системы поддержки новых методов инженерии, системы планирования и моделирования и т.д.);
  • системы поддержки ведения проектов (организация и мониторинг процесса проектирования, отслеживание проектных расходов и т.д.);
  • автоматизация деятельности по продажам (анализ рынка, управление рыночной деятельностью, управление продажами);
  • системы сетевого планирования.

Другая картина представлена компанией HewlettPackard. Как один из ведущих производителей вычислительной техники, компания в основном зарабатывает деньги за счет продажи компьютеров. Но с другой стороны, для увеличения спроса желательно предлагать заказчикам готовые решения. Это и делает компания. В кооперации с компаниями-разработчиками программного обеспечения (в частности, с Oracle) разрабатываются законченные аппаратно-программные конфигурации, пригодные для использования в различных предметных областях.

В частности, имеются решения HP для применения в следующих сферах:

  • проверка качества окружающей среды;
  • управление финансами;
  • автоматизация государственной деятельности (федерального уровня, уровня штата, уровня города и т.д.);
  • автоматизация деятельности в области здравоохранения;
  • системы фармацевтического анализа;
  • автоматизация производства;
  • управление розничной торговлей и т.д.

Компания IBM, являясь крупнейшей (и одной из старейших) в мире производителей компьютеров и программного обеспечения, предлагает компоненты информационных приложений и готовые решения для использования во всех сферах человеческой деятельности. Естественно, как и в случае HewlettPackard, эти решения опираются на аппаратные средства IBM (и базовое программное обеспечение этой же компании).

Совершенно необъятное число информационных приложений предлагает компания Microsoft. Следуя своей технологии компонентной организации программных продуктов, компания Microsoft предлагает компоненты для горизонтального рынка - набор полуфабрикатов, пригодных для построения бухгалтерских систем, систем документооборота, систем планирования ресурсов и т.д., а также готовые продукты для вертикального рынка - финансовые системы, здравоохранение, автоматизация работы гостиниц, издательские системы и т.д.

9.1.2. Приложения, предлагаемые третьими компаниями (пример: Catalyst компании SunMicrosystems)

Мы уже отмечали, что большинство прикладных программных продуктов производится небольшими самостоятельными софтверными компаниями. Такие компании в силу ограниченности своих ресурсов часто не могут обеспечить разработку и сопровождение продуктов на разных платформах и сосредотачиваются на поддержке платформ одного поставщика. Компании этого рода недаром называют "сторонними поставщиками", поскольку они ведут свою собственную политику, сами рекламируют и продают свою продукцию и не связаны со своими "старшими братьями" партнерскими отношениями. Тем не менее, основные поставщики также заинтересованы в том, чтобы их потенциальные заказчики знали о существовании продуктов третьих компаний, поскольку это является дополнительным доводом при принятии решения о покупке. Большинство крупных компаний собирает и распространяет информацию о доступности продуктов сторонних поставщиков.

Например, компания SunMicrosystems каждый год издает специальный каталог под названием "Catalyst", содержащий исключительно информацию о продуктах независимых фирм, работающих на платформах Sun. Catalyst обычно имеет объем более 1000 страниц. Прикладные продукты разбиты на предметно-ориентированные категории. По поводу каждого продукта приводятся его краткая характеристика и адрес и другая контактная информация производителя.

9.2. Инструментальные средства создания пилотных версий приложений и разработки их законченных вариантов

Понятное дело, что любую программу можно написать на любом языке программирования. Однако, когда речь идет об информационных приложениях, существенно возрастает сложность проектирования и программирования интерфейсов с конечным пользователем (как мы отмечали, эти интерфейсы должны быть предельно просты, понятны и удобны), а также требуется большая скорость получения хотя бы как-нибудь работающей версии программы (чтобы понять, устраивает ли это приложение хотя бы в первом приближении).

9.2.1. Что такое "быстрая разработка приложений" (rapidapplicationdevelopment)

Все равно, если Вы хотите получить правильно работающую, настроенную под Ваши потребности, грамотно написанную программу, обращайтесь к профессионалам. Но необходимо знать, какие средства разработки Вашими коллегами применяются. Возможны два подхода: RapidApplicationDevelopment - быстрая разработка приложения и традиционный способ программирования. Быстрая разработка - это, как правило, создание работающего прототипа приложения (прототипа в том смысле, что это все-таки не законченное приложение, а некоторый его прообраз). Этот прототип может быть полностью функционален. (Иногда не полностью; это зависит от сложности приложения.) Что Вам могут честно обещать - это полная отработка интерфейсов. Экранные формы, разного рода меню, подсказки делаются быстро и качественно. Можно почувствовать, как внешне будет выглядеть приложение.

Но это не значит, что внутренность прикладной программы будет достаточно эффективной и качественной. Как правило, за небольшим числом исключений (к ним, в частности, относится язык компании BorlandDelphi) языки быстрого прототипирования являются интерпретируемыми. Это не обязательно означает пошаговую пооператорную обработку программы. Иногда, как в случае языка Java, вся программа подвергается предварительной обработке, в результате которой образуется промежуточный машинно-независимый код, который в дальнейшем исполняется с помощью встроенного машинно-независимого интерпретатора. Но в любом случае интерпретатор остается интерпретатором; он не может так же эффективно выполнять программу как компьютер.

Почему же так часто используются языки быстрой разработки приложений? Основной ответ состоит в том, что они действительно быстро дают возможность получить работающий вариант программы со всеми ее внешними интерфейсами (применительно к системам, связанным с базами данных, такие языки часто называют 4GL, языками четвертого поколения).

9.2.2. Пригодны ли средства быстрой разработки только на стадии пилотного проекта?

Конечно же, нет. Можно найти массу простых информационных приложений, основное назначение которых состоит в том, чтобы формировать отчеты на основе заранее подготовленных запросов пользователей к базам данных. Общая эффективность подобных приложений главным образом определяется эффективностью используемой СУБД, и на нее мало влияет интерпретируемость выполнения клиентской части приложения.

Заметим, что большая часть современных языков и инструментальных средств быстрой разработки приложений (например, Delphi компании Borland, PowerBuilder компании Sybase и т.д.) имеют несколько собственных интерфейсов с распространенными серверами баз данных, либо могут работать с ними через драйверы ODBC. Поэтому с архитектурной точки зрения быстро разработанное приложение вполне может соответствовать модели "клиент-сервер". Если же в дополнение к средствам быстрой разработки применяются такие серверные средства как хранимые процедуры, ограничения целостности и триггеры, то часть логики приложения может быть перенесена на сервер баз данных (фактически, это позволяет сформировать третье звено общей цепочки - сервер приложений).

9.2.3. Тенденции к сближению языков быстрой разработки и языков программирования. Что это дает?

При использовании средств быстрой разработки приложений для создания сложных информационных систем с необходимостью существенных вычислений на стороне клиента обычно применяется комбинированный подход. Сначала создается пилотный проект, выполненный целиком на языке быстрой разработки, а затем наиболее ответственные части приложения переписываются на некотором традиционном языке программирования (как правило, на Си/Си++), компилируются и компонуются с остальной частью системы. В большинстве средств быстрой разработки такая возможность явно предусматривается и поддерживается. Ясно, что так работать можно. Но возникают некоторые сомнения.