Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Программные средства создания клиентских программ(Клиент-серверная архитектура)

Содержание:

ВВЕДЕНИЕ

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

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

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

Клиент-серверная архитектура информационной системы включает в себя:

  • База данных – файл со всеми собранными данными, хранящийся на сервере;
  • Система управления базами данных (СУБД) – система, позволяющая работать с файлом базы данных (актуализация и ведение базы данных), хранящаяся на сервере;
  • Клиентское приложение – интерфейс между СУБД и пользователем, предназначена для сбора информации, отправляемой пользователем, а также для вывода результата запроса. Хранится на клиентских персональных компьютерах.

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

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

1. ТЕОРЕТИЧЕСКИЕ АСПЕКТЫ

1.1 Клиент-серверная архитектура

Технология «клиент-сервер» пришла на смену централизованной схеме управления вычислительным процессом на мейнфреймах еще в 80-х годах прошлого века. «Клиент-сервер» имеет ряд преимуществ над централизованной архитектуре:

  • Высокая надежность вычислительной системы;
  • Легкость масштабирования;
  • Высокая скорость обработки информации.

Технология клиент-сервер предусматривает наличие двух самостоятельных взаимодействующих процессов – сервера и клиента, связь между которыми осуществляется по сети. Серверами называются процессы, отвечающие за поддержку базы данных и файловой системы, а клиентами - процессы, которые посылают запрос и ожидают ответ от сервера. Клиент и сервер какого-либо ресурса могут находиться как на одном компьютере, так и на различных компьютерах, связанных сетью. Взаимодействие между клиентом и сервером осуществляется следующим образом: сервер выделяет ресурсы межпроцессорного взаимодействия, и ожидает запросы на открытие соединения. Формат запросов клиента и ответов сервера определяется протоколом.

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

1.2 Классическая двухуровневая архитектура «Клиент – сервер»

Технология «Клиент – сервер» - это архитектура программного комплекса, в которой происходит распределение прикладной программы по двум логически различным компонентам (клиент и сервер), взаимодействующим по схеме «запрос-ответ» и решающим свои определенные задачи (Рисунок 1).

Рисунок 1 – Архитектура «Клиент-сервер»

Компьютер (или программа), управляющий и/или владеющий каким-либо ресурсом, называют сервером этого ресурса.

Компьютер (или программа), запрашивающий и пользующийся каким-либо ресурсом, называют клиентом этого ресурса.

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

Основной принцип технологии «Клиент-сервер» заключается в разделении функций приложения как минимум на три группы:

  • модули интерфейса с пользователем;

Данную группу называют логикой представления. Благодаря этой группе пользователи взаимодействуют с приложением. Главной задачей логики представления является обеспечение эффективного обмена информацией между пользователем и информационной системой.

  • модули хранения данных;

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

  • модули обработки данных (функции управления ресурсами);

Также данная группа имеет названия «логика доступа к данным» или «алгоритмы доступа к данным». Алгоритмы доступа к данным исторически рассматривались как специфический для конкретного приложения интерфейс к механизму постоянного хранения данных наподобие файловой системы или СУБД. При помощи модулей обработки данных организуется специфический для приложения интерфейс к СУБД. При помощи интерфейса приложение управляет соединениями с базой данных и запросами к ней (перевод специфических для конкретного приложения запросов на язык SQL, получение результатов и перевод этих результатов обратно в специфические для конкретного приложения структуры данных).

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

В соответствии с разделением функций в любом приложении выделяются следующие компоненты:

  • компонент представления данных;
  • прикладной компонент;
  • компонент управления ресурсом.

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

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

Чтобы избежать несогласованности были созданы две модификации двухзвенной архитектуры: «Толстый клиент» («Тонкий сервер») и «Тонкий клиент» («Толстый сервер»). Данные архитектуры предназначены для разделения обработки данных на одной из двух физических сторон – либо на стороне сервера («Тонкий клиент»), либо на стороне клиента («Толстый клиент»).

Но каждый из способов имеет свои недостатки:

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

При разработке двухуровневой классической архитектуры «Клиент-сервер» следует помнить следующее:

  • Архитектура «Тонкий клиент» (Толстый сервер) (Рисунок 2);

Рисунок 2 – Архитектура «Тонкий клиент»

