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

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

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

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

2 ответа

Решение

Jython - это язык, который предпочитают:

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

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

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

Хотя Jython является "стратегическим" направлением, Жак был там с WAS v4. В WAS v8.5 он все еще используется по умолчанию (и не рекомендуется!).

Административный API был написан с учетом Жака. С 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 году, даже в самой последней и лучшей версии WAS v8.5). Жак не активно поддерживается сообществом. API дружественный к Jacl, не был переписан для Jython. Множество клиентских решений основано на уловках, которые вы должны делать в Jython, есть множество решений на основе Jacl. Даже у IBM внутренне есть много зависимостей от этого наследия. Это может быть причиной того, что Jacl устарела с WAS v5.1 и все еще используется по умолчанию.

Короче:

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

Вывод: это не такой простой ответ (что означает, что вы задали хороший вопрос).

Другие вопросы по тегам