Преимущества использования jython против jacl в сценариях wsadmin (WebSphere Application Server 7+)


Перед программированием для wsadmin scripting client я вижу, что вы можете использовать как jacl, так и jython.

У меня одинаковый уровень доверия к обоим языкам.

Мне интересно, есть ли в специфическом программировании wsadmin преимущества использования одного языка над другим, такие как надежность, доступность примеров или библиотек для администрирования websphere, или что-то подобное, возникшее из вашего опыта использования и построение такого рода сценариев.

2 7

2 ответа:

Jython-это язык, который следует предпочесть:

  • Rational Application Developer поддерживает инструментарий Jyton (редактор Jython, отладчик, завершение команд и возможность тестирования сценариев на тестовом сервере в среде IDE).
  • WebSphere administrative console предоставляет поддержку команд консоли; она предоставляет вам скриптовые эквиваленты операций, выполняемых с помощью административной консоли, если вы хотите автоматизировать их. Эта помощь использует Jython как язык.
  • Даже если язык Jacl был языком по умолчанию для wsadmin, IBM продвигает Jython для будущего и даже предоставляет инструмент для преобразования сценариев Jacl в Jython. Цитирование из описания этого инструмента по данной ссылке;

При выборе языка сценариев Jython является стратегическим направлением как язык сценариев администрирования для WebSphere Application Сервер, потому что будущие усовершенствования языка сценариев сосредоточены на использовании Языка Jython.

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

Хотя Jython является "стратегическим" направлением, Jacl был там с тех пор, как был v4. В WAS v8. 5 он по-прежнему является дефолтным (и устаревшим!).

Административный API был написан с учетом Jacl. С Jython one вы должны делать трюки, подобные этому, чтобы получить список серверов в виде списка:

for srv in AdminConfig.list('Server').splitlines():
    print srv

Тогда как в Jacl можно просто сделать следующее:

foreach srv [$AdminConfig list Server] {
    puts $srv
}

Очевидно, что многие AdminConfig и AdminControl методы возвращают списки в виде строки, разделенной новой строкой.

IBM действительно загнала себя в угол с помощью Jython и Jacl. Они все еще используют Jython 2.1 (выпущенный в 2002 году, даже в последнем и величайшем был v8. 5). Якл не пользуется активной поддержкой сообщества. API-дружественный к Jacl, не был переписан для Jython. Многие клиентские решения основаны на трюках, которые вы должны делать в Jython, есть много решений на основе Jacl. Даже IBM внутренне имеет множество зависимостей от этого наследия. Этот это может быть причиной того, что Jacl устарел, так как был v5. 1 и все еще по умолчанию.

Короче говоря:

  • Если вы собираетесь написать небольшой скрипт для конкретной задачи, Jacl может быть более удобным для вас (поскольку вы упомянули, что вам удобно работать как с Python, так и с Tcl)
  • Если вы, однако, заинтересованы в разработке более широкой структуры для управления вашей инфраструктурой WAS, то Jython с его объектной ориентацией может быть лучшим вариантом. Но не ждите от него слишком многого. эта версия Jython-она довольно глючная, и вы не сможете использовать слишком много библиотек Python просто потому, что они давно отказались от поддержки Python2.1.
Вывод: это не такой простой ответ (что означает, что вы задали хороший вопрос).