Передача запроса от клиента на сервер, обработка запроса сервером и передача результата клиенту. При этом архитектуры имеют следующие недостатки:

  1. Сложная реализация, поскольку нет приемлемых средств отладки;
  2. Производительность программ, написанных на языках типа SQL, значительно ниже, чем созданных на других языках, что имеет важное значение для сложных систем;
  3. Отсутствие возможности переноса на другие системы и платформы.
  • Архитектура «Толстый клиент» (Тонкий сервер) (Рисунок 3);

Обработка запроса происходит на стороне клиента, то есть происходит передача клиенту всех необработанных данных с сервера. При этом архитектуры имеют следующие недостатки:

  1. Сложный процесс обновления ПО;
  2. Сложности в распределении полномочий, так как разграничение доступа происходит не по действиям, а по таблицам;
  3. Перегрузка сети;
  4. Слабая защита данных, поскольку сложно правильно распределить полномочия.

Рисунок 3 – Архитектура «Толстый клиент»

Для устранения вышеперечисленных проблем используются многоуровневые (три и более) архитектуры «Клиент-сервер».

1.3 Трехуровневая модель

Трехзвенная архитектура «Клиент-сервер» подразумевает разделение информационной системы по функциональным возможностям на три отдельных компонента: логика представления, бизнес-логика и логика доступа к данным. В сравнении с двухзвенной архитектурой трехзвенная имеет дополнительное звено – сервер приложений, предназначенный для осуществления бизнес-логики. Таким образом, клиент полностью разгружается, поскольку направляются запросы промежуточному программному обеспечению, и максимально используются все возможности серверов.

На Рисунке 4 показана модель трехзвенной архитектуры. Сервер приложений является промежуточным звеном между клиентом и сервером.

Рисунок 4 – Трехзвенная архитектура

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

2. ОСНОВНЫЕ ПРОГРАММНЫЕ СРЕДСТВА СОЗДАНИЯ КЛИЕНТСКИХ ПРОГРАММ

2.1. Языки программирования

Для разработки программы, использующей обращение к СУБД, может быть использовано различное множество языков программирования. Рассмотрим такие как Java, PHP, C#.

      1. Java

История языка программирования Java началась в декабре 1990. На данный момент данный язык имеет огромную популярность среди разработчиков. Из преимуществ данного языка можно выделить следующие:

  • Java является объектно-ориентированным языком программирования;
  • Кроссплатформенность;
  • Методы проверки подлинности основаны на шифровании с открытым ключом;
  • Простота в освоении языка;
  • Многопоточность;
  • Высокопроизводительность;
  • Предназначен для распределенной среды интернета;
  • Динамичность языка.

Программы на Java транслируются в байт-код, выполняемый виртуальной машиной Java (JVM) – программой, обрабатывающей байтовый код и передающей инструкции оборудованию как интерпретатор. Трансляция в байтовый код увеличивает скорость выполнения и уменьшает размер Java программ.

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

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

      1. PHP

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

Популярность в области построения веб-сайтов определяется наличием большого набора встроенных средств для разработки веб-приложений, таких как:

  • автоматическое извлечение POST и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;
  • взаимодействие с большим количеством различных систем управления базами данных
  • автоматизированная отправка HTTP заголовков;
  • работа с HTTP авторизацией;
  • работа с cookies и сессиями;
  • работа с локальными и удалёнными файлами, сокетами;
  • обработка файлов, загружаемых на сервер;
  • работа с XForms.

PHP-скрипты, обычно, обрабатываются интерпретатором в порядке, обеспечивающем кроссплатформенность разработанного приложения.

Важной особенностью является то, что разработчику нет необходимости заботиться о распределении и освобождении памяти. Ядро PHP реализует средства для автоматического управления памятью; вся выделенная память возвращается системе после завершения работы скрипта.

Данный язык может быть использован также и при разработке GUI – приложений – приложений с графическим интерфейсом. Для создания кроссплатформенных приложений служат пакеты PHP-GTK и PHP-Qt.

      1. C#

Язык программирования C# создан корпорацией Microsoft в 2000 году. Он очень многое унаследовал от своих родителей (С++ и Java), но и привнес нового.

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

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

Также стоит упомянуть, что все программы, написанные на языке C#, работают на базе платформы .NET Framework. Это означает, что написанный код на языке C# транслируется в промежуточный язык (IL), который в свою очередь уже преобразуется в машинный код на компьютере прямо во время выполнения приложения (JIT). Всё это нужно для совместной разработки одного проекта на разных языках. Помимо этого, так как окончательная компиляция из промежуточного кода выполняется в живую на конкретной машине, то возможно увеличение производительности за счет использования специфических команд конкретного процессора.

