к оглавлению

Система управления базами данных PROGRESS

Сравнительный анализ СУБД Progress

СУБД Progress имеет, как преимущества, так и отрицательные стороны. Очень легко и удобно настраивается для многопользовательского режима, в отличие от MS Access или элементов ADO в Borland C и Visual C. Имеет очень удобную функцию "buffer" для любой таблички. Это позволяет вдвое быстрее обрабатывать поиск по таблице с разными значениями. Имеет возможность работы с неограниченным числом индексов. Индексы отличаются от ключей в других БД тем, что по индексам производится более быстрый поиск по большому количеству записей.

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

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

В СУБД Progress очень удобно делать выгрузку табличек и содержимого табличек, в отличие от остальных систем управления базами данных, работает с файлами *.d (содержимое таблички) и *.df (структура таблички, включая индексы). Так же имеются "сиквенсы". В стандартных БД данные поля считаются счетчиками. Но в Progress нет возможности создания подобных полей, можно пользоваться только отдельными элементами "sequens", максимальное значение 999 999.

Progress имеет возможность работать сразу с несколькими базами данных, при этом дополнительные базы никак не влияют на скорость и производительность обработки данных.

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

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

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

Progress это полнофункциональная система управления базами данных. В ней имеются средства работы с БД - язык программирования Progress ABL 4PL. Имеются, как консольный режим, так и визуальный. Консольный режим аналогичен консольному языку "foxpro".

Progress имеет свой собственный язык программирования обработки данных, но помимо стандартного, можно пользоваться SQL-запросами. Не во всех случаях конечно, но стандартные функции типа "Select" отрабатывают корректно.

Ни об одной СУБД нельзя сказать твердо - хороша она или плоха. В разных сферах деятельности эффективны разные СУБД. При переходе к иной сфере может появиться необходимость пересмотреть свои взгляды и взглянуть на новую проблему под другим углом. Тогда, казавшееся ранее неприменимое и неудобное, может оказаться совершенно другим и более удобным. Кроме того, есть такой фактор, как желание заказчика, что тоже играет немаловажную роль при выборе системы проектирования и программирования.

Технические характеристики СУБД Progress

