JADE — это запатентованная объектно-ориентированная платформа разработки и развертывания программного обеспечения от новозеландской компании Jade Software Corporation , впервые выпущенная в 1996 году. [1] [2] Она состоит из языка программирования JADE, интегрированной среды разработки и отладчика , интегрированного сервера приложений и системы управления объектной базой данных .
Разработанная как сквозная среда разработки, позволяющая программировать системы на одном языке, от сервера базы данных до клиентов , она также предоставляет API для других языков, включая .NET Framework , [3] Java , C / C++ и веб-сервисы .
Несмотря на то, что для разработки доступна бесплатная ограниченная лицензия, использование платформы JADE требует внесения платы за каждый процесс.
В синтаксисе JADE очень похож на Pascal ; его синтаксис основан на языке Modula-2 , который был получен из Pascal. Хотя он включает в себя инновации, отсутствующие в Pascal или Modula-2, ему не хватает некоторых особенностей других современных объектно-ориентированных языков, таких как C# и Java. [4]
JADE способен импортировать и запускать программы LINC 4GL , что изначально было его основной функцией.
Как и все другие популярные языки программирования, используемые для создания программного обеспечения, управляемого базами данных, JADE полностью объектно-ориентирован . JADE был разработан с учетом всех важнейших функций объектно-ориентированного программирования, но не поддерживает перегрузку методов или операторов, и до Jade 2018 не имел параметризованных конструкторов. [4]
Классы в JADE хранятся вместе в схемах . Схемы служат той же цели, что и пакеты Java или пространства имен в .NET, но имеют иерархию и наследуют классы от суперсхем. Это становится особенно полезным при программировании с использованием методологии модель–представление–контроллер , поскольку классы моделей можно поместить в одну схему, а затем классы контроллера и представления можно построить поверх классов моделей в подсхеме.
Программы JADE разрабатываются с использованием пользовательского интерфейса, который позволяет программистам визуально создавать классы и определять их свойства и методы. Вместо того, чтобы размещать методы в больших файлах, программисты выбирают метод, который они хотели бы редактировать, и отображается только код для этого конкретного метода. Кроме того, вместо того, чтобы компилировать весь код программы сразу, в JADE каждый метод компилируется индивидуально, как только метод завершен, что означает, что код можно проверить немедленно.
Весь код для приложения JADE хранится в его объектно-ориентированной базе данных. Это позволяет осуществлять многопользовательскую разработку, поскольку база данных поддерживает управление параллелизмом, а поскольку каждая часть кода является отдельным объектом в базе данных, часто возможно перекодировать систему, пока она находится в рабочем состоянии и в сети, пока изменяемые части системы не используются.
Основной целью JADE было создание бесшовно интегрированного языка программирования, который позволил бы разработчикам создавать одно приложение, которое бы охватывало весь процесс, вместо того, чтобы писать три отдельных приложения для сервера базы данных , сервера приложений и клиента представления , а затем писать код для них, чтобы они взаимодействовали друг с другом.
Самое яркое отличие JADE от других объектно-ориентированных языков программирования заключается в том, что его база данных объектов является собственной частью его языка. Например, при создании объекта в JADE он может быть создан как временный или постоянный. Создание объекта как временного похоже на создание объектов в других объектно-ориентированных языках программирования — объект просто создается в памяти, а затем теряется при завершении программы. С другой стороны, когда объект создается как постоянный , когда программа завершается, объект все еще будет существовать и будет там при следующем запуске программы. Таким образом, когда объект является постоянным, JADE автоматически работает в фоновом режиме, чтобы сохранять и извлекать объект в базе данных при необходимости. Постоянные объекты могут быть распределены по нескольким взаимодействующим серверам, при этом JADE автоматически обрабатывает кэширование объектов и когерентность кэша.
Существует очень мало различий между манипулированием временными и постоянными объектами, поэтому JADE создает для программиста впечатление , что все объекты во всей базе данных находятся в локальной памяти. Большую часть времени объектно-ориентированная база данных JADE используется в многопользовательской системе, поэтому JADE создает для программиста впечатление, что все объекты в базе данных хранятся в общей памяти, к которой могут получить доступ все пользователи, подключенные к системе, даже с разных компьютеров.
Поскольку весь программный код и данные централизованы на сервере базы данных, все клиентские узлы можно программировать так, как если бы они работали на сервере базы данных.
База данных JADE изначально объектно-ориентированная, совместимая с ACID и обладающая всеми стандартными функциями, такими как атомарные транзакции, блокировка, откат, восстановление после сбоев и возможность синхронизации одного или нескольких вторичных серверов баз данных с основной базой данных для резервного копирования, восстановления после сбоев и повышения производительности.
Для взаимодействия с реляционными базами данных для целей отчетности, бизнес-аналитики и хранилища данных JADE с 2010 года предоставляет «Relational Population Service», которая позволяет автоматически реплицировать объекты из собственной объектно-ориентированной базы данных в одну или несколько реляционных баз данных . Эта функция поддерживает версии Microsoft SQL Server 2000, 2005 и 2008.
Программное обеспечение, управляемое базами данных, часто использует трехуровневую методологию, при которой приложения делятся на три уровня — хранение данных, обработка и представление. На уровнях хранения и обработки данных системы JADE представляют собой набор взаимодействующих серверов, называемых узлами , и в каждом уровне может быть задействовано несколько узлов. Каждый тип узла имеет свое имя, и все они способны манипулировать объектами и выполнять бизнес-логику. Набор узлов может быть развернут на одной или нескольких машинах. Серверы баз данных управляют хранением данных и также могут выполнять бизнес-логику, в то время как серверы приложений управляют обработкой. В трехуровневой модели клиенты представления предоставляют пользовательский интерфейс. JADE также предоставляет двухуровневый клиент, который объединяет возможности сервера приложений и клиента представления. Традиционно эти три уровня создаются путем объединения трех программ и их взаимодействия для формирования одной системы. Разделение различных программ таким образом имеет много преимуществ, главным из которых является то, что система становится масштабируемой, то есть повышение мощности системы требует простого добавления дополнительных узлов.
Проектирование такой системы дает программисту решение, которое нужно учитывать каждый раз, когда он хочет закодировать определенную функцию. Им нужно решить, будет ли функция работать лучше на сервере базы данных, сервере приложений или клиенте представления, прежде чем они начнут кодировать, поскольку будет сложно изменить это решение после того, как функциональность будет закодирована на одном из уровней.
Это отличается от приложений JADE, поскольку они кодируются как одно приложение от начала до конца. При создании приложения JADE программист может думать так, как будто он создает программу, которая будет работать на сервере базы данных — как будто все хранение, обработка и представление данных происходят на одном компьютере. Когда программа работает на трех уровнях, JADE автоматически знает, что нужно запустить весь код по умолчанию на сервере приложений и отправить запросы к базе данных на сервер базы данных, а информацию пользовательского интерфейса — на клиент представления. Однако программисту очень легко изменить место, в котором выполняется определенный метод, и переместить его на другой уровень, изменив сигнатуру метода. Благодаря этому решение о том, где должен выполняться определенный фрагмент кода, можно принять на поздних этапах цикла разработки, а рефакторинг кода для запуска в разных частях системы в конечном итоге становится намного проще, поскольку JADE позволяет осуществлять сквозную разработку программного обеспечения.
Программисты имеют возможность разрешить трем различным типам клиентов подключаться к системе JADE. Эти три типа клиентов называются:
В одной и той же схеме разработчик JADE может создать множество совершенно отдельных приложений, которые могут предоставлять разные интерфейсы для доступа к одной и той же базе данных.
Приложения JADE Forms состоят из форм, как следует из названия. Клиентам необходимо подключаться через тонкий клиент JADE Smart или Standard Client, чтобы иметь возможность запускать приложения, использующие JADE Forms.
Smart Thin Client работает, подключаясь к серверу приложений, который обычно выполняет всю обработку от имени Smart Thin Client, то есть тонкому клиенту нужно только отвечать за отображение форм и прием ввода. Это означает, что компьютер, на котором работает тонкий клиент, не обязательно должен быть очень мощным, и ему не требуется быстрое сетевое соединение, поскольку он не загружает данные из базы данных — тонкие клиенты JADE часто работают через коммутируемое соединение. Вот почему их называют тонкими клиентами, так как для работы этих клиентов не требуется большой вычислительной мощности.
Стандартный клиент — это просто тонкий клиент Smart Thin Client, объединенный с сервером приложений на одной машине. В этом случае узел, на котором работает клиент, выполняет всю обработку, а также представление. Стандартные клиенты предъявляют более высокие требования к вычислительной мощности, чем тонкие клиенты, поскольку они должны загружать данные из базы данных, а также выполнять собственную обработку.
Преимущества использования JADE Forms включают в себя:
Недостатки:
Однако у JADE Forms есть интересная особенность. На самом деле можно запустить приложение JADE Forms через веб-браузер, изменив его режим на веб-включенный . Когда это происходит, JADE автоматически генерирует HTML-код для создания страниц, которые напоминают формы и элементы управления , без каких-либо изменений в коде. Это очень быстрый способ для программистов, которые некомпетентны в HTML и других веб-технологиях, доставить программу через веб.
JADE поддерживает развертывание приложений в Интернете с помощью функции HTML-документов. Они работают очень похоже на ASP.NET, где разработчики создают шаблоны HTML-страниц и оставляют части в шаблоне для заполнения программой.
Преимущества использования HTML-документов:
Недостатки:
Веб-сервисы используются для того, чтобы позволить различным программам общаться друг с другом из удаленных мест в объектно-ориентированной форме. Пользователи-люди не могут получить прямой доступ к веб-сервисам. Одним из вариантов использования веб-сервисов с JADE является разрешение другим технологиям, таким как .NET или Java, использовать JADE в качестве серверной объектно-ориентированной базы данных. Веб-сервисы также позволяют системам JADE взаимодействовать со службами, предоставляемыми другими системами, отличными от JADE.
Помимо веб-сервисов, JADE также может взаимодействовать с другими программами через языковые API (включая .NET, Java, C/C++), вызовы DLL, объекты ActiveX/COM и сборки .NET. Это позволяет другим программам получать доступ к объектам и выполнять методы, а также может использоваться для предоставления другого интерфейса приложению JADE. JADE 6.2 предоставляет Java API, интеграцию .NET Assembly и возможность запускать Smart Thin Clients на устройствах Windows Mobile. JADE 6.3 предоставляет API для языков .NET.
JADE изначально поддерживает многоязычные программы. [5] Это достигается несколькими способами:
JADE автоматически переключится на язык, который он обнаружит в системе, если этот язык предоставлен разработчиком. [5]
В настоящее время приложения JADE могут работать только на Windows, поддержка Linux прекращена. JADE 6.2 позволяет запускать Smart Thin Clients и специализированный Standard Client на устройствах Windows Mobile.
В этом разделе приведены несколько коротких примеров кода JADE.
Это код «Hello World!» в JADE:
Привет, мир();begin app.msgBox ( "Привет, мир!" , "Привет, мир!" , MsgBox_OK_Only + MsgBox_Information_Icon ); end ;
или
Привет, мир();начать писать "Привет, Мир!" ; конец ;
Первоначально JADE был задуман сэром Гилбертом Симпсоном и в настоящее время разрабатывается корпорацией Jade Software. [6]
Первой версией JADE была JADE 3, выпущенная в сентябре 1996 года.
Текущая версия — JADE 2022, заменяющая JADE 2020 [7]