Также одним из главных преимуществ является огромное множество готовых библиотек и шаблонов, которых достаточно скачать из Nuget. В большинстве библиотеки бесплатны.

На данный момент C# входит в пятерку самых популярных языков программирования. Он используется во многих крупных компаниях, а также и в небольших стартапах. Сейчас компания Microsoft делает большой упор на развитие универсальности и кроссплатформенности для этого языка. Уже сейчас с его помощью можно разрабатывать практически любой тип приложений. Для разработки настольных приложений используются стандартные WinForms Application и Console Application. Для разработки красивых настольных приложений и специальных приложений для магазина в Windows Store – WPF, для веб-приложений – ASP.NET. Для разработки под операционную систему Linux – NET Core, Xamarin – для мобильных приложений под платформу. Даже игры под любые платформы можно разрабатывать на языке C# при помощи движка Unity.

Таким образом, язык программирования C# можно считать самым кроссплатформенным языком из всех вышеперечисленных.

2.2 Инструментальные средства

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

  • текстовый редактор;
  • компилятор и/или интерпретатор;
  • средства автоматизации сборки;
  • отладчик.

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

Хотя, и существуют среды разработки, предназначенные для нескольких языков программирования - такие, как Eclipse, NetBeans, Embarcadero RAD Studio, Qt Creator или Microsoft Visual Studio, обычно среда разработки предназначается для одного определённого языка программирования - как, например, Visual Basic, Delphi, Dev-C++.

Рассмотрим такие среды разработки, как Eclipse, NetBeans, Delphi, Microsoft Visual Studio, Qt Creator.

2.2.1 Microsoft Visual Studio

Microsoft Visual Studio – интегрированная среда разработки компании Microsoft, позволяющая разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, а также веб-сайты и веб-приложения.

Visual Studio включает один или несколько компонентов из следующих:

  • Visual Basic .NET, а до его появления — Visual Basic;
  • Visual C++;
  • Visual C# (включён начиная с Visual Studio .NET);
  • Visual F# (включён начиная с Visual Studio 2010).

Многие варианты поставки также включают Microsoft SQL Server либо Microsoft SQL Server Express. В прошлом в состав Visual Studio также входили продукты:

  • Visual InterDev;
  • Visual J++;
  • Visual J#;
  • Visual FoxPro.

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

  1. Встроенный Web-сервер. Для обслуживания Web-приложения ASP.NET необходим Web-сервер, который будет ожидать Web-запросы и обрабатывать соответствующие страницы. Наличие в Visual Studio интегрированного Web-сервера позволяет запускать Web-сайт прямо из среды проектирования, а также повышает безопасность, исключая вероятность получения доступа к тестовому Web-сайту с какого-нибудь внешнего компьютера, поскольку тестовый сервер может принимать соединения только с локального компьютера.
  2. Поддержка множества языков при разработке. Visual Studio позволяет писать код на своем языке или любых других предпочитаемых языках, используя все время один и тот же интерфейс (IDE). Более того, Visual Studio также еще позволяет создавать Web-страницы на разных языках, но помещать их все в одно и то же Web-приложение. Единственным ограничением является то, что в каждой Web-странице можно использовать только какой-то один язык (очевидно, что в противном случае проблем при компиляции было бы просто не избежать).
  3. Меньше кода для написания. Для создания большинства приложений требуется приличное количество стандартного стереотипного кода, и Web-страницы ASP. NET тому не исключение. Например, добавление Web-элемента управления, присоединение обработчиков событий и корректировка форматирования требует установки в разметке страницы ряда деталей. В Visual Studio такие детали устанавливаются автоматически.
  4. Интуитивный стиль кодирования. По умолчанию Visual Studio форматирует код по мере его ввода, автоматически вставляя необходимые отступы и применяя цветовое кодирование для выделения элементов типа комментариев. Такие незначительные отличия делают код более удобным для чтения и менее подверженным ошибкам.
  5. Более высокая скорость разработки. Многие из функциональных возможностей Visual Studio направлены на то, чтобы помогать разработчику делать свою работу как можно быстрее. Удобные функции, вроде функции IntelliSense (которая умеет перехватывать ошибки и предлагать правильные варианты), функции поиска и замены (которая позволяет отыскивать ключевые слова как в одном файле, так и во всем проекте) и функции автоматического добавления и удаления комментариев (которая может временно скрывать блоки кода), позволяют разработчику работать быстро и эффективно.
  6. Возможности отладки. Предлагаемые в Visual Studio инструменты отладки являются наилучшим средством для отслеживания скрытых ошибок и диагностирования странного поведения. Разработчик может выполнять свой код по строке за раз, устанавливать интеллектуальные точки прерывания, при желании сохраняя их для использования в будущем, и в любое время просматривать текущую информацию из памяти.

