Action Request System: Знакомство

Прошло довольно много времени с тех пор как я устроился на новую работу. С того момента, я, собственно и начал изучать эту новую для себя технологию. Предлагаю вам изучить ее вместе со мной, по мере написания/чтения новых записей по этой теме. Упоминаний в рунете о ней я нашел крайне мало, поэтому решил восполнить брешь. Итак, начнем.

Что это такое?


В принципе, этот параграф вы можете прочитать и в английской википедии (хотя материал все-таки и различается: тут более углублен, в вики же, более поверхностный. Зато больше охват) так что он к прочтению желателен. Для начала, расшифруем аббревиатуру: Action Request System. Правда адекватного предназначению системы перевода я дать так и не смог. Что ж, разберем функционал по косточкам и каждый сам для себя решит, как же правильно перевести это название системы действий по запросам. Создала ее американская компания BMC. Это приложение, имеющее клиент-серверную архитектуру. Окружение клиента можно разделить на два типа: для пользователей (непосредственно, среда, которая рисует все формочки, берет данные и так далее) и для разработчиков — IDE на платформе Eclipse, в которой и разрабатываются все пользовательские приложения.


Структура AR System


Для начала, скажу о том, как и где можно эту систему запускать.
Официально поддерживаются следующие платформы (выдержка из документации):
  • 32 или 64 bit x86 PC — Windows 2003 (32 или x64)
  • Sun SPARC — Solaris 9
  • IBM pSeries и Power5 или выше — IBM AIX 5L 5.3
  • PA-RISC — HP-UX 11iv2
  • HP Integrity / Itanium — HP-UX 11iv2
  • 64 bit PC — Red Hat Enterprise Linux 4 (только x64)
  • 64 bit PC — Novell SuSE Linux 9 (только x64)
Однако, зачастую, при установке, без доводки напильником просто не обойтись (был опыт установки на Win 2003 64 bit, больше не хочется). В плане поддержки БД, ARS тоже может похвастаться неплохим списком: Oracle, MS SQL, Informix, Sybase, DB2.

Теперь приведем общую структуру системы:
image

Рассматривая схему с точки зрения пользователя (представлена выше), архитектуру ARS можно разбить на 4 уровня:
  1. Уровень клиента — либо клиентское приложение из состава Remedy User либо веб-клиент, не требующий установки дополнительного ПО;
  2. Mid Tier — уровень, появившийся сравнительно недавно в связи с добавлением веб-клиента, который обеспечивает связь веб-браузера с сервером AR System;
  3. Сервер ARS — непосредственно само серверное приложение, занимающееся обработкой запросов пользователей;
  4. Уровень данных — базы данных, в которых ARS хранит всю информацию о созданных на ее основе приложений.
Ключевые понятия здесь — это так называемые:
  • формы;
  • меню;
  • активные ссылки;
  • фильтры;
  • эскалации.
На основе этих элементов создаются и остальные, перечисленные в вики по ссылке выше (гайды, приложения и так далее).
То есть, набор форм, ссылок, фильтров и эскалаций можно номинально назвать приложением. Разберем все эти непонятные слова по пунктам.

Формы

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



Меню

Это не те привычные менюшки, которые вы привыкли видеть в приложениях (Файл->Действие, Помощь->О программе и так далее). Эти меню больше похожи на выпадающие списки, после щелчка по элементу которого, в поле, привязанном к данному меню будет введено значение выбранного элемента. Например есть текстовое поле (поле Dynamic Group Access):



При клике на кнопку все-таки появится менюшка привычного всем вида, НО рядом с кнопкой. К примеру, мы хотим ввести в туда страну, причем не ее имя, а ее условный код (uk, rus, fr, ge). Меню, к примеру, двух уровней, где первый уровень — материк, а второй непосредственно страна. В выпадающем меню будут выведены привычные нам имена (United Kingdom, Russia, Germany), а при клике по пункту — появится его короткое обозначение. Таким образом, получается что-то между обычным меню и выпадающим списком.

Активные ссылки

Вот тут название довольно странное. Почему они так названы (Active Links) доподлинно известно, наверное, только небольшому кругу разработчиков из BMC Software. Нам же остается строить догадки. Впрочем, суть их довольно проста. Это некоторые объекты, которые срабатывают на действие пользователя, на которое они привязаны:
  • щелчок по кнопке;
  • сохранение информации в форме;
  • наведение курсора мыши на метку чекбокса;
  • и так далее.
То есть, если в предыдущем пункте мы могли создать красивую форму (все зависит исключительно от ваших творческих способностей), то теперь эта форма «ожила» и может совершать какие-то действия. Например, выдать ошибку о том что балда-юзер не заполнил все необходимые поля в форме.

