Создание сайтов - статьи

       

Почему BPEL?


Часто первая реакция разработчиков, услышавших о BPEL, такова: "Зачем мне нужен этот стандарт для решения задачи, которую можно сделать обычным программированием?" Разумеется, ничто не принуждает разработчика использовать BPEL. Он может создать простенький бизнес-процесс, который сначала вызывает один Web-сервис, затем принимает его результат и вызывает другой Web-сервис. Но проблема становится намного более интригующей, когда вы попытаетесь разобраться с анатомией типичного долгоживущего бизнес-процесса. Сразу встает ряд непростых вопросов:

  • Как устроить асинхронные вызовы Web-сервисов, когда вызванный Web-сервис является долгоживущим и должен вернуть управление позднее в Web-сервис, из которого он вызван?
  • Как коррелировать, координировать запросы (на вызов Web-сервисов) между многими одновременно выполняющимися бизнес-процессами?
  • Как вызывать Web-сервисы параллельно?
  • Как сделать откат долгоживущей транзакции, в которой произошел сбой?
  • Как составлять большие бизнес-процессы из небольших?
  • Как гарантировать надежную доставку сообщений?

    Этот список можно продолжить. И, что интересно, не только разработчики (на индивидуальном уровне) много раз пытались решить эти проблемы ранее, для этого предлагалось множество "частных" процессных механизмов, которые в той или иной степени решали эти проблемы. Но неизбежно каждый из них решал их по-своему и каждый из них вынуждал организации привязываться к конкретным поставщикам и нестандартным языкам программирования.

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



    Содержание раздела