Visual Studio также имеет и множество других функций: возможность управления проектом; встроенная функция управления исходным кодом; возможность рефакторизации кода; мощная модель расширяемости. Более того, в случае использования Visual Studio 2008 Team System разработчик получает расширенные возможности для модульного тестирования, совместной работы и управления версиями кода (что значительно больше того, что предлагается в более простых инструментах вроде Visual SourceSafe).

В качестве недостатка можно отметить невозможность отладчика (Microsoft Visual Studio Debugger) отслеживать в коде режима ядра. Отладка в Windows в режиме ядра в общем случае выполняется при использовании WinDbg, KD или SoftICE.

2.2.2 QT Creator

Qt Creator – кроссплатформенная свободная интегрированная среда разработки на языках С, С++ и QML. Разработана Trolltech (Digia) для работы с фреймворком Qt. Включает в себя графический интерфейс отладчика и визуальные средства разработки интерфейса как с использованием QtWidgets, так и QML. Поддерживаемые компиляторы: GCC, Clang, MinGW, MSVC, Linux ICC, GCCE, RVCT, WINSCW. Рассмотрим особенности, преимущества и недостатки этой среды разработки.

В Qt Сreator реализовано автодополнение, в том числе ключевых слов, введённых в стандарте C++11, подсветка кода. Также есть возможность задания стиля выравнивания, отступов и постановки скобок.

Реализован ряд возможностей при работе с сигнатурами методов, а именно:

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

Среда разработки имеет графический интерфейс для следующих отладчиков: GDB, CDB и QML/JavaScript.

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

Проведем сравнительный анализ Qt Creator с MS Visual Studio. Преимуществами Qt Creator по сравнению с MS Visual Studio являются:

  • Qt Creator - свободное программное обеспечение, что выражается в свободе запуска с любой целью; свободе изучения того, как программа работает, и её модификации; свободе распространения копий как исходного, так и исполняемого кода; свободе улучшения программы, и выпуске улучшений в публичный доступ.
  • Кроссплатформенность. Qt Creator сам работает под различными ОС: Windows, GNU/Linux, OS X, BSD, и позволяет создавать приложения для этих платформ, а также для: Maemo 5, MeeGo Harmattan, Generic remote Linux, Symbian, Android.
  • Скорость работы: исследования, проводившиеся британскими учёными, показали, что Qt Creator 2.5 работает в среднем на 46% быстрее, чем Microsoft Visual Studio 2012.
  • Стабильность: те же исследования показали, что число системных ошибок, возникающих при работе с Qt Creator примерно на 42% меньше, чем в Visual Studio.
  • Размер установки: в ОС Windows Qt Creator с компилятором g++ (последних версий) занимает в 3,5 раза меньше места, чем Visual Studio последних версий.
  • Функция автодополнения работает лучше, поскольку она учитывает контекст, а так же поддерживает нововведения C11 (стандарта языка С 2011 года) и C++11.
  • Возможность автоматического обновления через интернет.

К недостаткам можно отнести проблемы с исходными файлами, которые сохранены не в кодировке UTF8.

2.2.3 Eclipse

Первоначально Eclipse разрабатывалась фирмой IBM как преемник среды разработки IBM VisualAge, в качестве корпоративного стандарта IDE для разработки на разных языках под платформы IBM. Исходный код был полностью открыт и сделан доступным после того, как Eclipse был передан для дальнейшего развития независимому от IBM сообществу.