Фильтры

Фильтры объяснить проще всего людям, знакомым с базами данных как триггеры, то есть, это по сути то же самое что и активные ссылки, но выполняющиеся постфактум на стороне сервера. Людям, не знакомым с базами данных можно дать следующее объяснение. Представьте что вы дегустируете отличное французское вино с целью определить сорт и урожай винограда, но вам не показывают ни бутылку ни этикетку. Когда вы вдыхаете букет вина это можно сравнить с активной ссылкой, а когда вы сделали глоток и уже почувствовали вкус — сработал фильтр (вкусовые рецепторы), который рассказал вам о вкусе этого вина. Конечно, опытные сомелье начнут со мной спорить, доказывая что с задачей можно справится и просто вдохнув аромат, но зачем чесать правое ухо левой рукой?

Эскалации

Их можно сравнить с Cron в *NIX или планировщиком задач в Microsoft Windows. Это практически независимые элементы, которые выполняют заданные действия в определенное время. Например, каждую субботу в 23:00 может очищаться таблица со временными данными.

Другие объекты

Как уже было сказано, существуют и другие объекты более высокого уровня чем перечисленные. К ним можно отнести:
  1. Гайды активных ссылок — по сути объединение ссылок, выполняющиеся одна за другой;
  2. Гайды фильтров — аналогично ссылкам;
  3. Приложения — служат для логической группировки форм с целью их более удобного поиска.

Зачем это надо?


А действительно, зачем? Не задумывались на протяжении всей статьи? Вот и правильно. На самом деле, ARS — это отличная платформа для быстрого создания приложений, которые могут работать как в специальной среде BMC Remedy ARS User так и в вашем веб-браузере. Разработчики практически полностью лишаются необходимости писать код, за исключением редких случаев, где необходимо написать прямой запрос к БД. Такие разработчики, скажем честно, дешевы для компании, в плане минимальных затрат на их обучение и ввода в проект. То есть, если мы имеем большой проект, в котором не хватает рабочих рук, мы можем просто нанять разработчика со стороны, обучить его за пару недель и посадить работать. Мечта, не правда ли?

Ссылки по теме:
ARS в Википдии
Советы и решения проблем по ARS
Сайт компании разработчика
Share post

Similar posts