Система управления базами данных PROGRESS способна решать информационные задачи корпоративного масштаба (мощные ЭВМ под управлением ОС UNIX или AS/400, сотни гигабайт распределенных данных, тысячи пользователей и т.д.), но благодаря разумным требованиям к вычислительным ресурсам и гибкой ценовой политике широко используется и для построения информационных систем "клиент/сервер" масштаба подразделения (локальные сети с серверами Windows 2000 Windows 2003 и даже автономных системах основе персональных компьютеров (Windows XP).

Наряду со стандартным набором возможностей, характерным для всех СУБД
корпоративного класса:

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

СУБД PROGRESS обладает также рядом уникальных особенностей, например:

- развитый словарь данных (сколь угодно сложные правила обеспечения целостности, форматы представления данных по умолчанию и т.д.);
- блокировка на уровне записей;
- возможность не блокирующего доступа приложений "только для чтения";
- возможность индексной навигации по выборке вверх и вниз (для быстрого перемещения в конец длинной выборки не требуется считывать всю выборку);
- регистронезависимые индексы (возможен поиск по индексу без учета регистра букв);
- пословная индексация (позволяет осуществлять мгновенный поиск слов и фраз в массивах неструктурированного текста);
- упаковка индексов (сокращает их размер в 2-3 раза и, следовательно, увеличивает скорость доступа);
- полная функциональная совместимость баз данных всех уровней (от Personal до Enterprise);
- корректная работа с любыми национальными алфавитами, кодировками (включая двухбайтовые) и сортировками; начиная с версии 9 поддерживается также UNICODE;
- разумные требования к вычислительным ресурсам (в 2-3 раза ниже, чем Oracle при прочих равных условиях).

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

Средства разработки PROGRESS

Язык четвертого поколения PROGRESS 4GL зарекомендовал себя, как высокоэффективный инструмент разработки профессиональных распределенных приложений корпоративного масштаба от начала и до конца.
Он обладает рядом уникальных достоинств перед аналогичными средствами разработки:

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

Язык 4GL, начиная с версии 10 он носит название ABL поддерживает разработку как графических (Windows 2000, Windows XP, Windows Vista), так и символьных (UNIX terminal, Windows NT console) пользовательских интерфейсов, а также процедур, вовсе не имеющих пользовательского интерфейса(бизнес-логика, триггеры базы данных);до версии 10 Progress не являясь "каноническим" объектно-ориентированным языком, таким как C++ или Java, PROGRESS 4GL тем не менее позволяет создавать так называемые бизнес-компоненты высокого уровня или SmartObjects, инкапсулирующие элементы данных, объекты пользовательского интерфейса и логику их обработки (методы).

PROGRESS SmartObjects могут включать в себя другие SmartObjects, обрабатывать и генерировать события, а также обмениваться сообщениями, что позволяет собирать из них сложные многооконные приложения. Начиная с версии 10 в нем реализована полная поддержка ООП. В качестве объектов Windows-приложений могут использоваться также компоненты ActiveX, что делает возможности построения графического интерфейса практически безграничными; приложения на языке PROGRESS 4GL могут работать как с локальными (архитектуры"single user" и "host-terminal"),так и с удаленными (архитектура "клиент-сервер") базами данных PROGRESS, а также взаимодействовать с приложениями PROGRESS на удаленных ЭВМ с помощью технологии сервера приложений AppServer (многоуровневая архитектура "клиент-сервер");WebClient позволяет организовать доступ через Web к процедурам, написанным на языке 4GL, что значительно расширяет возможности доступа через протокол HTTP.

Средства разработки PROGRESS позволяют обращаться и к базам данных третьих фирм напрямую (Oracle, DB2/400) или через интерфейс ODBC.

Приложения, написанные на других языках (Java, C, C++, Visual Basic, Delphi и др.) могут не только обращаться к базам данных PROGRESS через интерфейсы ODBC/JDBC, но и вызывать процедуры, написанные на языке PROGRESS 4GL, через интерфейсы ActiveX и Java RMI, что позволяет легко интегрировать базы данных и приложения PROGRESS в существующие гетерогенные информационные системы, а также комбинировать различные технологии при разработке новых приложений. Отвечая требованиям стандарта ANSI SQL92, сервер СУБД PROGRESS может использоваться с любыми ODBC- и JDBC-совместимыми средствами разработки и приложениями, но для достижения максимальной эффективности и доступа ко всему спектру уникальных возможностей сервера (в частности, навигационного доступа к данным и пословной индексации) рекомендуется пользоваться средствами разработки PROGRESS.

Поддержка описанных выше технологий позволяет успешно интегрировать СУБД Progress с различными другими приложениями, например с Microsoft Office, используя последний для представления конечных отчетов.

Набор средств визуального программирования ProVISION позволяет создавать сложные многооконные PROGRESS-приложения, не снимая руки с мыши и не имея никакого представления о языке PROGRESS 4GL. Основной компонент ProVISION - AppBuilder - позволяет как создавать новые бизнес- приложения путем выбора компонентов из "палитры" и размещения их в рабочем поле AppBuilder. Эти компоненты представляют собой не просто экранные примитивы, но и наборы триггеров и методов, связанных с ними, что позволяет строить не просто красивые интерфейсы, а полнофункциональные приложения.

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

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

Средство разработки Internet-приложений WebSpeed позволяет использовать Web-браузер в качестве пользовательского интерфейса к приложениям онлайновой обработки транзакций. Бизнес-логика приложений пишется на языке PROGRESS 4GL, пользовательский интерфейс строится в виде HTML-страниц, либо создаваемых с помощью любого HTML-редактора, либо динамически генерируемых PROGRESS - процедурами.

В процессе эксплуатации на клиентском месте нужен лишь обычный Internet-browser, через который пользователь работает с Progress-приложением совершенно не зная и не задумываясь о его существовании.

Краткий обзор особенностей СУБД Progress.

Поддерживаемые архитектуры СУБД:

- настольная
- клиент/сервер
- хост-терминал
- Internet/Intranet

Сетевые протоколы - любые.

Интерфейсные средства интеграции с другими, не Progress, приложениями:

- HDC
- DDE
- ODBC
- JDBC
- DLL
- Gateway
- Socket
- ANSI SQL92
- XML
- OLE, COM, ActivX
- Java RMI
- Case Bridges

Поддержка целостности:

- Блокировка записей
- Встроенные механизмы транзакций
- транзакции с двухфазной фиксацией
- триггеры
- разграничение прав доступа на нескольких уровнях
- использование средств для сбора статистики

Возможности администрирования:

- легкая масштабируемость незаметная для пользователя
- многоступенчатый backup
- журналирование транзакций
- before-imaging и after-imaging
- roll-back recovery и roll-forward recovery
- автоматическое восстановление после любых сбоев

Поддержка всех современных методик программирования:

- Модульно-процедурной
- Событийной
- Объектно-ориентированной (ООП)
- Компонентно-ориентированной

Поддержка аппаратных платформ:

- Windows XP/2000/2003/Vista
- SCO UnixWare, SCO OpenServer
- Sun Solaris Intel & Sparc
- IBM AIX
- HP-UX
- Linux Intel
- Compaq Tru64
- DG/UX Intel

Возможна работа в гетерогенной сети очень сложной конфигурации. Приложения, разработанные на Progress, могут работать без переписывания на более чем 160-ти программно-аппаратных платформах.

Поддержка кодировок национальных языков

- Windows - 1251,
- КОИ-8,
- ISO 8859-5
- ISO 866.
- UNICODE

Характеристики и ограничения СУБД Progress

- Областей размещения для базы данных 1 000
- Таблиц в базе 32 000
- Записей в таблице 2 109
- Максимальный размер файлов журналирования 32 Тб
- Индексов в базе 32 000
- Полей в таблице 32 000
- Пользователей 10 000
- Одновременных транзакций 10 000
- Пул буферов 500,000 блоков 4 Гбайт
- транзакций в минуту 600 000 (IBM RS/6000)
- Максимальный размер записи 32 Кб
- Максимальный размер области размещения 16 Тб
- Максимальный размер таблицы 16 Тб
- Максимальный размер БД 80 Петабайт (1015)

Примеры реальных систем:

- Australian Cellular Phone Network (Австралийская сотовая телефонная сеть)
- Размер основного сегмента БД 200 Гб (общая совокупность более 1 ТБ ).
- В основном сегменте 2 ведущие таблицы, 500 млн. записей каждая.
- Рост БД более 1 миллиона записей в день.
- Более 10 млн. транзакций в день.

Медицинские системы

- SwissCare®-Systems швейцарской компании DataSwiss Solutions AG http://www.dataswiss.com/

ERP и MRP-системы для среднего и малого рынков России:

- Symix SyteLine http://www.frontstep.ru/
- QAD MFG/Pro  http://www.qad.ru/
- Solagem Enterprise
- Никос-софт NS2000

Банковские системы:

- CSBI Банкир http://www.csbi.ru/
- БИС Бисквит http://www.bis.ru/

Торговля:

- IBS IBS Trade House http://www.ibs.ru/
- IBS IBS-GAS
- FIT Gesto     http://www.fit.ru/

Транснациональные корпорации использующие Progress

Пользователями являются 60% компаний из списка Fortune 100 (крупнейших международных корпораций).

- PepsiCoMarsDaewoo
- Coca-ColaMariott (hotels)Gillette
- Johnson & JohnsonBlack & DeckerLucent Technologies
- Lockheed MartinColgate-PalmoliveHeineken
- Mercedes-BenzFord Motor CompanyBritish Petroleum
- AT&TRockwellMazda Motor Corporation
- DanonUnited TechnologiesMcDonnell-Douglas
- Glaxo WellcomeSonyKrupp
- HeinzSun СНГVolvo, Volkswagen

Российские корпорации использующие Progress

Торговля:

- Универмаг Крестовский
- Максидом (Санкт-Петербург)
- Восток и Запад (Bosco Di Ciliedgi)
- Сеть супермаркетов "КОПЕЙКА"
- Аргументы и факты (АРИА и киосковая сеть)
- Дом книги (Санкт-Петербург)
- Банковский сектор:
- БИСБанк ГагаринскийБанк Каспийский
- АРКОЕвротрастбанкВнешторгбанк
- Северная КазнаКамчатбизнесбанкРоссийский Сельскохозяйственный банк
- РоссельхозбанкГранкомбанкСлавянский Банк
- АвтобанкУралвнешторгбанкАвтоградбанк
- ГутабанкРусский стандартTexaKaBank
- Банк Санкт-ПетербургLateko BankaАВТОБАНК-НИКОЙЛ
- БалтонексимбанкTallinn Business BankaA/S Pirma Banka

Информация и коммуникации

Телекоммуникации:

- ГЦРТ Останкино
- Lucent Technologies
- Экспресс-почта:

- TNT

Издательства:

- Бурда Моден
- Аргументы и факты
- и многие другие....

Сегодня к современным информационным системам уровня предприятия предъявляются очень высокие требования производительности, надежности, обеспечения целостности и безопасности данных, защиты от системных и аппаратных сбоев, масштабируемости, возможности взаимодействия с другими системами, работы в гетерогенных распределенных вычислительных сетях, в том числе и глобальных. В немногочисленном семействе промышленных СУБД, отвечающих всем предъявленным требованиям, СУБД Progress является своего рода Золушкой, незаслуженно недооцениваемой широкой общественностью, но меж тем эксплуатируемой на многих российских промышленных предприятиях, в банках, государственных учреждениях и коммерческих структурах. В данной статье мы остановимся на обзоре архитектуры и возможностей СУБД Progress, являющейся частью интегрированной системы разработки критически важных (mission-critical) приложений, включающей в себя также средства визуального программирования на основе компонентно-ориентированного подхода, средства разработки приложений для Internet/intranet и компонентный сервер приложений.

СУБД Progress - это SQL-совместимая реляционная система управления базами данных, поддерживающая многосерверную и многопоточную организацию доступа к данным. СУБД имеет шлюзовую архитектуру, показанную на рис. 1.

Рисунок 1.

Приложения Progress могут работать с данными из базы данных Progress, любой базы данных, для которой есть Progress DataServer или их комбинации, причем тип источника данных определяется только на этапе инсталляции и не требует изменений в приложении. Для доступа к своей базе данных Progress предоставляет ODBC Driver.

DataServer - шлюз нижнего уровня для доступа к другим источникам данных, в том числе и к распределенным.

При работе приложения через DataServer можно использовать специфические для конкретного сервера СУБД возможности, синтаксис и команды (например, использовать преимущества хранимых процедур Oracle, синтаксис PL-SQL, интерфейс SQL*Net) и/или расширять функциональность, используя специфические средства Progress, например триггеры.

Собственный сервер баз данных Progress

На рис. 2 показана структура собственного сервера баз данных Progress в общем случае.

Рисунок 2.

Основные компоненты:

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

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

Progress Монитор - утилита, показывающая производительность и полезную информацию о статусе базы данных и активности.

Progress Watchdog - утилита, определяющая некорректно завершенные процессы и разблокирующая записи базы данных, структуры в разделяемой памяти и т. д.

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

APWs (Asynchronous page writers) постоянно записывают измененные блоки базы данных на диск.

BIWs (Before-image writers) постоянно записывают на диск заполненные буферы журнала активных транзакций, служащего для отката базы назад в случае системных сбоев.

AIWs (After-image writers) постоянно записывают на диск заполненные буферы журнала завершенных транзакций. Используя резервную копию базы и журнал завершенных транзакций, всегда можно восстановить текущее состояние базы в случае аппаратных сбоев. Создание резервных копий баз данных и восстановление баз может производиться как в off-line-, так и on-line-режимах.

В случае распределенных транзакций автоматически используется протокол двухфазной фиксации.

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

Самообслуживающийся клиент - многопользовательская Progress-сессия, запущенная на той же машине, что и брокер. Самообслуживающиеся клиенты работают с базой напрямую через разделяемую память. В случае, когда клиент и сервер функционируют на одном компьютере, Progress позволяет объединить их функции в одном процессе в терминах операционной системы, что сокращает накладные расходы по производительности. Высокая производительность сервера обеспечивается также большим кэшем базы, до 500 000 блоков базы, поддержкой семафоров и SMP Spin Locks.

Блокировки в Progress поддерживаются вплоть до уровня записей. Существует два типа блокировок: разделяемая (shared) и монопольная (exclusive). Тип и время, на которое блокируется запись, определяются по умолчанию, но могут быть и явно указаны разработчиком. Блокирование доступа возможно на уровне записи, таблицы и базы данных.

Администрирование СУБД

Сервер баз данных Progress достаточно прост в администрировании, благодаря большому количеству умолчаний и тому, что многие процессы, такие как APWs, автоматически настраивают свое поведение, основываясь на активности использования базы данных, даже если активность принципиально изменяется при переходе с дневной обработки в режиме on-line на пакетную обработку в ночное время. Всего СУБД имеет около 150 конфигурационных опций и параметров, позволяющих оптимально настроить систему для конкретной программно-аппаратной платформы и сетевого взаимодействия.

Некоторые особенности функционирования СУБД Progress

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

Для эффективной работы с документами в Progress существует механизм word indexing - возможность построения индексов по словам в символьном поле.

Приложение может также использовать данные из мета-схемы базы (т. е. само описание базы данных может быть доступно в виде обычной базы) и виртуальные run-time-таблицы (magic tables), содержащие данные об активных блокировках записей, работающих пользователях, параметрах базы данных. Для поддержания семантической целостности базы данных, для различных событий, таких как добавление, удаление, нахождение записи в базе и т. д., можно определить триггеры, выполняемые в ответ на эти события. Механизм триггеров можно использовать для дополнительной журнализации событий в базе, ограничения видимости записей, соответствующих некоторым критериям для определенных групп пользователей. Например, для события find record для таблицы "Зарплата" можно создать триггер, который позволит просматривать записи о зарплате только тех сотрудников, сумма зарплаты которых не превышает определенного для данного пользователя значения, хранимого в другой таблице. Пользователь может даже не догадываться, что просматривает только часть записей. Все триггеры пишутся в виде обычных 4GL-процедур, могут работать с любым источником данных, поддерживаемым Progress, и до сих пор обладали только тем недостатком, что в отличие от хранимых процедур исполнялись на клиентской стороне. Но с появлением в сентябре 1996 года нового продукта Progress AppServer - компонентного сервера приложений - триггеры могут выполняться в любом узле вычислительной сети, в том числе и на самом сервере базы данных.

Компонентный сервер приложений AppServer

Одним из важных шагов, предпринятых Progress Software в направлении создания распределенных приложений в N-уровневой архитектуре клиент-сервер, является введение в язык понятия удаленных процедур (remote procedures), разрабатываемых на языке 4GL и используемых для разделения приложения на компоненты. Каждый из этих компонентов запускается на своем сервере приложений в непосредственной близости от данных, с которыми он работает, тем самым выделяя сегмент бизнес-логики из приложения - по сути инкапсулируя его функции в различных компонентах, каждый из которых может быть запущен на разных серверах в различных узлах сети. В приложении, написанном с использованием запускаемых на компонентном сервере удаленных процедур, клиентское приложение может вызвать удаленную процедуру и, не дожидаясь возврата из нее, сразу же перейти к следующей процедуре. Работа клиента будет прервана только по окончании выполнения удаленной процедуры для возвращения результата. Очевидно, что при этом общая производительность приложения значительно возрастает.

Progress/4GL

Компонентный язык 4GL - ядро разработки критически важных приложений, которое позволяет управлять всеми уровнями приложения: пользовательским интерфейсом, бизнес-логикой приложения и данными. Он обеспечивает управление транзакциями, генерацию отчетов, определение механизмов безопасности и целостности данных. В приложении на 4GL для работы с данными можно использовать SQL. Progress/SQL удовлетворяет стандарту ANSI SQL89 Level 2. Также в приложение могут быть интегрированы вставки С, на объекты ActiveX, OLE, механизмы DDL, DDE, Unix named pipes и другие.

Переносимость

Progress функционирует более чем на 160 программно-аппаратных платформах и поддерживает различные сетевые протоколы - TCP/IP, SPX/IPX, SNA, DecNet, NetBIOS. Приложения, разработанные на одной платформе, могут эксплуатироваться на любой другой из поддерживаемых платформ. Среди них MS-DOS, Novell, Windows, OS/2, Unix (UnixWare, SCO Unix, Interactive, Sun Solaris, AIX, HP-UX, IRIX), Windows NT (Intel, Alpha), OSF/1, OpenVMS, OS/400. Одним из уникальных свойств Progress является то, что одно и то же приложение может работать как в графической среде (Motif, Windows), так и на алфавитно-цифровых терминалах. Разработчик может создавать и различные экранные формы для каждого из типов пользовательского интерфейса.

Интернационализация

Вопрос интернационализации приложений и поддержки национальных алфавитов является одним из принципов открытости системы. С другой стороны, реализация этого требования довольна сложна, так как требует решения большого количества проблем: cортировки, форматного отображения дат и денежных единиц, календарных дней, телефонных номеров и т. д. Опыт работы с Progress и программными продуктами, разработанными c его помощью, показал, что Progress удовлетворяет самым жестким требованиям, предъявляемым к открытой системе с точки зрения интернационализации; в 1996 г. оборот американской компании Progress Software от операций за пределами США превысил 50%.

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

Системные сообщения

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

Работа Progress в гетерогенной сети

Различные устройства могут использовать различные кодовые страницы, и при работе в гетерогенных сетях важно уметь настроить приложение на работу с такими устройствами. Progress различает несколько типов кодовых страниц - внутренняя страница, страница баз данных, страница печати, страница символьного терминала, страница дополнительного потока. Progress осуществляет автоматическое преобразование информации в соответствии с задаваемыми кодовыми страницами. Конечный пользователь приложения может даже не знать, что различные устройства используют различные кодовые страницы. Значения требуемых кодовых страниц указываются при запуске сессии, и Progress автоматически осуществляет необходимые преобразования.

Одновременная поддержка нескольких языков

Все более актуальной становится возможность использования одного и того же приложения в различных странах на разных языках с учетом национальных традиций и особенностей. В России разработчикам также приходится решать такого рода задачи. Российские приложения хотят эксплуатировать на Украине, в Казахстане, в других странах бывшего Советского Союза. При этом встает вопрос поддержки национальных алфавитов каждой из этих стран. Progress Software разработала специальный продукт Translation Manager 2 для решения этих вопросов. В его состав входят два основных компонента - Translation Manager и Visual Translator.

Описание процесса перевода приложения

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

Руководитель проекта определяет те процедуры, которые должны быть переведены на другой язык. После этого он указывает фильтр для типов сообщений, которые необходимо перевести в каждой процедуре. Такими типами могут быть: меню, метки, наименования кнопок и т. д. После этого происходит формирование задания для переводчиков. В задание могут быть включены стандартные словари, содержащие перевод основных терминов, и допускается использование стандартных словарей фирмы Microsoft, которые применялись для перевода Word и Excel. При этом выдается вся статистика, позволяющая оценить трудоемкость работы и возможные сроки ее окончания. Переводчику передается только информация, необходимая для перевода, без логики самого приложения. Задание может посылаться по почте, на дискете или иным способом.

Получив задание, переводчик приступает к его переводу на другой язык. Возможны два режима перевода: поэкранный либо построчный. После окончания перевода и его проверки переводчик посылает выполненное задание обратно руководителю проекта.

Руководитель проекта, собрав полученные работы от переводчиков, консолидирует их работу и выполняет компиляцию приложений. После этого с данным приложением можно работать с использованием нового языка. Язык задается стартовым параметром.

Разработчиком Progress является американская компания Progress Software Corporation (Бедфорд), имеющая представительства в 64 странах мира. На Progress создано более 3000 приложений, среди которых крупные банковские системы, системы управления промышленными, торговыми предприятиями. На территории СНГ дистрибьютором Progress Software является компания CSBI EE.

Оксана Фещенко,
Информационные системы, КУА
Алматы, 2011

к оглавлению

Знаете ли Вы, что спецификация - это документ, описывающий соглашение между разработчиками и пользователями. Разработчик берется написать модуль, а пользователь соглашается не полагаться на знания о том, как именно этот модуль реализован, т.е. не предполагать ничего такого, что не было бы указано в спецификации. Такое соглашение позволяет разделить анализ реализации от собственно использования программы. Спецификации дают возможность создавать логические основы, позволяющие успешно "разделять и властвовать".

Bourabai Research Institution home page

Боровское исследовательское учреждение - Bourabai Research Bourabai Research Institution