В Eclipse 3.0 (2003 год) были выбраны спецификации сервисной платформы OSGi, как архитектура времени выполнения. С версии 3.0 Eclipse перестал быть монолитной IDE, поддерживающей расширения, а сам стал набором расширений. В основе лежат фреймворк OSGi и SWT/JFace, на основе которых разработан следующий слой – RCP (Rich Client Platform, платформа для разработки полноценных клиентских приложений). RCP служит основой не только для Eclipse, но и для других RCP-приложений, например, Azureus и File Arranger. Следующий слой – сам Eclipse, представляющий собой набор расширений RCP – редакторы, панели, перспективы, модуль CVS и модуль Java Development Tools (JDT).

Eclipse – в первую очередь полноценная Java IDE, нацеленная на групповую разработку: среда интегрирована с системами управления версиями – CVS в основной поставке, для других систем (например, Subversion, MS SourceSafe) существуют плагины. В силу бесплатности и высокого качества, Eclipse во многих организациях является корпоративным стандартом для разработки приложений.

Второе назначение Eclipse – служить платформой для разработки новых расширений, чем он и завоевал популярность: любой разработчик может расширить Eclipse своими модулями. Уже существуют C/C++ Development Tools (CDT), разрабатываемые инженерами QNX совместно с IBM, и средства для языков COBOL, FORTRAN, PHP и прочие от различных разработчиков. Множество расширений дополняет среду Eclipse менеджерами для работы с базами данных, серверами приложений и другое.

Eclipse написана на Java, потому является платформонезависимым продуктом, за исключением библиотеки SWT, которая разрабатывается для всех распространённых платформ. Библиотека SWT используется вместо стандартной для Java библиотеки Swing. Она полностью опирается на низлежащую платформу (операционную систему), что обеспечивает быстроту и натуральный внешний вид пользовательского интерфейса, но иногда вызывает на разных платформах проблемы совместимости и устойчивости приложений.

2.2.4 Delphi

Delphi - среда программирования, в которой используется язык программирования Object Pascal. Начиная со среды разработки Delphi 7.0, в официальных документах Borland стала использовать название Delphi для обозначения языка Object Pascal.

Изначально среда разработки была предназначена исключительно для разработки приложений Microsoft Windows, затем был реализован также для платформ Linux (как Kylix), однако после выпуска в 2002 году Kylix 3 его разработка была прекращена, и, вскоре после этого, было объявлено о поддержке Microsoft.NET. При этом высказывались предположения, что эти два факта взаимосвязаны.

Реализация среды разработки проектом Lazarus (Free Pascal, компиляция в режиме совместимости с Delphi) позволяет использовать его для создания приложений на Delphi для таких платформ, как Linux, Mac OS X и Windows CE.

Также предпринимались попытки использования языка в проектах GNU и написания компилятора для GCC.

Среди многих распространённых программных продуктов, сделанные на Delphi, можно найти:

Продукция Embarcadero:

— Embarcadero Delphi, Embarcadero C++ Builder, Borland JBuilder 1 и 2 версии. Администрирование/разработка баз данных:

— MySQL Tools (Administrator, Query Browser), Navicat, IBExpert, TOAD (software).

— Инженерное ПО: Altium Designer/Protel, Ajuster (связь с устройствами, визуализация и хранение данных Modbus RTU, Modbus TCP/IP, Ajbus).

— ПО для химической отрасли: Продукты ACD/Labs.

— Просмотрщики графики: FastStone Image Viewer, FuturixImager, Photo-filtre.

— Видео и аудио проигрыватели: The KMPlayer (не путать с KMPlayer), X-Player, Snow Player, AIMP.

— Доставка информации в Интернете: QIP и R&Q, Skype, The Bat! и si.Mail, PopTray, FeedDemon, XanaNews, Xnews, MIC (Magcomline Internet Communicator).

— Создание музыки: FL Studio (ранее FruityLoops), Guitar Pro (до версии 6.0).

— Разработка программного обеспечения: Dev-C++, Dev-PHP, Maguma Open Studio и Open Perl IDE (IDE), DUnit, Jedi Code Format, Game Maker, Help & Manual, Inno Setup.

— Веб-разработка: Macromedia HomeSite (HTML-редактор), TopStyle, Pro (CSS-редактор), Macromedia Captivate, Quick Page 2008.

— Веб-браузеры (оболочки для MSIE): Avant Browser, Netcaptor.

— Утилиты: Spybot -- Search & Destroy, Ad-Aware, jv16 PowerTools, FDK, Total Commander, Frigate, DarkCrypt TC/GUI, ImageSpyer, StegoTC, Co-pernic Desktop Search, MCubix, Download Master, ASProtect, XNRe-sourceEditor, Victoria, Battery Eater Pro.

