Уровень техники
Рабочий процесс, как правило, является потоком информации и управления в таких организациях. Бизнес непрерывно старается определить, задокументировать и упорядочить такие процессы, чтобы эффективно их выполнять. В бизнес-окружении эти процессы включают в себя продажи и обработку заказов, задачи закупок, контроль и управление материально-производственными запасами, изготовление и контроль производства, отгрузку и прием, кредиторскую задолженность и т.п.
Вычислительные системы и ассоциативно связанное программное обеспечение теперь предоставляют инструментальные средства, с помощью которых коммерческие и другие организации могут усовершенствовать свой рабочий процесс. Программные инструментальные средства могут использоваться, чтобы моделировать рабочие процессы или планировать и идентифицировать "узкие места" и возможные усовершенствования. Кроме того, когда процесс затрагивает обмен данными между людьми, отделами, заводами или даже между отдельными компаниями, вычислительные системы и сети могут использоваться, чтобы осуществить эти обмены. Такие системы и программные инструментальные средства дополнительно способны осуществлять широкомасштабные вычисления и другую обработку данных и информации, которые в типичном варианте ассоциативно связаны с деловой информацией.
Соответственно, управление рабочим процессом включает в себя эффективное управление потоком информации и контроль в бизнес-процессах организации, в которых автоматизация такой обработки информации должна привести ко многим эффективным улучшениям в современном деловом мире. Более того, такая автоматизация управления рабочим процессом теперь позволяет деловым и другим организациям дополнительно улучшить производительность, выполняя операции рабочего процесса в вычислительных системах, включающих в себя глобальные вычислительные сети, такие как Интернет.
Типичное приложение на основе рабочего процесса часто требует, чтобы было удовлетворено множество условий. Например, одним таким условием является возможность принимать решения на основе бизнес-правил. Это может включать в себя простые правила (например, типа решения да-нет на основе результата проверки кредитоспособности), и более сложные правила (например, потенциально большой набор, который должен быть оценен, чтобы принять первоначальное подтверждающее решение). Другим требованием является связи с другим программным обеспечением и другими системами вне границ рабочего процесса. Например, первоначальный запрос может быть принят от одной части приложения, в то время как некоторые аспекты (например, контактирование с кредитной службой) могут требовать связи с помощью других веб-служб или технологий. Дополнительным условием, которое должно быть удовлетворено, является правильное взаимодействие рабочего процесса с пользователями. Например, рабочий процесс должен в типичном варианте допускать отображение самого пользовательского интерфейса или взаимодействие с человеком через другое программное обеспечение. Более того, способность сохранять состояние в течение продолжительности рабочего процесса является другим условием, которое необходимо удовлетворить. Соответственно, создание и выполнение рабочего процесса в программном обеспечении ставит уникальные сложные задачи.
Например, некоторые бизнес-процессы могут занимать часы, дни или недели до завершения, и требуется сохранение информации о текущем состоянии рабочего процесса в течение такой продолжительности времени. Более того, такой вид продолжительного рабочего процесса также будет в типичном варианте связываться с другим программным обеспечением неблокирующим способом, а асинхронная связь может вызвать трудности. В то же время, тогда как моделирование фиксированных взаимодействий между программным обеспечением относительно простое, клиенты имеют склонность непрерывно требовать дополнительной гибкости, такой как способность изменять бизнес-процесс на лету. Управление разнообразными приложениями может дополнительно добавить сложностей, затрагиваемых в создании и управлении рабочим процессом.
Многие приложения для инструментальных средств рабочего процесса являются внутренними по отношению к бизнесу или организации. С приходом связанных в сеть компьютеров, имеющих модемы или другой тип линий связи, вычислительные системы в удаленных местоположениях теперь могут легко связываться друг с другом. Такая улучшенная связь позволяет приложениям рабочего процесса вычислительной системы использоваться между удаленными объектами в организации. Пример будет включать в себя передачу заказа клиента из штаб-квартиры фирмы удаленному периферийному офису продаж для верификации соответствующим менеджером по продажам и возврат результата верификации в штаб-квартиру. Приложения рабочего процесса могут также быть отдельной служебной программой в обработке деловых операций между разными компаниями. В типичном применении две компании, имеющие взаимоотношение покупатель-продавец, могут пожелать автоматизировать формирование и обработку заказов на покупку, отправок изделий, выписку счетов и инкассаций.
Например, вокруг рабочего процесса может быть построено приложение, направленное на конкретную проблему, такую как управление связями с клиентами (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, и если метод возвращает успешный результат, переход соответствующего действия используется, чтобы определить следующее действие. Рабочие процессы могут приостанавливаться по ряду причин, таких как отмена выполнения действия, неспособность действия продолжать выполнение, конкретная задержка, введенная, чтобы отложить следующее выполнение, и смена пользовательского контекста, требующего, чтобы последующее действие выполнялось другим пользователем. После приостановки экземпляр рабочего процесса может быть сохранен/преобразован в последовательную форму в базу данных или эквивалентное хранилище, из которого он впоследствии может быть возвращен, преобразован из последовательной формы и возобновлен. Рабочий процесс может также вводить состояние ошибки, если выполнение действия заканчивается ошибкой, которая не обрабатывается.
Как иллюстрировано на фиг.6, компонент 610 интерактивного действия может вызвать событие через службу 620 интерактивности, которая ассоциативно связана с механизмом/рабочей средой 635 рабочего процесса. Впоследствии рабочий процесс приостанавливается, и хост 630 может обменяться данными (например, получить данные) с экземпляром 640 рабочего процесса. Хост может затем возобновить рабочий процесс через вызов службы 620 интерактивного действия, чтобы возобновить выполнение рабочего процесса. Соответственно, пользовательский ввод и ассоциативно связанное взаимодействие могут применяться в рабочем процессе во время различных перерывов интерактивности, которые требуют пользовательского ввода, чтобы разрешить управляемый/синхронный обмен данными между рабочим процессом и хост-приложением, которое ассоциативно связано с рабочим процессом.
Фиг.7-9 иллюстрируют примерные блок-схемы потока выполнения рабочего процесса в соответствии с аспектом предмета изобретения. В то время как примерный способ иллюстрирован и описан в данном документе как последовательность блоков, представляющих различные события и/или действия, предмет изобретения не ограничивается иллюстрированным порядком таких блоков. Например, некоторые действия или события могут происходить в различных последовательностях и/или одновременно с другими действиями или событиями наряду с последовательностью, проиллюстрированной в данном документе, в соответствии с изобретением. Кроме того, не все проиллюстрированные блоки, события или действия могут требоваться для того, чтобы реализовать методологию в соответствии с предметом изобретения. Кроме того, следует понимать, что примерный способ и другие способы согласно изобретению могут быть осуществлены в ассоциативной связи со способом, иллюстрированным и описанным в данном документе, также как и в ассоциативной связи с другими не иллюстрированными или описанными системами и устройством. Как иллюстрировано на фиг.7, методология (способ) 700 выполняет рабочий процесс 705 и переходит к следующему действию в процессе. Выполнение рабочего процесса может проверять на этапе 710, означает ли действие, которое должно быть выполнено, конец рабочего процесса. Если так, выполнение рабочего процесса заканчивается на этапе 720. Иначе, методология переходит к действию 730, в котором действие, которое должно быть выполнено рабочим процессом, проверяется, чтобы подтвердить, является ли оно интерактивным действием. Если так, рабочий процесс приостанавливается на этапе 740, чтобы допустить взаимодействие с приложением хост-системы, как описано подробно выше. Иначе, методология возвращается к этапу 705, в котором рабочий процесс выполняет текущий этап и переходит к следующему.
Как иллюстрировано на фиг.7 и следом за приостановлением рабочего процесса на этапе 740, поток выполнения переходит к вызову события приостановки в хосте на этапе 750. По существу, как иллюстрировано на фиг.8, пока экземпляр рабочего процесса приостановлен на этапе 860, происходит обмен данными между хостом и рабочим процессом на этапе 862. По существу, данные могут быть переданы в и/или из рабочего процесса. Такое может включать в себя получение данных из экземпляра рабочего процесса на этапе 864 и/или установку данных хостом на этапе 866. Соответственно, пользовательский ввод и ассоциативно связанное взаимодействие могут применяться в рабочем процессе во время различных перерывов интерактивности, которые требуют пользовательского ввода, чтобы разрешить управляемый/синхронный обмен данными между рабочим процессом и хост-приложением, которое ассоциативно связано с рабочим процессом. Таким образом, в определенные моменты времени в течение выполнения рабочего процесса пользовательский контекст может быть ассоциативно связан с экземпляром рабочего процесса.
На этапе 870 может быть выполнена верификация, чтобы проверить, являются ли данные, инициированные хостом, событием возобновления. Если нет, тогда экземпляр рабочего процесса может оставаться в приостановленном состоянии, чтобы продолжить обмен данными, и методология (способ) возвращается к действию 862. Иначе, методология переходит к фиг.9, на которой хост может отправить событие рабочему процессу, чтобы возобновить выполнение на этапе 980. Верификация может выполняться на этапе 982 относительно того, загружен ли рабочий процесс. Если так, рабочий процесс принимает событие возобновления на этапе 986 и впоследствии возвращается к действию 705, чтобы выполнить следующее действие в потоке выполнения. Иначе, и если рабочий процесс не загружен, тогда рабочий процесс загружается на основе идентификационной информации, ассоциативно связанной с ним (например, когда экземпляр рабочего процесса был создан), на этапе 984 и затем переходит к этапу 986 для возобновления рабочего процесса.
Чтобы предоставить контекст для различных аспектов заявленного предмета изобретения, фиг.10 и 11, также как и последующее обсуждение, предназначены, чтобы предоставить краткое общее описание подходящего окружения, в котором могут быть реализованы различные аспекты рассматриваемого предмета изобретения. Несмотря на то, что предмет изобретения был описан выше в общем контексте машинно-исполняемых инструкций компьютерной программы, которая работает на компьютере и/или компьютерах, специалисты в данной области техники будут принимать во внимание, что изобретение также может быть реализовано в сочетании с другими программными модулями. В целом, программные модули включают в себя процедуры, программы, компоненты, структуры данных и т.д., которые выполняют конкретные задачи и/или реализуют конкретные абстрактные типы данных. Более того, специалисты в данной области техники должны принять во внимание, что изобретательные способы могут быть осуществлены на практике с другими конфигурациями компьютерных систем, в том числе однопроцессорными или многопроцессорными компьютерными системами, миниатюрными вычислительными устройствами, универсальными вычислительными машинами, а также персональными компьютерами, "карманными" вычислительными устройствами (например, персональными цифровыми секретарями (PDA), телефонами, наручными часами…), основанных на микропроцессорах или программируемой бытовой или промышленной электронной аппаратурой, и тому подобным. Проиллюстрированные аспекты также могут быть осуществлены на практике в распределенных вычислительных средах, где задачи выполняются удаленными обрабатывающими устройствами, которые связаны через сеть передачи данных. Тем не менее некоторые, если не все, аспекты изобретения могут быть применены на практике на автономных компьютерах. В распределенном вычислительном окружении программные модули могут размещаться и на локальных, и на удаленных устройствах хранения данных.
Со ссылками на фиг.10, типичное окружение 1010 для реализации различных аспектов заявленного предмета изобретения включает в себя компьютер 1012. Компьютер 1012 включает в себя процессор 1014, системную память 1016 и системную шину 1018. Системная шина 1018 соединяет компоненты системы, в том числе (но не только) системную память 1016 с процессором 1014. Процессор 1014 может быть любым из различных доступных процессоров. Архитектуры с двумя микропроцессорами и другие многопроцессорные архитектуры также могут быть использованы в качестве процессора 1014.
Системная шина 1018 может быть любого из нескольких типов структур(ы) шин, в том числе шины памяти или контроллера памяти, периферийной шины или внешней шины и/или локальной шины, используя любую из множества архитектур шин, в том числе (но не только) 11-битную шину, шину промышленного стандарта (ISA), шину микроканальной архитектуры (MCA), расширенную шину ISA (EISA), встроенный интерфейс накопителей (IDE), локальную шину Ассоциации по стандартам в области видеоэлектроники (VLB), шину соединения периферийных компонентов (PCI), универсальную последовательную шину (USB), ускоренный графический порт (AGP), шину Международной ассоциации производителей плат памяти для персональных вычислительных машин (PCMCIA) и шину интерфейса малых вычислительных систем (SCSI).
Системная шина 1016 включает в себя энергозависимое запоминающее устройство 1020 и энергонезависимое запоминающее устройство 1022. Базовая система ввода-вывода (BIOS), содержащая основные процедуры, чтобы передавать информацию между элементами в вычислительной машине 1012, например, при загрузке, сохраняется в энергонезависимом запоминающем устройстве 1022. В качестве иллюстрации, но не ограничения, энергонезависимое запоминающее устройство 1022 может включать в себя постоянное запоминающее устройство (ROM), программируемое ПЗУ (PROM), электрически программируемое ПЗУ (EPROM), электрически стираемое ПЗУ (EEPROM) или флэш-память. Энергозависимое запоминающее устройство 1020 включает в себя оперативное запоминающее устройство (RAM), которое выступает в качестве внешней кэш-памяти. В качестве иллюстрации, но не ограничения, RAM доступно во многих формах, например синхронное ОЗУ (SRAM), динамическое RAM (DRAM), синхронное DRAM (SDRAM), SDRAM с двойной скоростью передачи данных (DDR SDRAM), улучшенное SDRAM (ESDRAM), Synchlink DRAM (SLDRAM) и direct Rambus RAM (DRRAM).
Компьютер 1012 также включает в себя сменный/стационарный, энергозависимый/энергонезависимый носитель хранения данных компьютера. Фиг.10 иллюстрирует, например, накопитель 1024 на дисках. Накопитель 1024 на дисках включает в себя (но не только) такие устройства, как накопитель на магнитных дисках, накопитель на гибких дисках, ленточный накопитель, накопитель Jaz, накопитель Zip, накопитель LS-100, карту флэш-памяти или карту Memory Stick. Помимо этого, накопитель 1024 на дисках может включать в себя носитель хранения данных независимо или в сочетании с другим носителем хранения, в том числе (но не только) накопитель на оптических дисках, например устройство чтения компакт-дисков (CD-ROM), накопитель на записываемых компакт-дисках (CD-R Drive), накопитель на перезаписываемых компакт-дисках (CD-RW Drive) или накопитель чтения универсальных цифровых дисков (DVD-ROM). Чтобы содействовать подключению дисковых запоминающих устройств 1024 к системной шине 1018, в типичном варианте используется съемный или несъемный интерфейс, такой как интерфейс 1026.
Следует принимать во внимание, что фиг.10 описывает программное обеспечение, которое выступает в качестве посредника между пользователями и базовыми вычислительными ресурсами, описанными в надлежащем операционном окружении 1010. Такое программное обеспечение включает в себя операционную систему 1028. Операционная система 1028, которая может быть сохранена на диске 1024, служит для того, чтобы контролировать и распределять ресурсы вычислительной системы 1012. Системные приложения 1030 используют преимущества управления ресурсами операционной системой 1028 посредством программных модулей 1032 и программных данных 1034, сохраненных либо в системном запоминающем устройстве 1016, либо на диске 1024. Следует принимать во внимание, что различные компоненты, описанные в данном документе, могут быть реализованы с различными операционными системами или сочетаниями операционных систем.
Пользователь вводит команды или информацию в компьютер 1012 посредством устройств(а) 1036 ввода. Устройства 1036 ввода включают в себя (но не только) указательное устройство, такое как мышь, шаровой манипулятор, перо, сенсорную панель, клавиатуру, микрофон, джойстик, игровую панель, спутниковую антенну, сканер, плату ТВ-тюнера, цифровую камеру, цифровую видеокамеру, веб-камеру и т.п. Эти и другие устройства ввода подключаются к процессору 1014 через системную шину 1018 посредством интерфейсного порта(ов) 1038. Интерфейсный порт(ы) 1038 включает в себя, например, последовательный порт, параллельный порт, игровой порт и универсальную последовательную шину (USB). Устройство(а) 1040 вывода использует те же типы портов, что и устройство(а) 1036 ввода. Таким образом, например, порт USB может быть использован для того, чтобы предусмотреть ввод в компьютер 1012 и чтобы выводить информацию из компьютера 1012 на устройство 1040 вывода. Адаптер 1042 вывода предусмотрен для того, чтобы проиллюстрировать, что существуют некоторые устройства 1040 вывода, такие как мониторы, динамики и принтеры среди прочих устройств 1040 вывода, которые требуют специальных адаптеров. Адаптеры 1042 вывода включают в себя, в качестве иллюстрации, но не ограничения, видео- и звуковые платы, которые обеспечивают средство соединения между устройством 1040 вывода и системной шиной 1018. Следует заметить, что другие устройства и/или системы устройств предоставляют возможности как ввода, так и вывода, такие как удаленный компьютер(ы) 1044.
Компьютер 1012 может работать в сетевом окружении, используя логические соединения к одному или более удаленным компьютерам, например удаленным компьютерам 1044. Удаленным компьютером(ами) 1044 может быть персональный компьютер, сервер, маршрутизатор, сетевая ПЭВМ, рабочая станция, устройство на базе микропроцессора, одноранговое устройство или другой стандартный сетевой узел и т.п., и типично включает в себя большинство или все элементы, описанные относительно компьютера 1012. В целях краткости, только запоминающее устройство 1046 хранения проиллюстрировано с удаленным компьютером(ами) 1044. Удаленные компьютеры 1044 логически подключены к компьютеру 1012 посредством сетевого интерфейса 1048 и затем физически подключены через коммуникационное соединение 1050. Сетевой интерфейс 1048 заключает в себе сети обмена данными, такие как локальные сети вычислительные (LAN) и глобальные вычислительные сети (WAN). Технологии LAN включают в себя распределенный интерфейс передачи данных по волоконно-оптическим каналам (FDDI), распределенный проводной интерфейс передачи данных (CDDI), Ethernet/IEEE 802,3, Token Ring/IEEE 802,5 и т.п. Технологии WAN включают в себя, но не только, двухточечные каналы связи, сети с коммутацией каналов, такие как цифровые сети с комплексными услугами (ISDN) и их разновидности, сети с коммутацией пакетов и цифровые абонентские линии (DSL).
Коммуникационные соединения 1050 означает аппаратные средства/программное обеспечение, используемое для того, чтобы подключить сетевой интерфейс 1048 к шине 1018. Хотя коммуникационное соединение 1050 показано в целях иллюстративной ясности внутри компьютера 1012, оно также может быть внешним по отношению к компьютеру 1012. Аппаратные средства/программное обеспечение, необходимое для подключения к сетевому интерфейсу 1048, включает в себя (только для типичных целей) внутренние и внешние технологии, например модемы, в том числе модемы на регулярных телефонных линиях, кабельные модемы и DSL-модемы, ISDN-адаптеры и платы Ethernet.
Фиг.11 - схематическая блок-схема примерного вычислительного окружения 1100, которое может быть использовано для реализации рабочего процесса с компонентом интреактивности настоящего изобретения. Система 1100 включает в себя одного или более клиентов 1110. Клиентом(ами) 1110 могут быть аппаратные средства и/или программное обеспечение (к примеру, потоки, процессы, вычислительные устройства). Система 1100 также включает в себя один или более серверов 1130. Сервером(ами) 1130 также могут быть аппаратные средства и/или программное обеспечение (к примеру, потоки, процессы, вычислительные устройства). Серверы 1130, например, могут обеспечивать содержание потоков для выполнения преобразований посредством применения компонентов, описанных в данном документе, например. Одна из возможных связей между клиентом 1110 и сервером 1130 может быть осуществлена в виде пакета данных, адаптированного для передачи между двумя или более вычислительными процессами. Система 1100 включает в себя структуру 1150 обмена данными, которая может быть использована, чтобы облегчить обмен данными между клиентом(ами) 1110 и сервером(ами) 1130. Клиент(ы) 1110 функционально подключены к одному или более запоминающих устройств 1160 данных клиента, которые могут быть использованы, чтобы сохранять информацию локально на клиенте(ах) 1110. Так же сервер(ы) 1130 удобно подключены к одному или более запоминающих устройств 1140 данных сервера, которые могут быть использованы, чтобы сохранять информацию локально на серверах 1130.
То, что было описано в данном документе, включает в себя различные примерные аспекты. Конечно, невозможно описать каждое вероятное сочетание компонентов или методологий в целях описания этих аспектов, но обычный специалист в данной области техники может признать, что многие дополнительные сочетания и перестановки таких вариантов осуществления допустимы. Следовательно, описанные в данном документе аспекты предназначены для того, чтобы охватывать все подобные преобразования, модификации и разновидности, которые попадают под дух и область применения прилагаемой формулы изобретения. Более того, в пределах того, как термин "включает в себя" используется либо в подробном описании, либо в формуле изобретения, этот термин должен быть включающим способом, аналогичным термину "содержит", как "содержит" интерпретируется, когда используется в качестве промежуточного слова в формуле изобретения.
название | год | авторы | номер документа |
---|---|---|---|
ДИНАМИЧЕСКОЕ ПЕРЕПОЗИЦИОНИРОВАНИЕ ПОТОКА РАБОТ КОНЕЧНЫМИ ПОЛЬЗОВАТЕЛЯМИ | 2006 |
|
RU2433463C2 |
ОБРАБОТКА БЕЗОПАСНОСТИ ДЛЯ ВОЗОБНОВЛЕНИЯ RRC ИЗ НЕАКТИВНОГО СОСТОЯНИЯ | 2019 |
|
RU2748679C1 |
РАБОЧИЕ ПОТОКИ, ОРИЕНТИРОВАННЫЕ НА ДАННЫЕ | 2006 |
|
RU2419837C2 |
СИСТЕМЫ И СПОСОБЫ ДЛЯ СОЗДАНИЯ И МОДИФИКАЦИИ СПИСКОВ УПРАВЛЕНИЯ ДОСТУПОМ | 2015 |
|
RU2679179C1 |
РАСЩЕПЛЕННАЯ ЗАГРУЗКА ДЛЯ ЭЛЕКТРОННЫХ ЗАГРУЗОК ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ | 2006 |
|
RU2424552C2 |
ЦЕНТРАЛИЗОВАННОЕ УПРАВЛЕНИЕ ПРОГРАММНО-ОПРЕДЕЛЯЕМОЙ АВТОМАТИЗИРОВАННОЙ СИСТЕМОЙ | 2016 |
|
RU2747966C2 |
ПРОГРАММНО-ОПРЕДЕЛЯЕМАЯ АВТОМАТИЗИРОВАННАЯ СИСТЕМА И АРХИТЕКТУРА | 2016 |
|
RU2729885C2 |
ИНТЕРФЕЙСНЫЙ МОДУЛЬ ДЛЯ ИСПОЛЬЗОВАНИЯ С СЕТЬЮ УСТРОЙСТВ MODBUS И СЕТЬЮ УСТРОЙСТВ FIELDBUS | 2004 |
|
RU2345409C2 |
ПОВЕДЕНИЕ UE ПРИ ОТКЛОНЕНИИ ЗАПРОСА НА ВОЗОБНОВЛЕНИЕ | 2019 |
|
RU2760931C1 |
БЕЗОПАСНОСТЬ В ПРИЛОЖЕНИЯХ СИНХРОНИЗАЦИИ РАВНОПРАВНЫХ УЗЛОВ | 2006 |
|
RU2421799C2 |
Изобретение относится к средствам осуществления рабочего процесса. Технический результат заключается в облегчении работы пользователя с рабочим процессом. Моделируют точки приостановки в рабочем процессе, причем точки приостановки позволяют принимать и встраивать в рабочий процесс пользовательский ввод во время выполнения рабочего процесса так, что позволяют пользователю динамически изменять рабочий процесс во время его выполнения. Сохраняют состояния рабочего процесса при обнаружении, что рабочий процесс был неактивен в течение некоторого периода времени, при этом сохранение рабочего процесса содержит выборочное сохранение информации о состоянии рабочего процесса в соответствии с одним или более рассмотрениями времени ожидания, включающими в себя неактивность рабочего процесса. Осуществляют обмен данными между хостом и рабочим процессом во время приостановки рабочего процесса. 3 н. и 17 з.п. ф-лы, 11 ил.
1. Реализованная компьютером система осуществления интерактивного рабочего процесса, содержащая следующие компоненты:
процессор,
память, содержащую систему рабочего процесса, имеющую компонент интерактивного действия, который моделирует точки приостановки в рабочем процессе, причем точки приостановки позволяют принимать и встраивать в рабочий процесс пользовательский ввод во время выполнения рабочего процесса так, что компонент интерактивного действия позволяет пользователю динамически изменять рабочий процесс во время его выполнения, при этом система рабочего процесса сконфигурирована для сохранения состояния рабочего процесса при обнаружении, что рабочий процесс был неактивен в течение некоторого периода времени, при этом сохранение рабочего процесса содержит выборочное сохранение информации о состоянии рабочего процесса в соответствии с одним или более рассмотрениями времени ожидания, включающими в себя неактивность рабочего процесса; и
хост, который обменивается данными с рабочим процессом в точках приостановки.
2. Реализованная компьютером система по п.1, в которой точки приостановки имеют перерывы интерактивности для пользовательского ввода.
3. Реализованная компьютером система по п.1, в которой компонент интерактивного действия переключается между множеством пользователей.
4. Реализованная компьютером система по п.2, в которой рабочий процесс является загружаемым на основе идентификационной информации, ассоциативно связанной с ним.
5. Реализованная компьютером система по п.1, в которой точки приостановки ассоциативно связаны с изменяемым внешним видом пользовательского интерфейса (UI) рабочего процесса.
6. Реализованная компьютером система по п.5, в которой UI управляется на основе состояния рабочего процесса во время приостановки.
7. Реализованная компьютером система по п.5, в которой рабочий процесс является возобновляемым посредством действия хост-системы.
8. Реализованная компьютером система по п.5, в которой система рабочего процесса имеет класс поставщика рабочего процесса для связи с хостом.
9. Реализованный компьютером способ реализации интерактивного рабочего процесса, содержащий следующие этапы, на которых:
встречают в работе компьютерной системы действие, которое приостанавливает рабочий процесс в точке приостановки, причем точки приостановки позволяют принимать и встраивать в рабочий процесс пользовательский ввод во время выполнения рабочего процесса так, что компонент интерактивного действия позволяют пользователю динамически изменять рабочий процесс во время его выполнения, при этом система рабочего процесса сконфигурирована сохранять состояние рабочего процесса при обнаружении, что рабочий процесс был неактивен в течение некоторого периода времени, при этом сохранение рабочего процесса содержит выборочное сохранение информации о состоянии рабочего процесса в соответствии с одним или более рассмотрениями времени ожидания, включающими в себя неактивность рабочего процесса,
обмениваются данными между хостом и рабочим процессом во время приостановки рабочего процесса.
10. Реализованный компьютером способ по п.9, дополнительно содержащий этап, на котором устанавливают данные посредством хоста.
11. Реализованный компьютером способ по п.9, дополнительно содержащий этап, на котором отправляют событие посредством хоста рабочему процессу, чтобы возобновить выполнение.
12. Реализованный компьютером способ по п.9, содержащий этап, на котором загружают рабочий процесс на основе идентификационной информации экземпляра рабочего процесса.
13. Реализованный компьютером способ по п.9, дополнительно содержащий этап, на котором выполняют верификацию, являются ли данные событием возобновления.
14. Реализованный компьютером способ по п.9, дополнительно содержащий этап, на котором вызывают событие приостановки в хосте.
15. Реализованный компьютером способ по п.14, дополнительно содержащий один из этапов из: изменения и модификации UI на основе события приостановки.
16. Реализованный компьютером способ по п.14, дополнительно содержащий этап, на котором подают пользовательский ввод данных в рабочий процесс.
17. Реализованный компьютером способ по п.14, дополнительно содержащий этап, на котором подписывают хост на приостанавливающие события в рабочем процессе.
18. Реализованный компьютером способ по п.14, дополнительно содержащий этап, на котором определяют состояние рабочего процесса через запрашивание экземпляра рабочего процесса идентифицировать интерактивное действие, которое вызвало приостановление рабочего процесса.
19. Реализованный компьютером способ по п.14, дополнительно содержащий этап, на котором изменяют внешний вид рабочего процесса на основе точек приостановки.
20. Реализованная компьютером система осуществления интерактивного рабочего процесса, содержащая следующие компоненты:
средство для обработки выполняемых компьютером инструкций,
средство для сохранения выполняемых компьютером инструкций, причем упомянутые инструкции формируют:
средство для приостановки рабочего процесса в точке приостановки, причем точки приостановки позволяют принимать и встраивать в рабочий процесс пользовательский ввод во время выполнения рабочего процесса так, что компонент интерактивного действия позволяют пользователю динамически изменять рабочий процесс во время его выполнения, при этом система рабочего процесса сконфигурирована для сохранения состояния рабочего процесса при обнаружении, что рабочий процесс был неактивен в течение некоторого периода времени, при этом упомянутое сохранение содержит выборочное сохранение информации о состоянии рабочего процесса в соответствии с одним или более рассмотрениями времени ожидания, включающими в себя неактивность рабочего процесса, при этом система рабочего процесса дополнительно позволяет принимать пользовательский ввод для этого рабочего процесса, в то время как информация о состоянии рабочего процесса является выборочно сохраненной; и
средство для обмена данными между хостом и рабочим процессом во время приостановки рабочего процесса,
средство для возобновления рабочего процесса.
US 6397191 B1, 28.05.2002 | |||
US 6151583, 21.11.2000 | |||
US 6473794 B1, 29.10.2002 | |||
US 5999910, 07.12.1999 | |||
СПОСОБ ОПТИМИЗАЦИИ ПАРАЛЛЕЛЬНОЙ ОБРАБОТКИ ИНФОРМАЦИИ ДЛЯ МИНИМИЗАЦИИ ЕЕ ВРЕМЕНИ | 2000 |
|
RU2191425C2 |
Авторы
Даты
2012-03-20—Публикация
2006-12-07—Подача