Моделирование пользовательского ввода и взаимодействия в приложениях на основе рабочего процесса
Иллюстрации
Показать всеИзобретение относится к средствам осуществления рабочего процесса. Технический результат заключается в облегчении работы пользователя с рабочим процессом. Моделируют точки приостановки в рабочем процессе, причем точки приостановки позволяют принимать и встраивать в рабочий процесс пользовательский ввод во время выполнения рабочего процесса так, что позволяют пользователю динамически изменять рабочий процесс во время его выполнения. Сохраняют состояния рабочего процесса при обнаружении, что рабочий процесс был неактивен в течение некоторого периода времени, при этом сохранение рабочего процесса содержит выборочное сохранение информации о состоянии рабочего процесса в соответствии с одним или более рассмотрениями времени ожидания, включающими в себя неактивность рабочего процесса. Осуществляют обмен данными между хостом и рабочим процессом во время приостановки рабочего процесса. 3 н. и 17 з.п. ф-лы, 11 ил.
Реферат
Уровень техники
Рабочий процесс, как правило, является потоком информации и управления в таких организациях. Бизнес непрерывно старается определить, задокументировать и упорядочить такие процессы, чтобы эффективно их выполнять. В бизнес-окружении эти процессы включают в себя продажи и обработку заказов, задачи закупок, контроль и управление материально-производственными запасами, изготовление и контроль производства, отгрузку и прием, кредиторскую задолженность и т.п.
Вычислительные системы и ассоциативно связанное программное обеспечение теперь предоставляют инструментальные средства, с помощью которых коммерческие и другие организации могут усовершенствовать свой рабочий процесс. Программные инструментальные средства могут использоваться, чтобы моделировать рабочие процессы или планировать и идентифицировать "узкие места" и возможные усовершенствования. Кроме того, когда процесс затрагивает обмен данными между людьми, отделами, заводами или даже между отдельными компаниями, вычислительные системы и сети могут использоваться, чтобы осуществить эти обмены. Такие системы и программные инструментальные средства дополнительно способны осуществлять широкомасштабные вычисления и другую обработку данных и информации, которые в типичном варианте ассоциативно связаны с деловой информацией.
Соответственно, управление рабочим процессом включает в себя эффективное управление потоком информации и контроль в бизнес-процессах организации, в которых автоматизация такой обработки информации должна привести ко многим эффективным улучшениям в современном деловом мире. Более того, такая автоматизация управления рабочим процессом теперь позволяет деловым и другим организациям дополнительно улучшить производительность, выполняя операции рабочего процесса в вычислительных системах, включающих в себя глобальные вычислительные сети, такие как Интернет.
Типичное приложение на основе рабочего процесса часто требует, чтобы было удовлетворено множество условий. Например, одним таким условием является возможность принимать решения на основе бизнес-правил. Это может включать в себя простые правила (например, типа решения да-нет на основе результата проверки кредитоспособности), и более сложные правила (например, потенциально большой набор, который должен быть оценен, чтобы принять первоначальное подтверждающее решение). Другим требованием является связи с другим программным обеспечением и другими системами вне границ рабочего процесса. Например, первоначальный запрос может быть принят от одной части приложения, в то время как некоторые аспекты (например, контактирование с кредитной службой) могут требовать связи с помощью других веб-служб или технологий. Дополнительным условием, которое должно быть удовлетворено, является правильное взаимодействие рабочего процесса с пользователями. Например, рабочий процесс должен в типичном варианте допускать отображение самого пользовательского интерфейса или взаимодействие с человеком через другое программное обеспечение. Более того, способность сохранять состояние в течение продолжительности рабочего процесса является другим условием, которое необходимо удовлетворить. Соответственно, создание и выполнение рабочего процесса в программном обеспечении ставит уникальные сложные задачи.
Например, некоторые бизнес-процессы могут занимать часы, дни или недели до завершения, и требуется сохранение информации о текущем состоянии рабочего процесса в течение такой продолжительности времени. Более того, такой вид продолжительного рабочего процесса также будет в типичном варианте связываться с другим программным обеспечением неблокирующим способом, а асинхронная связь может вызвать трудности. В то же время, тогда как моделирование фиксированных взаимодействий между программным обеспечением относительно простое, клиенты имеют склонность непрерывно требовать дополнительной гибкости, такой как способность изменять бизнес-процесс на лету. Управление разнообразными приложениями может дополнительно добавить сложностей, затрагиваемых в создании и управлении рабочим процессом.
Многие приложения для инструментальных средств рабочего процесса являются внутренними по отношению к бизнесу или организации. С приходом связанных в сеть компьютеров, имеющих модемы или другой тип линий связи, вычислительные системы в удаленных местоположениях теперь могут легко связываться друг с другом. Такая улучшенная связь позволяет приложениям рабочего процесса вычислительной системы использоваться между удаленными объектами в организации. Пример будет включать в себя передачу заказа клиента из штаб-квартиры фирмы удаленному периферийному офису продаж для верификации соответствующим менеджером по продажам и возврат результата верификации в штаб-квартиру. Приложения рабочего процесса могут также быть отдельной служебной программой в обработке деловых операций между разными компаниями. В типичном применении две компании, имеющие взаимоотношение покупатель-продавец, могут пожелать автоматизировать формирование и обработку заказов на покупку, отправок изделий, выписку счетов и инкассаций.
Например, вокруг рабочего процесса может быть построено приложение, направленное на конкретную проблему, такую как управление связями с клиентами (CRM) или на конкретный вертикальный рынок, такой как финансовые операции. Такой вид приложения обычно выполняет ряд разных бизнес-процессов. Построение логики, которая управляет такими процессами на общей базовой архитектуре, такой как Windows Workflow Foundation (Базовая архитектура рабочего процесса Windows), может сделать приложение более быстрым в построении, более быстрым в изменении и более легким в настройке. Кроме того, автоматизация таких процессов может иметь в результате значительные улучшения эффективности, которые в иных случаях невозможны. Однако такое применение между компаниями технологии рабочего процесса требует совместной работы компаний и правильного согласования и правильной неизменяемой реализации служб существующих вычислительных систем и приложений отдельной компании.
До сих пор разрабатывались инструментальные средства приложения рабочего процесса, которые предоставляют некоторую возможность автоматизации рабочего процесса посредством определения расписаний рабочих процессов. Например, покупатель может захотеть передать ряд заказов на покупку вместе со списком покупаемых продуктов продавцу, а продавец может захотеть ответить подтверждением заказа и ожидаемой датой отгрузки. Такой тип сделки может затрагивать обычную покупку клиентом продуктов у розничного продавца или, альтернативно, две большие корпорации, которые ведут регулярные деловые операции. Данные, ассоциативно связанные с заказом и подтверждением, могут быть относительно небольшими, и время передачи данных может быть порядка долей секунды. Приложение планирования рабочего процесса, работающее в вычислительной системе, может выделять системные ресурсы для транзакции во время ее состояния неопределенности, которое является обычно очень коротким.
Однако моделирование взаимодействия пользователей в рабочем процессе вызывает трудности. В частности, когда привлекаются люди, рабочий процесс может занимать длительное время для завершения, и построение масштабируемых систем требует прекращения работы рабочего процесса для взаимодействия с пользователем. Более того, управление пользовательским интерфейсом (UI) основано на состоянии рабочего процесса, невзирая на то, какой вид приложения может дополнительно увеличить затрагиваемые сложности.
Следовательно, существует необходимость преодолеть вышеупомянутые примерные недостатки, ассоциативно связанные с традиционными системами и устройствами.
Сущность изобретения
Последующее представляет упрощенное краткое изложение, для того чтобы обеспечить базовое понимание некоторых аспектов заявленного предмета изобретения. Это краткое изложение не является исчерпывающим общим представлением. Оно не имеет намерения идентифицировать ключевые/критические составные части или устанавливать границы объема заявленного предмета изобретения. Его единственной целью является представить в упрощенном виде некоторые концепции в качестве вступления к более подробному описанию, которое представлено позже.
Предмет изобретения предоставляет системы и способы, которые реализуют интерактивность/пользовательский ввод как часть самого рабочего процесса, в котором данные передаются в и из рабочего процесса, чтобы сформировать интерактивный рабочий процесс через применение компонента интерактивного действия. Такой компонент интерактивного действия моделирует опорные точки (точки приостановки) в определении рабочего процесса и является агностическим по отношению к типу приложения, чтобы заключать в себе приложения веб-служб, консоль, рабочий стол, веб-службы и т.п. Соответственно, пользовательский ввод и ассоциативно связанное взаимодействие могут применяться в рабочем процессе во время различных перерывов интерактивности, которые требуют пользовательского ввода, чтобы разрешить управляемый/синхронный обмен данными между рабочим процессом и приложением хост-системы, которое ассоциативно связано с рабочим процессом. Таким образом, в определенные моменты времени в течение выполнения рабочего процесса пользовательский контекст может быть ассоциативно связан с экземпляром рабочего процесса.
В родственном аспекте компонент интерактивного действия и опорные точки могут относиться к смене пользователей рабочего процесса. Например, рабочий процесс может управлять пользовательским интерфейсом (UI) на основе состояния рабочего процесса во время приостановки, например, выводя информацию, относящуюся к пользователю рабочего процесса. Соответственно, обеспечивается интерактивный рабочий процесс, который выполняется до определенных точек и предоставляет обратную связь ведущему приложению. Кроме того, ведущее приложение может изменять внешний вид рабочего процесса на основе состояния приостановки. Тип рабочего процесса может быть определен (например, программным образом или через визуальное инструментальное средство), и приложение хост-системы может подписаться на приостанавливающие события, чтобы обеспечить привязку к выполнению рабочего процесса. Приостанавливающее событие(я) могут затем вызываться и основываться на информации в таком событии (например, информации о текущем пользователе рабочего процесса), внешний вид UI может изменяться. Таким образом, данные могут передаваться в и из класса рабочего процесса, и настроенные признаки могут быть определены для взаимодействия во время работы (например, строго типовой рабочий процесс).
Например, в контексте отчета о расходах первоначальный пользователь может инициировать рабочий процесс отчета о расходах, а утверждающий пользователь может затем утвердить такой отчет о расходах. Таким образом, процесс может быть абстрагирован в класс рабочего процесса, в котором процесс и класс рабочего процесса работают до точки, когда должен быть задействован утверждающий. В такой точке взаимодействие с первоначальным пользователем останавливается. Утверждающий может затем запустить приложение (например, с другой машины), чтобы запустить рабочий процесс и возобновить экземпляр рабочего процесса с помощью действия, определенного утверждающим (например, утвердить, отклонить и т.п.). Таким образом, данные могут передаваться в и из экземпляра рабочего процесса в точки приостановки в течение времени жизни экземпляра рабочего процесса.
Согласно методологии предмета изобретения действие в рабочем процессе может быть проверено с целью удостовериться, означает ли оно интерактивное действие. Если так, рабочий процесс приостанавливается. Впоследствии событие приостановки вызывается и сообщается хост-системе. По существу, пока экземпляр рабочего процесса приостановлен, данные получаются от хоста и передаются в и/или из рабочего процесса. Дополнительно, если данные, полученные от хоста, указывают событие возобновления, тогда рабочий процесс может быть возобновлен. Рабочий процесс может быть загружен на основе идентификации экземпляра рабочего процесса (например, через компонент поиска). Событие возобновления может быть принято рабочим процессом и выполнено так, чтобы найти следующее действие в процессе.
Для достижения вышеприведенных и связанных целей некоторые иллюстративные аспекты заявленного предмета изобретения описаны в материалах настоящей заявки со ссылками на последующее описание и приложенные чертежи. Эти аспекты являются указывающими на различные направления, в которых предмет изобретения может быть осуществлен на практике, все из которых подразумеваются находящимися в пределах объема заявленного предмета изобретения. Другие преимущества и новые признаки могут стать очевидными из последующего подробного описания при рассмотрении в соединении с чертежами.
Краткое описание чертежей
Фиг.1 иллюстрирует примерную системную схему хост-приложения, которое взаимодействует с рабочим процессом через компонент интерактивного действия.
Фиг.2 иллюстрирует выполнение рабочего процесса с множеством точек приостановки, которые требуют взаимодействия с пользователем и/или хостом.
Фиг.3 и 4 иллюстрируют отдельную блок-схему для отчета о расходах с точками приостановки согласно примерному аспекту предмета изобретения.
Фиг.5 иллюстрирует примерный графический интерфейс, предназначенный для представления различных действий, выполняемых во время выполнения рабочего процесса.
Фиг.6 иллюстрирует обмен данными между экземпляром рабочего процесса и хост-приложением в соответствии с аспектом предмета изобретения.
Фиг.7-9 иллюстрируют примерную методологию потока выполнения рабочего процесса в соответствии с аспектом предмета изобретения.
Фиг.10 иллюстрирует типичное окружение для реализации различных аспектов предмета изобретения.
Фиг.11 является схематической блок-схемой дополнительного вычислительного окружения, которое может применяться, чтобы осуществить рабочий процесс с помощью компонента интерактивного действия предмета изобретения.
Подробное описание
Различные аспекты рассматриваемого изобретения описаны далее со ссылкой на приложенные чертежи, на всем протяжении которых одинаковые номера указывают ссылкой на идентичные или соответствующие составные части. Должно быть понятно, однако, что чертежи и подробное описание, к ним относящееся, не имеют намерением ограничивать заявленный предмет изобретения конкретным раскрытым образцом. Скорее, намерение состоит в том, чтобы покрыть все модификации, эквиваленты и варианты, попадающие в пределы сущности и объема заявленного предмета изобретения.
В качестве используемых в этой заявке термины "компонент", "система", "служба" и тому подобные имеют намерение указывать ссылкой на имеющий отношение к компьютеру объект, любое из аппаратных средств, сочетания аппаратных средств и программного обеспечения, программного обеспечения, или программного обеспечения при исполнении. Например, компонент может быть, но не только, процессом, запущенным на процессоре, процессором, объектом, исполняемым файлом, потоком исполнения, программой или компьютером. В качестве иллюстрации как приложение, работающее на компьютере, так и компьютер могут быть компонентом. Один или более компонентов могут храниться внутри процесса и/или потока исполнения, и компонент может быть локализован на вычислительной машине или распределен между двумя и более вычислительными машинами.
Слово «примерный» используется в материалах настоящей заявки, чтобы означать служащий в качестве примера, экземпляра или иллюстрации. Любой аспект или конструкция, описанные в материалах настоящей заявки как «примерные», не обязательно должны быть истолкованы в качестве предпочтительных или преимущественных над другими аспектами или конструкциями.
Дополнительно, раскрытый предмет изобретения может быть реализован в виде системы, способа, устройства или изделия производства с использованием стандартных технологий программирования и/или проектирования для производства программного обеспечения, микропрограммного обеспечения, аппаратных средств, или любого их сочетания, чтобы управлять основанным на компьютере или процессоре устройством для реализации аспектов, детализированных в материалах настоящей заявки. Термин "компьютерная программа" в качестве используемого в материалах настоящей заявки, имеет намерение охватывать компьютерную программу, доступную из любого машиночитаемого устройства, несущей или носителей. Например, машиночитаемые носители могут заключать в себе, но не ограничиваться этим, магнитные устройства хранения (например, жесткий диск, гибкий магнитный диск, магнитные полосы…), оптические диски (к примеру, компакт-диск (CD), цифровой многофункциональный диск (DVD)…), смарт-карты и устройства флэш-памяти (к примеру, карта, флэш-карта…). Дополнительно должно быть принято во внимание, что сигнал несущей волны может быть использован, чтобы переносить машиночитаемые электронные данные, такие как используемые при передаче и приеме электронной почты или при осуществлении доступа к сети, такой как Интернет или локальная сеть (LAN). Конечно, специалисты в данной области техники будут отдавать себе отчет, что многие модификации могут быть сделаны по отношению к этой конфигурации, не выходя из объема и сущности заявленного предмета изобретения.
Обращаясь сначала к фиг.1, иллюстрируется блок-схема системы 101, которая реализует интерактивность как часть самого рабочего процесса, в котором данные передаются в и из рабочего процесса, чтобы сформировать интерактивный рабочий процесс. Система 101 применяет компонент 140 интерактивного действия, который моделирует точки приостановки в определении рабочего процесса и является агностическим по отношению к типу приложения так, чтобы заключать в себе приложения веб-служб, консоль, рабочий стол, веб-службы и т.п.
Кроме того, система 101 включает в себя хост-приложение 120, которое взаимодействует с системой 100 рабочего процесса, причем рабочий процесс может моделировать человеческий или системный процесс, который определен как карта действий. Действие является этапом в рабочем процессе и является элементом выполнения, повторного использования и состава рабочего процесса. Карта действий выражает правила, действия, состояния и их связь. В типичном варианте, рабочий процесс работает через механизм/рабочую среду 110 рабочего процесса, и рабочая среда рабочего процесса требует, чтобы внешнее приложение размещало ее согласно нескольким правилам, как изображено посредством хоста 120. Обмен данными между хостом 120 и системой 100 рабочего процесса может принадлежать к и/или описывать деловые документы и другие объекты, которые применяются для или которые облегчают деятельность рабочего процесса, или поток между локальными переменными рабочего процесса, которые используются, чтобы передавать данные с помощью хост-приложения 120.
Например, хост-приложение 120 может взаимодействовать с поставщиком 115 рабочего процесса, ассоциативно связанным с системой 100 рабочего процесса, через базовый класс 117 поставщика рабочего процесса и/или реализацию, ассоциативно связанную с ним. Кроме того, хост 120 может отвечать за ряд дополнительных и критических аспектов, таких как создание одного или более рабочих процессов, размещение вызовов между различными компонентами, как необходимо для правильного выполнения рабочего процесса, и установку механизмов изоляции. Более того, хост 120 может создать множество процессов, чтобы получить преимущество множество центральных процессоров (CPU) в машине по причинам масштабируемости или запустить большое число экземпляров рабочего процесса на ферме машин. Хост 120 может дополнительно управлять политиками, чтобы применять их, когда рабочий процесс подвергается длительному ожиданию, прослушивается на предмет конкретных событий и сообщает их пользователю или администратору, устанавливает время ожидания и повторения для каждого рабочего процесса, показывает счетчики производительности и записывает информацию журнала в целях отладки и диагностики.
Рабочий процесс, ассоциативно связанный с системой 101 рабочего процесса, может связываться с внешним миром через службу, установленную конкретно для этой цели, при этом такая служба может вызывать события, которые будут захватывать управляемые событием активности внутри рабочего процесса. Также служба раскрывает открытые (публичные) способы (методы) рабочего процесса, чтобы вызывать и отправлять данные к хосту.
Как иллюстрировано на фиг.1, компонент 140 интерактивного действия может реализовывать интерактивность как часть самого рабочего процесса, в котором данные передаются в и из рабочего процесса, чтобы сформировать интерактивный рабочий процесс. Компонент 140 интерактивного действия моделирует точки приостановки в определении рабочего процесса. Соответственно, пользовательский ввод и ассоциативно связанное взаимодействие могут предоставляться в рабочий процесс во время различных перерывов интерактивности, которые требуют пользовательского ввода, допуская управляемый/синхронный обмен данными между рабочим процессом и хост-приложением, которое ассоциативно связано с рабочим процессом. Таким образом, в определенные моменты времени в течение выполнения рабочего процесса пользовательский контекст может быть ассоциативно связан с экземпляром рабочего процесса.
Фиг.2 иллюстрирует выполнение рабочего процесса 200 с множеством точек приостановки, которые требуют взаимодействия с пользователем. Точки 212-215 приостановки (1-n, где n является целым) могут быть смоделированы компонентом интерактивного действия, чтобы соответствовать примерам во время исполнения рабочего процесса, в котором рабочий процесс может быть приостановлен для обмена данными с хост-приложением, например. Кроме того, такие точки 212-215 приостановки могут относиться к смене пользователей рабочего процесса. Например, рабочий процесс может управлять пользовательским интерфейсом (UI) на основе состояния рабочего процесса во время приостановки, например, информацией, относящейся к пользователю рабочего процесса.
Рабочий процесс 200 может быть определен в форме расписания (планирования) выполнения в вычислительной системе. Расписание может включать в себя набор действий, имеющих определенный параллелизм, зависимость и атрибуты операций, ассоциативно связанных с ними. Каждое расписание имеет ассоциативно связанное состояние расписания, которое включает в себя определение расписания, текущее местоположение в расписании, также как и активные или живые данные и объекты, ассоциативно связанные с расписанием. В расписании границы транзакции могут существовать на основе группировок действий. В этом отношении операция может заключать в себе отдельные действия или операции или их группы. Действия могут быть сгруппированы в последовательности, которые выполняются последовательным образом, также как и в задачи, в которых действия выполняются одновременно, например. Следовательно, на основе группировок могут быть разрешены атрибуты параллельности для действий и операций в расписании.
Действия соответствуют работе, которая должна быть проделана в рамках расписания, и являются основным элементом, составляющим его. Такие действия могут включать в себя атрибуты, относящиеся ко времени ожидания, параллелизму и компенсации, либо альтернативно, либо в комбинации, в контексте расписания. Например, действие может отправлять внешне созданные стимулы в расписание, таким образом предоставляя возможность внешним программам улучшать состояние расписания. Эти стимулы могут быть событием, сообщением или вызовом защищенного компонента. В случае события запущенное расписание действует как абонент. Конкретные экземпляры расписания смогут выполнить действие, такое как событие, сообщение или вызов защищенного компонента.
Кроме того, действия могут управлять вызовами метода в отношении компонентов. Такие действия в типичном варианте создают компонент (например, создают экземпляр компонента), вызывают метод в отношении экземпляра и впоследствии освобождают ссылку на экземпляр, если он не используется позднее в расписании. Когда приложение выполняет расписание, может быть создан экземпляр механизма планировщика, и загружаются расписание и ассоциативно связанная привязка. Действия, кроме того, могут включать в себя информацию об ожидаемом или фактическом времени окончания или времени задержки. Такая информация может быть осуществлена в определении расписания, когда определяется расписание, и/или может быть предоставлена динамически в рабочей среде на основе исторической или прогнозной информации о времени задержки действия.
Точки 212-215 приостановки могут также указывать моменты "осушения" в рабочем процессе. Так как рабочий процесс может работать в течение часов, дней или недель, рабочая среда 200 может автоматически завершать работающий рабочий процесс и непрерывно сохранять его состояние в точках 212-215 приостановки, когда он был неактивным в течение периода времени. "Осушение", как правило, ссылается на метод выборочного сохранения состояния расписания на носителе хранения на основе рассмотрения времени ожидания. Например, когда действие в расписании предполагает ожидать в течение пяти часов входящее сообщение, состояние расписания может быть перенесено ("высушено") на диск до тех пор, пока не будет принято сообщение. В такой ситуации система может выполнять другие задачи, пока сообщение не будет принято, таким образом, значительно улучшая производительность работы и эффективность системы. Соответственно, пользовательский ввод и ассоциативно связанное взаимодействие могут применяться в рабочем процессе во время различных перерывов интерактивности, которые требуют пользовательского ввода, чтобы позволить управляемый/синхронный обмен данным между рабочим процессом и хост-приложением, которое ассоциативно связано с рабочим процессом. Таким образом, в определенные моменты времени в течение выполнения рабочего процесса пользовательский контекст может быть ассоциативно связан с экземпляром рабочего процесса.
Следующее предоставляет примерное определение компонента интерактивного действия, чтобы приостановить и/или возобновить экземпляр рабочего процесса в точках 212-215 приостановки:
Как указано, класс активности может применять свою собственную управляющую программу в целях блокирования выполнения рабочего процесса, вызывая метод Suspend в отношении службы Interactivity Service. Так можно инициировать распространение InteractionIdentifier, ассоциативно связанного с компонентом Interactive Activity до обработчика в хосте.
Соответственно, может быть предоставлен интерактивный рабочий процесс, который выполняется до определенных точек и предоставляет обратную связь к хост-приложением. Хост-приложение может изменять внешнее представление рабочего процесса на основе состояния приостановки. Тип рабочего процесса может быть определен (например, программным образом или через визуальное инструментальное средство), и хост-приложение подписывается на приостанавливающие события, чтобы обеспечить привязку к выполнению рабочего процесса. Приостанавливающее событие(я) могут затем вызываться и основываться на информации в таком событии (например, информации о текущем пользователе рабочего процесса), внешнее представление вид UI может изменяться. Таким образом, данные могут передаваться в и из класса рабочего процесса, и настроенные признаки могут быть определены для взаимодействия во время работы (например, процесс со строгим определением типов).
Фиг.3 и 4 иллюстрируют отдельные блок-схемы для отчета о расходах с точками приостановки, которые разрешают пользовательский ввод и ассоциативно связанное взаимодействие в течение различных перерывов интерактивности, которые требуют пользовательского ввода, для того чтобы разрешить управляемый и/или синхронный обмен данными между рабочим процессом и хост-приложением, которое ассоциативно связано с рабочим процессом. Блок-схемы 300 и 400 иллюстрируют применение действия SwitchUser и компонента InteractiveActivity в качестве точек приостановки в общем рабочем процессе Expense Reporting.
По существу и в контексте отчета о расходах первоначальный пользователь может инициировать рабочий процесс составления отчета о расходах, а утверждающий пользователь может затем утвердить такой отчет о расходах. Таким образом, процесс может быть абстрагирован в класс рабочего процесса, в котором процесс и класс рабочего процесса работают до точки, когда должен быть задействован утверждающий. В такой точке взаимодействие с первоначальным пользователем останавливается. Утверждающий может затем запустить приложение (например, с другой машины), чтобы запустить рабочий процесс и возобновить экземпляр рабочего процесса с помощью действия, определенного утверждающим (например, утвердить, отклонить и т.п.). Таким образом, данные могут передаваться в и из экземпляра рабочего процесса в точки приостановки в течение времени жизни экземпляра рабочего процесса.
Как показано на фиг.3, блок 310 представляет действие SubmittedER, в котором состояние приостановки указывается для приложения хост-системы, чтобы предоставить предложенный вид отчета о расходах через графический интерфейс (например, специализированная форма), как описано подробно ниже на фиг.5. Кроме того, действие 320 в определении 300 рабочего процесса представляет экземпляр действия SwitchUser, посредством которого предмет изобретения изменяет текущую ассоциативную связь между пользователем, ответственным за выполнение следующего сегмента рабочего процесса, и экземпляром рабочего процесса. Это в типичном варианте гарантирует, что рабочий процесс может быть возобновлен действием утверждения/отклонения, выполненным в контексте выполнения только соответствующего пользователя. Подобные действия 330, 430 представляют экземпляры прерывания InteractiveActivity в соответствии с примерным аспектом предмета изобретения. Подобным образом, этап 420, который обозначен как NewER, иллюстрирует новый отчет о расходах, в котором рабочий процесс становится приостановленным, пока ожидает глобальные данные отчета о расходах, которые должны быть предоставлены в результате пользовательского ввода через графический интерфейс (например, специализированная форма на фиг.5).
Рабочий процесс характеризует приложение для предоставления и утверждения отчетов о расходах, в котором приложение содержит множественные страницы, которые организованы рабочим процессом. В дополнение к различным действиям и конструкциям потока управления рабочий процесс демонстрирует то, как ассоциативно связанный пользователь может быть заменен при предоставлении утверждающему лицу отчета о расходах, например. Как объяснено ранее, во время действия 430 FillER рабочий процесс приостанавливается, и пользователь может продолжить добавлять элементы строк в отчет о расходах. Может также быть включен запрос отображения списка доступных незавершенных рабочих процессов в приложении рабочего процесса.
Например, приложение отчета о расходах может содержать домашнюю страницу, которая перечисляет незавершенные отчеты о расходах, которые были предложены текущим пользователем, и любые отчеты о расходах, ожидающие утверждения пользователем. Такое приложение позволяет создавать новые отчеты о расходах посредством определения информации, такой как назначение отчета о расходах и т.п.; добавления отдельных элементов строк; верификации точности информации. Более того, приложение может отправлять уведомление 460 по электронной почте утверждающему лицу, когда предлагается новый отчет о расходах. Утверждающее лицо может впоследствии просмотреть отчет о расходах и либо утвердить его, либо отклонить его, по окончании чего отправляется сообщение.
Следующее предоставляет примерное определение рабочего процесса Expense Reporting, который включает в себя интерактивность в соответствии с примерным аспектом предмета изобретения.
Фиг.5 иллюстрирует примерный графический интерфейс (например, специализированную форму), которая может применяться в связи с различными аспектами предмета изобретения. Такое приложение отчетности о расходах для потока 510 страниц характеризует веб-приложение для представления и утверждения, например, отчетов о расходах. Приложение содержит множественные страницы, которые организованы рабочим процессом. В добавление к различным действиям и конструкциям потока управления рабочий процесс демонстрирует то, как ассоциативно связанный пользователь может быть заменен. Поток 510 страниц также демонстрирует запрос отображения списка доступных незавершенных (в процессе обработки) рабочих процессов в приложении рабочего процесса. Например, рабочий процесс может управлять пользовательским интерфейсом (UI) на основе состояния рабочего процесса во время приостановки, например, информации, относящейся к пользователю рабочего процесса. Соответственно, обеспечивается интерактивный рабочий процесс, который выполняется до определенных точек и предоставляет обратную связь с ведущим (хостирующим) приложением. Кроме того, ведущее приложение может изменять внешнее представление рабочего процесса на основе состояния приостановки. Как объяснено выше в контексте отчета о расходах, может быть определен тип рабочего процесса (например, программным образом или через визуальное инструментальное средство), и хост-приложение подписывается на приостанавливающие события, чтобы обеспечить привязку к выполнению рабочего процесса. Приостанавливающее событие(я) могут затем вызываться, и основываясь на информации в таком событии (например, информации о текущем пользователе рабочего процесса), может изменяться внешний вид UI. Таким образом, данные могут передаваться в и из класса рабочего процесса, и настроенные признаки могут быть определены для взаимодействия во время работы (например, строго типовой рабочий процесс). Также хост может приказать экземпляру рабочего процесса идентифицировать текущее интерактивное действие, которое заставило рабочий процесс приостановиться и/или прекратить работу.
Фиг.6 иллюстрирует блок-схему системы 600, которая может моделировать точки приостановки в определении рабочего процесса, в котором данные передаются в и из рабочего процесса, чтобы сформировать интерактивный рабочий процесс. В типичном варианте событие приостановки может быть вызвано в экземпляре 640 рабочего процесса, который имеет компонент 610 интерактивного действия, играющего роль его части, чтобы разрешить приостановление в выполнении рабочего процесса либо в терминах времени, либо посредством смены текущего пользователя, например. Рабочий процесс может начать выполнение, выполняя содержащееся в составе StartActivity, и закончиться, когда выполняется StopActivity. В ходе выполнения каждое действие может проверяться, чтобы подтвердить, может ли оно быть выполнено. Если действие не может выполниться, рабочий процесс, например, приостанавливается. Если действие может быть выполнено, вызывается ассоциативно связанный метод Execute, и если метод возвращает успешный результат, переход соответствующего действия используется, чт