— Текстовые редакторы: SynEdit, BirEdit, Notepad GNU, Bred, KeyNote, cEdit Professional, UniRed, gleditor.

— Редакторы двоичных файлов (HEX-редакторы): Hexapad.

— Бухучёт и налогообложение: Lacerte Professional Tax Software, Капитал CSE, Парус, ТурбоБухгалтер, AVARDA, Комплекс VirGo 2.5М.

— Электронное декларирование и связь с госорганами: Альта ГТД PRO (подготовка и передача таможенных деклараций)

— Торговый и складской учёт: Полюс (Система учёта).

— Программы для чтения и каталогизации электронного текста: DarkLib, IxReader, Гарант F1.

— Электронные энциклопедии и справочники: De2

— Программы для создания анимаций: Pivot Stickfigure Animator.

— Программы для сжатия данных: ALZip, PowerArchiver, PeaZip.

— Компьютерные игры: Age of wonders, Космические рейнджеры, Косми-ческие рейнджеры 2, Venom. Codename: Outbreak, Space Empires 4, Space Empires V, Pythian project, Битва героев, GTA 2, Hedgewars, Правда о де-вятой роте.

— Бизнес-аналитика: BaseGroup Deductor

Delphi оказал огромное влияние на создание концепции языка C# для платформы.NET. Многие его элементы и концептуальные решения вошли в состав С#. Одной из причин называют переход Андерса Хейлсберга, одного из ведущих разработчиков Дельфи, из компании Borland Ltd. в Microsoft Corp.

2.2.5 Android Studio

Android Studio — это интегрированная среда разработки для работы с платформой Android, вышедшая в 2013 году, в 2014 году вышла первая стабильная версия. Данная среда разработки доступна для ОС Windows, OS X, Linux. Официальные языки программирования – Java, C++, Kotlin.

Новые функции появляются с каждой новой версией Android Studio. На данный момент доступны следующие функции:

  • Расширенный редактор макетов: WYSIWYG, способность работать с UI компонентами при помощи drag-and-drop, функция предпросмотра макета на нескольких конфигурациях экрана.
  • Различные виды сборок и генерация нескольких .apk файлов
  • Рефакторинг кода
  • Статический анализатор кода, позволяющий находить проблемы производительности, несовместимости версий и другое.
  • Встроенный ProGuard и утилита для подписи приложений.
  • Шаблоны основных макетов и компонентов Android.
  • Поддержка разработки приложений для Android Wear и Android TV.
  • Встроенная поддержка Google Cloud Platform, которая включает в себя интеграцию с сервисами Google Cloud Messaging и App Engine.
  • Android Studio 2.1 поддерживает Android N Preview SDK, а это значит, что разработчики смогут начать работу по созданию приложения для новой программной платформы.
  • Новая версия Android Studio 2.1 способна работать с обновленным компилятором Jack, а также получила улучшенную поддержку Java 8 и усовершенствованную функцию Instant Run.
  • Начиная с Platform-tools 23.1.0 для Linux исключительно 64-разрядная.
  • В Android Studio 3.0 будут по стандарту включены инструменты языка Kotlin основанные на JetBrains IDE.

2.3 Сравнительная характеристика программных средств

Выше было рассмотрено пять интегрированных, а также популярные языки программирования. Наиболее популярными ИСР на данный момент являются Microsoft Visual Studio, поддерживающий сразу несколько языков, и Qt Creator – свободно распространяемое, кроссплатформенное ПО, поддерживающее языки С и С++. Eclipse поддерживает язык Java. Для разработки мобильных приложений для ОС Android существует среда Android Studio. Среда Delphi, поддерживающая язык Object Pascal, широко используется для разработки клиентов для серверных СУБД.

Сравнительная характеристика интегрированных сред разработки (ИСР) приведена в Таблице 1

Таблица 1 – Сравнительная характеристика ИСР

Свойства

MS Visual Studio

Qt Creator

Eclipse

Delphi

Android Studio

1

2

3

4

5

6

Поддержка языков

С++, С#, Visual Basic.NET

C++

C#, QML

Java, С/С++, PHP, JS

Object Pascal

Java

С/C++

Операционная система

Windows

кроссплатформенность

кроссплатформенность

Windows

Windows

Назначение

разработка консольных приложений, веб-сайтов и веб-приложений, мобильных приложений

