RU2433463C2 - Динамическое перепозиционирование потока работ конечными пользователями - Google Patents

Динамическое перепозиционирование потока работ конечными пользователями Download PDF

Info

Publication number
RU2433463C2
RU2433463C2 RU2008126231/08A RU2008126231A RU2433463C2 RU 2433463 C2 RU2433463 C2 RU 2433463C2 RU 2008126231/08 A RU2008126231/08 A RU 2008126231/08A RU 2008126231 A RU2008126231 A RU 2008126231A RU 2433463 C2 RU2433463 C2 RU 2433463C2
Authority
RU
Russia
Prior art keywords
workflow
state
computer
implemented
web page
Prior art date
Application number
RU2008126231/08A
Other languages
English (en)
Other versions
RU2008126231A (ru
Inventor
Изрейел ХИЛЕРИО (US)
Изрейел ХИЛЕРИО
Андрес САНАБРИА (US)
Андрес САНАБРИА
Константин МИХАЙ (US)
Константин МИХАЙ
Никхил КОТАРИ (US)
Никхил КОТАРИ
Правин ИНДУРКАР (US)
Правин ИНДУРКАР
Марсело Р. УЕМУРА (US)
Марсело Р. УЕМУРА
Майкл ХАРДЕР (US)
Майкл ХАРДЕР
Original Assignee
Майкрософт Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Майкрософт Корпорейшн filed Critical Майкрософт Корпорейшн
Publication of RU2008126231A publication Critical patent/RU2008126231A/ru
Application granted granted Critical
Publication of RU2433463C2 publication Critical patent/RU2433463C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Tourism & Hospitality (AREA)
  • Development Economics (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Computer And Data Communications (AREA)

Abstract

Изобретение относится к области управления потоком работ. Техническим результатом является повышение эффективности перепозиционирования потока работ. Реализованная на компьютере система для перепозиционирования потока работ содержит: машиночитаемый носитель для хранения, имеющий сохраненные на нем исполняемые компьютером компоненты, причем исполняемые компьютером компоненты содержат: провайдер потока работ, который обеспечивает поток работ, причем поток работ включает в себя множество состояний потока работ и множество веб-страниц, соответствующих множеству состояний потока работ, причем множество веб-страниц включают в себя: первую веб-страницу, соответствующую первому состоянию потока работ из множества состояний потока работ; вторую веб-страницу, соответствующую второму состоянию потока работ из множества состояний потока работ; и, по меньшей мере, одну промежуточную веб-страницу, соответствующую, по меньшей мере, одному промежуточному состоянию потока работ из множества состояний потока работ; и компонент менеджера динамического состояния как часть механизма потока работ. 2 н. и 17 з.п. ф-лы, 10 ил.

Description

Уровень техники
Эволюция компьютеров и сетевых технологий от систем обработки данных с высокой стоимостью и низкими рабочими характеристиками к системам связи, решения проблем и развлечения с низкой стоимостью и высокими рабочими характеристиками обеспечила экономически эффективное и экономящее время средство для снижения нагрузки выполнения ежедневных задач, таких как корреспонденция, оплата счетов, покупки, составление бюджета и сбор информации. В настоящее время вычислительная система, сопряженная с Интернетом при помощи проводной или беспроводной технологии, может предоставить пользователю легкодоступный для него канал для почти мгновенного доступа к огромному количеству информации из хранилищ веб-сайтов и серверов, расположенных по всему миру.
Например, в такой сети «Всемирной паутины» пользователь может обозначить адрес сайта или целевой страницы, куда пользователь хочет «идти». Затем пользователь вводит выбранный сайт, и целевая страница или домашняя страница сайта отображается на экране дисплея пользователя. Обычно к информации, доступной посредством веб-сайтов и серверов, обращаются при помощи веб-браузера, исполняющегося на веб-клиенте (например, компьютере). Например, пользователь «Всемирной паутины» может применить веб-браузер и обратиться к веб-сайту посредством ввода унифицированного указателя ресурса (URL) веб-сайта (например, веб-адрес и/или адрес Интернета) в адресную строку веб-браузера и нажатия на клавишу ввода на клавиатуре или щелчком на клавише «go» кнопкой мыши. Во многих случаях, когда отображается целевой экран, он может не представлять ожидаемое или искомое согласно информации, и пользователю тогда приходится указывать другой целевой адрес для обращения.
Процессы, участвующие в навигации страниц, могут быть автоматизированы, основываясь на обмене данными между приложениями, тогда как другие основываются на том, что люди для инициирования процесса одобрят документы, которые процесс использует, разрешат любые исключительные ситуации, которые возникают, и т.д. В любом случае обычно задают отдельные последовательности этапов, известные как поток работ (например, управление потоком страниц), который описывает действия пользователей и программного обеспечения, участвующих в процессе. Если такой поток работ был определен, приложение может быть построено вокруг этого определения для поддержки бизнес-процесса.
Компьютерные системы и связанное с ними программное обеспечение теперь обеспечивают инструментальные средства, при помощи которых коммерческие предприятия и другие организации могут улучшить свой поток работ. Программные инструментальные средства могут использоваться для моделирования бизнес-процессов потоков работ или бизнес-планов и идентификации неэффективности и возможных улучшений. Кроме того, если процесс включает в себя обмен данными между людьми, отделами, заводами или даже между отдельными компаниями, компьютерные системы и сети могут использоваться для реализации таких обменов. Такие системы и программные инструментальные средства также могут реализовывать крупномасштабные вычисления и другую обработку данных или информации, которые обычно связаны с относящейся к коммерции информацией.
Следовательно, управление потоком работ включает в себя эффективное управление потоком информации и управление бизнес-процессами организации, причем автоматизация такой обработки информации привела к значительным повышениям эффективности в современном деловом мире. Кроме того, такая автоматизация управления потоком работ теперь позволяет коммерческим предприятиям и другим организациям дополнительно улучшать рабочие характеристики посредством исполнения транзакций потока работ в компьютерных системах, включая глобальные компьютерные сети, такие как Интернет.
Типовое, основанное на потоке работ приложение часто требует удовлетворения множества условий. Например, одним таким условием является возможность принятия решений, основываясь на бизнес-правилах. Оно может включать в себя простые правила (например, подобные решению «да-или-нет», основанному на результате кредитной проверки) и более сложные правила (например, потенциально большой набор, который должен оцениваться, чтобы принять первоначальное андеррайтерское решение). Другим требованием является обмен данными с другим программным обеспечением и другими системами вне потока работ. Например, первоначальный запрос может приниматься от одной части приложения, тогда как другие аспекты (например, контактирование с кредитной службой) могут потребовать обмен данными, используя другие веб-службы или технологии. Другим условием, которое должно быть удовлетворено, является правильное взаимодействие с пользователями. Например, поток работ обычно должен иметь возможность отображать сам пользовательский интерфейс или взаимодействовать с человеком посредством другого программного обеспечения. Кроме того, способность поддерживать состояние на протяжении срока службы потока работ является другим условием, которое необходимо выполнить. Следовательно, создание и исполнение потока работ в программном обеспечении накладывает уникальные проблемы.
В настоящее время имеется множество решений для встраивания систем потока работ с управлением потоком страниц. Они могут включать в себя решения, которые применяют шаблоны модель-представление-контроллер (MVC), контроллера страниц, контроллера запросов, для оркестровки навигации веб-страниц, например. Эти решения позволяют пользователям выполнять навигацию по последовательности предварительно определенных страниц с жестко запрограммированными взаимосвязями. Тем не менее, представление страниц, которые уже были обработаны, требует, чтобы взаимосвязи были определены заранее.
Следовательно, может стать проблемным моделирование всех возможных комбинаций взаимосвязей между любым набором страниц. Такая сложность заставляет разработчиков и аналитиков моделировать взаимосвязь между страницами, которые наиболее часто и наиболее вероятно происходят, например «удачный путь». Таким образом, разработчикам приходится строить логику повторного представления внутри их страниц, которая требует отслеживания последних представленных страниц. Как правило, не существует механизм, который позволяет определять поток страниц, в котором конечные пользователи могут перепозиционировать поток без формальной взаимосвязи между определяемыми страницами.
Поэтому существует потребность устранения недостатков вышеупомянутых примеров, связанных с обычными системами и устройствами.
Сущность изобретения
Нижеследующее представляет упрощенную сущность, чтобы предоставить базовое понимание некоторых аспектов заявленного предмета. Данная сущность изобретения не является обширным обзором. Она не предназначена для определения ключевых/критичных элементов или для того, чтобы характеризовать объем заявленной сущности изобретения. Ее исключительной целью является представление некоторых принципов в упрощенном виде в качестве вводной части к более подробному описанию, которое представлено ниже.
Рассматриваемое нововведение обеспечивает системы и способы, которые динамически восстанавливают состояние потока работ посредством применения менеджера динамического состояния, который является внешним для потока работ и позволяет выполнять взаимодействие хоста с экземпляром потока работ. Такой менеджер динамического состояния может управлять состоянием потока работ извне потока работ (например, без встраивания в виде части самого потока работ). По существу, снижается требование на моделирование изменений незапланированных (специальных, ad hoc) состояний потока работ. Таким образом, может подаваться управляемый событиями поток работ, в котором незапланированные события применяются для восстановления и манипулирования потоком работ в состояния, которые не были смоделированы как часть самого потока работ, чтобы динамически создавать взаимосвязи во время исполнения. Хост может вызывать провайдера потока работ и передает установленное состояния (например, с заданным состоянием и пользовательским интерфейсом (UI)), причем тогда захватывается время исполнения потока работ. Менеджер динамического состояния принимает установленное состояние для возбуждения такого состояния посредством переустановки экземпляра потока работ. Состояние потока работ также может посылать уведомление времени исполнения потока работ в отношении приостановки (например, ожидания события), которое возвращается провайдеру потока работ и затем передается хосту.
В связанном аспекте компонент интерактивной деятельности может остановить поток работ в заданных точках (например, устанавливая время исполнения потока работ в ожидание) и ожидать ввод от хоста для возобновления потока работ. Хост может вызвать провайдера потока работ для загрузки экземпляра потока работ. Затем может быть установлено событие, причем событие может соответствовать пользовательскому интерфейсу (например, веб-странице, которая соответствует состоянию потока работ). Таким образом, хост может подавать информацию, касающуюся путей навигации (например, в виде «go-to» («идти к»)).
Затем может обеспечиваться проверка менеджером динамического состояния в отношении доступности состояния для потока работ. Если такое состояние не существует, пользователю может отображаться ошибка. В противном случае, и если такое состояние существует, менеджер динамического состояния может установить такое состояние в активное для его исполнения в потоке работ. Затем и после исполнения поток работ может ожидать событие для перехода в новое состояние, и после приема события перехода от хоста поток работ может перейти в новое состояние. Затем выполняется верификация для проверки, является ли такое состояние последним состоянием в экземпляре потока работ. Если да, методология завершается. Иначе, методология возвращается к исполнению другого состояния. Необходимо понять, что рассматриваемое нововведение не ограничивается таким образом, и в дополнение к веб-страницам рассматриваемое нововведение может быть применимо к веб-услугам, исполнению системных услуг и т.п.
Согласно конкретному способу рассматриваемого нововведения первоначально отображение (например, страница), которая представляет собой часть управления навигацией приложения (например, потока управления потоком страниц), отображается в браузере, причем пользователь заполняет информацию на странице для ее представления. Затем загружается экземпляр потока работ, связанный с таким отображением, и состояние потока работ устанавливается в состояние, связанное с отображением. Обычно существует взаимно однозначная ассоциация между отображением и состоянием. Если состояние установлено, событие, генерируемое отображением, передается экземпляру потока работ для потребления. События передаются текущему состоянию экземпляра потока работ. Состояние определяет, может ли потребляться такое событие. Если событие потребляется текущим состоянием, связанный с ним обработчик может определить, требуются ли переходы состояний. Иначе и если событие не потребляется текущим состоянием, такое событие тогда передается состоянию, содержащему это состояние для потребления.
Чтобы выполнить вышеприведенные и связанные цели, некоторые иллюстративные аспекты заявленной сущности изобретения описываются в данном документе в связи с последующим описанием и прилагаемыми чертежами. Эти аспекты указывают различные пути, которыми заявленное изобретение может быть осуществлено на практике, все из которых, как предполагается, находятся в пределах объема заявленного изобретения. Другие преимущества и новые признаки могут стать очевидными из последующего подробного описания при рассмотрении в связи с чертежами.
Краткое описание чертежей
Фиг.1 иллюстрирует примерную схему системы потока работ, имеющую менеджер динамического состояния, который переустанавливает состояние потока работ.
Фиг.2 иллюстрирует примерную методологию для переустановки состояния потока работ согласно примерному аспекту рассматриваемого нововведения.
Фиг.3 иллюстрирует конкретную схему системы технологии разработки веб-сайтов активных серверных страниц (ASP) согласно аспекту рассматриваемого нововведения.
Фиг.4 иллюстрирует дополнительную схему системы технологии разработки веб-сайтов ASP согласно другому аспекту рассматриваемого нововведения.
Фиг.5 иллюстрирует примерную методологию, в которой поставляется интерактивный поток работ, который ожидает ввода от хоста для перемещения потока работ в другое состояние.
Фиг.6 иллюстрирует другую методологию переустановки состояния потока работ.
Фиг.7 иллюстрирует диаграмму этапов, относящихся к управляемому событиями потоку работ согласно аспекту рассматриваемого нововведения.
Фиг.8 иллюстрирует последовательность действий, применяемых для восстановления и манипулирования потоком работ в состояния, которые не были смоделированы как часть самого потока работ.
Фиг.9 иллюстрирует примерную среду для реализации различных аспектов рассматриваемого нововведения.
Фиг.10 представляет собой блок-схему дополнительной вычислительной среды, которая может применяться для реализации потока работ с услугой сохранности маршрутизации рассматриваемого нововведения.
Подробное описание
Различные аспекты данного изобретения теперь описываются с ссылкой на прилагаемые чертежи, на которых одинаковые ссылочные позиции обозначают подобные или соответствующие элементы на всех чертежах. Необходимо понять, однако, что чертежи и подробное описание, относящееся к ним, как предполагается, не ограничивают заявленную сущность изобретения конкретной описанной формой. Скорее, намерением является охват всех модификаций, эквивалентов и альтернатив, подпадающих под сущность и объем заявленного изобретения.
Как используется в данном документе, термины «компонент», «система», «услуга», «менеджер» и т.п., как предполагается, ссылаются на относящиеся к компьютеру объект, аппаратные средства, комбинацию аппаратных средств и программного обеспечения, программное обеспечение, или исполняемое программное обеспечение. Например, компонентом может быть, без ограничения указанным, процесс, выполняющийся на процессоре, процессор, объект, исполняемый файл, поток управления, программа и/или компьютер. В качестве иллюстрации, как приложение, выполняющееся на компьютере, так и компьютер могут быть компонентами. Один или несколько компонентов могут постоянно находиться в процессе и/или потоке управления, и компонент может локализоваться на одном компьютере и/или распределяться между двумя или несколькими компьютерами.
Слово «примерный» используется в данном документе со значением «служащий в качестве примера, копии или иллюстрации». Любой аспект или образец, описанные в данном документе в качестве «примерного», необязательно должен истолковываться как предпочтительный или выгодный относительно других аспектов или образцов.
Кроме того, описанная сущность изобретения может быть реализована в виде системы, способа, устройства или изделия, используя стандартные методы программирования и/или методы проектирования для создания программных средств, программно-аппаратных средств, аппаратных средств или любой их комбинации для управления компьютером или процессором, основываясь на устройстве для реализации аспектов, описанных в данном документе. Термин «компьютерная программа», используемый в данном документе, как предполагается, охватывает компьютерную программу, доступную с любого считываемого компьютером устройства, несущей или носителя. Например, считываемые компьютером носители могут включать в себя, но не ограничиваются ими, магнитные запоминающие устройства (например, жесткий диск, гибкий диск, магнитные полоски …), оптические диски (например, компакт-диск (CD), цифровой многофункциональный диск (DVD) …), смарт карты и устройства флэш-памяти (например, карточка, полоска). Кроме того, необходимо понять, что несущее колебание может применяться для переноса считываемых компьютером электронных данных, таких как те, которые используются при передаче и приеме электронной почты или при доступе к сети, такой как Интернет или локальная сеть (LAN). Конечно, для специалиста в данной области техники понятно, что возможны многочисленные модификации этой конфигурации без отступления от объема или сущности заявленного предмета.
На фиг.1 изображена блок-схема системы 101, которая динамически переустанавливает состояние (состояния) 102 потока работ посредством применения менеджера 105 динамического состояния, который является внешним для потока работ, и позволяет осуществлять взаимодействие хоста 120 с экземпляром 102 потока работ. Система 101 применяет менеджер 105 динамического состояния для снижения требования к моделированию изменений незапланированного состояния потока работ, связанного с системой 101. Таким образом, может подаваться управляемый событиями поток работ, в котором незапланированные события применяются для переустановки и манипулирования потоком работ в состояния, которые не были смоделированы как часть самого потока работ, и для динамического создания взаимосвязей во время исполнения.
Такой поток работ может моделировать процесс оператора или системный процесс, который определяется как карта деятельностей. Деятельность представляет собой этап в потоке работ и представляет собой единицу исполнения, повторного использования и композиции для потока работ. Карта деятельностей выражает правила, действия, состояния и их связь. Обычно поток работ выполняется посредством механизма/времени 110 исполнения потока работ, и время исполнения потока работ требует внешнего приложения, чтобы исполнить его согласно нескольким правилам, как определяется хостом 120. Обмен данными между хостом 120 и системой 100 потока работ может принадлежать бизнес-документам и/или описывать их и другие объекты, которые применяются для, или которые способствуют деятельности потока работ, или потоку между локальными переменными потока работ, которые используются с переданными данными с хост-приложением 120.
Например, хост-приложение 120 может взаимодействовать с провайдером 115 потока работ, связанным с системой 100 потока работ, через базовый класс 117 провайдера потока работ. Кроме того, хост 120 может быть ответственным за ряд дополнительных или критических аспектов, такие как создание одного или нескольких процессов, маршалинг вызовов между различными компонентами, как необходимо, для правильного исполнения потока работ; и установку механизмов изолирования. Кроме того, хост 120 может создавать многочисленные процессы, чтобы воспользоваться многочисленными центральными процессорами (CPU) в машине по причинам масштабируемости, или исполнять большое количество экземпляров потока работ на «ферме» машин. Хост 120 может дополнительно управлять политиками для применения, когда поток работ подвержен длительному ожиданию, прослушиванию заданных событий и сообщению о них пользователю или администратору, установке времени простоя и повторных попыток для каждого потока работ, выявлению счетчиков рабочих характеристик и записи информации регистрации для целей отладки и диагностики.
Поток работ, связанный с системой 101 потока работ, может устанавливать связь с внешним миром посредством услуги, специально установленной для этой цели, причем такая услуга может вызывать события, которые возбуждают особые ситуации, к которым будут подключаться управляемые событиями деятельности внутри потока работ. Аналогично, услуга раскрывает открытые методы для потока работ для вызова и посылки данных на хост 120. Поток работ может определяться в виде плана для исполнения в компьютерной системе. План может включать в себя набор действий, имеющих заданные атрибуты одновременности, зависимости и транзакции, связанные с ними. Каждый план может иметь ассоциированное состояние плана, которое включает в себя определение плана, текущее расположение в плане, а также активные или оперативные данные и объекты, связанные с планом. В плане могут существовать границы транзакций, основываясь на группировках действий. В этом отношении транзакция может охватывать индивидуальные действия, или транзакции, или их группы. Как описано дополнительно ниже в данном документе, действия могут группироваться в последовательности, которые исполняются последовательным образом, а также задачи, в которых действия исполняются одновременно. Поэтому, основываясь на группировках, атрибуты одновременности могут быть разрешены для действий и транзакций в плане.
Хост 120 может вызывать провайдера 115 потока работ и передавать установленное состояние (например, с заданным состоянием и UI), причем тогда захватывается время исполнения потока работ. Менеджер 105 динамического состояния принимает установленное состояние для возбуждения такого состояния посредством переустановки экземпляра 111 потока работ. Состояние 102 потока работ также может посылать уведомление времени 110 исполнения потока работ в отношении приостановки (например, ожидания события), которая направляется провайдеру 115 потока работ и затем сообщается хосту 120.
Нижеследующее представляет собой примерное определение менеджера динамического состояния, причем предполагается, что каждое состояние внутри потока работ конечного автомата отображается на веб-страницу.
//Извлечь информацию со страницы и послать потоку работ
Data pageInfo = Page.GetFormData();
//Извлечь имя, ассоциированное со страницей.
String pageAlias = Page.GetCurrentPageAlias();
//Извлекает экземпляр потока работ потока работ
//конечного автомата
StateMachineWorkflow StateMachineInstance =
WorkflowRuntime.GetWorkflow(workflowID);
//Извлекает текущее состояние конечного автомата
State currentState = StateMachineInstance.GetCurrentState();
//Если текущее состояние конечного автомата не совпадает с
//именем страницы, тогда необходимо переустановить состояние,
//иначе, продолжить и представить страницу текущему
//состоянию
If (currentState.Name != pageAlias)
{
StateMachineWorkflow.SetState(pageName);
}
StateMachineWorkflow.Submit(pageInfo);
//Ожидает до тех пор, пока не произойдет переход состояния,
//перед тем как он обновит страницу
State nextState = StateMachine.GetCurrentState();
//Извлекает отображение между состоянием потока работ и
//страницей.
//Напоминаем, что имеется взаимно однозначное отображение.
String nextPage = Page.LookUpAlias(nextState.Name);
Page.DisplayPage(nextPage);
Фиг.2 иллюстрирует методологию 200 согласно аспекту рассматриваемого нововведения. В то время как примерный способ изображается и описывается в данном документе как последовательность блоков, представляющих различные события и/или действия, рассматриваемое нововведение не ограничивается изображенным порядком таких блоков. Например, некоторые действия или события могут происходить в другом порядке и/или одновременно с другими действиями или событиями, отдельно от порядка, изображенного в данном документе, согласно нововведению. Кроме того, не все изображенные блоки, события или действия могут требоваться для реализации методологии согласно рассматриваемому нововведению. Кроме того, понятно, что примерный способ и другие способы согласно нововведению могут реализовываться в ассоциации со способом, изображенным и описанным в данном документе, а также в ассоциации с другими системами и устройствами, которые не изображены или не описаны. На этапе 210 хост может вызвать провайдера потока работ для загрузки экземпляра потока работ. Например, чтобы загрузить экземпляр потока работ, может быть предусмотрен доступ к соответствующему персистентному хранилищу, которое хранит представление экземпляра потока работ, и такое представление затем преобразуется в экземпляры потока работ и предоставляется хост-приложению. Затем и на этапе 220 может быть установлено событие, причем событие может соответствовать пользовательскому интерфейсу (например, веб-странице, которая соответствует состоянию потока работ). Таким образом, хост может послать информацию, касающуюся путей навигации (например, в виде «go-to»). Затем на этапе 230 менеджер динамического состояния может проверить доступность состояния для потока работ. Если такое состояние не существует, пользователю может отображаться ошибка, и методология останавливается на этапе 235.
Иначе, и если такое состояние существует, менеджер динамического состояния может установить такое состояние активным на этапе 240 для его исполнения в потоке работ. Затем, при исполнении на этапе 250 поток работ может ожидать события на переход в новое состояние 260, и при приеме события перехода от хоста поток работ может перейти в новое состояние на этапе 270. Затем и на этапе 280 выполняется верификация для проверки, является ли такое состояние последним состоянием в экземпляре потока работ. Если да, методология завершается на этапе 295. Иначе, методология возвращается к действию 250 для исполнения другого состояния.
Фиг.3 и 4 иллюстрируют конкретные примеры 300 и 400 реализации менеджера динамического состояния согласно аспекту рассматриваемого нововведения. В противоположность обычным системам (в которых пользователям необходимо взаимодействовать с системой типа потока работ, которая определяет навигацию по страницам посредством моделирования комплексной логики среди различных страниц/этапов) - рассматриваемое нововведение делает возможным динамический принцип для управления состояниями, который упрощает участвующую логику. Например, состояния 310, 410 потока работ могут быть переустановлены, перед тем как информация для события будет обработана потоком работ.
Как показано на фиг.3 и 4, существует две версии потока работ, а именно тип 315, 415 потока работ конечного автомата и тип 317, 417 последовательного потока работ. Обычно каждый поток работ содержит некоторое количество деятельностей, каждая из которых выполняет некоторый аспект функции этого потока работ. Поток работ действует в качестве контейнера для этих деятельностей, обеспечивая путь для управления их жизненными циклами и порядком исполнения. Системные потоки работ имеют тенденцию исполнять деятельности хорошо определенным, предсказуемым образом, тогда как потоки работ человека-оператора - нет.
Чтобы рассмотреть оба эти требования, Windows Workflow Foundation обеспечивает два встроенных типа потока работ: последовательные потоки 317, 417 работ, способные исполнять деятельности по предварительно определенному шаблону, и потоки 315, 415 работ конечного автомата, способные реагировать на внешние события, когда они происходят. Оба основываются на одной и той среде исполнения, и оба могут использовать одни и те же настроенные деятельности. Последовательный подход представляет собой естественное соответствие для системного потока работ, тогда как конечные автоматы обеспечивают способ моделирования более свободно определенной природы потока работ человека-оператора. Отдельный поток работ может объединять элементы обоих стилей, позволяя получить их комбинирование. Кроме того, разработчик также может создать настроенные типы потока работ.
Время 311, 411 исполнения потока работ управляет экземпляром потока работ программным путем в качестве времени исполнения потока работ в Active Server Pages (активные серверные страницы) (приложение ASP.net) 301, 401. Кроме того, компонент 330, 430 интерактивной деятельности может остановить исполнение потока работ в заданных точках (например, установкой времени исполнения потока работ в ожидание) и ожидать ввода от хоста для возобновления потока работ. Хост (например, веб-страница) может послать событие, чтобы переместить поток работ в другое состояние. Например, хост может запустить событие возобновления для возобновления потока работ в следующее состояние. Фиг.4 дополнительно иллюстрирует компонент интерактивной деятельности, разбитый на возобновление и приостановку в конечном автомате 450.
Компонент 330, 440 интерактивной деятельности может подавать пользовательский ввод и связанное с ним взаимодействие с потоком работ во время различных прерываний интерактивности, которые запрашивает такой пользовательский ввод. Он разрешает управляемый/синхронный обмен данными между потоком работ и хост-приложением, которое связано с потоком работ. Таким образом, в определенные моменты времени во время исполнения потока работ контекст пользователя может ассоциироваться с экземпляром потока работ. Кроме того, поток работ может запускать пользовательский интерфейс (UI), основываясь на состоянии потока работ во время приостановки, при помощи компонента 332, 432 переключения пользователя, такого как информация, относящаяся к пользователю потока работ. Кроме того, обработчики 334, 434 событий могут потреблять события, которые не обрабатываются текущим состоянием, для разрешения текущего потока управления, который определяется на состоянии, подлежащем подмене. Следовательно, состояние потока работ может управляться извне потока работ (например, без встраивания в виде части самого потока работ), и снижается требование на моделирование изменений незапланированных состояний потока работ.
Фиг.5 и 6 иллюстрируют примерные блок-схемы последовательности операций, на которых подается интерактивный поток работ, который исполняется до конкретных точек и ожидает ввода от хоста для возобновления потока работ, причем такое событие может переместить поток работ в другое состояние. Как изображается в методологии 500, процесс потока работ исполняется на этапе 505 и переходит к следующему действию в процессе. Исполнение потока работ может верифицироваться на этапе 510, означает ли действие, подлежащее исполнению, окончание потока работ. Если да, исполнение потока работ завершается на этапе 520. Иначе, методология переходит к действию 530, при котором действие, подлежащее исполнению потоком работ, проверяется для верификации, является ли оно интерактивной деятельностью. Если да, поток работ приостанавливается на этапе 540 для выполнения взаимодействия с хост-приложением для динамического восстановления состояния потока работ, как подробно описано выше. Иначе, методология возвращается к действию 505, в котором поток работ исполняет текущее действие и переходит к следующему.
Как изображено на фиг.5 и после приостановки потока работ на этапе 540, поток исполнения ожидает ввода от хоста на этапе 550 для возобновления потока работ, причем такое событие может переместить поток работ в другое состояние. Затем и на этапе 660 по фиг.6 может быть установлено событие, причем событие может соответствовать пользовательскому интерфейсу (например, веб-странице), которое соответствует состоянию потока работ, предполагая, что такое состояние фактически существует. Таким образом, хост может подавать информацию, касающуюся путей навигации, на этапе 670 в виде «go-to», например. По существу, менеджер динамического состояния может установить такое состояние в активное на этапе 680 для его исполнения в потоке работ. Затем и после исполнения поток работ может ожидать события для перехода в новое состояние, и при приеме события перехода от хоста поток работ может перемещаться в новое состояние на этапе 690. Таким образом, состояние потока работ может управляться извне потока работ (например, без встраивания в виде части самого потока работ), и снижается требование к моделированию изменений незапланированных состояний потока работ.
Фиг.7 и 8 иллюстрируют пример управляемого событиями потока работ, при котором незапланированные события применяются для восстановления и манипулирования потоком работ в состояния, которые не были смоделированы как часть самого потока работ, для динамического создания зависимостей во время исполнения. Приложение веб-страницы может вызвать провайдера потока работ и передать установленное состояние (например, с заданным состоянием и UI), причем тогда захватывается время исполнения потока работ. Менеджер динамического состояния может принимать установленное состояние для запуска такого состояния посредством переустановки экземпляра потока работ. Первоначально страница, которая является частью потока управлениями потоком страниц, отображается в браузере, причем пользователь заполняет информацию на странице для ее представления. Затем загружается экземпляр потока работ, ассоциированный с такой страницей, и состояние потока работ устанавливается в состояние, ассоциированное со страницей. Обычно существует взаимно однозначная ассоциация между страницей и состоянием. Если состояние установлено, событие, генерированное страницей, передается экземпляру потока работ для потребления. События передаются текущему состоянию экземпляра потока работ. Состояние определяет, может ли оно потребить данное событие. Если событие потребляется текущим состоянием, ассоциированный обработчик может определить, требуются ли переходы состояния. Иначе и если событие не потребляется текущим состоянием, такое событие тогда передается состоянию, содержащему это состояние для потребления.
Например, в сценарии покупки телефона с выбранными свойствами разработчик может разработать приложение потока работ, которое требует, чтобы пользователи вводили информацию, используя веб-страницы. Веб-страницы были ранее определены и отображены на состояния в потоке работ конечного автомата. Целью разработчика является смоделировать поток управления приложения, используя поток работ конечного автомата. События, определенные на странице, могут моделироваться как вводы в состояние. Основываясь на типе события, конечный автомат может изменить состояния и исполнить до завершения. Изменение состояний в конечном автомате определяет поток управления приложения управления страницами.
Перед тем как событие будет представлено со страницы потоку работ, текущее состояние потока работ конечного автомата может позиционироваться в состояние, ассоциированное с отображаемой страницей. Это позволяет выполнять манипулирование событием, как если бы пользователь был на удачном пути и, как ожидается, находится на этой странице. Таким образом, может быть создана динамическая взаимосвязь (при помощи перепозиционирования) между последним установленным состоянием потока работ и вновь выбранным состоянием потока работ. Этапы покупки сотового телефона изображены на диаграмме 700 на фиг.7. Необходимо понять, что, если кто-то работает на странице, которая отображается на текущее состояние потока работ конечного автомата, тогда обычно нет необходимости изменять или перепозиционировать состояние. В основном, состояние переустанавливается только тогда, когда страница и текущее состояние не совпадают.
На фиг.8 изображена последовательность 800, причем конечный пользователь может представить этапы 1, 2, 3, 4, 5 и затем пересмотреть тип плана, который должен приобрести. Рассматриваемое нововведение дает возможность конечному пользователю нажать на обратную кнопку браузера, чтобы перепозиционироваться на этап два 820, выбрать план с предоплатой, представить информацию и перейти к этапу пять 840. Необходимо понять, что взаимосвязь между этапом 5 и 2 не была определена заранее, и, следовательно, может существовать как незапланированное (специальное; ad hoc) соотношение. Также событие 860 аннулирования может моделироваться как обработчик событий на главном потоке работ конечного автомата. Следовательно, рассматриваемое нововведение обеспечивает инфраструктуру, где взаимосвязи могут создаваться динамически во время исполнения. Это позволяет аналитикам и разработчикам моделировать только наиболее общий путь исполнения между страницами и поток управления, определенный по модели потока работ, для настройки под запросы конечного пользователя.
С ссылкой на фиг.9 описывается примерная среда 910 для реализации различных аспектов рассматриваемого нововведения, которая включает в себя компьютер 912. Компьютер 912 включает в себя блок 914 обработки, системную память 916 и системную шину 918. Системная шина 918 соединяет системные компоненты, включая, но не ограничиваясь ими, системную память 916 с блоком 914 обработки. Блок 914 обработки может быть любым из многочисленных доступных процессоров. Сдвоенные микропроцессоры и другие мультипроцессорные архитектуры также могут применяться в качестве блока 914 обработки.
Системная шина 918 может быть любой из нескольких типов шинной структуры (структур), включая шину памяти или контроллер памяти, периферийную шину или внешнюю шину и/или локальную шину, используя любое множество доступных шинных архитектур, включая, но не ограничиваясь ими, 11-разрядную шину, архитектуру промышленного стандарта (ISA), микроканальную архитектуру (MSA), расширенную ISA (EISA), электронику интеллектуальных накопителей (IDE), локальную шину Ассоциации по стандартам в области видеотехники (VESA) (VLB), межсоединения периферийных компонентов (PCI), универсальную последовательную шину (USB), ускоренный графический порт (AGP), шину Международной ассоциации производителей карт памяти для персональных компьютеров (PCMCIA) и интерфейс малых компьютерных систем (SCSI).
Системная память 916 включает в себя энергозависимую память 920 и энергонезависимую память 922. Базовая система ввода-вывода (BIOS), содержащая базовые подпрограммы для переноса информации между элементами внутри компьютера 912, например, во время запуска, хранится в энергонезависимой памяти 922. В качестве иллюстрации и не ограничения, энергонезависимая память 922 может включать в себя постоянное запоминающее устройство (ROM), программируемое ROM (PROM), электрически программируемое ROM (EPROM), электрически стираемое ROM (EEPROM) или флэш-память. Энергозависимая память 920 включает в себя оперативное запоминающее устройство (RAM), которое служит в качестве внешней кэш-памяти. В качестве иллюстрации и не ограничения, RAM доступно во многих видах, таких как синхронное RAM (SRAM), динамическое RAM (DRAM), синхронное DRAM (SDRAM), SDRAM с удвоенной скоростью обмена данными (DDR SDRAM), усовершенствованное SDRAM (ESDRAM), DRAM с синхронной связью (SLDRAM) и RAM с шиной прямого резидентного доступа (DRRAM).
Компьютер 912 также включает в себя съемные/несъемные, энергозависимые/энергонезависимые носители данных компьютера. Фиг.9 иллюстрирует, например, запоминающее устройство 924 на дисках. Запоминающее устройство 924 на дисках включает в себя, но не ограничивается ими, устройства, подобные накопителю на магнитных дисках, накопителю на гибких магнитных дисках, накопителю на ленте, накопителю «Jaz», накопителю «Zip», накопителю LS-100, карте флэш-памяти или карте памяти. Кроме того, запоминающее устройство 924 на дисках может включать в себя носители данных отдельно или в комбинации с другими носителями данных, включая, но не ограничиваясь ими, накопитель на оптических дисках, такой как накопитель на компакт-дисках (накопитель CD-ROM), накопитель на записываемых компакт-дисках (накопитель CD-R), накопитель на перезаписываемых компакт-дисках (накопитель CD-RW) или накопитель на цифровых многофункциональных дисках (накопитель DVD-ROM). Чтобы облегчить подключение запоминающих устройств 924 на дисках к системной шине 918, обычно используется съемный или несъемный интерфейс, такой как интерфейс 926.
Необходимо понять, что фиг.9 описывает программное обеспечение, которое служит в качестве посредника между пользователями и основными ресурсами компьютера, описанными в подходящей операционной среде 910. Такое программное обеспечение включает в себя операционную систему 928. Операционная система 928, которая может храниться на запоминающем устройстве 924 на дисках, служит для управления и распределения ресурсов компьютерной системы 912. Системные приложения 930 используют преимущество управления ресурсами посредством операционной системы 928 при помощи программных модулей 932 и программных данных 934, хранимых или в системной памяти 916, или на запоминающем устройстве 924 на дисках. Необходимо понять, что различные компоненты, описанные в данном документе, могут быть реализованы с различными операционными системами или комбинациями операционных систем.
Пользователь вводит команды или информацию в компьютер 912 при помощи устройства (устройств) 936 ввода. Устройства 936 ввода включают в себя, но не ограничиваются ими, указательное устройство, такое как мышь, шаровой указатель, стилус, сенсорную панель, клавиатуру, микрофон, джойстик, игровой планшет, антенну спутниковой связи, сканер, карту телевизионного тюнера, цифровую камеру, цифровую видеокамеру, веб-камеру и т. п. Эти и другие устройства ввода подключаются к блоку 914 обработки при помощи системной шины 918 через интерфейсный порт (порты) 938. Интерфейсный порт (порты) 938 включает в себя, например, последовательный порт, параллельный порт, игровой порт и универсальную последовательную шину (USB). Устройство (устройства) 940 вывода использует некоторые из портов этого же типа, что и устройство (устройства) 936 ввода. Таким образом, например, порт USB может использоваться для обеспечения ввода в компьютер 912 и вывода информации из компьютера 912 на устройство 940 вывода. Адаптер 942 вывода предусмотрен для иллюстрации того, что существуют некоторые устройства 940 вывода, подобные мониторам, громкоговорителям и принтерам, из числа других устройств 940 вывода, которым требуются специальные адаптеры. Адаптеры 942 вывода включают в себя, в качестве иллюстрации и не ограничения, видео и звуковые карты, которые обеспечивают средство соединения между устройством 940 вывода и системной шиной 918. Необходимо отметить, что другие устройства и/или системы устройств обеспечивают возможности как ввода, так и вывода, такие как удаленный компьютер (компьютеры) 944.
Компьютер 912 может работать в сетевой среде, используя логические подключения к одному или нескольким удаленным компьютерам, таким как удаленный компьютер (компьютеры) 944. Удаленным компьютером (компьютерами) 944 может быть персональный компьютер, сервер, маршрутизатор, сетевой персональный компьютер (PC), рабочая станция, микропроцессорный прибор, одноранговое устройство или другой общий узел сети и т.п., и он обычно включает в себя многие или все из элементов, описанных в отношении компьютера 912. Для целей краткости только запоминающее устройство 946 памяти изображается с удаленным компьютером (компьютерами) 944. Удаленный компьютер (компьютеры) 944 логически подключается к компьютеру 912 при помощи сетевого интерфейса 948 и затем физически подключается при помощи подключения 950 обмена данными. Сетевой интерфейс 948 охватывает сети передачи данных, такие как локальные сети (LAN) и глобальные сети (WAN). Технологии LAN включают в себя распределенный интерфейс передачи данных по волоконно-оптическим каналам (FDDI), распределенный проводной интерфейс передачи данных (CDDI), Эзернет/IEEE (Институт инженеров по электротехнике и радиоэлектронике) 802.3, Маркерное кольцо/IEEE 802.5 и т.п. Технологии WAN включают в себя, но не ограничиваются ими, двухточечные линии передачи данных, сети с коммутацией каналов, такие как цифровые сети с интеграцией служб (ISDN) и их варианты, сети с коммутацией пакетов и цифровые абонентские линии (DSL).
Подключение (подключения) 950 обмена данными ссылается на аппаратные/программные средства, используемые для соединения сетевого интерфейса 948 с шиной 918. Хотя подключение 950 обмена данными показано для целей иллюстрации внутри компьютера 912, оно также может быть вне компьютера 912. Аппаратные/программные средства, необходимые для подключения к сетевому интерфейсу 948, включают в себя, только для примерных целей, внутреннее и внешнее оборудование, такое как модемы, включая модемы обычного телефонного класса, кабельные модемы и модемы DSL, адаптеры ISDN и карты Ethernet.
Фиг.10 представляет собой схематическую блок-схему среды 1000 выборочного вычисления, которая может применяться для воплощения реализации потока работ рассматриваемого нововведения. Система 1000 включает в себя одного или нескольких клиентов 1010. Клиент (клиенты) 1010 может быть аппаратным и/или программным средством (например, потоки, процессы, вычислительные устройства). Система 1000 также включает в себя один или несколько серверов 1030. Сервер (серверы) 1030 также может быть аппаратным и/или программным средством (например, потоки, процессы, вычислительные устройства). Серверы 1030 могут содержать потоки для выполнения преобразований посредством применения компонентов, описанных в данном документе, например. Одной возможной передачей данных между клиентом 1010 и сервером 1030 может быть в виде пакета данных, предназначенного для передачи между двумя или более компьютерными процессами. Система 1000 включает в себя инфраструктуру 1050 обмена данными, которая может применяться для того, чтобы способствовать обмену данными между клиентом (клиентами) 1010 и сервером (серверами) 1030. Клиент (клиенты) 1010 выполнен с возможностью подключения к одному или нескольким хранилищам 1060 данных клиентов, которые могут использоваться для хранения информации, локальной для клиента (клиентов) 1010. Аналогично, сервер (серверы) 1030 выполнены с возможностью подключения к одному или нескольким хранилищам 1040 данных серверов, которые могут применяться для хранения информации, локальной для серверов 1030.
То, что было описано выше, включает в себя многочисленные примерные аспекты. Конечно, нельзя описать каждую мыслимую комбинацию компонентов или методологий с целью описания этих аспектов, но специалист в данной области техники может понять, что возможны многие дополнительные комбинации и перестановки. Следовательно, аспекты, описанные в данном документе, предназначены для того, чтобы охватывать все такие изменения, модификации и варианты, которые подпадают под сущность и объем прилагаемой формулы изобретения. Кроме того, в той мере, в какой термин «включает» используется как в подробном описании, так и в формуле изобретения, такой термин предполагается включающим в себя аналогично термину «содержащий», как «содержащий» интерпретируется, когда он используется в качестве переходного слова в формуле изобретения.

Claims (19)

1. Реализованная на компьютере система для перепозиционирования потока работ, содержащая:
машиночитаемый носитель для хранения, имеющий сохраненные на нем исполняемые компьютером компоненты, причем исполняемые компьютером компоненты содержат:
провайдер потока работ, который обеспечивает поток работ, причем поток работ включает в себя множество состояний потока работ и множество веб-страниц, соответствующих множеству состояний потока работ, причем множество веб-страниц включают в себя:
первую веб-страницу, соответствующую первому состоянию потока работ из множества состояний потока работ;
вторую веб-страницу, соответствующую второму состоянию потока работ из множества состояний потока работ, причем вторая веб-страница позиционирована в потоке работ после первой веб-страницы, второе состояние потока работ позиционировано в потоке работ после первого состояния потока работ; и
по меньшей мере, одну промежуточную веб-страницу, соответствующую, по меньшей мере, одному промежуточному состоянию потока работ из множества состояний потока работ, при этом, по меньшей мере, одна промежуточная веб-страница позиционирована в потоке работ после первой веб-страницы и перед второй веб-страницей, по меньшей мере, одно промежуточное состояние потока работ позиционировано в потоке работ после первого состояния потока работ и перед вторым состоянием потока работ; и
компонент менеджера динамического состояния как часть механизма потока работ, причем менеджер динамического состояния, в ответ на просмотр браузером от второй веб-страницы назад к первой веб-странице, создает одну или более взаимосвязей между состояниями потока работ, которые не были моделированы как часть потока работ, чтобы обеспечивать возможность специальных (ad hoc) изменений состояний в потоке работ во время исполнения;
причем одна или более взаимосвязей, созданных в ответ на просмотр браузером от второй веб-страницы назад к первой веб-странице, включают в себя:
взаимосвязь между первой веб-страницей и второй веб-страницей, которая побуждает поток работ, чтобы в ответ на представление первой веб-страницы переходить от первой веб-страницы к второй веб-странице и пропускать, по меньшей мере, одну промежуточную веб-страницу.
2. Реализованная на компьютере система по п.1, в которой исполняемые компьютером компоненты дополнительно содержат компонент интерактивной деятельности, который останавливает поток работ в заданных точках и ожидает ввода из приложения хоста, которое управляет состояниями потока работ.
3. Реализованная на компьютере система по п.2, в которой поток работ ассоциирован с управлением навигацией приложения, отображаемым в браузере.
4. Реализованная на компьютере система по п.3, в которой имеется взаимно-однозначная ассоциация между каждым отображением и каждым состоянием.
5. Реализованная на компьютере система по п.4, в которой исполняемые компьютером компоненты дополнительно содержат пути навигации, которые вводятся хостом.
6. Реализованная на компьютере система по п.5, в которой пути навигации имеют форму «go-to».
7. Реализованная на компьютере система по п.5, в которой события соответствуют пользовательским интерфейсам.
8. Реализованная на компьютере система по п.5, в которой события представляют собой специальные (ad hoc) события, не смоделированные как часть логики потока работ.
9. Реализованный на компьютере способ для перепозиционирования потока работ, выполняемый компьютером, содержащим системную память и один или более процессоров, причем способ содержит:
обеспечение потока работ, причем поток работ включает в себя множество состояний потока работ и множество веб-страниц, соответствующих множеству состояний потока работ;
в ответ на просмотр браузером в обратном направлении по отношению к определенному потоку потока работ, создание взаимосвязей во время исполнения между экземплярами потока работ, которые не были определены априорно как часть потока работ, посредством компонента менеджера динамического состояния, внешнего для потока работ;
передачу состояния для потока работ приложением хоста на основе появления события; и
управление состоянием в потоке работ путем восстановления экземпляра для потока работ.
10. Реализованный на компьютере способ по п.9, в котором событие
посылается, основываясь на пользовательском интерфейсе, отображаемом в браузере.
11. Реализованный на компьютере способ по п.9, дополнительно содержащий верификацию, является ли состояние доступным.
12. Реализованный на компьютере способ по п.11, дополнительно содержащий посылку сообщения об ошибке, если состояние не является доступным.
13. Реализованный на компьютере способ по п.11, дополнительно содержащий приостановку потока работ.
14. Реализованный на компьютере способ по п.13, дополнительно содержащий исполнение состояния.
15. Реализованный на компьютере способ по п.14, дополнительно содержащий переход состояний, используя события.
16. Реализованный на компьютере способ по п.15, дополнительно содержащий верификацию, является ли состояние последним состоянием потока работ.
17. Реализованный на компьютере способ по п.16, дополнительно содержащий исполнение состояния, если состояние не является последним состоянием потока работ.
18. Реализованный на компьютере способ по п.16, дополнительно содержащий загрузку экземпляра потока работ провайдером потока работ, ассоциированным с потоком работ.
19. Реализованный на компьютере способ по п.17, дополнительно содержащий передачу события к другому состоянию, если упомянутое событие не потребляется упомянутым состоянием.
RU2008126231/08A 2005-12-29 2006-12-07 Динамическое перепозиционирование потока работ конечными пользователями RU2433463C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/321,777 US7680683B2 (en) 2005-12-29 2005-12-29 Dynamically repositioning workflow by end users
US11/321,777 2005-12-29

Publications (2)

Publication Number Publication Date
RU2008126231A RU2008126231A (ru) 2010-01-10
RU2433463C2 true RU2433463C2 (ru) 2011-11-10

Family

ID=38225974

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2008126231/08A RU2433463C2 (ru) 2005-12-29 2006-12-07 Динамическое перепозиционирование потока работ конечными пользователями

Country Status (8)

Country Link
US (1) US7680683B2 (ru)
EP (1) EP1966723A4 (ru)
JP (1) JP4536817B2 (ru)
KR (1) KR20080087801A (ru)
CN (1) CN101356522B (ru)
BR (1) BRPI0618711A2 (ru)
RU (1) RU2433463C2 (ru)
WO (1) WO2007078673A1 (ru)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060111921A1 (en) * 2004-11-23 2006-05-25 Hung-Yang Chang Method and apparatus of on demand business activity management using business performance management loops
US8849691B2 (en) 2005-12-29 2014-09-30 Microsoft Corporation Modeling user input and interaction in workflow based applications
US8752030B1 (en) * 2006-03-09 2014-06-10 Verizon Services Corp. Process abstraction and tracking, systems and methods
AU2007312879B2 (en) * 2006-10-19 2011-10-20 Jmango Ipr Holding Ltd An interactive system and process
US9191793B2 (en) 2007-10-19 2015-11-17 Duc Anh Ngo Interactive system and process
US20090125366A1 (en) * 2007-11-13 2009-05-14 Dipanjan Chakraborty Method and system for dynamic adaptation of workflows
US8161492B2 (en) * 2008-04-15 2012-04-17 Microsoft Corporation Continuation based runtimes in transactions
US20100064357A1 (en) * 2008-09-09 2010-03-11 Kerstin Baird Business Processing System Combining Human Workflow, Distributed Events, And Automated Processes
US9354847B2 (en) 2008-12-29 2016-05-31 Microsoft Technology Licensing, Llc Interface infrastructure for a continuation based runtime
US8250520B2 (en) * 2009-03-17 2012-08-21 Microsoft Corporation Implementing custom activities in a workflow
US8683432B2 (en) * 2009-03-20 2014-03-25 Microsoft Corporation Providing execution context in continuation based runtimes
US8751281B2 (en) * 2009-03-20 2014-06-10 Sap Ag Method for acquiring by a session manager a list of active sessions
US20100293538A1 (en) * 2009-05-15 2010-11-18 Microsoft Corporation Dynamic program updating in a continuation based runtime
US20100324948A1 (en) * 2009-06-18 2010-12-23 Microsoft Corporation Managing event timelines
WO2010149285A1 (en) * 2009-06-23 2010-12-29 Deutsche Telekom Ag Method and program for initiating a second service in dependency of a first service
US8661245B1 (en) * 2009-09-25 2014-02-25 Nimvia, LLC Systems and methods for empowering IP practitioners
US8683498B2 (en) * 2009-12-16 2014-03-25 Ebay Inc. Systems and methods for facilitating call request aggregation over a network
US9852382B2 (en) 2010-05-14 2017-12-26 Oracle International Corporation Dynamic human workflow task assignment using business rules
US8819055B2 (en) 2010-05-14 2014-08-26 Oracle International Corporation System and method for logical people groups
US9589240B2 (en) * 2010-05-14 2017-03-07 Oracle International Corporation System and method for flexible chaining of distinct workflow task instances in a business process execution language workflow
US9741006B2 (en) 2010-05-14 2017-08-22 Oracle International Corporation System and method for providing complex access control in workflows
US8717915B2 (en) 2010-05-25 2014-05-06 Microsoft Corporation Process-integrated tree view control for interactive voice response design
US20120030094A1 (en) * 2010-07-27 2012-02-02 Verizon Patent And Licensing Inc. Design, deployment, and use of an automated flow-model-view-controller workflow
US8522256B2 (en) 2010-10-12 2013-08-27 Microsoft Corporation Hosting non-messaging workflows in a messaging host
CN103329121B (zh) 2011-01-28 2016-11-02 惠普发展公司,有限责任合伙企业 文档管理系统和方法
US9466041B2 (en) * 2011-10-15 2016-10-11 Hewlett Packard Enterprise Development Lp User selected flow graph modification
US9536264B2 (en) 2011-11-14 2017-01-03 Microsoft Technology Licensing, Llc Host agnostic messaging in a continuation based runtime
US9020883B2 (en) 2012-02-22 2015-04-28 Oracle International Corporation System and method to provide BPEL support for correlation aggregation
CN102662668B (zh) * 2012-03-31 2015-06-03 北京奇虎科技有限公司 一种利用网页生命周期优化应用的方法和装置
US10037197B2 (en) 2013-03-15 2018-07-31 Oracle International Corporation Flexible microinstruction system for constructing microprograms which execute tasks, gateways, and events of BPMN models
JP6064734B2 (ja) * 2013-03-27 2017-01-25 富士通株式会社 ワークフロー制御プログラム、装置および方法
US9946516B2 (en) 2014-03-14 2018-04-17 Starbucks Corporation Application workflow framework
US9354922B2 (en) * 2014-04-02 2016-05-31 International Business Machines Corporation Metadata-driven workflows and integration with genomic data processing systems and techniques
KR102266554B1 (ko) * 2014-10-31 2021-06-18 한국전자통신연구원 컴포넌트 기반 소프트웨어의 컴포넌트 상태 관리 방법 및 장치
US11580472B2 (en) * 2015-05-14 2023-02-14 Palantir Technologies Inc. Systems and methods for state machine management
CN104866312A (zh) * 2015-05-22 2015-08-26 国云科技股份有限公司 一种基于asp点net的伪静态实现方法
US10127509B2 (en) 2015-09-17 2018-11-13 Bank Of America Corporation System for temporarily suspending a workflow associated with a work item
US9766927B1 (en) * 2015-10-06 2017-09-19 Amazon Technologies, Inc. Data flow management in processing workflows
US10726032B2 (en) 2015-12-30 2020-07-28 Palantir Technologies, Inc. Systems and methods for search template generation
US10839022B1 (en) 2017-07-24 2020-11-17 Palantir Technologies Inc. System to manage document workflows
US10514895B2 (en) 2017-09-08 2019-12-24 Bank Of America Corporation Tool for generating event case management applications
US20210383259A1 (en) * 2020-06-04 2021-12-09 Outreach Corporation Dynamic workflow optimization using machine learning techniques
US11748681B1 (en) * 2021-09-14 2023-09-05 Amazon Technologies, Inc. Persistent state management system for web applications

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5490097A (en) 1993-03-22 1996-02-06 Fujitsu Limited System and method for modeling, analyzing and executing work process plans
US5634127A (en) 1994-11-30 1997-05-27 International Business Machines Corporation Methods and apparatus for implementing a message driven processor in a client-server environment
US7069451B1 (en) 1995-02-13 2006-06-27 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US6272672B1 (en) 1995-09-06 2001-08-07 Melvin E. Conway Dataflow processing with events
DE19705955A1 (de) 1996-03-29 1997-10-02 Ibm Verfahren zum Generieren einer Implementierung eines Workflow-Prozessmodells in einer Objektumgebung
AU2453797A (en) 1996-04-10 1997-10-29 Paul M. Konnersman Computer-based system for work processes that consist of interdependent decisions involving one or more participants
US5960404A (en) 1997-08-28 1999-09-28 International Business Machines Corp. Mechanism for heterogeneous, peer-to-peer, and disconnected workflow operation
US6339838B1 (en) 1998-01-02 2002-01-15 At&T Corp. Control of commercial processes
US6230197B1 (en) 1998-09-11 2001-05-08 Genesys Telecommunications Laboratories, Inc. Method and apparatus for rules-based storage and retrieval of multimedia interactions within a communication center
US6430538B1 (en) 1998-04-30 2002-08-06 Enterworks Workflow management system, method and medium with personal subflows
US6442528B1 (en) 1998-06-05 2002-08-27 I2 Technologies Us, Inc. Exemplar workflow used in the design and deployment of a workflow for multi-enterprise collaboration
US6397191B1 (en) * 1998-06-05 2002-05-28 I2 Technologies Us, Inc. Object-oriented workflow for multi-enterprise collaboration
US6282531B1 (en) 1998-06-12 2001-08-28 Cognimed, Llc System for managing applied knowledge and workflow in multiple dimensions and contexts
US6772407B1 (en) 1998-10-02 2004-08-03 International Business Machines Corporation Staging objects in workflow management systems
US6820118B1 (en) 1999-01-20 2004-11-16 International Business Machines Corporation Method and system for providing a linkage between systems management systems and applications
US6499023B1 (en) * 1999-02-19 2002-12-24 Lucent Technologies Inc. Data item evaluation based on the combination of multiple factors
US6473794B1 (en) * 1999-05-27 2002-10-29 Accenture Llp System for establishing plan to test components of web based framework by displaying pictorial representation and conveying indicia coded components of existing network framework
US6769113B1 (en) 1999-10-08 2004-07-27 International Business Machines Corporation Enterprise process models and enterprise application for information technologies
KR100377189B1 (ko) 1999-12-24 2003-03-28 한국전자통신연구원 워크플로우 시스템과 어플리케이션간의 데이터 교환시스템 및 그 방법
US6968503B1 (en) 2000-03-09 2005-11-22 Quovadx, Inc. XML user interface for a workflow server
JP2001306507A (ja) * 2000-04-25 2001-11-02 Hitachi Koukiyou Syst Eng Kk 情報処理システムおよび処理方法、ならびにプログラム読み出し可能な記録媒体
US7503033B2 (en) 2000-04-28 2009-03-10 Microsoft Corporation Model for business workflow processes
JP2001356907A (ja) 2000-06-09 2001-12-26 Ibm Japan Ltd 処理コード情報を有するデータベース・システムおよび情報処理システム
US7219304B1 (en) 2000-06-19 2007-05-15 International Business Machines Corporation System and method for developing and administering web applications and services from a workflow, enterprise, and mail-enabled web application server and platform
US6854016B1 (en) 2000-06-19 2005-02-08 International Business Machines Corporation System and method for a web based trust model governing delivery of services and programs
WO2002021314A2 (en) 2000-09-08 2002-03-14 Asera, Inc. Integrated design environment for a commerce server system
JP3856637B2 (ja) * 2000-10-12 2006-12-13 日本電信電話株式会社 処理協調実行方法及びシステム並びに処理協調実行プログラムを記録した記録媒体
US7653566B2 (en) 2000-11-30 2010-01-26 Handysoft Global Corporation Systems and methods for automating a process of business decision making and workflow
US6801227B2 (en) 2001-01-16 2004-10-05 Siemens Medical Solutions Health Services Inc. System and user interface supporting user navigation and concurrent application operation
US6675133B2 (en) 2001-03-05 2004-01-06 Ncs Pearsons, Inc. Pre-data-collection applications test processing system
US6966049B2 (en) 2001-04-24 2005-11-15 Heuristics Physics Laboratories, Inc. Software development tool employing workflows for developing user interactive programs
JP2002324155A (ja) * 2001-04-26 2002-11-08 Hitachi Ltd ワークフロー・システムおよびプログラム
US7100147B2 (en) 2001-06-28 2006-08-29 International Business Machines Corporation Method, system, and program for generating a workflow
US7069536B2 (en) 2001-06-28 2006-06-27 International Business Machines Corporation Method, system, and program for executing a workflow
US20030023622A1 (en) 2001-07-27 2003-01-30 Liaison Technology, Inc. Manual activity persistence in content management workflow systems
US20030135384A1 (en) * 2001-09-27 2003-07-17 Huy Nguyen Workflow process method and system for iterative and dynamic command generation and dynamic task execution sequencing including external command generator and dynamic task execution sequencer
US20030078975A1 (en) 2001-10-09 2003-04-24 Norman Ken Ouchi File based workflow system and methods
US20030090514A1 (en) 2001-10-23 2003-05-15 Cole Douglas J. Business process user interface generation system and method
US7865867B2 (en) 2002-03-08 2011-01-04 Agile Software Corporation System and method for managing and monitoring multiple workflows
US20030233374A1 (en) * 2002-03-14 2003-12-18 Ulrich Spinola Dynamic workflow process
US20040046789A1 (en) 2002-08-23 2004-03-11 Angelo Inanoria Extensible user interface (XUI) framework and development environment
WO2004038556A2 (en) 2002-10-23 2004-05-06 David Theiler Method and apparatus for managing workflow
US20040103014A1 (en) * 2002-11-25 2004-05-27 Teegan Hugh A. System and method for composing and constraining automated workflow
US7299244B2 (en) * 2002-12-10 2007-11-20 Hewlett-Packard Development Company, L.P. System and method for dynamic sequencing of a requirements-based workflow
US7272820B2 (en) 2002-12-12 2007-09-18 Extrapoles Pty Limited Graphical development of fully executable transactional workflow applications with adaptive high-performance capacity
US7448024B2 (en) 2002-12-12 2008-11-04 Bea Systems, Inc. System and method for software application development in a portal environment
US7171664B2 (en) 2002-12-16 2007-01-30 International Business Machines Corporation Content management system and method of employing extensible workflow entities with user-defined attributes in an object-oriented framework
AU2003296179A1 (en) * 2002-12-20 2004-07-14 Kenichi Sawada Web application server support program and server
US7711694B2 (en) 2002-12-23 2010-05-04 Sap Ag System and methods for user-customizable enterprise workflow management
US7409674B2 (en) 2002-12-26 2008-08-05 Research In Motion Limited System and method of creating and communicating with component based wireless applications
GB2396928A (en) 2003-01-04 2004-07-07 Quicksilva Ltd Business process management tool framework
US6839062B2 (en) 2003-02-24 2005-01-04 Microsoft Corporation Usage semantics
US20050044173A1 (en) 2003-02-28 2005-02-24 Olander Daryl B. System and method for implementing business processes in a portal
US7876705B2 (en) 2003-06-25 2011-01-25 Schlumberger Technology Corporation Method and apparatus and program storage device for generating a workflow in response to a user objective and generating software modules in response to the workflow and executing the software modules to produce a product
JP2005050318A (ja) 2003-07-16 2005-02-24 Ricoh Co Ltd ワークフロー管理装置、ワークフロー管理方法、ワークフロー管理プログラム及び記録媒体
CA2443454A1 (en) 2003-09-11 2005-03-11 Teamplate Inc. Data binding method in workflow system
JP4272963B2 (ja) * 2003-09-30 2009-06-03 キヤノン株式会社 注文処理システムおよび注文処理方法
US20050203757A1 (en) 2004-03-11 2005-09-15 Hui Lei System and method for pervasive enablement of business processes

Also Published As

Publication number Publication date
EP1966723A4 (en) 2011-06-15
RU2008126231A (ru) 2010-01-10
JP4536817B2 (ja) 2010-09-01
US20070156888A1 (en) 2007-07-05
CN101356522B (zh) 2012-08-08
KR20080087801A (ko) 2008-10-01
WO2007078673A1 (en) 2007-07-12
BRPI0618711A2 (pt) 2011-09-06
CN101356522A (zh) 2009-01-28
EP1966723A1 (en) 2008-09-10
US7680683B2 (en) 2010-03-16
JP2009522648A (ja) 2009-06-11

Similar Documents

Publication Publication Date Title
RU2433463C2 (ru) Динамическое перепозиционирование потока работ конечными пользователями
Wittig et al. Amazon Web Services in Action: An in-depth guide to AWS
Jennings Cloud computing with the Windows Azure platform
US10733010B2 (en) Methods and systems that verify endpoints and external tasks in release-pipeline prior to execution
US11334465B2 (en) Long running workflows for robotic process automation
Li et al. Applications integration in a hybrid cloud computing environment: Modelling and platform
Li et al. Towards the business–information technology alignment in cloud computing environment: anapproach based on collaboration points and agents
RU2445688C2 (ru) Моделирование пользовательского ввода и взаимодействия в приложениях на основе рабочего процесса
CA2800821C (en) Integrated workflow and database transactions
US20160034995A1 (en) Method and system for automated indentification and engagement of service providers
US20170364844A1 (en) Automated-application-release-management subsystem that supports insertion of advice-based crosscutting functionality into pipelines
US11301262B2 (en) Policy enabled application-release-management subsystem
JP2009522647A (ja) ワークフローのオブジェクトモデル
WO2002079916A2 (en) Method for incorporating human-based activities in business process models
US20130047135A1 (en) Enterprise computing platform
US11032145B2 (en) Methods and systems that provision applications across multiple computer systems
Khan et al. Systematic analysis of software development in cloud computing perceptions
Srinivasan Cloud Computing: A practical approach for learning and implementation
Stroe MySQL databases as part of the Online Business, using a platform based on Linux
Quintero et al. IBM data engine for hadoop and spark
US20220191167A1 (en) Organizational modelling for routing rpa related services of an rpa cloud suite
Quintero et al. IBM Technical Computing Clouds
US10936378B1 (en) System and method for automating integration process building between multiple applications using integration assistance robots
Wufka et al. Overview of Cloud Computing
Canonico et al. Overview of Cloud Computing

Legal Events

Date Code Title Description
PC41 Official registration of the transfer of exclusive right

Effective date: 20150526

MM4A The patent is invalid due to non-payment of fees

Effective date: 20191208