Comments 33

    +1
    Всё-таки изначально ARS была создана ребятами из Remedy (и все странности, заложенные в её архитектуру, по их части), а только потом, в 2002-м году, это стало принадлежать BMC. В «первом посте» можно чуть более подробно рассказать об «истории».
      +1
      You still feel the pain, right?
        0
        Да, наверное, историю стоило описать подробнее. Однако, хабру, на мой взгляд, были бы интересны само техническое описание системы, поэтому историю этой детища я оставил на откуп Википедии. :-)
        +2
        Как ARS-программист ответственно заявляю, что ARS — это ад. Работать с этой системой очень грустно.
        Оно категорически не предназначено для тех монструозных проектов, которые разрабатывает наша контора. И особенно печалит отсутствие какой-либо отладки, кроме кривого лога.
          +1
          Дай пять, братан!
            0
            Но тем не менее, оно работает, даже на проекте, гле занят ты ;-)
              0
              Сказать об этом поносе и мучениях «оно работает» я бы не решился :D
                0
                Уговорил: после теоретических статей — будем учиться правильно отлаживать приложения :-)
                  0
                  Первый урок: Стреляем в колено из дробовика. Плюсы, Минусы, подводные камни. Обсуждение ситуаций, коргда ARS всё же лучше чем раздробленное колено.
                    0
                    Как выстрелить в ногу при помощи ARS?
                    Создаем активлинки на событие «Return» спускового крючка, забываем про Execution Order, взрывом пистолета отрывает руку.
              0
              Как ARS-пользователь ответственно заявляю, что ARS — это ад. По крайней мере Mid-Tier и веб клиент уж точно!
                0
                Mid Tier они только в 7.5 ввели, если мне память не изменяет. Зная компанию BMC, пилить они его будут еще дольше. Хотя в 8 версии они полностью решили отказаться от клиента, поэтому у нас никто пока и не думает мигрировать на восьмерку. Если не секрет, для каких задач у вас используется ARS?
                  0
                  Remedy ARS используется у нас где-то с 2007го года. И веб был всегда. Я не знаю какая версия была тогда и какая сейчас… Используется для ведения заявок/написания отчетности по заявкам.
                    0
                    А, верно, значит с 7.1
                    0
                    Мид-тайер появился в 5.0, ему скоро 10 лет будет
                0
                Не знаю, как сейчас, но монстроидальный интерфейс старого Remedy — это жесть.
                  0
                  Смотря с какой версией сравнивать. У 7.5 по сравнению с 6.3 прибавилось много положительных моментов. Но и появилась среда разработки, жрущая память буквально чемоданами. Да и у самого сервера, в виду использования джавы, мемори лики — просто больное место.
                    0
                    Среда разработки сделана на базе Eclipse. И с ресурсами у неё по Эклипсовски всё ОК (;
                    Сам по себе AR-сервер как был написан на C++ так и остался.
                  +1
                  Можно реальный пример использования?
                  Для чего вообще это надо?
                  Конструктор для генерации неких отчётов?
                    0
                    Реальный пример использования? Ну пожалуй, он будет, но в статье чуть позже теоретических статей по основам ARS. Вообще? ARS создавалась как платформа для ITSM приложений. То есть вы получаете готовый инструмент для визуального программирования бизнес-логики. Как я уже написал выше, без необходимости писать код. Например, забегая вперед, функции «событий» в классическом понимании визуального программирования там выполняют активные ссылки. Но об этом, я думаю, напишу подробнее через одну статью.

                    Все карты раскрывать не буду (коммерческая тайна), но, к примеру, в моем маленьком проекте на этой платформе построена система регистрации тикетов поддержки от пользователей других ИС.
                      +1
                      в чём разница с написанием такого же приложения на рельсах?
                        –1
                        В том что надо знать Руби? Поймите, тут вся прелесть в быстрой разработке и просто моментальном обучении разработчиков с нуля. Вообще, ARS сравнивать с Ruby on Rails немного некорректно. В дальнейших статьях увидите это.
                          +2
                          Судя по комментариям в этом топике — проще выучить рельсы)
                          Насколько сложные зачали может решать ARS?
                          В каком случае стоит его использовать вместо собственной разработки?
                            0
                            Вы немного неверно поняли комментарии моих коллег. :-) Выучить систему можно очень просто и быстро. НО. В процессе разработки сталкиваеся с очень интересными глюками и проблемами. Хотя, иногда, свои пять копеек вставляет и Оракл. Но это, как говорится, совсем другая история.

                            Вообще, ARS очень популярна в нашей Головной Немецкой Компании. Задачи решает в основном — тикеты, itil, itsm, вообще, это чудо можно приспособить к чему угодно: у нее есть API для C, C++, C#, Java, Perl, Python, PHP, поэтому спектр возможностей получается колоссальный. К примеру, я для упрощения задач некоторых очень часто использовал биндинги с перлом. Апи, по сравнению с системой, там очень даже прямое.
                              0
                              Уж лучше поехать по рельсам! Я накликиваю воркфлоу в огромных приложениях на этой байде уже 4 года и это… и это… это ад!

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



                              Короче, в нескольких словах: ARS это Delphi написанный на SAP после чего оттранслированный в SQL (не PL).

                              Хотя я знаю когда есть смысл использовать ARS — это когда ты покупаешь у BMC их ITSM который на этом самом ARS и написан.

                              За сим разрешите откланяться, а то у меня левая часть лица дёргаться начала. (;
                                +1
                                Воспалённый мозг не даёт остановиться.

                                С этой картинки началось моё знакомство с ARS.

                                Этой картинкой я и мои коллеги описываем процесс разработки (Мы называем её «Think ARS»).

                                А на этой картинке наглядно показан User Experience.

                                И самое важное, что нужно знать — Anal Raep System
                          –1
                          И да, тут есть всякие «вкусности» вроде интеграции с Crystal Reports.
                          +2
                          Как человек, работающий с ARS каждый день и как юзер, и как администратор, ответственно заявляю: ARS — это ад!
                            0
                            Ад. Как показал топик, с ARS работает больше разработчиков чем я мог предположить. Так может попробуем опытом делиться прохождения адовых пыток? :-) Я вот как-то очень долго не мог ее установить на виндовый 64-битный сервер, с 64-битным ораклем, чем и собираюсь вскоре поделиться.
                          0
                          У нас линуксо-чпуксы под ARS. Чпуксы потихоньку выводятся, заменяем на шапки.
                          Если будут вопросы по администрированию — постараюсь помочь.
                            0
                            Спасибо! Правда переход моего проекта на линукс если и светит то очень нескоро.
                              0
                              В свою очередь — обещаю помочь если случится страшное и вам придется работать ся арс под виндой.

                          Only users with full accounts can post comments. Log in, please.