разработка настольных и мобильных приложений

разработка модульных кроссплатформенных приложений

разработка приложений для Linux, MacOS X, Windows CE

разработка мобильных приложений для ОС Android

Наличие бесплатной версии

+

+

+

+

+

Исходный код

закрыт

открыт

открыт

закрыт

закрыт

Требуемые навыки

для опытных разработчиков

для опытных разработчиков

для опытных разработчиков

подходит для начинающих

подходит для начинающих

Компоненты для работы с БД

+

+

+

+

-

Как видно из таблицы, наибольшими преимуществами обладает MS Visual Studio, что объясняет его первое место по популярности среди разработчиков. Однако эта среда сложна для начинающих разработчиков, то же самое можно сказать о Qt Creator. Начинающему разработчику при создании, например, приложения для работы с БД в учебных целях, лучше использовать Delphi.

ЗАКЛЮЧЕНИЕ

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

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

Существует множество языков программирования для разработки клиентских программ. Наиболее популярными являются C++, C#, PHP, Java, Delphi. Популярным средством для разработки приложений является интегрированная среда разработки (IDE), включающая текстовой редактор, отладчик, компилятор или интерпретатор. В последние годы популярность получили такие IDE. как Microsoft Visual Studio, Vim, Qt Creator, Eclipse, Android Studio.

При выполнении данной работы были решены следующие задачи:

  • изучен принцип технологии «клиент-сервер»;
  • рассмотрены основные виды программ-клиентов, примеры распространенных клиентов;

СПИСОК ЛИТЕРАТУРЫ

  1. Дейл, Н. Программирование на С++ [Электронный ресурс] / Н. Дейл, Ч. Уимз, М. Хедингтон; Пер. с англ. - М.: ДМК Пресс, 2007. - 672 с.
  2. Программирование на СИ#: Учебное пособие / Медведев М.А., Медведев А.Н., - 2-е изд., стер. - М.:Флинта, Изд-во Урал. ун-та, 2017. - 64 с.
  3. Программирование на языке высокого уровня. Программирование на языке Object Pascal: Учеб. пос. / Т.И. Немцова и др.; Под ред. Л.Г. Гагариной - М.: ИД ФОРУМ: НИЦ ИНФРА-М, 2015 - 496с.
  4. Программирование на языке высокого уровня. Программирование на языке С++: учеб. пособие / Т.И. Немцова, С.Ю. Голова, А.И. Терентьев ; под ред. Л.Г. Гагариной. — М. : ИД «ФОРУМ» : ИНФРА-М, 2018. — 512 с.
  5. Программирование на языке высокого уровня С/С++: Учебное пособие / Хабибуллин И.Ш. - СПб:БХВ-Петербург, 2006. - 499 с.
  6. Горнаков, С. Г. Программирование мобильных телефонов на Java 2 Micro Edition [Электронный ресурс] / С. Г. Горнаков. - 2-е изд. - М.: ДМК Пресс, 2008. - 512 с.
  7. Проектирование информационных систем: Учебное пособие / Заботина Н.Н. - М.: НИЦ ИНФРА-М, 2016. - 331 с.
  8. Агальцов В.П. Базы данных. В 2-х кн. Книга 2. Распределенные и удаленные базы данных : учебник / В.П. Агальцов. — М. : ИД «ФОРУМ» : ИНФРА-М, 2017. — 271 с.
  9. Базы данных и системы управления базами данных: Учебное пособие / Лазицкас Е.А., Загумённикова И.Н., Гилевский П.Г. - Мн.:РИПО, 2016. - 268 с.
  10. Данные: хранение и обработка : учебник / Э.Г. Дадян. — М. : ИНФРА-М, 2019. — 205 с.
  11. Хеффельфингер, Д. Разработка приложений Java ЕЕ 7 в NetBeans 8 / Дэвид Хеффельфингер; пер. с англ. А.Н. Киселева. - Москва : ДМК Пресс, 2016. - 348 с.
  12. Базы данных. В 2-х кн.Кн. 1. Локальные базы данных: учебник / В.П. Агальцов. - 2-e изд., перераб. - М.: ИД ФОРУМ: ИНФРА-М, 2012. - 352 с.
  13. Базы данных: Учебник / Шустова Л.И., Тараканов О.В. - М.:НИЦ ИНФРА-М, 2016. - 304 с.