ОБЕСПЕЧЕНИЕ ВОЗМОЖНОСТЕЙ КОНФИГУРИРУЕМОГО ТЕХНОЛОГИЧЕСКОГО ПРОЦЕССА
PROVIDING CAPABILITIES OF CONFIGURED TECHNOLOGICAL PROCESS

УРОВЕНЬ ТЕХНИКИ
[0001] Поскольку увеличился объем данных, которые генерируются и используются программами программного обеспечения, сложность администрирования и анализа таких данных также увеличилась в по меньшей мере некоторых ситуациях. Кроме того, поскольку программы все чаще исполняются онлайн и в других сетевых окружениях, данные для администрирования и анализа становятся более доступными в различных местоположениях и различными способами, что может повысить сложность администрирования и анализа таких данных. Таким образом, в администрировании и анализе данных, которые генерируются и используются программами программного обеспечения, существуют различные проблемы.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0002] Фиг. 1 иллюстрирует пример варианта осуществления службы конфигурируемого технологического процесса, которая обеспечивает функциональные возможности для обеспечения удаленным клиентам возможности создания, конфигурирования и исполнения определенных технологических процессов, которые манипулируют исходными данными определенными способами.
[0003] Фиг. 2А-2В иллюстрируют примеры использования определенного технологического процесса для манипулирования исходными данными конкретными способами в конкретных ситуациях.
[0004] Фиг. 3 представляет собой блок-схему, иллюстрирующую примерный вариант осуществления вычислительной системы, сконфигурированной для обеспечения службы конфигурируемого технологического процесса, которая администрирует использование определенных технологических процессов для поддерживаемых клиентских систем.
[0005] Фиг. 4 иллюстрирует примерный вариант осуществления блок-схемы последовательности операций для процедуры Службы Конфигурируемого Технологического процесса.
[0006] Фиг. 5 иллюстрирует примерный вариант осуществления блок-схемы последовательности операций для процедуры Рабочего Процесса Компонента Технологического Процесса.
ПОДРОБНОЕ ОПИСАНИЕ
[0007] В данной заявке описаны приемы обеспечения клиентов доступом к функциональным возможностям для создания, конфигурирования и исполнения определенных технологических процессов, которые манипулируют исходными данными определенными способами, например, под управлением службы конфигурируемого технологического процесса, которая доступна для многочисленных удаленных клиентов. В по меньшей мере некоторых вариантах осуществления удаленный клиент может взаимодействовать со службой конфигурируемого технологического процесса по одной или более сетям общего пользования для того, чтобы создавать и конфигурировать определенный технологический процесс, который обеспечивается службой конфигурируемого технологического процесса для использования клиентом, причем такой определенный технологический процесс может, например, включать в себя многочисленные взаимосвязанные компоненты технологического процесса, каждый из которых сконфигурирован для выполнения одного или более точно определенных операций манипулирования определенными типами входных данных. После того, как клиент сконфигурировал такой определенный технологический процесс, служба конфигурируемого технологического процесса дополнительно может исполнить определенный технологический процесс в течение одного или более периодов времени одним или более способами, например в некоторых ситуациях посредством предоставления многочисленных вычислительных узлов, обеспеченных службой конфигурируемого технологического процесса для того, чтобы каждый из них реализовывал по меньшей мере один из компонентов технологического процесса для определенного технологического процесса, и посредством извлечения определенных типов исходных данных и их обеспечения компонентам технологического процесса определенными способами. Таким образом, в по меньшей мере некоторых вариантах осуществления некоторые или все описанные приемы автоматически выполняются вариантами осуществления службы конфигурируемого технологического процесса, например, могут быть реализованы одним или более модулями программного обеспечения, исполняемыми на одной или более сконфигурированных вычислительных системах, как более подробно описано ниже по тексту.
[0008] Как отмечалось выше, определенный технологический процесс может включать в себя многочисленные компоненты технологического процесса, которые могут быть многочисленных типов в по меньшей мере некоторых вариантах осуществления, в том числе имеющие один или более компонентов источника данных технологического процесса, которые соответствуют входным данным для определенного технологического процесса, один или более компонентов манипулирования данными технологического процесса, которые соответствуют определенным преобразованиям данных или другим манипуляциям, которые должны быть выполнены над данными, и один или более компонентов назначения данных технологического процесса, которые соответствуют обеспечению выходных данных из определенного технологического процесса. Кроме того, могут быть определены взаимосвязи между компонентами технологического процесса, которые соответствуют потокам данных между компонентами технологического процесса, так что данные, выводимые из первого компонента, могут быть поданы в качестве ввода во второй компонент, причем эта связь представлена как соединение от первого компонента ко второму компоненту. В по меньшей мере некоторых вариантах осуществления и ситуациях служба конфигурируемого технологического процесса может обеспечивать группу предопределенных компонентов технологического процесса, которую клиент может выбирать и использовать в определенном технологическом процессе клиента, необязательно после конфигурирования одним или более способами. Также в по меньшей мере некоторых вариантах осуществления и ситуациях, служба конфигурируемого технологического процесса может обеспечивать клиенту возможность подавать или иным образом определять некоторые или все компоненты технологического процесса, которые должны быть использованы в определенном технологическом процессе клиента.
[0009] Каждый компонент источника данных технологического процесса, который определен для технологического процесса, может соответствовать получению данных из указанного источника данных и может включать в себя такую информацию, как место хранения для данных, и, необязательно, дополнительную информацию о доступе, связанную с местом хранения (например, информацию для входа, ассоциированную с клиентом; информацию о конкретном поиске или другую информацию для использования для идентификации данных, которые должны быть использованы, например, связанную с метаданными и/или содержанием данных и т.д.). В некоторых вариантах осуществления служба конфигурируемого технологического процесса может обеспечивать внутренние места хранения для использования клиентами при хранении их исходных данных, с конкретным источником данных, соответствующим такому внутреннему месту хранения, в то время как в других вариантах осуществления и ситуациях конкретный источник данных может быть внешним по отношению к службе конфигурируемого технологического процесса - например, одна или более доступных по сети систем хранения, которые обеспечиваются или иным образом управляются клиентом, одна или более служб онлайн хранения, одна или более служб генерации данных онлайн и т.д. Неисключительный список примеров служб онлайн хранения, которые могут быть использованы, включает в себя следующие: Amazon Simple Storage Service (S3), которая хранит объектные данные различных типов; Amazon Relational Database Service (RDS), которая обеспечивает функциональные возможности реляционной базы данных; Amazon SimpleDB, которая обеспечивает функциональные возможности для хранения пар ключ-значение; служба Amazon DynamoDB, которая обеспечивает функциональные возможности базы данных NoSQL; Amazon Elastic Block Store (EBS), которая обеспечивает доступ к RAW-устройствам блочного хранения данных, в том числе для того, чтобы обеспечить возможность монтирования виртуального локального блочного устройства хранения в целевой компьютерной системе; и т.д. Неисключительный список примеров служб генерации данных онлайн включает в себя RSS-канал, службу Amazon Cloudwatch, которая обеспечивает функциональные возможности мониторинга исполняемых приложений и служб, и генерирует соответствующую информацию, и т.д. Таким образом, источники данных могут быть различных видов, например реляционная или другая база данных (например, распределенная база данных HBase с открытым исходным кодом, распределенная база данных BigTable, системы баз данных MongoDB, распределенная система администрирования баз данных Apache Cassandra и т.д.), хэш-таблицы, файловая система, хранилище объектов и т.д., необязательно реализованными распределенным способом, и неисключительный список примеров групп данных, которые могут быть получены из источника данных, включает в себя файл (например, журнал веб-сервера), строку или другую запись в базе данных, сохраненный объект данных, потоковую группу данных и т.д.
[0010] Таким образом, в некоторых ситуациях и вариантах осуществления конкретный определенный технологический процесс может получать и использовать данные от многочисленных источников данных, при этом некоторые или все из источников данных необязательно являются внешними по отношению к службе конфигурируемого технологического процесса. Кроме того, служба конфигурируемого технологического процесса может необязательно предопределять один или более типов компонентов источника данных технологического процесса, например для соответствия конкретному механизму внутреннего хранения службы конфигурируемого технологического процесса, для соответствия одной или более конкретным службам онлайн хранения (например, службы онлайн хранения, которые интегрированы с или иным образом связаны со службой конфигурируемого технологического процесса, или которые наоборот являются несвязанными со службой конфигурируемого технологического процесса) и т.д. Подобным образом клиент может необязательно определять один или более компонентов источника данных технологического процесса, например для соответствия специфическому для клиента месту хранения, службе онлайн хранения без предопределенного компонента источника данных технологического процесса и т.д.
[0011] Каждый компонент манипулирования данными технологического процесса, который определяется для технологического процесса, может соответствовать выполнению одного или более определенных преобразований данных или других манипуляций над данными, которые вводятся в компонент манипулирования данными технологического процесса. Кроме того, вывод из компонента манипулирования данными технологического процесса может быть обеспечен компоненту назначения данных технологического процесса, который должен быть обеспечен для клиента, или вместо этого может быть промежуточными данными, которые обеспечиваются следующему компоненту манипулирования данными технологического процесса, например, с помощью одного или более электронных сообщений, посредством сохранения промежуточных данных в месте хранения, доступном следующему компоненту манипулирования данными технологического процесса (например, используя одно или более мест хранения, обеспечиваемых службой конфигурируемого технологического процесса) и т.д. Определенные манипулирования данными могут быть различных видов, в том числе и для выполнения определенного типа вычисления над одной или более группами входных данных, для объединения многочисленных групп входных данных одним или более способами, для выбора подмножества из одной или более групп входных данных, для перемещения данных из одного места хранения в другое и т.д. Неисключительный список примерных манипуляций данными включает в себя выполнение распределенного копирования данных, выполнение одного или более преобразований SQL (структурированного языка запросов), выполнение одной или более функций map и/или reduce в пределах архитектуры Map-Reduce (например, для использования в рамках службы Amazon Elastic MapReduce), использование научного или математического пакета (например, Matlab, Mathematica и др.), исполнение поставляемого клиенту сценария или другой программы и т.д. Таким образом, в некоторых ситуациях и вариантах осуществления конкретный определенный технологический процесс может выполнять многочисленные операции манипулирования данными с помощью многочисленных определенных компонентов манипулирования данными технологического процесса, используя предопределенные и/или определенные клиентом компоненты манипулирования данными технологического процесса.
[0012] Каждый компонент назначения данных технологического процесса, который определяется для технологического процесса, может соответствовать обеспечению выходных данных из определенного технологического процесса в одно или более мест хранения и/или одним или более способами. Типы мест хранения, используемые компонентами назначения данных технологического процесса (и соответствующая информация, хранимая для таких компонентов назначения данных технологического процесса), могут быть аналогичными или такими же, как для компонентов источника данных технологического процесса в по меньшей мере некоторых вариантах осуществления, в том числе для использования мест хранения, которые являются внутренними и/или внешними по отношению к службе конфигурируемого технологического процесса. Кроме того, в по меньшей мере некоторых вариантах осуществления и ситуациях конкретные компоненты назначения данных технологического процесса могут включать в себя подготовку и обеспечение выходных данных конкретными способами, например для генерации конкретных типов отчетов, для отправки выходных данных с помощью одного или более типов определенных электронных средств связи, и т.д. Таким образом, в некоторых ситуациях и вариантах осуществления конкретный определенный технологический процесс может обеспечивать многочисленные типы выходных данных многочисленными способами с помощью многочисленных определенных компонентов назначения данных технологического процесса, используя предопределенные и/или определенные клиентом компоненты назначения данных технологического процесса.
[0013] Кроме того, в различных вариантах осуществления клиент различными способами может определять технологический процесс. Например, вариант осуществления службы конфигурируемого технологического процесса может обеспечивать один или более интерфейсов для использования клиентом, например, определенный GUI (“графический пользовательский интерфейс”), определенный API (“интерфейс прикладного программирования”), и/или определенный CLI (“интерфейс командной строки”). При использовании обеспеченного GUI пользователь, представляющий клиента, например, может использовать визуальный редактор для точного определения конкретных компонентов технологического процесса для определенного технологического процесса, и дополнительно может точно определять взаимосвязи между конкретными компонентами технологического процесса, соответствующими потокам данных - в по меньшей мере некоторых таких вариантах осуществления, причем служба конфигурируемого технологического процесса может представлять определенный технологический процесс в виде графа, который логически представляет технологический процесс, с различными узлами графа, соответствующими конкретным компонентам технологического процесса. Фиг. 2А обеспечивает дополнительные пояснительные подробности относительно примера такого графа технологического процесса.
[0014] Служба конфигурируемого технологического процесса может дополнительно реализовывать определенный технологический процесс для клиента различными способами и в различные периоды времени. В некоторых вариантах осуществления, каждый раз, когда должен быть использован определенный технологический процесс, служба конфигурируемого технологического процесса создает экземпляр физической копии логического графа, представляющего определенный технологический процесс, например, посредством использования многочисленных вычислительных узлов, каждый из которых реализует по меньшей мере один компонент технологического процесса для определенного технологического процесса. В частности, в по меньшей мере некоторых вариантах осуществления некоторые или все вычислительные узлы предоставляются службой конфигурируемого технологического процесса для конфигурирования этих вычислительных узлов для реализации конкретных компонентов технологического процесса (например, для загрузки соответствующего программного обеспечения и/или данных на эти вычислительные узлы) таким образом, чтобы каждый из них исполнял рабочий процесс рабочей нагрузки, соответствующий каждому такому реализованному компоненту технологического процесса. Вычислительные узлы могут быть выполнены различным образом в по меньшей мере некоторых вариантах осуществления, в том числе каждый из них в виде отдельной физической компьютерной системы, отдельной виртуальной машины (например, одной из многочисленных виртуальных машин, размещенных на физической компьютерной системе), группы из многочисленных физических компьютерных систем, которые работают распределенным образом, и т.д. В некоторых вариантах осуществления некоторые или все такие вычислительные узлы, используемые для определенного технологического процесса, могут быть выбраны из множества вычислительных узлов, обеспечиваемых службой конфигурируемого технологического процесса для использования клиентами. Кроме того, некоторые или все такие вычислительные узлы могут обеспечиваться или иным образом управляться клиентом и/или могут обеспечиваться одной или более службами онлайн исполнения, вместо или в дополнение к вычислительным узлам, обеспечиваемым службой конфигурируемого технологического процесса. Неисключительный список примерных служб онлайн исполнения, которые могут быть использованы включает в себя службу исполнения программ Amazon Elastic Compute Cloud (“EC2”), службу Amazon Elastic MapReduce для выполнения распределенных Map-Reduce операций (например, посредством использования кластера вычислительных систем от службы для представления или реализации вычислительного узла для службы конфигурируемого технологического процесса) и т.д. Кроме того, в некоторых вариантах осуществления, когда конкретный определенный технологический процесс должен быть реализован множество раз, служба конфигурируемого технологического процесса может поддерживать предоставление и доступность некоторых или всех вычислительных узлов для определенного технологического процесса между двумя или более такими периодами времени реализации определенного технологического процесса (например, в соответствии с инструкциями от клиента, основанными на автоматическом определении службой конфигурируемого технологического процесса, и т.д.), в то время как в других вариантах осуществления может освобождать некоторые или все такие вычислительные узлы, чтобы сделать их доступными после реализации и обеспечения тех же самых типов предоставления вычислительных узлов (необязательно различных вычислительных узлов) для последующей реализации.
[0015] Определенный технологический процесс дополнительно может иметь дополнительные типы ассоциированной информации в по меньшей мере некоторых ситуациях и вариантах осуществления. Например, клиент может точно определять информацию, которая указывает, когда следует реализовать определенный технологический процесс, например, на основе инструкции клиента на немедленную реализацию, посредством планирования будущей реализации в один или более определенных периодов времени в будущем, посредством планирования одной или более будущих реализаций, когда один или более определенных критериев удовлетворены (например основываясь по меньшей мере частично на доступности конкретных исходных данных) и т.д. Определенные критерии могут быть точно определены различными способами, например, быть ассоциированы с конкретными компонентами технологического процесса или, наоборот, с определенным технологическим процессом в целом. Например, конкретный компонент технологического процесса может иметь определенные критерии предварительного условия для оценки для определения того, когда следует исполнять компонент технологического процесса, и/или может иметь определенные критерии постусловия для оценки, когда следует завершить исполнение и/или обеспечить созданные данные (например, следующему компоненту технологического процесса, промежуточному месту хранения и т.д.). В некоторых вариантах осуществления и ситуациях определенный технологический процесс может дополнительно иметь один или более ассоциированных аварийных сигналов, которые могут быть использованы для обеспечения уведомления клиенту (или для выполнения других действий), когда одно или более точно определенных критериев удовлетворяются или не удовлетворяются (например, если определенный технологический процесс не реализовывается в конкретный период времени, например, если конкретные исходные данные не являются доступными).
[0016] Служба конфигурируемого технологического процесса дополнительно может быть платной службой в по меньшей мере некоторых вариантах осуществления, так что клиенты службы конфигурируемого технологического процесса являются потребителями, которые платят плату службе конфигурируемого технологического процесса за по меньшей мере некоторые из функциональных возможностей, обеспечиваемых службой конфигурируемого технологического процесса. Кроме того, когда одна или более служб онлайн хранения и/или служб онлайн исполнения используются службой конфигурируемого технологического процесса в рамках реализации конкретного определенного технологического процесса для конкретного клиента, такие другие службы также, необязательно, могут взимать плату за такое использование либо с помощью службы конфигурируемого технологического процесса, либо с помощью непосредственного отнесения ее на клиента.
[0017] Таким образом, использование службы конфигурируемого технологического процесса может обеспечивать различные преимущества в различных вариантах осуществления и ситуациях, в том числе для обеспечения возможности клиенту планировать сбор данных с многочисленных источников в конкретные периоды времени, или, иначе, когда удовлетворены конкретные критерии, выполнения определенных типов операций манипулирования данными над исходными данными и для обеспечения выходных данных, создаваемых определенным технологическим процессом, различными способами. Дополнительные преимущества описаны в других местах настоящей заявки, и в остальных случаях будут понятны специалистам в данной области техники.
[0018] С целью пояснения ниже по тексту описываются некоторые варианты осуществления, в которых специфичные примеры определения и реализации технологических процессов обеспечены специфическими способами, в том числе относительно специфичных типов данных, специфичных типов операций манипулирования данными и специфичных типов служб хранения и служб исполнения. Эти примеры обеспечены с целью пояснения и для краткости изложения упрощены, причем приемы, используемые в данном изобретении, могут быть использованы в широком спектре других ситуаций, некоторые из которых рассмотрены ниже по тексту, и эти приемы не ограничены использованием с конкретными типами данных, устройств хранения или других устройств, вычислительных систем или компоновок вычислительной системы.
[0019] Фиг. 1 представляет собой схему сети, которая иллюстрирует примерный вариант осуществления службы 110 конфигурируемого технологического процесса, которая администрирует создание и исполнение определенных технологических процессов для различных клиентов службы конфигурируемого технологического процесса. В рамках реализации определенного технологического процесса служба 110 конфигурируемого технологического процесса дополнительно предоставляет конкретные вычислительные узлы для того, чтобы каждый из них выполнял точно определенные действия, соответствующие определенному технологическому процессу. В некоторых вариантах осуществления служба 110 конфигурируемого технологического процесса необязательно обеспечивает группу вычислительных узлов 140, на которых могут быть исполнены определенные технологические процессы для клиентов. В других вариантах осуществления некоторые или все вычислительные узлы, используемые службой конфигурируемого технологического процесса, могут быть обеспечены внешне по отношению к службе конфигурируемого технологического процесса, например, клиентом, от имени которого реализуется определенный технологический процесс, одной или более службами онлайн исполнения, и т.д. Кроме того, в некоторых вариантах осуществления служба 110 конфигурируемого технологического процесса необязательно включает в себя один или более узлов 150 хранения, на которых могут быть сохранены данные для содействия исполнению определенных технологических процессов. Например, узлы 150 хранения, если присутствуют, могут быть использованы для хранения данных промежуточных результатов, которые создаются во время исполнения определенного технологического процесса, а в некоторых вариантах осуществления дополнительно могут быть использованы для хранения исходных данных, которые обеспечиваются определенному технологическому процессу и/или окончательных выходных данных, создаваемых определенным технологическим процессом. Хотя это и не показано на Фиг. 1, служба конфигурируемого технологического процесса может быть реализована с использованием одной или более сконфигурированных вычислительных систем, как более подробно описано применительно к Фиг. 3, и в других местах настоящей заявки.
[0020] Фиг. 1 дополнительно иллюстрирует одну или более сетей 190, а также различные клиентские вычислительные системы 160, с помощью которых клиенты службы 110 конфигурируемого технологического процесса могут взаимодействовать со службой 110 для определения и исполнения технологических процессов. Сеть(и) 190 с Фиг. 1 может включать в себя любую подходящую сеть или комбинацию сетей, в том числе интранет, Интернет, одну или более частных сетей с доступом в и/или из Интернета, сотовую сеть, локальную сеть, или любую другую такую сеть или их комбинацию. Связи по сетям могут быть обеспечены посредством проводного или беспроводного соединений и их комбинаций.
[0021] В некоторых вариантах осуществления служба 110 конфигурируемого технологического процесса может обеспечивать один или оба из GUI (не показан) и/или API (не показан), например, для обеспечения клиентам возможности выполнения различных взаимодействий со службой 110. Например, представитель-пользователь (не показан) конкретного клиента может локально взаимодействовать с одной из клиентских вычислительных систем 160 для того, чтобы побуждать возникновение дополнительных взаимодействий со службой 110 конфигурируемого технологического процесса по сети 190. Например, пользователь может взаимодействовать с модулем 120 редактора технологического процесса службы конфигурируемого технологического процесса, с помощью которого пользователь может определить один или более технологических процессов, представляющих интерес для клиента. В рамках взаимодействий с пользователем, служба 110 конфигурируемого технологического процесса может хранить различную информацию 112 клиента о клиенте, и необязательно представителе-пользователе, а также может хранить конкретное определение недавно определенного технологического процесса для клиента как часть информации 114. В некоторых вариантах осуществления определение конкретного технологического процесса может включать в себя действия пользователя по выбору одного или более определенных компонентов технологического процесса и точному определению взаимодействий между этими компонентами технологического процесса, например, посредством использования одного или более предопределенных обеспечиваемых системой определений 116 компонентов технологического процесса - в других вариантах осуществления служба 110 конфигурируемого технологического процесса может не обеспечивать любые такие обеспечиваемые системой предопределенные компоненты технологического процесса. В рамках определения нового технологического процесса, пользователь может дополнительно точно определять одно или более местоположений источника, с которых исходные данных должны быть извлечены и использованы для определения технологического процесса, и одно или более местоположений назначения, в которые будут обеспечиваться данные, которые создаются определенным технологическим процессом. Различная информация 112, 114, и 116, используемая службой 110 конфигурируемого технологического процесса может дополнительно быть сохранена в одной или более системах, которые поддерживают или обеспечивают службу 110 конфигурируемого технологического процесса, например, базе данных службы конфигурируемого технологического процесса, хотя такие системы не иллюстрируются применительно к Фиг. 1.
[0022] Кроме того, в некоторых вариантах осуществления представитель-пользователь клиента может необязательно определять один или более новых компонентов технологического процесса, как часть определения нового технологического процесса, и в этом случае такие определяемые клиентом компоненты технологического процесса могут дополнительно иметь информацию определения, хранящуюся в информации 116 в по меньшей мере некоторых вариантах осуществления. В то время как в некоторых вариантах осуществления определяемый клиентом технологический процесс и любые определяемые клиентом компоненты технологического процесса могут быть рассмотрены как личные, если клиентом точно не определено иное (например, быть доступными или иным образом видимыми только для этого клиента, до тех пор, пока точно не определено другое), в других вариантах осуществления и ситуациях вместо этого, при точно определенных обстоятельствах по меньшей мере некоторая такая специфичная для клиента информация может стать доступной другим клиентам, например, для того, чтобы обеспечить другим клиентам возможность использования некоторых или всех определенных компонентов технологического процесса клиента и/или технологических процессов (например, на платной основе или в виде других компенсаций, обеспечиваемых клиенту, который определил такую информацию, в том случае, если клиент, который определил такую информацию, одобряет использование другими лицами, и т.д.). Аналогичным образом, исходные данные, используемые определенным технологическим процессом клиента и конечные выходные данные, создаваемые определенным технологическим процессом клиента, могут в по меньшей мере некоторых вариантах осуществления быть рассмотрены как личные для этого клиента, если точно не определено иное, хотя в других вариантах осуществления некоторые или все такие исходных данных и/или конечные выходные данные при точно определенных обстоятельствах наоборот могут стать доступными другим клиентам (например, на платной основе или в виде другой компенсации клиенту, с которым эти данные ассоциированы, если клиент, ассоциированный с такой информацией, одобряет использование другими лицами, и т.д.).
[0023] Когда клиент указывает одно или более мест хранения, из которых могут быть получены исходные данные и/или в которые могут быть обеспечены конечные выходные данные для определенного технологического процесса, такие места хранения могут иметь различные формы в различных вариантах осуществления, как более подробно описано в другом месте настоящей заявки. В качестве одного примера в по меньшей мере некоторых вариантах осуществления служба конфигурируемого технологического процесса может быть интегрирована с или иным образом объединена с одной или более конкретными необязательными службами 145 онлайн хранения, например, для формирования единой системы 105 (например, единой системы, которая оперируется единой сущностью). Если это так, то могут быть выполнены взаимодействия 147 с такими необязательными службами 145 онлайн хранения для извлечения исходных данных и/или для сохранения конечных выходных данных. Кроме того в по меньшей мере некоторых вариантах осуществления данные промежуточных результатов, которые генерируются во время исполнения технологического процесса, могут быть сохранены аналогичным образом в таких службах 145 онлайн хранения, например, могут быть созданы первой частью определенного технологического процесса и в дальнейшем к ним может быть осуществлен доступ и их использование второй определенной частью технологического процесса, или в качестве дополнения к или вместо одного или более необязательных узлов 150 хранения. Кроме того в по меньшей мере некоторых вариантах осуществления и ситуациях, одна или более служб 170 онлайн хранения доступны по сети 190 для клиентской вычислительной системы 160 и для службы 110 конфигурируемого технологического процесса, и могут быть использованы аналогичным образом по сети(ям) 190, или дополнительно или вместо некоторых или всех необязательных служб 145 онлайн хранения. Кроме того в по меньшей мере некоторых вариантах осуществления и ситуациях, конкретный клиент может обеспечивать одну или более специфичных для клиента систем хранения или других мест хранения, используя одну или более других вычислительных систем 185, которые можно использовать по сети(ям) 190 аналогичным образом.
[0024] После того, как клиент выполнил взаимодействие со службой конфигурируемого технологического процесса для определения технологического процесса, клиент может дополнительно взаимодействовать с модулем 130 механизма технологического процесса службы конфигурируемого технологического процесса для инициализации исполнения определенного технологического процесса. Исполнение конкретного технологического процесса может быть инициировано различными способами, например, выполняться сразу же после соответствующей инструкции от клиента, возникать в точно определенный момент времени в будущем или когда удовлетворяются другие точно определенные критерии (например, для одного или более определенных предварительных условий), что в будет инициировать исполнение технологического процесса и т.д. Как и в модуле 120 редактора технологического процесса, модуль 130 механизма технологического процесса в некоторых вариантах осуществления может обеспечить GUI-интерфейс и/или API-интерфейс для использования клиентами. Когда инициируется исполнение определенного технологического процесса, модуль 130 механизма технологического процесса в примерном варианте осуществления принимает информацию определения технологического процесса для этого определенного технологического процесса из информации 114, и инициирует исполнение определенного технологического процесса на одном или более вычислительных узлах. В частности, определение технологического процесса может быть составлено с использованием различных логических узлов, каждый из которых соответствует определенным операциям, и которые взаимосвязаны различными способами, и модуль 130 механизма технологического процесса может выбирать конкретные вычислительные узлы для использования для выполнения конкретных таких операций, а также для дополнительного выполнения действий для предоставления и инициирования исполнения соответствующих рабочих процессов технологического процесса на каждом таком выбранном вычислительном узле. В рамках предоставления таких вычислительных узлов и/или исполнения рабочих процессов на вычислительных узлах, могут быть выполнены дополнительные взаимодействия с одним или более местами хранения для получения входных данных, которые должны быть использованы, и/или сохранения данных результатов, которые созданы, в том числе для данных промежуточных результатов, для использования другими рабочими процессами технологического процесса определенного технологического процесса.
[0025] Некоторые или все вычислительные узлы, используемые для реализации определенного технологического процесса, например, могут быть выбраны из необязательных вычислительных узлов 140, обеспечиваемых службой 110 конфигурируемого технологического процесса, если присутствуют, и рабочие процессы 142 технологического процесса могут быть исполнены на этих вычислительных узлах для реализации определенных операций. В других вариантах осуществления модуль 130 механизма технологического процесса может использовать вычислительные узлы, которые не обеспечиваются службой 110 конфигурируемого технологического процесса, или вместо них, или в дополнение к ним необязательные вычислительные узлы 140. Например, в некоторых вариантах осуществления и ситуациях, конкретный клиент может обеспечивать или иным образом управлять одной или более другими вычислительными системами 185, а механизм 130 технологического процесса может конфигурировать и использовать такие другие вычислительные системы 185, как вычислительные узлы для использования при исполнении определенного технологического процесса этого клиента. Кроме того, в некоторых вариантах осуществления для использования при исполнении программ различными способами могут быть доступны одна или более служб 148 и/или 175 онлайн исполнения программ, и, если это так, они могут быть использованы для обеспечения вычислительных узлов (не показаны) для исполнения некоторых или всех определенных технологических процессов конкретного клиента - например, модуль 130 механизма технологического процесса может предоставлять и инициировать исполнение конкретных рабочих процессов технологического процесса на конкретных вычислительных узлах, обеспечиваемых такими службами онлайн исполнения программ. В качестве одного примера в по меньшей мере некоторых вариантах осуществления служба конфигурируемого технологического процесса может быть интегрирована или иным образом связана с одной или более конкретными необязательными службами 148 онлайн исполнения программ (или в дополнение или вместо одной или более необязательных служб 145 хранения), например, как часть единой системы 105, как описано выше по тексту. Если это так, взаимодействия 149 с такими необязательными службами 148 онлайн исполнения программ могут быть выполнены для предоставления вычислительных узлов, инициирования исполнения конкретных компонентов технологического процесса, приема выходных данных, созданных конкретными компонентами технологического процесса и т.д.
[0026] В других вариантах осуществления служба 110 конфигурируемого технологического процесса может выполнять дополнительные приемы, например, для генерирования и обеспечения конкретных типов исходных данных для определенных технологических процессов, выполнения дополнительных действий применительно к администрированию конечных выходных данных, создаваемых определенными рабочими процессами клиента и т.д. Кроме того, в некоторых вариантах осуществления служба 110 конфигурируемого технологического процесса может быть реализована на основе программных инструкций, которые исполняются на одной или более серверных вычислительных системах для программирования или иным образом конфигурирования серверной вычислительной системы(систем) для выполнения некоторых или всех описанных приемов, например для программирования одного или более процессоров (CPU) аппаратного обеспечения (не показаны) серверной вычислительной системы(систем), причем программные инструкции, например, могут быть использованы для реализации модулей 120 и/или 130, или вместо этого функциональные возможности службы конфигурируемого технологического процесса могут быть обеспечены с использованием других типов модулей.
[0027] Таким образом, служба 110 конфигурируемого технологического процесса обеспечивает различные преимущества различным внешним клиентам, в том числе для обеспечения клиентам возможности определения технологических процессов, которые могут быть исполнены с использованием вычислительных ресурсов и ресурсов хранения службы 110 конфигурируемого технологического процесса частично или полностью, для взаимодействия с различными типами онлайн источников данных для получения данных, над которыми должны быть выполнены манипуляции, а также для обеспечения выходных данных, которые создаются для сохранения или другого использования. Дополнительные подробности, связанные к конкретными операциями службы 110 конфигурируемого технологического процесса, содержатся в другом месте настоящей заявки.
[0028] Хотя предшествующий пример варианта осуществления Фиг. 1 описывается применительно к службе 110 конфигурируемого технологического процесса, которая обеспечивает различные типы функциональных возможностей в сочетании с одной или более клиентскими системами, каждая из которых может иметь одного или более ассоциированных пользователей, будет понятно, что могут существовать различные другие варианты осуществления. Например в по меньшей мере некоторых вариантах осуществления и ситуациях, клиент может представлять организацию или другую группу (например, компанию, в штате которой вместо отдельного человека имеется множество людей). Таким образом, в различных вариантах осуществления сущность клиента может обладать различными формами.
[0029] В некоторых вариантах осуществления служба 110 конфигурируемого технологического процесса, и необязательно, каждая из любых используемых служб онлайн хранения и/или служб онлайн исполнения программ может работать согласно одному или более основанным на плате структурам или договорам. Например, в некоторых вариантах осуществления доступ к некоторым или всем описанным приемам из службы 110 конфигурируемого технологического процесса может быть обеспечен на платной основе или с иным способом оплаты поставщику или оператору службы 110 конфигурируемого технологического процесса и/или по меньшей мере некоторым клиентским системам, которые используют описанные приемы службы 110 конфигурируемого технологического процесса. В качестве одного примера, клиенты службы 110 конфигурируемого технологического процесса могут вносить единовременную плату, регулярную (например, ежемесячную) плату, и/или один или более типов платы по факту для использования функциональных возможностей, обеспечиваемых службой 110 конфигурируемого технологического процесса. Такая плата может быть основана на одном или более факторов и действий, например, указанных в следующем неисключительном списке: основываясь на количестве и/или типе взаимодействий, выполняемых для определенного конкретного технологического процесса; размера и/или типа определенного технологического процесса и/или некоторых или всех его определенных компонентов технологического процесса; основываясь на использовании определенного технологического процесса, например, мере вычислительных ресурсов, используемых при исполнении определенного технологического процесса (например, количество используемых вычислительных узлов), мере используемой производительности процессора (например, количество циклов CPU), времени, необходимом на исполнение определенного технологического процесса, действиях по предоставлению вычислительных узлов для определенного технологического процесса, времени, в течение которого вычислительные узлы, которые предоставлены для определенного технологического процесса, недоступны для использования в других целях, например в случае, когда ожидается эти вычислительные узлы ждут доступности исходных данных или удовлетворения других предварительных условий, основываясь на количестве хранящихся и/или передаваемых данных, например, основываясь на размере данных, времени хранения, и т.д.; основываясь на содержимом или других характеристиках конкретных групп данных, которые хранятся, создаются и/или над которыми осуществляют манипуляции; и т.д.
[0030] Фиг. 2А-2B иллюстрируют примеры определения и исполнения технологического процесса для клиента конкретными способами и в конкретных ситуациях. В частности, в примерах с Фиг. 2А-2В, клиент имеет доступ к данным Weblog (например, c веб-сайта, оперируемого клиентом, или иначе другими способами) и хочет проанализировать эти данные для определения интересующей информации. В частности, в этом примере, клиент хочет выполнять периодический (например, каждые три часа) анализ данных Weblog для того, чтобы идентифицировать данные истории посещений конкретных пользователей веб-сайта, а также сгруппировать эти данные истории посещений одним или более способами (например, определить совокупную информацию для конкретных определенных возрастных групп пользователей веб-сайтов). После того, как данные истории посещений сгруппированы определенными способами, они могут дополнительно быть использованы различными способами, в том числе сохраняться в базе данных клиента для последующего использования, а также использоваться для генерирования одного или более отчетов, которые обеспечиваются клиенту с помощью одного или более электронных средств связи.
[0031] В частности, применительно к Фиг. 2А, конкретный клиент службы конфигурируемого технологического процесса (далее в этом примере, как “Потребитель С”) определил новый технологический процесс, который включает в себя различные узлы и взаимосвязи, например, на основе различных взаимодействий с модулем редактора технологического процесса службы конфигурируемого технологического процесса, или посредством выполнения одного или более программных взаимодействий с определенным API службы конфигурируемого технологического процесса для обеспечения информации об определенном технологическом процессе определенным способом (например, посредством загрузки файла или точно определенной иным образом одной или более структур данных для представления определенного технологического процесса). В этом примере определенный технологический процесс представлен с помощью логического графа 200, который включает в себя различные узлы.
[0032] На Фиг. 2А, Потребитель C определил два узла 220 источника данных для представления двух типов источников данных для определенного технологического процесса. Первый источник 220a данных соответствует данным Weblog, которые периодически становятся доступными, и которые в этом примере хранятся службой 205 онлайн хранения. В частности, в данном примере служба 205 онлайн хранения хранит различные группы 206 и 207 данных (например, файлы), а узел 220а, который соответствует источнику данных Weblog, включает в себя информацию, используемую для выбора одной или более конкретных групп 207 данных из службы онлайн хранения, которая представляет данные Weblog для клиента. Узел 220а может включать в себя различные критерии использования для идентификации конкретных групп 207 данных, например, имя файла или другие метаданные, ассоциированные с конкретной группой данных, один или более точно определенных критериев применительно к содержимому групп 207 данных (например, интервал времени, соответствующий данным Weblog, которые должны быть использованы для извлечения записей из базы данных, которые соответствуют интересующему периоду времени), и т.д. Узел 220а может дополнительно включать в себя различную информацию о доступе, которая должна быть использована для получения групп 207 данных от службы 205 онлайн хранения, например, информацию об учетной записи или другую информацию о доступе для Потребителя C в службе онлайн хранения, с которой ассоциированы группы 207 данных. Кроме того, в этом примере Потребитель C определил одно или более предварительных условий в рамках узла 225a, которые ассоциированы с узлом 220а источника данных, так чтобы указать, что исполнение узла 220а и затем остальной части технологического процесса должно начаться, когда доступны группы 207 данных, которые удовлетворяют упомянутым точно определенным критериям для узла 220а. В других вариантах осуществления предварительные условия 225a или другая информация о конфигурации для исполнения определенного технологического процесса могут иметь другие формы, например, указывать, что технологический процесс должен быть исполнен в конкретное время или после истечения конкретного периода времени с момента последнего исполнения определенного технологического процесса. Таким образом, предварительные условия 225а, например, могут быть реализованы в рабочем процессе, который взаимодействует со службой 205 онлайн хранения, для определения, когда группы 207 данных являются доступными, а затем инициирует исполнение рабочего процесса, соответствующего узлу 220а, в по меньшей мере некоторых вариантах осуществления служба конфигурируемого технологического процесса может ожидать реализации некоторых или всех узлов технологического процесса 200, отличных от узла 225a предварительного условия, до тех пор пока не будут удовлетворены эти предварительные условия, например, для предоставления вычислительного узла для исполнения рабочего процесса, соответствующего узлу 220а после того как предварительные условия были удовлетворены.
[0033] В дополнение к узлу 220a источника данных Weblog, Потребитель C также определил узел 220b источника данных, который соответствует базе данных клиента, которая может быть сохранена в одной или более системах хранения (не показаны) под управлением клиента или которые вместо этого доступны с помощью службы онлайн хранения базы данных (не показана). В этом примере база 210 данных Потребителя C включает в себя различные группы 211 и 212 данных (например, записи базы данных), причем группы 212 данных хранят данные истории посещений, которые были ранее сгенерированы для веб-сайта клиента, либо посредством предыдущих исполнений этого или подобного технологического процесса, либо вместо этого другими способами. В этом примере узел 220b не включает в себя никаких определенных предварительных условий, например основанных на известных данных базы данных, которые должны быть представлены, или вместо этого основанных на данных базы данных, являющихся необязательными для исполнения определенного технологического процесса (например, так чтобы текущие данные Weblog были добавлены и сгруппированы с любыми ранее сохраненными данными истории посещений, но будет генерировать новые данные истории посещений, которые должны быть сохранены, даже если такие существующие данные истории посещений не существуют).
[0034] В дополнение к узлам 220 источника данных, Потребитель C имеет дополнительные определенные различные узлы 235а-280а манипулирования данными, которые являются частью определенного технологического процесса. Каждый из определенных узлов 235a-280a технологического процесса точно определяет одну или более операций манипулирования данными, которые должны быть выполнены над точно определенными исходными данными, а также для выполнения конкретных действий с результатами таких определенных операций манипулирования данными. В частности, в данном примере Потребитель C определил первый узел 235a, который взаимосвязан с узлом 220а источника данных, с узлом 235a, сконфигурированным для выполнения операций манипулирования данными, которые влекут за собой извлечение данных истории посещений для различных пользователей из данных Weblog, которые обеспечиваются узлом 220а источника данных. Как обсуждалось более подробно в другом месте, действия манипулирования данными могут быть точно определены различными способами, в том числе исполнением конкретного программного кода, выполнением операций базы данных (например, точно определенных в SQL или в другом определенном формате манипулирования базами данных), с использованием определенных математических или научных библиотек или функций и т.д. Кроме того, конкретные операции манипулирования данными в других вариантах осуществления могут быть точно определены другими способами, такими как комбинирование некоторых или всех определенных узлов 235а-280а в меньшее количество узлов (например, один), и/или распределение операций преобразования данных узлом 235а между многочисленными различными узлами.
[0035] В этом примере после выполнения узлом 235a манипулирования данных своих операций манипулирования данными, промежуточные результаты этих операций манипулирования данными сконфигурированы для обеспечения следующему узлу 240a манипулирования данными, который в данном примере выполнен с возможностью ассоциирования каждой группы данных истории посещений, которые извлекаются узлом 235а, с конкретным пользователем. Например, данные истории посещений, обеспечиваемые узлом 235а могут быть сгруппированы и ассоциированы с уникальным идентификатором для каждого пользователя, но может недоставать дополнительной идентифицирующей информации о соответствующих пользователях. Операции манипулирования данными узла 240a могут включать в себя идентификацию конкретных пользователей, а также определение соответствующей информации для этих пользователей. Например, возраст каждого пользователя может быть получен и использован в узле 240a, который должен быть ассоциирован с соответствующими данными истории посещений пользователя, которые были извлечены на этапе 235a. Соответственно, выходные данные промежуточных результатов с этапа 240a включают в себя группу данных истории посещений, соответствующих конкретным пользователям, которые идентифицированы по возрасту, и сконфигурированы в этом примерном варианте осуществления для обеспечения следующему узлу 245a манипулирования данными, который определен для технологического процесса. Хотя это не проиллюстрировано в этом примере, узел 240a манипулирования данными в некоторых вариантах осуществления дополнительно может получать связанные с пользователем данные из другого узла источника данных (не показан) для того, чтобы обеспечить возможность его операций, например из одного из проиллюстрированных местоположений 205 или 210 источника, или вместо этого из другого местоположения источника (не показано).
[0036] В этом примере варианта осуществления узел 245a манипулирования данными определяется для группировки различных данных истории посещений и ассоциированных пользователей из узла 240a по определенным возрастным группам, например для группировки данных истории посещений для пользователей в возрастных группах 18-25, 26-50, 51-65, и 66+. Таким образом, промежуточные результаты от операций манипулирования данными узла 245а могут включать в себя суммарную информацию для одной или более мер истории посещений для каждой определенной возрастной группы, например количество просмотренных страниц, время, затрачиваемое на страницу или сайт, конкретные типы выполняемых действий и т.д. Эти данные промежуточных результатов, создаваемые узлом 245a, конфигурируются в проиллюстрированном примере для обеспечения узлу 275a манипулирования данными, который комбинирует эти новые данные истории посещений с другими существовавшими ранее данными истории посещений, если они доступны.
[0037] Кроме того, в то время как узлы определенного технологического процесса проиллюстрированы на примере с Фиг. 2А в логическом порядке, который абстрактным образом показывает взаимосвязи между узлами, в некоторых вариантах осуществления определенный технологический процесс может дополнительно включать в себя дополнительные подробности о том, каким образом происходит реализация определенного технологического процесса во время исполнения. Например, некоторые или все узлы определенного технологического процесса могут включать в себя подробную информацию о конкретных местах хранения, из которых следует получать данные, которые используются узлом, и/или конкретных местах хранения, в которых результаты узла должны быть сохранены. Следовательно, применительно к узлу 245а манипулирования данными, узел может быть дополнительно определен для необязательного сохранения данных промежуточных результатов, которые он создает, в конкретном точно определенном месте хранения, которое проиллюстрировано на Фиг. 2А в качестве необязательного промежуточного хранилища 250. Такое промежуточное хранилище 250, например, может соответствовать одному или более необязательным узлам 150 хранения с Фиг. 1, необязательным службам 145 онлайн хранения с Фиг. 1, службам 170 онлайн хранения с Фиг. 1, и т.д. В качестве одного специфичного примера, промежуточное хранилище 250 может быть службой 205 онлайн хранения, а узел 245a может быть сконфигурирован для сохранения своих результатов в виде одной или более конкретных групп 208 данных (не показаны) в службе онлайн хранения, например, посредством точного определения конкретного имени группы данных или другого местоположения хранения службы онлайн хранения, в которой будут храниться промежуточные результаты от узла 245а. Подобным образом, если точно определяется такое промежуточное местоположение хранения для узла 245a, следующий узел 275a в узловом графе может включать в себя определенное входное местоположение хранения, которое является тем же самым местоположением хранения, из которого получают эти промежуточные результаты данных, создаваемые узлом 245a. Дополнительные подробности относительно пользователя таких промежуточных местоположений хранения более подробно описаны применительно к примеру на Фиг. 2В. В других вариантах осуществления, служба конфигурируемого технологического процесса может администрировать пересылку данных между компонентами технологического процесса, посредством одного или более промежуточных местоположений хранения, которые автоматически выбираются службой конфигурируемого технологического процесса, посредством выполнения передачи сообщений и т.д.
[0038] Кроме того, как ранее отмечалось в этом примере, Потребитель С имеет ранее сгенерированные группы 212 данных в базе данных 210, которая соответствует существовавшим ранее данным истории посещений для клиента. Такие данные истории посещений могут включать в себя, например, некоторые или все типы данных истории посещений, которые группируются применительно к узлу 245а, и дополнительно могут включать в себя различные другие типы данных истории посещений, которые не соответствуют узлу 245a, например применительно к другим группам 211 данных базы 210 данных. Кроме того, узел 220b источника данных был предварительно определен для извлечения этих групп 212 данных, которые соответствуют данным истории посещений, представляющим интерес для этого определенного технологического процесса. Соответственно, дополнительно Потребитель C определяет узел 270a манипулирования данными, который сконфигурирован для приема этих групп 212 данных от узла 220b источника данных истории посещений, а также для извлечения конкретных представляющих интерес данных истории посещений, соответствующих определенным возрастным группам и типам данных истории посещений узла 245a. Операции манипулирования данными узла 270а могут включать в себя, например, извлечение конкретных записей данных из базы 210 данных, или могут включать в себя дополнительные типы операций (например, выполнение одной или более операций слияния базы данных для комбинирования данных из многочисленных таблиц базы данных из базы данных, выполнение одной или более операций выбора базы данных для выбора подмножества данных из таблицы базы данных, и т.д.). Таким образом, промежуточные результаты данных, обеспечиваемые манипулированием данными узла 270а, включают в себя те же самые типы данных истории посещений и те же самые типы определенных возрастных групп, как отмечено выше по тексту по отношению к узлу 245a. В других вариантах осуществления один или более узлов 235а-245а вместо этого могут манипулировать новыми данными истории посещений для согласования со структурой записей базы данных групп 212 данных.
[0039] Таким образом, узел 275a обработки данных сконфигурирован для приема промежуточных результатов данных, которые создаются узлом 245а, и дополнительно сконфигурирован для приема промежуточных результатов данных, создаваемых узлом 270а. В случае, когда доступны оба типа данных, узел 275a конфигурируется для комбинирования данных истории посещений определенных типов по определенным возрастным группам. Промежуточные результаты данных, создаваемые узлом 275a, в этом примере затем конфигурируются для использования двумя различными способами. В частности, Потребитель C имеет дополнительно определенные два узла 230 назначения данных, которые соответствуют двум определенным местам назначения, в которые будут обеспечиваться данные, создаваемые определенным технологическим процессом. В частности первый узел 230a назначения данных определяется для соответствия базе 210 данных Потребителя C и, в частности для соответствия тому же самому набору групп 212 данных, что и узел 220b источника данных. Таким образом, когда промежуточные результаты данных узла 275a создаются и делаются доступными узлу 230a назначения данных, эти результаты данных конфигурируются для отправки в базу 210 данных в качестве конечного вывода определенного технологического процесса, и должны быть сохранены как часть группы 212 данных, например, путем добавления дополнительных записей данных в базу данных в дополнение к ранее существовавшим данным, которые были извлечены узлом 220b, или вместо этого для замены некоторых или всех ранее извлеченных данных новыми обновленными данными, которые дополнительно включают в себя информацию из самого последнего набора данных Weblog.
[0040] В дополнение к сохранению обновленных данных истории посещений в базе 210 данных, Потребитель C дополнительно определяет узел 230b назначения данных, который соответствует сообщению сгенерированного отчета Потребителю С с помощью одной или более электронных передач, отправляемых в почтовый ящик 290 Потребителя С. Таким образом, определенный технологический процесс 200 дополнительно включает в себя узел 280а манипулирования данными, который определяется для получения промежуточных результатов из узла 275a и для выполнения операций манипулирования данными, которые включают в себя генерирование отчета определенным способом, который включает в себя некоторые или все данные истории посещений из узла 275A (например, необязательно только новые данные истории посещений, выводимые узлом 245a). Промежуточные результаты данных, генерируемые узлом 280a, которые в этом примере сконфигурированы для включения в себя одного или более определенных отчетов, которые представляют информацию в структурированном виде, обеспечиваются узлу 230b назначения данных, который сконфигурирован для обеспечения этого конечного вывода определенного технологического процесса 200 в почтовый ящик 290 Потребителя С с помощью одной или более электронных передач.
[0041] Таким образом, в примере, проиллюстрированном на Фиг. 2А, Потребитель C клиента службы конфигурируемого технологического процесса определил технологический процесс 200, который, когда реализован, комбинирует данные различных типов из различных источников для создания многочисленных типов представляющих интерес выходных данных для клиента, которые автоматически становятся доступными клиенту многими точно определенными способами.
[0042] Фиг. 2В продолжает описание примера с Фиг. 2А и, в частности, обеспечивает дополнительные подробности, связанные с примерной реализацией определенного технологического процесса 200 с Фиг. 2А. В частности, Фиг. 2В иллюстрирует различные вычислительные узлы 140, которые были сконфигурированы для выполнения различных рабочих процессов 225b-280b технологического процесса, которые соответствуют логическим узлам 225а-238а определенного графа 200 технологического процесса.
[0043] Как более детально было рассмотрено в другом месте данной заявки, вычислительные узлы 140 могут происходить из одного или более источников, в том числе посредством использования одного или более вычислительных узлов, обеспечиваемых службой конфигурируемого технологического процесса, посредством использования одного или более вычислительных узлов, ставших доступными для клиента Потребителя C, и/или посредством использования одного или более вычислительных узлов, обеспечиваемых каждой из одной или более внешних служб онлайн исполнения. При доступе к вычислительным узлам, ставшим доступными клиенту Потребителя C, служба конфигурируемого технологического процесса может необязательно использовать информацию о доступе, подаваемую клиентом Потребителя C для обеспечения возможности взаимодействий с этими вычислительными узлами (например, для предоставления вычислительных узлов, для исполнения программного обеспечения на вычислительных узлах и т.д.). При доступе к вычислительным узлам из внешней службы онлайн исполнения, для использования от имени клиента, служба конфигурируемого технологического процесса может в некоторых вариантах осуществления и ситуациях использовать информацию для клиента в рамках взаимодействий со службой онлайн исполнения, например, информацию для существующей учетной записи клиента со службой онлайн исполнения, - в таком случае вычислительные узлы из службы онлайн исполнения, которые используются службой конфигурируемого технологического процесса в по меньшей мере некоторых таких ситуациях также могут быть доступными клиенту с помощью взаимодействий между клиентом и службой конфигурируемого технологического процесса. В качестве альтернативы, при доступе к вычислительным узлам из внешней службы онлайн исполнения, для использования от имени клиента, служба конфигурируемого технологического процесса в некоторых вариантах осуществления и ситуациях может использовать учетную запись службы конфигурируемого технологического процесса со службой онлайн исполнения, так что служба онлайн исполнения рассматривает эти вычислительные узлы как ассоциированные со службой конфигурируемого технологического процесса, а не с клиентом - в таком случае эти вычислительные узлы из службы онлайн исполнения, которая используется службой конфигурируемого технологического процесса от имени клиента, могут в по меньшей мере некоторых таких ситуациях не быть доступными (или даже видимыми) для клиента, в том числе основываясь на любых взаимодействиях клиента и службы конфигурируемого технологического процесса.
[0044] Фиг. 2B включает в себя службу 205 онлайн хранения с Фиг. 2А, хотя на ней не проиллюстрированы подробности о конкретных группах 206 и 207 данных, которые хранятся службой 205 онлайн хранения. В этом примере выбрана служба конфигурируемого технологического процесса и предоставлен первый вычислительный узел E 140e для выполнения рабочего процесса 225b технологического процесса, который соответствует узлу 225а предварительных условий определенного технологического процесса 200, например, посредством определения, удовлетворены ли определенные предварительные условия (например, посредством выполнения одного или более взаимодействий 257 для определения, доступны ли конкретные исходные данные из службы 205 онлайн хранения, которая соответствует группам 207 данных на Фиг. 2А). Когда предварительные условия удовлетворены, рабочий процесс 225b технологического процесса инициирует выполнение следующего рабочего процесса 235b, например, посредством предоставления соответствующих инструкций (не показаны) службе конфигурируемого технологического процесса. В данном примере служба конфигурируемого технологического процесса дополнительно имеет выбранный и предоставленный вычислительный узел A 140a для выполнения рабочего процесса 235b технологического процесса, который соответствует узлу 235а определенного технологического процесса 200. В частности рабочий процесс 235b с Фиг. 2В выполняет одно или более взаимодействий 255a для получения исходных данных из службы 205 онлайн хранения, которая соответствует группам 207 данных с Фиг. 2А, например, посредством использования информации, определенной применительно к узлу 220а источника с Фиг. 2А, и в соответствии с удовлетворением предварительных условий для узла 225а определенного технологического процесса 200.
[0045] Рабочие процессы 225b и 235b могут в некоторых вариантах осуществления и ситуациях исполняться в разное время, на разных типах вычислительных узлов (например, если вычислительный узел E обеспечивается службой конфигурируемого технологического процесса, и вычислительный узел A обеспечивается как внешний по отношению к службе конфигурируемого технологического процесса), различными способами (например, с помощью рабочего процесса 225b, исполняющегося на единой физической вычислительной системе, которая обеспечивает вычислительный узел E, и с помощью рабочего процесса 235b, исполняющегося распределенным образом на многочисленных физических вычислительных системах, которые обеспечивают вычислительный узел A) и т.д. Таким образом, в то время как конкретный рабочий процесс, например, рабочий процесс 235b в примере на Фиг. 2В проиллюстрирован как единый процесс, следует отметить, что фактические рабочие процессы могут быть реализованы различными способами в различных вариантах осуществления, в том числе посредством использования одной или более физических вычислительных систем для представления вычислительного узла, который исполняет рабочий процесс, вне зависимости от того, обеспечен ли он службой конфигурируемого технологического процесса или вместо этого одной или более службами онлайн исполнения программ, которые являются внешними по отношению к службе конфигурируемого технологического процесса.
[0046] В проиллюстрированном примере после того, как рабочий процесс 235b с помощью взаимодействий 255a принимает исходные данные и выполняет операции манипулирования данными, описанные в связи с узлом 235а на Фиг. 2А, рабочий процесс 235b генерирует промежуточные результаты данных, которые сохраняются в службе 205 онлайн хранения с помощью одного или более взаимодействий 225b со службой онлайн хранения. В то время как конкретные промежуточные результаты не проиллюстрированы в примере на Фиг. 2В, результаты могут быть сохранены различными способами, как описано применительно к промежуточному хранилищу 250 на Фиг. 2А, в том числе в конкретном месте хранения, которое сконфигурировано как часть узла 235a и/или рабочего процесса 235b.
[0047] После того, как с помощью взаимодействий 225b были сохранены промежуточные результаты, рабочий процесс 240b, исполняющийся на вычислительном узле B 140b, выполняет больше взаимодействий 255с со службой 205 онлайн хранения для получения этих промежуточных результатов данных для использования, необязательно, основываясь на использовании одного или более предварительных условий (не показаны), которые удовлетворяются, когда эти промежуточные результаты данных являются доступными. В частности, в этом примере служба конфигурируемого технологического процесса выбрана вычислительным узлом B для исполнения рабочих процессов 240b и 245b, которые соответствуют соответственно узлам 240a и 245a на Фиг. 2А. Таким образом, применительно к рабочему процессу 240b, процесс выполняет одну или более операций манипулирования данными, описанных ранее со ссылкой на узел 240a на Фиг. 2А. В этом примере поскольку вычислительный узел В исполняет многочисленные рабочие процессы, промежуточные результаты данных, создаваемые посредством рабочего процесса 240b, не сохраняются в службе 205 онлайн хранения, а вместо этого с помощью взаимодействий 255d передаются непосредственно исполнителю 245b, например, с помощью доступа в памяти или вместо этого с помощью одного или более других типов электронных средств связи. В других вариантах осуществления рабочий процесс 240b может вместо этого хранить такие промежуточные результаты данных с помощью службы онлайн хранения, даже если следующий рабочий процесс 245b в потоке данных будет позже извлекать и использовать те же самые промежуточные результаты данных.
[0048] В этом примере исполняющийся рабочий процесс 245b затем выполняет операции манипулирования данными, ранее описанные со ссылкой на узел 245а с Фиг. 2А, в том числе для использования промежуточных результатов данных, создаваемых рабочим процессом 240b и генерирования своих собственных промежуточных результатов данных, которые в данном примере сохраняются в службе 205 онлайн хранения с помощью одного или более взаимодействий 255e. В то время как в этом примере служба 205 онлайн хранения используется для хранения промежуточных результатов данных многочисленных отдельных рабочих процессов, в других вариантах осуществления промежуточные результаты данных из различных рабочих процессов могут быть сохранены другими способами, в том числе для сохранения промежуточных результатов данных различных рабочих процессов в различных службах онлайн хранения, или вместо этого другими способами.
[0049] В дополнение к службе 205 онлайн хранения на Фиг. 2А, Фиг. 2В также иллюстрирует базу 210 данных клиента Потребителя C, хотя примерные группы 211 и 212 данных с Фиг. 2А, не проиллюстрированы на Фиг. 2В. В этом примере службой конфигурируемого технологического процесса дополнительно выбран вычислительный узел C 140с для исполнения рабочего процесса 270b, который соответствует узлу 270а технологического процесса 200 на Фиг. 2А. Таким образом, рабочий процесс 270b с Фиг. 2В, выполняет одну или более операций манипулирования данными, ранее описанных применительно к узлу 270a, в том числе для выполнения взаимодействий 255f с базой 210 данных для получения групп 212 данных, определенных применительно к узлу 220b источника данных. В этом примере рабочий процесс 270b аналогичным образом хранит свои промежуточные результаты данных в службе 205 онлайн хранения с помощью одного или более взаимодействий 255g, несмотря на то, что в других вариантах осуществления такие промежуточные результаты могут храниться с помощью других способов.
[0050] После того, как промежуточные результаты данных стали доступными от рабочих процессов 245b и 270b, рабочий процесс 275b вычислительного узла D 140d выполняет одно или более взаимодействий 255h со службой 205 онлайн хранения для получения обоих этих наборов промежуточных результатов данных, и генерирования соответствующих комбинированных данных посредством выполнения одной или более операций манипулирования данными, описанных ранее применительно к узлу 275a на Фиг. 2А. В частности в данном примере службой конфигурируемого технологического процесса выбран вычислительный узел D для исполнения рабочего процесса 275b, а также рабочего процесса 280b, который соответствует узлу 280a на Фиг. 2А. Таким образом, после того, как рабочий процесс 275b создает свои результаты, процесс выполняет одно или более взаимодействий 255j для сохранения этих результатов в базе 210 данных, например точно определенным применительно к узлу 230а назначения на Фиг. 2А способом. Кроме того, в этом примере рабочий процесс 280b получает эти промежуточные результаты данных от рабочего процесса 275b с помощью одного или более взаимодействий 255i и генерирует один или более отчетов с помощью сконфигурированного применительно к узлу 280a на Фиг. 1 способа. Рабочий процесс 280b дополнительно переходит к выполнению одного или более взаимодействий 255k для отправки этих отчетов в почтовый ящик 290 Потребителя С, например, способом, точно определенным применительно к узлу 230b назначения на Фиг. 2А.
[0051] Следовательно, таким образом, логический граф 200 определенного технологического процесса на Фиг. 2А реализуется с помощью создания физического экземпляра этого определенного технологического процесса с использованием вычислительных узлов 140, проиллюстрированных применительно к Фиг. 2В, а также с использованием промежуточного хранилища для администрирования пересылки некоторых или всех промежуточных результатов данных между рабочими процессами технологического процесса.
[0052] Следует отметить, что примеры на Фиг. 2А и Фиг. 2В приведены в иллюстративных целях, и что изобретение не ограничивается деталями, рассмотренными в отношении этих примеров.
[0053] Фиг. 3 иллюстрирует блок-схему, иллюстрирующую примерный вариант осуществления компьютерной системы, пригодной для выполнения приемов для администрирования определением и реализацией технологических процессов для поддерживаемых клиентских систем. В частности, Фиг. 3 иллюстрирует серверную компьютерную систему 300, пригодную для исполнения варианта осуществления системы 340, которая обеспечивает службу конфигурируемого технологического процесса, а также различные клиентские компьютерные системы 350, необязательные системы 360 службы онлайн хранения, необязательные системы 370 службы онлайн исполнения программ, и другие вычислительные системы 380. В проиллюстрированном варианте осуществления компьютерная система 300 имеет компоненты, которые включают в себя один или более процессоров 305 (CPU) аппаратного обеспечения, различные компоненты 310 ввода/вывода (I/O), хранилище 320, и память 330, причем проиллюстрированные компоненты ввода/вывода включают в себя устройство 311 отображения, сетевое соединение 312, накопитель 313 на считываемых компьютером носителях, и другие устройства 315 ввода/вывода (например, клавиатура, мышь, громкоговорители и т.д.). В других вариантах осуществления компьютерная система 300 может иметь больше или меньше компонентов, чем проиллюстрировано, и локальное хранилище 320 может необязательно быть обеспечено одним или более энергонезависимыми запоминающими устройствами, которые включены или иным образом локально подключены к компьютерной системе 300.
[0054] Кроме того, проиллюстрированные клиентские компьютерные системы 350 имеют компоненты, аналогичные компонентам компьютерной системы 300, в том числе CPU 351, компоненты 352 ввода/вывода (хотя конкретные компоненты не проиллюстрированы), хранилище 354 и память 357. Каждая из других систем 360, 370, и 380 может также включать в себя компоненты, аналогичные некоторым или всем компонентам, проиллюстрированным применительно к компьютерной системе 300, но для краткости изложения такие компоненты не проиллюстрированы в данном примере. Каждая из клиентских компьютерных систем 350 включает в себя программу-браузер 358, исполняющуюся в памяти 357, например для обеспечения пользователю такой клиентской компьютерной системы возможности взаимодействия с доступным через сеть GUI, обеспеченным системой 340 службы конфигурируемого технологического процесса, а также необязательно хранит информацию 355 о специфических для клиента компонентах технологического процесса в локальном хранилище 354, хотя в других вариантах осуществления на некоторых или всех клиентских системах один или оба этих компонента могут не присутствовать. Кроме того, конкретная клиентская компьютерная система 350 может иметь больше или меньше компонентов, чем проиллюстрировано.
[0055] Вариант осуществления системы 340 службы конфигурируемого технологического процесса исполняется в памяти 330 компьютерной системы 300, таким образом, чтобы исполнять программные инструкции, которые при исполнении посредством CPU 305 программируют или иным образом конфигурируют компьютерную систему 300 для выполнения автоматизированных операций для обеспечения некоторых или всех описанных приемов. Хотя это и не проиллюстрировано на Фиг. 3, система 340 может включать в себя один или более модулей, необязательно соответствующих модулям 120 и/или 130 на Фиг. 1. Кроме того, серверная компьютерная система может дополнительно необязательно исполнять одну или более служб 335 онлайн хранения и/или одну или более служб 337 онлайн исполнения программ в памяти 330, например чтобы соответствовать ситуациям, в которых система 340 службы конфигурируемого технологического процесса интегрируется или иным образом работает совместно с такими службами 335 и/или 337, хотя в некоторых вариантах осуществления система 340 вместо этого может работать независимо от любых таких других систем. В других вариантах осуществления, любые такие службы онлайн хранения и/или службы онлайн исполнения программ, которые используются системой 340 службы конфигурируемого технологического процесса, могут быть доступны по сети 390, например, применительно к необязательным системам 360 и/или 370.
[0056] В этом примерном варианте осуществления, система 340 службы конфигурируемого технологического процесса включает в себя функциональные возможности, связанные с администрированием связанных с технологическим процессом функциональных возможностей, для поддерживаемых клиентских систем, а также дополнительно сконфигурирована для взаимодействия с клиентскими компьютерными системами 350 и/или другими системами и устройствами посредством сети 390 (например, через Интернет и/или World Wide Web, с помощью частной сотовой сети и т.д.). Каждая из других систем 350, 360, 370 и/или 380 может также исполнять различное программное обеспечение в рамках взаимодействий с системой 340. Различная информация, связанная с работой системы 340 службы конфигурируемого технологического процесса (и необязательно служб 335 и/или 337), может быть сохранена в хранилище 320 или вместо этого удаленно, например, информация 322 о конкретных клиентских системах и/или пользователях, информация 324 об одном или более конкретных определенных технологических процессах для клиентов, а также информация 326 о каких-либо определенных компонентах технологического процесса, например, с помощью способа, применимого к информации 112-116 на Фиг. 1, или описанного в другом месте настоящей заявки. Дополнительные подробности относительно операций системы 340, в конкретных вариантах осуществления более подробно описаны в другом месте настоящей заявки.
[0057] Следует иметь в виду, что системы 300, 350, 360, 370 и 380 приводятся лишь в целях пояснения и не предназначены для ограничения объема вариантов осуществления настоящего раскрытия. Например, вместо этого система 340 может быть исполнена многочисленными взаимодействующими вычислительными системами или устройствами, а вычислительная система 300 может быть подключена к другим устройствам, которые не проиллюстрированы, в том числе через одну или более сетей, таких как Интернет, через World Wide Web ("веб") или другую сеть электронной связи (например, сотовую сеть, телефонную коммутируемую сеть общего пользования). В целом, компьютерная система или вычислительная система или вычислительный узел могут содержать любую комбинацию аппаратного обеспечения, которая может взаимодействовать и выполнять описанные типы функциональных возможностей, необязательно, когда они запрограммированы или иным образом сконфигурированы конкретными соответствующими инструкциями программного обеспечения, в том числе без ограничения настольными или другими стационарными компьютерами, ноутбуками и планшетами, и другими мобильными компьютерами, серверами баз данных, сетевыми устройствами хранения и другими сетевыми устройствами, КПК, смартфонами и другими мобильными телефонами, беспроводными телефонами, пейджерами, электронными записными книжками, интернет-устройствами, системами на основе телевизора (например, использующими приставки и/или личные/цифровые видеомагнитофоны), а также различными другими потребительскими товарами, обладающими надлежащими возможностями связи. Кроме того, обеспечиваемые проиллюстрированной системой 340 функциональные возможности, в некоторых вариантах осуществления могут быть распределены между различными модулями.
[0058] Также следует иметь в виду, что, в то время как различные элементы проиллюстрированы хранящимися в памяти или в хранилище, во время использования эти элементы или их части могут быть переданы между памятью и другими устройствами хранения в целях управления памятью и целостностью данных. В качестве альтернативы, в других вариантах осуществления некоторые или все программные модули и/или системы могут исполняться в памяти на другом устройстве и осуществлять связь с проиллюстрированными компьютерными системами с помощью связи между компьютерами. Таким образом, в некоторых вариантах осуществления некоторые или все описанные приемы могут быть выполнены аппаратными средствами, которые включают в себя один или более процессоров и/или память и/или хранилище, когда они сконфигурированы одной или более программами программного обеспечения (например, системой 340) и/или структурами данных (например, информацией 324 определенного технологического процесса и/или информацией 326 определенного компонента технологического процесса), например, посредством исполнения программных инструкций одной или более программ программного обеспечения и/или посредством сохранения таких программных инструкций и/или структур данных. Кроме того, в некоторых вариантах осуществления некоторые или все системы и/или модули могут быть реализованы или обеспечены другими способами, например посредством использования средств (например, специализированной электроники), которые реализованы по меньшей мере частично или полностью в программно-аппаратном обеспечении и/или аппаратном обеспечении, включая, но не ограничиваясь этим, одну или более специализированных интегральных схем (ASIC), стандартных интегральных схем, контроллеров (например, исполняющих надлежащие инструкции, и в том числе микроконтроллеров и/или встроенных контроллеров), программируемых пользователем вентильных матриц (FPGA), сложных программируемых логических устройств (CPLD) и т.д. Некоторые или все модули, системы и структуры данных также могут быть сохранены (например, как программные инструкции или структурированные данные) на невременных считываемых компьютером носителях, таких как жесткий диск или флэш-накопитель или других энергонезависимых устройствах хранения, энергозависимой или энергонезависимой памяти (например, ОЗУ), сетевом устройстве хранения или портативном изделии-носителе для считывания надлежащим дисководом (например, DVD-диск, CD диск, оптический диск, и т.д.) или с помощью надлежащего соединения. В некоторых вариантах осуществления системы, модули и структуры данных также могут быть переданы как сгенерированные сигналы данных (например, в составе несущей или другого распространяемого аналогового или цифрового сигнала) посредством разнообразных считываемых компьютером сред передачи, в том числе на основе беспроводных и проводных/кабельных сред, и могут принимать различные формы (например, как часть единого или мультиплексированного аналогового сигнала, либо в виде многочисленных дискретных цифровых пакетов или кадров). В других вариантах осуществления такие компьютерные программные продукты могут также принимать и другие формы. Соответственно, настоящее изобретение может быть осуществлено на практике с использованием других конфигураций компьютерных систем.
[0059] Фиг. 4 представляет собой блок-схему последовательности операций примерного варианта осуществления процедуры 400 Службы Конфигурируемого Технологического Процесса. Процедура может быть обеспечена, например, исполнением службы 110 конфигурируемого технологического процесса с Фиг. 1 и/или системы 340 службы конфигурируемого технологического процесса с Фиг. 3, например, для администрирования определения и реализации технологических процессов для различных удаленных клиентов службы конфигурируемого технологического процесса. В этом примерном варианте осуществления процедура может администрировать осуществление доступа к информации и/или обеспечение информации одной или более системам хранения данных или службам хранения данных, вне зависимости от того, являются ли они внешними по отношению к процедуре службы конфигурируемого технологического процесса, или являются интегрированными или иным образом сгруппированными с процедурой службы конфигурируемого технологического процесса, хотя описанные приемы могут быть использованы другими способами в других вариантах осуществления.
[0060] В проиллюстрированном варианте осуществления, процедура начинается на этапе 405, на котором принимается инструкция, связанная с администрированием связанных с технологическим процессом функциональных возможностей. Процедура переходит на этап 410 для определения, предназначена ли инструкция, принятая на этапе 405, для определения нового технологического процесса от имени клиента службы конфигурируемого технологического процесса. Если да, то процедура переходит к этапам 415-425 для получения и сохранения информации об определенном технологическом процессе для клиента. Как более подробно описывается в другом месте настоящей заявки, в некоторых вариантах осуществления и ситуациях служба конфигурируемого технологического процесса может обеспечивать пользовательский интерфейс, с помощью которого представитель-пользователь клиента интерактивно точно определяет информацию для нового определяемого технологического процесса, в то время как в других вариантах осуществления информация для использования для определения нового технологического процесса может вместо этого быть принята с помощью одного или более программных взаимодействий из одной или более исполняемых программ от имени клиента.
[0061] В проиллюстрированном варианте осуществления, процедура на этапе 415 необязательно обеспечивает клиенту информацию об опциях для определения нового технологического процесса, в том числе определенные системой компоненты технологического процесса, которые доступны для выбора и использования клиентом - такая информация может быть обеспечена, например, с помощью GUI службы конфигурируемого технологического процесса, посредством отображения для пользователя соответствующей информации и функциональных возможностей. После этапа 415, процедура переходит на этап 420 для приема информации о конфигурации для определения технологического процесса для клиента. В некоторых вариантах осуществления такая информация о конфигурации может быть принята с помощью программных взаимодействий с API службы конфигурируемого технологического процесса, в то время как в других вариантах осуществления и ситуациях информация, принимаемая на этапе 420, может быть обеспечена с помощью представителя-пользователя с помощью пользовательского интерфейса службы конфигурируемого технологического процесса. Следует иметь в виду, что определение технологического процесса с помощью пользовательского интерфейса службы конфигурируемого технологического процесса может влечь за собой многочисленные последовательные взаимодействия посредством представителя-пользователя клиента со службой конфигурируемого технологического процесса, необязательно обновляемой и обеспечивающей дополнительную или альтернативную информацию пользователю с помощью пользовательского интерфейса на основе сделанных ранее предшествующих выборов. Таким образом, функциональность этапов 415 и 420 может включать в себя многочисленные итеративные действия службой конфигурируемого технологического процесса в некоторых вариантах осуществления и ситуациях. После этапа 420, когда было завершено определение нового технологического процесса, процедура переходит на этап 425 для сохранения информации об определении технологического процесса для клиента с целью последующего использования, например, посредством использования базы данных или другого места хранения, внутреннего по отношению к службе конфигурируемого технологического процесса. В некоторых вариантах осуществления в это время клиент может дополнительно обеспечивать инструкцию для инициирования исполнения технологического процесса, например, могут обрабатываться этапы 435-450 процедуры 400.
[0062] Если вместо этого на этапе 410 определено, что инструкция, принятая на этапе 405, не определяет новый технологический процесс, процедура переходит вместо этого на этап 435 для определения того, предназначена ли принятая инструкция для исполнения существующего технологического процесса, например, инструкция, принятая от клиента для инициации текущего исполнения (например, применительно к недавно определенному технологическому процессу, как описывается применительно к этапам 415-425), указание того, что настало запланированное время, которое было ранее точно определено для такого исполнения, и т.д. Если это так, процедура переходит на этап 440 для извлечения хранимой информации об определении технологического процесса для клиента, например, из внутренней базы данных или из другого места хранения, ассоциированного со службой конфигурируемого технологического процесса. После этапа 440 процедура переходит к этапу 445 для выбора вычислительных узлов для использования для исполнения рабочих процессов для технологического процесса, а также для предоставления этих выбранных вычислительных узлов для этих рабочих процессов. Как обсуждалось более подробно в другом месте настоящей заявки вычислительные узлы, которые выбраны для использования в различных вариантах осуществления могут иметь различные формы, в том числе вычислительные узлы, обеспеченные службой конфигурируемого технологического процесса для использования различными клиентами службы конфигурируемого технологического процесса, вычислительные узлы, обеспеченные одной или более внешними (необязательно входящими в состав) службами исполнения программ, вычислительные узлы, которые обеспечены посредством или иным образом находящиеся под управлением клиента и т.д. Кроме того, предоставление выбранных вычислительных узлов может, например, включать в себя загрузку программного обеспечения, которое должно быть исполнено для одного или более конкретных рабочих процессов на каждом выбранном вычислительном узле, необязательно загрузку данных, которые должны быть использованы такими рабочими процессами на каждом выбранном вычислительном узле, и т.д. После этапа 445, процедура переходит к этапу 450 для инициирования исполнения рабочих процессов для технологического процесса, исполняемого на выбранных вычислительных узлах. На Фиг. 5 проиллюстрированы дополнительные детали одного примерного варианта осуществления предоставления и исполнения рабочего процесса на выбранном вычислительном узле.
[0063] Если вместо этого на этапе 435 определено, что инструкция, принятая на этапе 405 не предназначена для исполнения определенного технологического процесса, процедура вместо этого переходит к этапу 460, для определения того, предназначена ли принятая инструкция для проверки предварительных условий для одного или более технологических процессов, например, для технологических процессов, которые сконфигурированы для осуществления исполнения, когда их предварительные условия удовлетворены. Если да, то процедура переходит к этапу 465 для извлечения информации о предварительных условиях для любых таких определенных технологических процессов, и для определения, удовлетворяются ли в данный момент эти извлеченные предварительные условия. Затем процедура переходит на этап 470 для определения, удовлетворены ли достаточные предварительные условия для любых определенных технологических процессов для инициирования их реализации, и если да, то возвращается к этапу 440 для инициирования исполнения каждого такого определенного технологического процесса. Инструкция для проверки предварительных условий в конкретное время может быть инициирована различными способами в различных вариантах осуществления, например, периодически, в ответ на указания возникших событий (например, поступления новых данных или их доступности) и т.д.
[0064] Если вместо этого на этапе 460 определено, что инструкция, принятая на этапе 405, в настоящий момент не предназначена для проверки предварительных условий технологического процесса для любых определенных технологических процессов, процедура вместо этого переходит на этап 490 для выполнения, в случае необходимости, одной или более других указанных операций. Операции, выполняемые применительно к этапу 490, в различных вариантах осуществления могут иметь различные формы и выполняться в разное время, в том числе модификация или удаление определенных технологических процессов для клиентов, остановка или модификация иным способом текущих или запланированных исполнений для определенных технологических процессов для клиентов, проверка на предмет тревожных ситуаций применительно к любым определенным технологическим процессам и, в зависимости от обстоятельств, принятие соответствующего действия и т.д.
[0065] После этапов 425, 450, или 490, или если вместо этого на этапе 470 определено, что никакие определенные технологические процессы не имеют предварительных условий, которые удовлетворены в данный момент, процедура переходит к этапу 495 для определения, следует ли осуществлять продолжение, например, до тех пор, пока не будет принято явное указание об осуществлении завершения. Если определено осуществление продолжения, процедура переходит к этапу 405, и в противном случае переходит к этапу 499 и заканчивается.
[0066] Фиг. 5 иллюстрирует блок-схему последовательности операций примерного варианта осуществления процедуры 500 Рабочего Процесса Компонента Технологического Процесса. Процедура может быть обеспечена, например, исполнением сконфигурированного рабочего процесса для определенного технологического процесса на предоставленном вычислительном узле, например, применительно к вычислительным узлам 140 и рабочим процессам технологического процесса 142 с Фиг. 1 и вычислительным узлам 140 и рабочим процессам 235b-280b с Фиг. 2В, применительно к вычислительным узлам, обеспечиваемым другими внешними службами исполнения программ и соответствующим рабочим процессам, исполняемым этими вычислительными узлами, и/или применительно к вычислительным узлам, обеспечиваемым или иным образом управляемым клиентом, и соответствующим рабочим процессам, исполняемым этими вычислительными узлами.
[0067] В этом примерном варианте осуществления процедуры, действия процедуры проиллюстрированы в отношении единого рабочего процесса, хотя следует отметить, что конкретный вычислительный узел может исполнять многочисленные рабочие процессы в конкретных вариантах осуществления и ситуациях, и что конкретный рабочий процесс в некоторых вариантах осуществления и ситуациях может быть исполнен на многочисленных вычислительных узлах или других вычислительных системах (например, распределенным способом, одновременно и/или последовательно на этих вычислительных системах). Кроме того, следует отметить, что конкретные рабочие процессы компонента технологического процесса могут выполнять различные операции (например, больше или меньше, чем проиллюстрировано) в соответствии с конкретными конфигурациями для их соответствующих компонентов технологического процесса.
[0068] Проиллюстрированный вариант осуществления процедуры начинается на этапе 505, на котором принимается информация о конфигурации для рабочего процесса определенной рабочей нагрузки, который должен быть исполнен, и инициируется исполнение рабочего процесса. В некоторых вариантах осуществления и ситуациях, информация о конфигурации и инициирование исполнения принимаются на основе одного или более взаимодействий с процедурой 400 варианта осуществления службы конфигурируемого технологического процесса, например, применительно к этапам 445 и 450 на Фиг. 4. Как обсуждалось более подробно в другом месте настоящей заявки, каждый рабочий процесс может иметь различную ассоциированную информацию, в том числе, которая имеет определенный тип, для определения программного кода, который должен быть исполнен для реализации рабочего процесса, чтобы иметь один или более определенных источников данных, из которых рабочий процесс будет принимать ввод, чтобы иметь одно или более определенных мест назначения, куда будут обеспечиваться результаты данных, создаваемые рабочим процессом, чтобы необязательно иметь другие данные, ассоциированные с рабочим процессом (например, информацию о конфигурации, связанную с тем, как рабочие процессы будут выполнять одну или более точно определенных операций манипулирования данными), чтобы необязательно иметь одно или более предварительных условий и/или постусловий, чтобы необязательно иметь один или более ассоциированных сигналов тревоги и т.д. Таким образом, несмотря на то, что не проиллюстрировано применительно к примерному варианту осуществления процедуры 500, в других вариантах осуществления процедура может дополнительно принимать дополнительную информацию на этапе 505 или в другие моменты времени, в том числе конфигурационные данные, которые должны быть использованы рабочим процессом.
[0069] После этапа 505 процедура переходит к этапу 510, где она необязательно выполняет любые действия предварительной обработки для рабочего процесса, например для подготовки рабочего процесса к выполнению его точно определенных операций манипулирования данными или других операций. После этапа 510, процедура переходит к этапу 535, где она получает исходные данные, которые должны быть исполнены рабочим процессом, из одного или более точно определенных местоположений источника. Например, в некоторых вариантах осуществления и ситуациях, могут быть использованы предварительные условия, которые основаны по меньшей мере частично на определении доступности таких исходных данных. После этапа 525, процедура переходит к этапу 540 для выполнения одного или более точно определенных действий манипулирования данными для рабочего процесса над полученными исходными данными. Как обсуждалось более подробно в другом месте настоящей заявки, такие точно определенные действия манипулирования данными в различных вариантах осуществления и ситуациях могут иметь различные формы, в том числе для перемещения данных из одного местоположения в другое местоположение, для модификации или иным образом преобразования данных различными способами и т.д.
[0070] После этапа 540, процедура переходит к этапу 570 для обеспечения результатов от точно определенных действий манипулирования данными этапа 540 к одному или более точно определенным местам назначения. Как обсуждалось более подробно в другом месте настоящей заявки, такие действия по обеспечению данных результатов могут включать в себя сохранение некоторых или всех данных результатов в точно определенном месте хранения, отправку одного или более электронных передач, которые включают в себя некоторые или все из точно определенных данных результатов, генерирование конкретного отчета или другого формата, который включает в себя все или некоторые данные результаты для представления и т.д.
[0071] После этапа 570, процедура переходит к этапу 595, для определения, следует ли осуществлять продолжение, например, пока не будет принято явное указание об осуществлении завершения. Если определено осуществлять продолжение, процедура возвращается к этапу 520, и в противном случае переходит к этапу 599 и заканчивается. В проиллюстрированном варианте осуществления, данный рабочий процесс таким образом может выполнять действия этапов 520-570 множество раз, если он так сконфигурирован, например для выполнения одного или более точно определенных действий манипулирования данными над разными группами исходных данных в разные моменты времени, в том числе в ситуациях, в которых вычислительный узел(ы), исполняющий рабочий процесс, работает в течение длительных периодов времени, например, для многочисленных реализаций определенного технологического процесса. В других вариантах осуществления рабочий процесс может дополнительно время от времени принимать дополнительную информацию о конфигурации, которая модифицирует дальнейшее выполнение рабочего процесса, и/или может время от времени выполнять другие действия предварительной обработки, а, следовательно, в таких ситуациях при необходимости процедура может вернуться от этапа 595 к этапам 505 и/или 510.
[0072] Следует иметь в виду, что в некоторых вариантах осуществления функциональные возможности, обеспечиваемые описанными выше процедурами, могут быть обеспечены альтернативными способами, например, могут быть разделены между большим количеством процедур или объединены в меньшее количество процедур. Аналогичным образом, в некоторых вариантах осуществления проиллюстрированные процедуры могут обеспечивать больше или меньше функциональных возможностей, чем описано, например, когда изменяется количество обеспечиваемых функциональных возможностей. Дополнительно, хотя различные операции могут быть проиллюстрированы как выполняемые конкретным способом (например, последовательно или параллельно) и/или в конкретном порядке, в других вариантах осуществления операции могут быть выполнены в других порядках и другими способами. Аналогично, в других вариантах осуществления описанные выше структуры данных могут быть структурированы различными способами, например, посредством разделения единой структуры данных на многочисленные структуры данных, или посредством объединения многочисленных структур данных в единую структуру данных, и могут хранить больше или меньше информации, чем описывается (например, в случае, когда другие иллюстративные структуры данных вместо этого соответственно не содержат или включают в себя такую информацию, или в случае, когда изменяется количество или типы хранящейся информации).
[0073] Дополнительные подробности приведены ниже применительно к конкретному примерному варианту осуществления службы конфигурируемого технологического процесса, несмотря на то, что должно быть понятно, что описанные способы не ограничиваются такими подробностями.
[0074] В этом примерном варианте осуществления технологические процессы службы конфигурируемого технологического процесса (“CWS”) (также именуемые в этом примерном варианте осуществления как “конвейеры”) определяются с помощью конфигурационного языка (программирования), который делает возможным описание узлов (также именуемых в этом примерном варианте осуществления как “объекты”), которые формируют конвейер. В этом примерном варианте осуществления имеются 5 основных типов объектов, которые можно описать в конвейере CWS, а именно:
- Источники данных - ввод в, или вывод из компонента манипулирования данными технологического процесса (также называемого “действие” в этом примерном варианте осуществления).
- Действия - операция для осуществления, такая как преобразования обработки данных и копий данных. При некоторых состояниях действия могут быть установлены для подачи сигнала тревоги и многократного повторения в случае неудачной попытки. Предопределенные действия включают в себя Copy, SQLTransform, HiveQLTransfomn, ElasticMapReduceTransform, и CommandLineTransform.
- Предварительные Условия и Постусловия - Действие, ассоциированное с Источником Данных, которое оценивается как истинное в случае, если источник данных считается доступным и/или правильно сформированным. Предварительные условия, которые успешно завершились, позволяют выполнить следующее Действие, которое использует Источник Данных в качестве ввода, который должен быть осуществлен. Постусловия, которые успешно завершились, позволяют Действию, которое формирует Источник Данных, рассматриваться как успешно завершенное.
- Расписания - Атрибут Источника Данных, который описывает периодичность данных, или Действия, которое определяет периодичность выполнения, которая может иметь детализацию (степень разбиения) в одну или более минут, ежечасно, ежедневно, еженедельно, ежемесячно, и т.д.
-Сигналы тревоги - Описывает сообщение, которое должно быть опубликовано в службе уведомлений (например, Amazon SNS, или Службе Простых Уведомлений), и отправляет его с помощью электронного сообщения (например, электронной почты), и т.д. Конвейеры и отдельные Действия могут иметь Сигнал Тревоги, определенный как для отказа, так и для благоприятного исхода.
[0075] Конвейер состоит из объектов, а объекты состоят из атрибутов (attributes). Атрибуты имеют вид тег: значение.
[0076] Объекты имеют атрибут name (имя): и атрибут type (тип): В дополнение к имени и типу, объекты могут иметь любое число других атрибутов, в зависимости от типа объекта. В приведенном ниже примере, объект ‘Invoice Logs’ (‘Журналы Счетов’) описывает объект данных, хранящийся в примерной службе онлайн хранения SSS (называемой <online-storage-service-SSS>) и имеет атрибут path (путь): в дополнение к name (имя): и type (тип):
name: Invoice Logs
type: <online-storage-service-SSS>DataNode(УзелДанных)
path: <online-storage-service-SSS>//my_data/xyz.cvs
[0077] Атрибут может необязательно повторяться в объекте. В приведенном ниже примере, ввод (input): повторяется и значения для каждого атрибута input: рассматриваются как упорядоченный список:
name: Invoice Processing (Обработка Счетов)
type: CommandRunnerTransform
input: Invoice Logs
input: Invoice Dimensions
[0078] Значение атрибута может быть одним из:
ссылка на объект
выражение
строковый литерал
[0079] Вот краткий пример, показывающий каждый тип значения атрибута:
name: HourPeriod
type: Schedule
period: "1 hour" ←-- Это строковый литерал
name: Object
type: MyTransform
dimension:HourPeriod ←-- Это является ссылкой на объект
attrib: #{interval.end} ←-- Это выражение
[0080] Рассмотрим пример объединения 5 минутных журналов в часовой журнал. В данном случае имеется простой Конвейер, который объединяет 5 минутные журналы в часовой журнал в службе онлайн хранения SSS на периодической основе. Этот Конвейер состоит из:
Источника Входных Данных - 5 минутных журналов кликов <online-storage-service-SSS>
Действия копии
Источника Выходных Данных (например, узел назначения данных) - 1 часовой журнал кликов в <online-storage-service-SSS>
2 объектов Расписание
объекта Сигнал Тревоги
name: FiveMinPeriod
type: Schedule
period: "5 минут"
name: HourPeriod
type: Schedule
period: "1 час"
name: Five Minute Logs
type:<online-storage-service-SSS>DataNodedimension: FiveMinPeriod
path:"<online-storage-service-SSS> //prod/Clicks/#{interval.end}.csv"
name: Concatenate
type: CopyTransform
dimension: HourPeriod
input: Five Minute Logs
output: Hourly Logs
onFail: CopyFailedAlarm
name: CopyFailedAlarm
type: "EmailAlarm"
to: <client-email-address>
subject: "Click 5 min ---→ 1 hour Failed!"
body:
Ошибка для интервала #{node.interval.start}.#{node.interval.end}
name: hourly logs
type: <online-storage-service-SSS>DataNode
dimension: HourPeriod
path:"<online-storage-service-SSS>://XXX-test/OutData/#{interval.end}.csv"
[0081] Во-первых, подробно опишем наши 5 минутные журналы кликов (click logs), которые являются вводом в наш конвейер. Следующие 2 объекта определяют 1) Расписание (Schedule) (‘ПятьМинПериод’, ‘FiveMinPeriod’) и 2) Источник Данных (Data Source) (‘Пятиминутные Журналы’, ‘Five Minute Logs’), который ассоциирован с ‘ПятьМинПериод’:
name: FiveMinPeriod
type: Schedule
period: "5 minutes"
name: Five Minute Logs
type: <online-storage-service-SSS>DataNode
dimension: FiveMinPeriod
path:"<online-storage-service-SSS>://prod/Clicks/#{interval.end}.csv"
В результате описания имеем серию файлов <online-storage-service-SSS>, например:
…
<online-storage-service-SSS>://prod/Clicks/2011-11-14:10:05:00.csv
<online-storage-service-SSS>://prod/Clicks/2011-11-14:10:10:00.csv
<online-storage-service-SSS>://prod/Clicks/2011-11-14:10:15:00.csv
<online-storage-service-SSS>://prod/Clicks/2011-11-14:10:20:00.csv
<online-storage-service-SSS>://prod/Clicks/2011-11-14:10:25:00.csv
…
Каждый такой файл службы онлайн хранения SSS может быть рассмотрен как пример ‘Five Minute Logs’. Каждый из них отличается от других представляемым периодом времени, а также содержащимися в этих файлах данными.
[0082] Далее рассмотрим представленную ниже информацию об объекте:
name: Five Minute Logs
type: <online-storage-service-SSS>DataNode
dimension: FiveMinPeriod
path:"<online-storage-service-SSS>://prod/Clicks /#{interval.end}.csv"
Атрибут type: определяет это как исходный объект <online-storage-service-SSS>DataNode. Атрибут name: может быть любым, но в этом примерном варианте осуществления может быть уникальным для этого определения Конвейера. В этом примерном варианте осуществления Объекты Источника Данных, такие как <online-storage-service-SSS>DataNodes также могут иметь атрибут размерности, который описывает различные способы, с помощью которых объект может быть материализован в виде событий. Одним традиционным примером размерности является период времени, который может выражаться в минутах, часах, днях, неделях, или месяцах. Другой примерной размерностью является размерность на основе географических областей, например чтобы соответствовать разным местоположениям систем источников данных.
[0083] Кроме того, в этом примерном варианте осуществления периоды времени могут быть точно определены объектами расписания. В частности, мы определяем объект расписания, который точно определяет 5 минутный период следующим образом:
name: FiveMinPeriod
Type: Schedule
period: "5 минут"
Следует отметить, атрибут размерность: ‘Five Minute Logs’ относится к объекту расписания ‘FiveMinPeriod’. Теперь обратим внимание на атрибут path:
path:"<online-storage-service-SSS>://prod/Clicks /#{interval.end}.csv"
Последовательность ‘#{ }’описывает выражение. В этом случае выражением, которое должно быть оценено является interval.end. Поскольку ‘Five Minute Logs’ имеет ассоциированное с ним расписание, он содержит атрибут ‘interval’, который сам имеет значение ‘start’ и ‘end’. Таким образом, interval.start..interval.end описывает специфический временной интервал расписания:
…
interval.start 2011-11-14:10:00:00 interval.end 2011-11-14:10:05:00
interval.start 2011-11-14:10:05:00 interval.end 2011-11-14:10:10:00
interval.start 2011-11-14:10:15:00 interval.end 2011-11-14:10:20:00
…
Атрибут path: оценивается как имя файла <online-storage-service-SSS>, в этом случае использующее конец каждого 5-минутного интервала для каждого объекта расписания.
[0084] Далее, опишем действие, которое считывает в часовое значение 5 минутные клики и объединяет их в часовой выходной файл. Эти 3 объекта определяют 1) Schedule (‘HourPeriod’), 2) CopyTransform (‘Concatenate’), который ассоциирован с ‘HourPeriod’, и 3) Alarm (‘CopyFailedAlarm'), который будет вызван в случае отказа:
name: HourPeriod
type: Schedule
period: "1 час"
name: Concatenate
type: CopyTransform
dimension: HourPeriod
input: Five Minute Logs
output: Hourly Logs
onFail: CopyFailedAlarm
name: CopyFailedAlarm
type: "EmailAlarm"
to: <client-email-address>
subject: "Click 5 5 min ---→; 1 hour Failed!"
body:
Ошибка для интервала #{node.interval.start}.#{node.interval.end}
[0085] CWS планирует и осуществляет ‘Concatenate’, когда доступна часовое значение input: (‘Five Minute Logs’). Когда готовы все 20 5-минутных файлов для данного часа, каждый будет скопирован в выходные ‘Hourly Logs’. Если процесс ‘Concatenate’ сталкивается с состоянием отказа, то объект Alarm ‘CopyFailedAlarm’ будет осуществляться и отправит сообщение электронной почты.
[0086] В частности, ‘Concatenate’ является объектом типа ‘CopyTransform’, который является встроенным Действием, обеспечиваемым в этом примерном варианте осуществления посредством CWS. CopyTransform использует Источник Данных ввода и Источник Данных вывода. Действия (CopyTransform представляет собой тип Действие) могут иметь размерность Расписания, ассоциированную с ними, аналогично источнику данных. В этом случае ‘Concatenate’ ассоциирован с объектом ‘Hour Period’ Расписания, который описывает интервалы времени на почасовой основе. Это можно рассматривать как следующее: “‘Concatenate’ процессы с часовым значением данных”.
[0087] Расписание input: в данном случае (‘Five Minute Logs’) описывает 5-минутный интервал, в то время как расписание ‘Concatenate’ является ежечасным. CWS делает вывод о том, что 20 5-минутных входных файлов отображаются на часовой интервал обработки, для которого сконфигурировано ‘Concatenate’. Объект Alarm, такой как ‘CopyFailedAlarm’ может быть ассоциирован с любым количеством Действий. Атрибут body: в этом случае содержит следующие выражения: Ошибка для интервала #{node.interval.start}..#{node.interval.end}. Alarms имеют атрибут node:, который во время выполнения оценивает объект, о котором сообщает Alarm. В этом случае, ‘node’ будет ссылаться на объект ‘Concatenate’, если сигнал тревоги сработал из-за сбоя с ‘Concatenate’.
[0088] Источник Данных вывода:
name: Hourly Logs
type: <online-storage-service-SSS>DataNode
dimension: HourPeriod
path:"<online-storage-service-SSS>://prod/concat-clicks/#{interval.end}.csv"
[0089] В результате имеем описание последовательности файлов <online-storage-service- SSS>, например:
…
<online-storage-service-SSS>//prod/concat-clicks/2011-11-14:00:0:00.csv
<online-storage-service-SSS>://prod/concat-clicks/2011-11-14:01:0:00.csv
<online-storage-service-SSS>://prod/concat-clicks/2011-11-14:02:0:00.csv
…
Каждый файл <online-storage-service-SSS> может рассматриваться как экземпляр ‘Hourly Logs’. Каждый из них отличается от других представляемым периодом времени, а также содержащимися данными.
[0090] Дополнительно рассмотрим следующее:
name: Concatenate
type: CopyTransform
dimension: HourPeriod
input: Five Minute Logs
output: Hourly Logs
name: Hourly Logs
type: <online-storage-service-SSS>DataNode
dimension: HourPeriod
path:"<online-storage-service-SSS>://prod/concat-clicks/#{interval.end}.csv"
Подобно описанному выше Источнику Данных ‘Five Minute Logs’, ‘Hourly Logs’ ассоциируются с Schedule, которое в данном случае является почасовым Schedule. Атрибут path: оценивается как имя файла <online-storage-service-SSS>, использующее в этом случае конец каждого часового интервала для объекта расписания.
Действие ‘Concatenate’ точно определяет ‘Hourly Logs’ в качестве Источника Данных вывода. Когда CWS включает в расписание и осуществляет ‘Concatenate’, это также приведет к появлению файла <online-storage-service-SSS>, соответствующего окончанию временного интервала часового периода расписания для текущего выполнения.
[0091] Значение атрибута может принимать следующие формы:
ссылка на объект
выражение
строковый литерал
[0092] Применительно к ссылкам на объекты, атрибут может ссылаться на другой объект Конвейера посредством имени. Это полезно при формировании некоторых типов выражений:
name: object1
type: sample
name: object2
type: sample
attrib1: objectl ←--- Ссылка на object1
[0093] Применительно к выражениям, выражение возникает внутри следующей конструкции: #{"expression"}. Выражения могут быть
встроенной функцией:
attrib: #{day(currentTime())}
строчным значением:
attrib: #{"это строчное значение"}
объединением строчных членов:
attrib: #{"prefix-" + functionReturningString()}
целым или значением с плавающей точкой:
attrib: #{func(3.14, 5)}
числовыми выражениями:
attrib: #{func(3.14+5)}
простой ссылкой на другой атрибут:
name: object1
type: sample
attrib1: #{today ()}
attrib2: #{attrib1} ←--- attrib2 будет иметь значение attrib1
определенной ссылкой на другой атрибут:
name: object1
type: sample
attrib1: #{today ()}
attrib2: attrib1
name: object2
type: sample
attrib3: object1 ←--- Ссылка на объект, не появляется внутри структуры '#{}'
attrib4:#{attrib3.attrib2} ←--- Это определенная ссылка на атрибут (значением является object1.attrib2)
[0094] Что касается строковых литералов, атрибут может иметь значение строкового литерала, например, "это строковый литерал". Кроме того, строковый литерал может содержать выражение, которое оценивается как строка:
attrib1: "Это содержит #{attrib2}"
attrib2: "выражение"
Следует отметить, что attrib1 выше по тексту имеет выражение, встроенное с помощью структуры выражения: '#{}'.
Строковые литералы могут быть также многострочными. В этом случае, каждая строка размещается с отступом в 2 позиции:
attrib3:
Это строка один
Это вторая строка
И это последняя строка
[0095] Различные варианты осуществления настоящего раскрытия могут быть описаны с учетом следующих абзацев:
1. Реализуемый компьютером способ, содержащий:
обеспечение одной или более сконфигурированными вычислительными системами службы конфигурируемого технологического процесса, одного или более интерфейсов для обеспечения многочисленным клиентам службы конфигурируемого технологического процесса возможности для конфигурирования технологических процессов, которые должны быть реализованы;
прием одной или более сконфигурированными вычислительными системами информации о конфигурации от первого клиента из многочисленных клиентов для первого определенного технологического процесса, причем информация о конфигурации принимается с помощью по меньшей мере одного из обеспеченных интерфейсов и отправляется по одной или более сетям из удаленного местоположения первого клиента, причем информация о конфигурации точно определяет многочисленные компоненты технологического процесса первого определенного технологического процесса и взаимосвязи между по меньшей мере некоторыми из многочисленных компонентов технологического процесса, причем по меньшей мере некоторые из многочисленных компонентов технологического процесса выбираются клиентом из множества предопределенных компонентов технологического процесса, обеспечиваемых службой конфигурируемого технологического процесса для использования многочисленными клиентами;
выбор одной или более сконфигурированными вычислительными системами многочисленных вычислительных узлов для использования для реализации первого определенного технологического процесса, причем по меньшей мере некоторые из многочисленных вычислительных узлов являются подмножеством множества вычислительных узлов, обеспеченных службой конфигурируемого технологического процесса для использования многочисленными клиентами;
предоставление одной или более сконфигурированными вычислительными системами выбранных вычислительных узлов для того, чтобы каждый из них реализовывал по меньшей мере один из многочисленных компонентов технологического процесса; и
реализацию первого определенного технологического процесса для клиента путем инициирования одной или более сконфигурированными вычислительными системами, выполнения определенных действий на выбранных вычислительных узлах, которые соответствуют реализованным компонентам технологического процесса, причем определенные действия включают в себя:
одно или более первых действий, влекущих за собой получение входных данных из одного или более источников данных, являющихся внешними по отношению к службе конфигурируемого технологического процесса;
одно или более вторых действий, влекущих за собой создание данных промежуточных результатов посредством выполнения операций манипулирования данными, которые основаны по меньшей мере частично на полученных входных данных; и
одно или более третьих действий, влекущих за собой создание выходных данных основываясь по меньшей мере частично на данных промежуточных результатов вторых действий и, влекущих за собой обеспечение выходных данных первому клиенту.
2. Способ по п. 1, в котором обеспеченный один или более интерфейсов включают в себя по меньшей мере графический пользовательский интерфейс и интерфейс прикладного программирования, и в котором способ дополнительно содержит:
прием информации с помощью одного из обеспеченных интерфейсов об одном или более критериях для инициирования реализации первого определенного технологического процесса, причем один или более критериев точно определяется клиентом, и соответствует периодической реализации первого определенного технологического процесса множество раз на основе изменения входных данных, которые доступны в это множество раз; и
в каждом из этого множества раз,
определение одной или более сконфигурированными вычислительными системами, что один или более критериев удовлетворены; и
выполнение реализации первого определенного технологического процесса.
3. Способ по п. 2, в котором служба конфигурируемого технологического процесса является платной службой, и в котором способ дополнительно содержит получение одной или более оплат от первого клиента для выполнения реализации первого определенного технологического процесса.
4. Реализуемый компьютером способ, содержащий:
прием одной или более сконфигурированными вычислительными системами службы конфигурируемого технологического процесса информации о конфигурации для определенного технологического процесса клиента службы конфигурируемого технологического процесса, причем информация о конфигурации точно определяет многочисленные компоненты технологического процесса определенного технологического процесса и взаимосвязи между по меньшей мере некоторыми из многочисленных компонентов технологического процесса;
предоставление многочисленных вычислительных узлов одной или более сконфигурированными вычислительными системами для того, чтобы каждый из них реализовывал по меньшей мере один из многочисленных компонентов технологического процесса, причем по меньшей мере один из многочисленных вычислительных узлов обеспечивается службой конфигурируемого технологического процесса для использования клиентами службы конфигурируемого технологического процесса; и
реализацию определенного технологического процесса для клиента путем инициализации выполнения операций действий на многочисленных вычислительных узлах, которые соответствуют реализуемым компонентам технологического процесса, причем определенные действия включают в себя:
одно или более первых действий, влекущих за собой получение входных данных от одного или более источников данных, внешних по отношению к службе конфигурируемого технологического процесса;
одно или более вторых действий, влекущих за собой создание данных промежуточных результатов посредством выполнения операций манипулирования данными, которые основаны по меньшей мере частично на полученных входных данных; и
одно или более третьих действий, влекущих за собой создание выходных данных основываясь по меньшей мере частично на данных промежуточных результатов вторых действий.
5. Способ по п. 4, в котором реализация определенного технологического процесса для клиента дополнительно включает в себя по меньшей мере одно из сохранения созданных выходных данных в одном или более местах хранения, точно определенных клиентом, и генерации одного или более отчетов, которые основаны по меньшей мере частично на созданных выходных данных и, которые обеспечиваются клиенту.
6. Способ по п. 4, дополнительно содержащий:
прием указаний одного или более критериев для инициирования реализации определенного технологического процесса; и
определение одной или более сконфигурированными вычислительными системами, что один или более критериев удовлетворены до реализации определенного технологического процесса.
7. Способ по п. 6, в котором один или более критериев соответствуют периодической реализации определенного технологического процесса множество раз на основе изменения входных данных, которые являются доступными в это множество раз, и при этом способ дополнительно содержит выполнение реализации определенного технологического процесса в каждом из этого множества раз.
8. Способ по п. 6, в котором по меньшей мере один из одного или более критериев определяется в качестве предварительного условия, ассоциированного с по меньшей мере одним из многочисленных компонентов технологического процесса.
9. Способ по п. 6, дополнительно содержащий прием информации о критерии постусловия, ассоциированном с одним из многочисленных компонентов технологического процесса, и при этом реализация определенного технологического процесса дополнительно включает в себя определение того, что критерий постусловия удовлетворяется после выполнения одного или более определенных действий, которые соответствуют одному компоненту технологического процесса.
10. Способ по п. 6, в котором определение, что один или более критериев удовлетворены, происходит в первый момент времени, и при этом способ дополнительно содержит:
определение одной или более сконфигурированными вычислительными системами, что один или более критериев не удовлетворяются, во второй момент времени; и
в ответ, генерирование уведомление о неисправности для клиента для указания того, что один или более критериев не удовлетворяются.
11. Способ по п. 4, дополнительно содержащий:
обеспечение графического пользовательского интерфейса, в котором клиент точно определяет посредством информации о конфигурации с помощью графического пользовательского интерфейса посредством редактирования графа, который логически представляет определенный технологический процесс, каждый из многочисленных компонентов технологического процесса, указываемый на графе по меньшей мере одним из многочисленных узлов графа; и
в котором реализация определенного технологического процесса включает в себя создание экземпляра копии графа физически.
12. Способ по п. 4, дополнительно содержащий реализацию определенного технологического процесса для клиента во множестве отличающихся периодов времени, и, при этом один или более из многочисленных вычислительных узлов поддерживаются между многочисленными отличающимися периодами времени для того, чтобы обеспечить возможность возникновения предоставления одного или более вычислительных узлов происходило только один раз.
13. Способ по п. 4, в котором для одного или более из многочисленных вычислительных узлов, вычислительный узел реализуется как кластер из многочисленных компьютерных систем, которые выполняют по меньшей мере одно из определенных действий распределенным образом.
14. Способ по п. 4, в котором предоставление многочисленных вычислительных узлов включает в себя загрузку на вычислительный узел по меньшей мере одного из программного обеспечения и данных о конфигурации для каждого из многочисленных вычислительных узлов.
15. Способ по п. 4, в котором один или более из многочисленных вычислительных узлов обеспечиваются службой онлайн исполнения, являющейся внешней по отношению к службе конфигурируемого технологического процесса, и в котором предоставление одного или более вычислительных узлов включает в себя выполнение посредством одной или более сконфигурированных вычислительных систем одного или более взаимодействий со службой онлайн исполнения, соответствующей одному или более вычислительным узлам.
16. Способ по п. 15, в котором обеспеченные один или более вычислительных узлов ассоциируются службой онлайн исполнения, с учетной записью клиента, службой онлайн исполнения, и в котором одно или более взаимодействий со службой онлайн исполнения включают в себя обеспечение информации относительно учетной записи клиента службе онлайн исполнения от имени клиента.
17. Способ по п. 15, в котором обеспеченные один или более вычислительных узлов ассоциируются службой онлайн исполнения со службой конфигурируемого технологического процесса таким образом, который предотвращает получение клиентом доступа к одному или более вычислительным узлам.
18. Способ по п. 4, в котором многочисленные компоненты технологического процесса включают в себя один или более компонентов источника и один или более компонентов манипулирования данными и один или более компонентов назначения, причем каждый из одного или более компонентов источника имеет ассоциированный источник данных и ассоциированные инструкции для осуществления доступа к по меньшей мере некоторым входным данным из ассоциированного источника данных, каждый из одного или более компонентов манипулирования данными имеет ассоциированные инструкции для выполнения по меньшей мере одной из операций манипулирования данными, и каждый из одного или более компонентов назначения имеет ассоциированные инструкции обработки по меньшей мере некоторых из создаваемых выходных данных.
19. Способ по п. 18, в котором многочисленные компоненты технологического процесса дополнительно включают в себя многочисленные компоненты источника, и в котором по меньшей мере один из компонентов источника подается клиентом службе конфигурируемого технологического процесса для обеспечения возможности доступа к источнику данных, который является специфичным для клиента.
20. Способ по п. 18, в котором многочисленные компоненты технологического процесса дополнительно включают в себя многочисленные из компонентов манипулирования данными и, в котором по меньшей мере один из компонентов манипулирования данными имеет ассоциированную операцию манипулирования данными, которая подается клиентом службе конфигурируемого технологического процесса для того, чтобы позволить выполнение определенного действия, которое является специфичным для клиента.
21. Способ по п. 18, в котором один или более из многочисленных компонентов технологического процесса обеспечиваются службой конфигурируемого технологического процесса и выбираются клиентом для использования в определенном технологическом процессе.
22. Способ по п. 4, дополнительно содержащий для каждого из многочисленных дополнительных клиентов службы конфигурируемого технологического процесса:
прием информация о конфигурации для дополнительного определенного технологического процесса дополнительного клиента;
сохранение информации о конфигурации для дополнительного определенного технологического процесса дополнительного клиента на одном или более механизмах хранения службы конфигурируемого технологического процесса; и
реализацию дополнительного определенного технологического процесса от имени дополнительного клиента на одном или более вычислительных узлах в один или более периодов времени.
23. Невременной считываемый компьютером носитель, имеющий хранящееся на нем содержимое, которое конфигурирует вычислительную систему службы конфигурируемого технологического процесса для:
предоставления сконфигурированной вычислительной системой многочисленных вычислительных узлов на основании информации о конфигурации, подаваемой клиентом для определенного технологического процесса, причем предоставление включает в себя конфигурирование многочисленных вычислительных узлов для реализации многочисленных компонентов технологического процесса для определенного технологического процесса, причем определенный технологический процесс включает в себя взаимосвязи между по меньшей мере некоторыми из многочисленных компонентов технологического процесса; и
реализации определенного технологического процесса для клиента посредством инициализации выполнения определенных действий на многочисленных вычислительных узлах, которые соответствуют реализованным компонентам технологического процесса, причем выполнение определенных действий включает в себя получение входных данных из одного или более источников данных, выполнение операций манипулирования данными, которые основаны по меньшей мере частично на полученных входных данных, и создание выходных данных, основываясь по меньшей мере частично на выполняемых операциях манипулирования данными.
24. Невременной считываемый компьютером носитель по п. 23, в котором служба конфигурируемого технологического процесса обеспечивает множество вычислительных узлов для использования при реализации технологических процессов для многочисленных клиентов службы конфигурируемого технологического процесса, при этом по меньшей мере некоторые из многочисленных вычислительных узлов являются подмножеством множества вычислительных узлов, и при этом хранящееся на нем содержимое является инструкциями программного обеспечения, которые при исполнении, программируют конфигурируемую вычислительную систему.
25. Невременной считываемый компьютером носитель по п. 23, в котором перед предоставлением многочисленных вычислительных узлов вычислительная система дополнительно сконфигурирована для:
обеспечения одного или более интерфейсов для использования клиентами конфигурируемой сетевой службы при точном определении информации; и
приема от клиента информации о конфигурации для определенного технологического процесса с помощью по меньшей мере одного из обеспеченных интерфейсов,
и при этом определенные действия выполняются в соответствии с принятой информацией о конфигурации.
26. Невременной считываемый компьютером носитель из п. 23, в котором по меньшей мере некоторые из многочисленных вычислительных узлов обеспечиваются одной или более службами выполнения программ, являющимися внешними по отношению к службе конфигурируемого технологического процесса, и при этом вычислительная система дополнительно сконфигурирована для взаимодействия с одной или более службами исполнения программ от имени клиента в рамках предоставления многочисленных вычислительных узлов.
27. Невременной считываемый компьютером носитель из п. 23, в котором по меньшей мере некоторые из многочисленных вычислительных узлов обеспечиваются клиенту с помощью одной или более компьютерных систем под управлением клиента в месте, удаленном от сконфигурированной вычислительной системы, и при этом вычислительная система дополнительно сконфигурирована для взаимодействия с одной или более компьютерными системами в рамках предоставления многочисленных вычислительных узлов.
28. Система, содержащая:
один или более процессоров; и
один или более модулей службы конфигурируемого технологического процесса, которые сконфигурированы, при исполнении по меньшей мере одним из одного или более процессоров, обеспечивать функциональность определенного технологического процесса для клиента посредством:
приема информации о конфигурации от клиента, точно определяющей многочисленные компоненты технологического процесса и взаимосвязи для определенного технологического процесса;
предоставления многочисленных вычислительных узлов, основываясь по меньшей мере частично на принятой информации о конфигурации для реализации многочисленных компонентов технологического процесса; и
реализации для клиента определенного технологического процесса посредством инициализации выполнения определенных действий на многочисленных вычислительных узлах, которые соответствуют реализованным компонентам технологического процесса, причем выполнение определенных действий включает в себя получение входных данных от одного или более источников данных, выполнение операций манипулирования данными, которые основаны по меньшей мере частично на полученных входных данных, и создание выходных данных, основываясь по меньшей мере частично на выполняемых операциях манипулирования данными.
29. Система по п. 28, дополнительно содержащая множество вычислительных узлов для использования при реализации технологических процессов для многочисленных клиентов службы конфигурируемого технологического процесса, при этом по меньшей мере некоторые из многочисленных вычислительных узлов являются подмножеством множества вычислительных узлов, и при этом один или более модулей включают в себя программные инструкции для исполнения по меньшей мере одним из одного или более процессоров.
30. Система по п. 28, в которой один или более модулей состоят из одного или более средств для выполнения обеспечения клиенту функциональных возможностей определенного технологического процесса.
[0096] Как отмечалось выше, детали таких примерных вариантов осуществления обеспечиваются в ознакомительных целях, и не предназначены для ограничения объема описанных приемов применительно к другим вариантам осуществления.
[0097] Из вышесказанного должно следовать, что, хотя в целях пояснения в настоящей заявке описаны конкретные варианты осуществления, могут быть выполнены различные модификации без отклонения от сущности и объема изобретения. Соответственно, изобретение не ограничено ничем, за исключением прилагаемой формулы изобретения и элементов, перечисленных в ней. Кроме того, в то время как некоторые аспекты изобретения представлены ниже некоторыми пунктами формулы изобретения, изобретатели предполагают различные аспекты изобретения в любом из доступных пунктов формулы изобретения. Например, в то время как только некоторые аспекты изобретения на данный момент могут быть описаны, как реализованные в виде считываемого компьютером носителя, подобным образом могут быть реализованы и другие аспекты изобретения.