Клиент многозвенного распределенного приложения

Тригонометрические и
гиперболические
подстановки
Физические приложения интегралов
Примеры вычисления производной
Сборочная единица
Сопряжение
Конструкторская документация
Позиционные и метрические
задачи
Рисование средствами PageMaker
Создание новой публикации
Шаблоны
Специальные эффекты
Верстка книг
Цветное оформление публикации
Назначение цвета
Корректура
Сотрудничество с типографией
Администрирование доменов
Средства безопасности
Альбом по схемотехнике
Офисный пакет Word, Access,
Excel практика использования
Технологии программирования
Кластерные вычисления
кластерный компьютер
Типичный кластер
Коммуникационное программное обеспечение
Интерфейс передачи сообщений
Аппаратные метрики
Приемы повышения производительности
масштабируемая система
Двоичные числа
Двоичная арифметика
Программирование на языке ассемблера
Процессор 8088
Адресация сегментов данных
Режим адресации
арифметические команды
Условные переходы
Вызовы подпрограмм
Ассемблер
Команды трассера
Технологии доступа к данным
Сервер баз данных
Сервер приложения
Клиент многозвенного распределенного приложения
Генератор отчетов
Технологии программирования
Потоки и процессы

  • Клиентское ПО в распределенном многозвенном приложении имеет особенности архитектуры, продиктованные его ролью — ведь большая часть бизнес-логики и функций обработки данных сосредоточены в сервере приложений
  • Структура клиентского приложения Соединение клиента с сервером приложений осуществляется специализированными компонентами DataSnap. Эти компоненты взаимодействуют с удаленным модулем данных, входящим в состав сервера, при помощи методов интерфейса IAppServer.
  • Клиентские наборы данных В Палитре компонентов Delphi представлено несколько компонентов, инкапсулирующих клиентский набор данных. В то же время при разработке настоящих удаленных клиентских приложений применяется компонент TClientDataSet.
  • Компонент TClientDataSet используется в клиентской части многозвенного распределенного приложения. Он инкапсулирует набор данных, переданный при помощи компонента-провайдера из удаленного набора данных.
  • Получение данных от компонента-провайдера получает доступ к удаленным данным через компонент соединения DataSnap. В зависимости от используемой технологии, это могут быть технологии TDCOMConnection, TSocketConnection, TWebConnection ИЛИ TCorbaConnection.
  • Кэширование и редактирование данных После получения записей от провайдера набор данных сохраняется в локальном буфере памяти. И все вносимые изменения после применения метода Post также сохраняются локально и не пересылаются на сервер.
  • Управление запросом на сервере Компонент TdientDataSet может не только эффективно управлять своим набором данных, но и влиять на выполнение серверного компонента, с которым он связан через провайдер.
  • Использование индексов Обычно использование индексов — прерогатива сервера БД. Из компонентов Delphi только табличные компоненты могут в какой-то степени управлять использованием индексов. Очевидно, что удаленное соединение не способствует эффективному управлению индексами набора данных на сервере.
  • Сохранение набора данных в файлах Клиентское приложение может использовать одну очень удобную функцию компонента TClientDataSet. Представим, что соединение между сервером и клиентом обладает малой пропускной способностью и к тому же часто обрывается.
  • Работа с данными типа BLOB Если набор данных сервера содержит большие поля (например, изображения), передача данных по медленному каналу займет очень много времени, что, несомненно, снизит эффективность приложения.
  • Представление данных в формате XML Набор данных клиента легко можно представить в формате XML.
  • Агрегаты Наличие локального буфера данных позволяет компоненту TClientDataSet реализовать ряд дополнительных функций, основанных на использовании агрегатных функций применительно к полям всего набора данных, загруженного в локальный буфер.
  • Объекты-агрегаты Для вычисления агрегатных выражений для всех записей набора данных используются объекты класса TAggregate. Индексированный список этих объектов содержится в свойстве
  • Агрегатные поля не входят в структуру полей набора данных, т. к. агрегатные функции подразумевают объединение записей таблицы для получения результата. Следовательно, значение агрегатного поля нельзя связать с какой-то одной записью, оно относится ко всем или группе записей.
  • Группировка и использование индексов
  • Вложенные наборы данных В гл. 14 рассматривался вопрос организации между таблицами отношения "один-ко-многим", когда через одинаковое значение поля внешнего ключа одна запись главной таблицы связывается с несколькими записями подчиненной таблицы.
  • Дополнительные свойства полей клиентского набора данных Итак, для разработчика могут быть полезны свойства объектов полей, содержащие не только текущее, но и предыдущее значение поля.
  • Обработка ошибок Особенности использования компонента TClientDataSet распространяются также и на обработку ошибок. Ведь клиентский набор данных должен реагировать не только на ошибки, возникшие локально, но и на ошибки сохранения изменений на сервере.
  • Пример "тонкого" клиента Пример клиентского приложения является частью группы проектов SimpleRemote.bpg и предназначен для взаимодействия с сервером приложений simpleAppSrvr
  • Соединение клиента с сервером приложения Для соединения клиентского приложения с сервером в локальной сети использован компонент srvrCon класса TDCOMConnection. Данный тип соединения выбран как наиболее простой и требующий лишь наличия локальной сети или даже не требующий ничего — в демонстрационном приложении можно использовать сервер приложения, установленный на этом же компьютере.
  • Наборы данных клиентского приложения Каждый из компонентов TClientDataSet модуля данных DataModuie связан с соответствующим компонентом-провайдером сервера.
Программирование на языке ассемблера